diff options
Diffstat (limited to 'src/modules')
243 files changed, 1956 insertions, 2113 deletions
diff --git a/src/modules/about/AboutDialog.cpp b/src/modules/about/AboutDialog.cpp index 2f177a253..c1d33bd34 100644 --- a/src/modules/about/AboutDialog.cpp +++ b/src/modules/about/AboutDialog.cpp @@ -42,6 +42,10 @@ #include <QEvent> #include <QCloseEvent> +#ifdef COMPILE_SSL_SUPPORT +#include <openssl/crypto.h> +#endif //COMPILE_SSL_SUPPORT + extern AboutDialog * g_pAboutDialog; /* "<font color=\"#FFFF00\"><b>KVIrc public releases :</b></font><br>\n" \ @@ -159,10 +163,6 @@ AboutDialog::AboutDialog() infoString += ": "; infoString += KviBuildInfo::buildRevision(); infoString += "<br>"; - infoString += __tr2qs_ctx("System name", "about"); - infoString += ": "; - infoString += KviBuildInfo::buildSystem(); - infoString += "<br>"; infoString += __tr2qs_ctx("CPU name", "about"); infoString += ": "; infoString += KviBuildInfo::buildCPU(); @@ -191,6 +191,32 @@ AboutDialog::AboutDialog() infoString += __tr2qs_ctx("Features", "about"); infoString += ": "; infoString += KviBuildInfo::features(); +#ifdef COMPILE_SSL_SUPPORT + infoString += "<br>"; + infoString += __tr2qs_ctx("OpenSSL version", "about"); + infoString += ": "; +#if (OPENSSL_VERSION_NUMBER < 0x10100000L) + infoString += SSLeay_version(SSLEAY_VERSION); +#else + infoString += OpenSSL_version(OPENSSL_VERSION); +#endif + infoString += "<br>"; + infoString += __tr2qs_ctx("OpenSSL compiler flags", "about"); + infoString += ": "; +#if (OPENSSL_VERSION_NUMBER < 0x10100000L) + infoString += SSLeay_version(SSLEAY_CFLAGS); +#else + infoString += OpenSSL_version(OPENSSL_CFLAGS); +#endif + infoString += "<br>"; + infoString += __tr2qs_ctx("OpenSSL ", "about"); +#if (OPENSSL_VERSION_NUMBER < 0x10100000L) + infoString += SSLeay_version(SSLEAY_BUILT_ON); +#else + infoString += OpenSSL_version(OPENSSL_BUILT_ON); +#endif + infoString += "<br>"; +#endif //COMPILE_SSL_SUPPORT v->setText(infoString); @@ -220,7 +246,7 @@ AboutDialog::AboutDialog() QString szLicense; QString szLicensePath; - g_pApp->getGlobalKvircDirectory(szLicensePath, KviApplication::License, "COPYING"); + g_pApp->getGlobalKvircDirectory(szLicensePath, KviApplication::License, "ABOUT-LICENSE"); if(!KviFileUtils::loadFile(szLicensePath, szLicense)) { diff --git a/src/modules/about/AboutDialog.h b/src/modules/about/AboutDialog.h index 7f4f819df..6cf4608e2 100644 --- a/src/modules/about/AboutDialog.h +++ b/src/modules/about/AboutDialog.h @@ -34,7 +34,7 @@ public: ~AboutDialog(); protected: - virtual void closeEvent(QCloseEvent * e); + void closeEvent(QCloseEvent * e) override; protected slots: void closeButtonPressed(); }; diff --git a/src/modules/about/abouttext.inc b/src/modules/about/abouttext.inc index 93141bd8e..617eba562 100644 --- a/src/modules/about/abouttext.inc +++ b/src/modules/about/abouttext.inc @@ -4,11 +4,11 @@ static const char * g_szAboutText = "" \ "<title>Honor and glory</title>" \ "</head>" \ "<body bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#FF0000\"><center>" \ -"<h4>" \ +"<h4><font color=\"#000000\">" \ "This is a partial list of the people that have " \ "contributed in some way to the KVIrc project.<br><br>" \ "Honor and glory to:<br>" \ -"</h4>" \ +"</font></h4>" \ "<br><table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">" \ "<tr><td align=\"center\">" \ "<font color=\"#000000\" size=\"+3\"><b>Core developers</b></font>" \ diff --git a/src/modules/about/libkviabout.h b/src/modules/about/libkviabout.h index b396f64eb..386b488fd 100644 --- a/src/modules/about/libkviabout.h +++ b/src/modules/about/libkviabout.h @@ -44,8 +44,8 @@ public: KviDlgAbout * m_pAboutDialog; QPixmap * m_pMemPixmap; public: - virtual void drawContents(QPainter *p); - virtual void resizeEvent(QResizeEvent *e); + void drawContents(QPainter *p) override; + void resizeEvent(QResizeEvent *e) override; }; @@ -60,8 +60,8 @@ public: // void closed(); private slots: void close(); - virtual void closeEvent(QCloseEvent *); -// virtual void paintEvent(QPaintEvent *); + void closeEvent(QCloseEvent *) override; +// void paintEvent(QPaintEvent *) override; void scrollText(); public: int m_posy; @@ -80,7 +80,7 @@ public: private slots: void close(); private: - virtual void closeEvent(QCloseEvent *); + void closeEvent(QCloseEvent *) override; QLabel * m_pPicLabel; QLabel * m_pTextLabel; diff --git a/src/modules/about/mkabouttext.pl b/src/modules/about/mkabouttext.pl index a5c0da76f..6e6fc99a4 100755 --- a/src/modules/about/mkabouttext.pl +++ b/src/modules/about/mkabouttext.pl @@ -120,11 +120,11 @@ p " </head>"; p " <body bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#FF0000\"><center>"; -p " <h4>"; +p " <h4><font color=\"#000000\">"; p "This is a partial list of the people that have "; p "contributed in some way to the KVIrc project.<br><br>"; p "Honor and glory to:<br>"; -p " </h4>"; +p " </font></h4>"; $i = 0; $cnt++; diff --git a/src/modules/actioneditor/ActionEditor.cpp b/src/modules/actioneditor/ActionEditor.cpp index 19d6cddd3..d90d4fb35 100644 --- a/src/modules/actioneditor/ActionEditor.cpp +++ b/src/modules/actioneditor/ActionEditor.cpp @@ -72,7 +72,7 @@ ActionEditorTreeWidgetItem::ActionEditorTreeWidgetItem(QTreeWidget * v, ActionDa m_pTreeWidget = v; //setFlags(Qt::ItemIsUserSelectable); QString t = "<b>" + m_pActionData->m_szName + "</b>"; - t += "<br><font color=\"#454545\" size=\"-1\">" + m_pActionData->m_szVisibleName + "</font>"; + t += R"(<br><font color="#454545" size="-1">)" + m_pActionData->m_szVisibleName + "</font>"; m_szKey = m_pActionData->m_szName.toUpper(); setText(0, t); QPixmap * p = g_pIconManager->getBigIcon(m_pActionData->m_szBigIcon); diff --git a/src/modules/actioneditor/ActionEditor.h b/src/modules/actioneditor/ActionEditor.h index 0877f524a..cd35d1e80 100644 --- a/src/modules/actioneditor/ActionEditor.h +++ b/src/modules/actioneditor/ActionEditor.h @@ -79,9 +79,6 @@ public: protected: ActionData * m_pActionData; - //QSimpleRichText * m_pText; - QTextDocument * m_pText; - QPixmap * m_pIcon; QTreeWidget * m_pTreeWidget; QString m_szKey; @@ -102,7 +99,7 @@ public: ~ActionEditorTreeView(); protected: - virtual void resizeEvent(QResizeEvent * e); + void resizeEvent(QResizeEvent * e) override; }; class SingleActionEditor : public QWidget @@ -195,10 +192,10 @@ protected: ActionEditor * m_pEditor; protected: - virtual QPixmap * myIconPtr(); - virtual void getConfigGroupName(QString & szName); - virtual void saveProperties(KviConfigurationFile *); - virtual void loadProperties(KviConfigurationFile *); + QPixmap * myIconPtr() override; + void getConfigGroupName(QString & szName) override; + void saveProperties(KviConfigurationFile *) override; + void loadProperties(KviConfigurationFile *) override; protected slots: void cancelClicked(); void okClicked(); diff --git a/src/modules/addon/AddonFunctions.cpp b/src/modules/addon/AddonFunctions.cpp index 5ffd5466c..5aa50a1be 100644 --- a/src/modules/addon/AddonFunctions.cpp +++ b/src/modules/addon/AddonFunctions.cpp @@ -44,7 +44,7 @@ #include <QFile> #include <QDateTime> -#include <stdlib.h> +#include <cstdlib> namespace AddonFunctions { diff --git a/src/modules/addon/AddonFunctions.h b/src/modules/addon/AddonFunctions.h index 6d4d9cae2..27071dc56 100644 --- a/src/modules/addon/AddonFunctions.h +++ b/src/modules/addon/AddonFunctions.h @@ -50,7 +50,7 @@ namespace AddonFunctions bool checkDirTree(const QString & szDirPath, QString * pszError); bool pack(AddonInfo & info, QString & szError); bool notAValidAddonPackage(QString & szError); - bool installAddonPackage(const QString & szAddonPackageFileName, QString & szError, QWidget * pDialogParent = 0); + bool installAddonPackage(const QString & szAddonPackageFileName, QString & szError, QWidget * pDialogParent = nullptr); QString createRandomDir(); } diff --git a/src/modules/addon/AddonManagementDialog.h b/src/modules/addon/AddonManagementDialog.h index 2a1a50d74..86abd484a 100644 --- a/src/modules/addon/AddonManagementDialog.h +++ b/src/modules/addon/AddonManagementDialog.h @@ -47,8 +47,6 @@ public: protected: KviKvsScriptAddon * m_pAddon; - QTextDocument * m_pText; - QPixmap * m_pIcon; QListWidget * m_pListWidget; QString m_szKey; @@ -86,7 +84,7 @@ public: protected: void fillListView(); - virtual void closeEvent(QCloseEvent * e); + void closeEvent(QCloseEvent * e) override; protected slots: void currentChanged(QListWidgetItem * i, QListWidgetItem *); void closeClicked(); diff --git a/src/modules/addon/PackAddonDialog.cpp b/src/modules/addon/PackAddonDialog.cpp index cf416a4c3..6bb8c7099 100644 --- a/src/modules/addon/PackAddonDialog.cpp +++ b/src/modules/addon/PackAddonDialog.cpp @@ -182,7 +182,7 @@ bool PackAddonDialog::packAddon() return false; } - QMessageBox::information(this, __tr2qs_ctx("Exporting Addon Completed - KVIrc", "addon"), __tr2qs_ctx("The Package was saved successfully in %1", "addon").arg(m_szSavePath), QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton); + QMessageBox::information(this, __tr2qs_ctx("Exporting Addon Completed - KVIrc", "addon"), __tr2qs_ctx("The package was saved successfully in %1", "addon").arg(info.szSavePath), QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton); return true; } diff --git a/src/modules/addon/PackAddonDialog.h b/src/modules/addon/PackAddonDialog.h index e9b88bc33..4464f2da0 100644 --- a/src/modules/addon/PackAddonDialog.h +++ b/src/modules/addon/PackAddonDialog.h @@ -92,7 +92,7 @@ protected: * \brief Runs the packAddon() function and closes the wizard * \return void */ - virtual void accept(); + void accept() override; /** * \brief Creates the addon package @@ -201,7 +201,7 @@ protected: * \brief Perform initial tasks before showing the widget * \return void */ - virtual void initializePage(); + void initializePage() override; }; /** @@ -226,17 +226,13 @@ public: protected: QLabel * m_pLabelInfo; - QLabel * m_pLabelAuthor; - QLabel * m_pPackageName; - QLabel * m_pPackageVersion; - QLabel * m_pPackageDescription; protected: /** * \brief Perform initial tasks before showing the widget * \return void */ - virtual void initializePage(); + void initializePage() override; }; class PackAddonSummaryFilesWidget : public QDialog @@ -253,10 +249,10 @@ protected: public: void setPath(QString & szPath) { m_szPath = szPath; }; protected: - virtual void showEvent(QShowEvent *); + void showEvent(QShowEvent *) override; protected slots: - virtual void accept(); - virtual void reject(); + void accept() override; + void reject() override; }; #endif //!_PACKADDONDIALOG_H_ diff --git a/src/modules/aliaseditor/AliasEditorWindow.cpp b/src/modules/aliaseditor/AliasEditorWindow.cpp index 7870564c3..634e916a4 100644 --- a/src/modules/aliaseditor/AliasEditorWindow.cpp +++ b/src/modules/aliaseditor/AliasEditorWindow.cpp @@ -137,6 +137,9 @@ AliasEditorWidget::AliasEditorWidget(QWidget * par) m_pTreeWidget = new AliasEditorTreeWidget(box); + QPushButton * btn = new QPushButton(__tr2qs_ctx("&Export All to...", "editor"), box); + connect(btn, SIGNAL(clicked()), this, SLOT(exportAll())); + box = new KviTalVBox(m_pSplitter); KviTalHBox * hbox = new KviTalHBox(box); hbox->setSpacing(0); @@ -361,7 +364,7 @@ void AliasEditorWidget::itemRenamed(QTreeWidgetItem * it, int col) bool AliasEditorWidget::hasSelectedItems() { - return m_pTreeWidget->selectedItems().count() ? 1 : 0; + return m_pTreeWidget->selectedItems().count() ? true : false; } bool AliasEditorWidget::itemExists(QTreeWidgetItem * pSearchFor) diff --git a/src/modules/aliaseditor/AliasEditorWindow.h b/src/modules/aliaseditor/AliasEditorWindow.h index c9102b559..f9dd3d8ee 100644 --- a/src/modules/aliaseditor/AliasEditorWindow.h +++ b/src/modules/aliaseditor/AliasEditorWindow.h @@ -62,17 +62,17 @@ protected: int m_cPos; public: - inline const QString & name() { return m_szName; }; + const QString & name() const { return m_szName; } void setName(const QString & szName); - inline Type type() { return m_eType; }; + Type type() const { return m_eType; } void setType(Type t); - inline bool isAlias() { return m_eType == Alias; }; - inline bool isNamespace() { return m_eType == Namespace; }; + bool isAlias() const { return m_eType == Alias; } + bool isNamespace() const { return m_eType == Namespace; } void setParentItem(AliasEditorTreeWidgetItem * it) { m_pParentItem = it; }; AliasEditorTreeWidgetItem * parentItem() { return m_pParentItem; }; - inline void setBuffer(const QString & szBuffer) { m_szBuffer = szBuffer; }; - inline const QString & buffer() { return m_szBuffer; }; - inline const int & cursorPosition() { return m_cPos; }; + void setBuffer(const QString & szBuffer) { m_szBuffer = szBuffer; } + const QString & buffer() const { return m_szBuffer; } + const int & cursorPosition() const { return m_cPos; } void setCursorPosition(const int & cPos) { m_cPos = cPos; }; }; @@ -182,10 +182,10 @@ protected: AliasEditorWidget * m_pEditor; protected: - virtual QPixmap * myIconPtr(); - virtual void getConfigGroupName(QString & szName); - virtual void saveProperties(KviConfigurationFile *); - virtual void loadProperties(KviConfigurationFile *); + QPixmap * myIconPtr() override; + void getConfigGroupName(QString & szName) override; + void saveProperties(KviConfigurationFile *) override; + void loadProperties(KviConfigurationFile *) override; protected slots: void cancelClicked(); void okClicked(); diff --git a/src/modules/avatar/libkviavatar.h b/src/modules/avatar/libkviavatar.h index 0509ebc2f..54f3c5a5a 100644 --- a/src/modules/avatar/libkviavatar.h +++ b/src/modules/avatar/libkviavatar.h @@ -45,7 +45,7 @@ protected: KviIrcConnection * m_pConnection; protected: - virtual void closeEvent(QCloseEvent * e); + void closeEvent(QCloseEvent * e) override; const QString & avatarName() { return m_szAvatarName; }; protected slots: void okClicked(); diff --git a/src/modules/channelsjoin/ChannelsJoinDialog.cpp b/src/modules/channelsjoin/ChannelsJoinDialog.cpp index b373e87ea..d2c03f419 100644 --- a/src/modules/channelsjoin/ChannelsJoinDialog.cpp +++ b/src/modules/channelsjoin/ChannelsJoinDialog.cpp @@ -61,8 +61,6 @@ ChannelsJoinDialog::ChannelsJoinDialog(const char * name) setWindowTitle(__tr2qs("Join Channels - KVIrc")); setWindowIcon(*(g_pIconManager->getSmallIcon(KviIconManager::Channel))); - m_pConsole = nullptr; - QGridLayout * g = new QGridLayout(this); m_pTreeWidget = new ChannelsJoinDialogTreeWidget(this); diff --git a/src/modules/channelsjoin/ChannelsJoinDialog.h b/src/modules/channelsjoin/ChannelsJoinDialog.h index 1022ac08d..541fcfe81 100644 --- a/src/modules/channelsjoin/ChannelsJoinDialog.h +++ b/src/modules/channelsjoin/ChannelsJoinDialog.h @@ -37,8 +37,8 @@ #include <QTreeWidget> class KviConsoleWindow; -class QGroupBox; class QCheckBox; +class QGroupBox; class QLineEdit; class QPushButton; class QString; @@ -52,7 +52,7 @@ class ChannelsJoinDialogTreeWidget : public QTreeWidget Q_OBJECT public: ChannelsJoinDialogTreeWidget(QWidget * par) - : QTreeWidget(par), m_pJoinPopup(nullptr){}; + : QTreeWidget(par){}; ~ChannelsJoinDialogTreeWidget() { @@ -61,14 +61,14 @@ public: }; protected: - QMenu * m_pJoinPopup; + QMenu * m_pJoinPopup = nullptr; /** * \brief Called when the user clicks on the list * \param e mouse event descriptor * \return void */ - virtual void mousePressEvent(QMouseEvent * e); - virtual void mouseDoubleClickEvent(QMouseEvent * e); + void mousePressEvent(QMouseEvent * e) override; + void mouseDoubleClickEvent(QMouseEvent * e) override; }; /** @@ -100,19 +100,19 @@ protected: RecentChannelItem, RegisteredChannelItem }; - QLineEdit * m_pChannelEdit; - ChannelsJoinDialogTreeWidget * m_pTreeWidget; - QGroupBox * m_pGroupBox; - QLineEdit * m_pPass; - QCheckBox * m_pShowAtStartupCheck; - QCheckBox * m_pCloseAfterJoinCheck; - QPushButton * m_pJoinButton; - QPushButton * m_pRegButton; - QPushButton * m_pClearButton; - KviConsoleWindow * m_pConsole; + QLineEdit * m_pChannelEdit = nullptr; + ChannelsJoinDialogTreeWidget * m_pTreeWidget = nullptr; + QGroupBox * m_pGroupBox = nullptr; + QLineEdit * m_pPass = nullptr; + QCheckBox * m_pShowAtStartupCheck = nullptr; + QCheckBox * m_pCloseAfterJoinCheck = nullptr; + QPushButton * m_pJoinButton = nullptr; + QPushButton * m_pRegButton = nullptr; + QPushButton * m_pClearButton = nullptr; + KviConsoleWindow * m_pConsole = nullptr; public: - virtual void closeEvent(QCloseEvent * e); + void closeEvent(QCloseEvent * e) override; /** * \brief Fills in the servers' list diff --git a/src/modules/classeditor/ClassEditorWindow.cpp b/src/modules/classeditor/ClassEditorWindow.cpp index 8f9c5d1bb..39c265341 100644 --- a/src/modules/classeditor/ClassEditorWindow.cpp +++ b/src/modules/classeditor/ClassEditorWindow.cpp @@ -461,7 +461,7 @@ void ClassEditorWidget::createFullClass(KviKvsObjectClass * pClass, ClassEditorT bool ClassEditorWidget::hasSelectedItems() { - return m_pTreeWidget->selectedItems().count() ? 1 : 0; + return m_pTreeWidget->selectedItems().count() ? true : false; } bool ClassEditorWidget::classExists(QString & szFullItemName) @@ -808,7 +808,7 @@ void ClassEditorWidget::currentItemChanged(QTreeWidgetItem * pTree, QTreeWidgetI { QString szReminderText = __tr2qs_ctx("Reminder text.", "editor"); szReminderText += ": <b>"; - szReminderText += m_pLastEditedItem->reminder().toHtmlEscaped(); + szReminderText += m_pLastEditedItem->reminder(); szReminderText += "</b>"; m_pReminderLabel->setText(szReminderText); m_pReminderLabel->show(); @@ -1054,15 +1054,12 @@ void ClassEditorWidget::exportClassBuffer(QString & szBuffer, ClassEditorTreeWid ClassEditorTreeWidgetItem * pFunction = (ClassEditorTreeWidgetItem *)pItem->child(i); if(pFunction->isMethod()) { - QString reminder = pFunction->reminder(); - KviQString::escapeKvs(&reminder); - szBuffer += "\t"; if(pFunction->isInternalFunction()) szBuffer += "internal "; szBuffer += "function "; szBuffer += pFunction->name(); - szBuffer += "(\"" + reminder + "\")\n"; + szBuffer += "(" + pFunction->reminder() + ")\n"; QString szCode = pFunction->buffer(); KviCommandFormatter::blockFromBuffer(szCode); KviCommandFormatter::indent(szCode); @@ -2074,7 +2071,7 @@ KviClassEditorFunctionDialog::KviClassEditorFunctionDialog(QWidget * pParent, co pLabel = new QLabel(pHBox); pLabel->setObjectName("reminderlabel"); - pLabel->setWordWrap(1); + pLabel->setWordWrap(true); pLabel->setText(__tr2qs_ctx("Please enter the optional reminder string for the member function:", "editor")); m_pReminderLineEdit = new QLineEdit(pHBox); diff --git a/src/modules/classeditor/ClassEditorWindow.h b/src/modules/classeditor/ClassEditorWindow.h index e12386a5e..c320937a2 100644 --- a/src/modules/classeditor/ClassEditorWindow.h +++ b/src/modules/classeditor/ClassEditorWindow.h @@ -73,7 +73,7 @@ public: ~ClassEditorTreeWidget(); protected: - virtual void mousePressEvent(QMouseEvent * e); + void mousePressEvent(QMouseEvent * e) override; signals: /** * \brief Emitted when we press the mouse right button @@ -305,14 +305,14 @@ public: * \param pCfg The configuration file * \return void */ - virtual void saveProperties(KviConfigurationFile * pCfg); + void saveProperties(KviConfigurationFile * pCfg); /** * \brief Called to load the window properties * \param pCfg The configuration file * \return void */ - virtual void loadProperties(KviConfigurationFile * pCfg); + void loadProperties(KviConfigurationFile * pCfg); /** * \brief Builds the class! @@ -497,7 +497,7 @@ protected: * \brief Returns the class editor small icon * \return QPixmap * */ - virtual QPixmap * myIconPtr(); + QPixmap * myIconPtr() override; /** * \brief Sets the configuration group name as classeditor @@ -511,14 +511,14 @@ protected: * \param pCfg The configuration file * \return void */ - virtual void saveProperties(KviConfigurationFile * pCfg); + void saveProperties(KviConfigurationFile * pCfg) override; /** * \brief Called to load the window properties * \param pCfg The configuration file * \return void */ - virtual void loadProperties(KviConfigurationFile * pCfg); + void loadProperties(KviConfigurationFile * pCfg) override; protected slots: /** * \brief Called when we click the cancel button diff --git a/src/modules/codetester/CodeTesterWindow.cpp b/src/modules/codetester/CodeTesterWindow.cpp index 1e8b4a762..951553b2c 100644 --- a/src/modules/codetester/CodeTesterWindow.cpp +++ b/src/modules/codetester/CodeTesterWindow.cpp @@ -34,6 +34,7 @@ #include "KviConsoleWindow.h" #include "KviKvsScript.h" #include "KviKvsVariantList.h" +#include "KviIrcView.h" #include <QPushButton> #include <QLayout> @@ -44,11 +45,19 @@ extern std::unordered_set<CodeTesterWindow *> g_pCodeTesterWindowList; -CodeTesterWidget::CodeTesterWidget(QWidget * par) - : QWidget(par) +CodeTesterWindow::CodeTesterWindow() + : KviWindow(KviWindow::ScriptEditor, "codetester", nullptr) { + g_pCodeTesterWindowList.insert(this); setObjectName("code_tester"); - QGridLayout * g = new QGridLayout(this); + + m_pSplitter = new KviTalSplitter(Qt::Horizontal, this); + m_pSplitter->setObjectName("main_splitter"); + m_pSplitter->setChildrenCollapsible(false); + + // layouts can't be added to splitters directly, so we embed the layout in a widget. + QWidget * l = new QWidget(this); + QGridLayout * g = new QGridLayout(l); m_pEditor = KviScriptEditor::createInstance(this); g->addWidget(m_pEditor, 0, 0, 1, 4); @@ -61,36 +70,28 @@ CodeTesterWidget::CodeTesterWidget(QWidget * par) m_pParams = new QLineEdit(this); m_pParams->setToolTip(__tr2qs_ctx("Here you can specify a semicolon-separated list of parameters that will be available in the code as $0, $1, $2, ..", "editor")); g->addWidget(m_pParams, 1, 2); + + m_pSplitter->addWidget(l); + + m_pIrcView = new KviIrcView(m_pSplitter, this); + + QList<int> li { width() / 2, width() / 2 }; + m_pSplitter->setSizes(li); } -CodeTesterWidget::~CodeTesterWidget() +CodeTesterWindow::~CodeTesterWindow() { KviScriptEditor::destroyInstance(m_pEditor); + g_pCodeTesterWindowList.erase(this); } -//#warning "Allow to bind the command to a specified window" - -void CodeTesterWidget::execute() +void CodeTesterWindow::execute() { QString buffer; m_pEditor->getText(buffer); - KviConsoleWindow * pConsole = g_pApp->activeConsole(); QStringList slParams = m_pParams->text().split(';'); KviKvsVariantList params{&slParams}; - KviKvsScript::run(buffer, pConsole, ¶ms); -} - -CodeTesterWindow::CodeTesterWindow() - : KviWindow(KviWindow::ScriptEditor, "codetester", nullptr) -{ - g_pCodeTesterWindowList.insert(this); - - m_pTester = new CodeTesterWidget(this); -} - -CodeTesterWindow::~CodeTesterWindow() -{ - g_pCodeTesterWindowList.erase(this); + KviKvsScript::run(buffer, this, ¶ms); } QPixmap * CodeTesterWindow::myIconPtr() @@ -100,7 +101,7 @@ QPixmap * CodeTesterWindow::myIconPtr() void CodeTesterWindow::resizeEvent(QResizeEvent *) { - m_pTester->setGeometry(0, 0, width(), height()); + m_pSplitter->setGeometry(0, 0, width(), height()); } void CodeTesterWindow::fillCaptionBuffers() diff --git a/src/modules/codetester/CodeTesterWindow.h b/src/modules/codetester/CodeTesterWindow.h index 992ce52e5..d71dbbf31 100644 --- a/src/modules/codetester/CodeTesterWindow.h +++ b/src/modules/codetester/CodeTesterWindow.h @@ -33,39 +33,30 @@ class QPushButton; class QLabel; class KviScriptEditor; -class CodeTesterWidget : public QWidget +class CodeTesterWindow : public KviWindow { Q_OBJECT public: - CodeTesterWidget(QWidget * par); - ~CodeTesterWidget(); + CodeTesterWindow(); + ~CodeTesterWindow(); private: + KviTalSplitter * m_pSplitter; KviScriptEditor * m_pEditor; - QLineEdit * m_pParams; QPushButton * m_pExecuteButton; QLabel * m_pModeLabel; + QLineEdit * m_pParams; + private slots: void execute(); -}; - -class CodeTesterWindow : public KviWindow -{ - Q_OBJECT -public: - CodeTesterWindow(); - ~CodeTesterWindow(); - -protected: - CodeTesterWidget * m_pTester; protected: - virtual QPixmap * myIconPtr(); - virtual void fillCaptionBuffers(); - virtual void resizeEvent(QResizeEvent * e); - virtual void getConfigGroupName(QString & szName); - virtual void saveProperties(KviConfigurationFile *){}; - virtual void loadProperties(KviConfigurationFile *){}; + QPixmap * myIconPtr() override; + void fillCaptionBuffers() override; + void resizeEvent(QResizeEvent * e) override; + void getConfigGroupName(QString & szName) override; + void saveProperties(KviConfigurationFile *) override {} + void loadProperties(KviConfigurationFile *) override {} }; #endif //_CODETESTER_H_ diff --git a/src/modules/context/libkvicontext.cpp b/src/modules/context/libkvicontext.cpp index 163e4e86b..11eaaf93c 100644 --- a/src/modules/context/libkvicontext.cpp +++ b/src/modules/context/libkvicontext.cpp @@ -51,16 +51,16 @@ KVSM_PARAMETERS_BEGIN(c) \ KVSM_PARAMETER("irc_context_id", KVS_PT_UINT, KVS_PF_OPTIONAL, iContextId) \ KVSM_PARAMETERS_END(c) \ - KviConsoleWindow * pConsole = NULL; \ + KviConsoleWindow * pConsole = nullptr; \ if(c->parameterCount() > 0) \ pConsole = g_pApp->findConsole(iContextId); \ else \ pConsole = c->window()->console(); #define GET_CONNECTION_FROM_STANDARD_PARAMS \ - GET_CONSOLE_FROM_STANDARD_PARAMS \ - KviIrcConnection * pConnection = NULL; \ - if(pConsole) \ + GET_CONSOLE_FROM_STANDARD_PARAMS \ + KviIrcConnection * pConnection = nullptr; \ + if(pConsole) \ pConnection = pConsole->context()->connection(); #define STANDARD_IRC_CONNECTION_TARGET_PARAMETER(_fncName, _setCall) \ @@ -655,7 +655,7 @@ static bool context_kvs_fnc_getSSLCertInfo(KviKvsModuleFunctionCall * c) QString szQuery; QString szType; QString szParam1; - bool bRemote = true; + bool bRemote; KVSM_PARAMETERS_BEGIN(c) KVSM_PARAMETER("query", KVS_PT_STRING, 0, szQuery) @@ -689,16 +689,17 @@ static bool context_kvs_fnc_getSSLCertInfo(KviKvsModuleFunctionCall * c) { bRemote = false; } + else if(szType.compare("remote") == 0 || szType.isEmpty()) + { + bRemote = true; + } else { - // already defaults to true, we only catch the error condition - if(szType.compare("remote") != 0) - { - c->warning(__tr2qs("You specified a bad string for the parameter \"type\"")); - c->returnValue()->setString(""); - return true; - } + c->warning(__tr2qs("You specified a bad string for the parameter \"type\"")); + c->returnValue()->setString(""); + return true; } + //context is never null, connection can be null if(!pConsole->context()->connection()) { diff --git a/src/modules/dcc/DccBroker.cpp b/src/modules/dcc/DccBroker.cpp index dda25a544..6de88fe67 100644 --- a/src/modules/dcc/DccBroker.cpp +++ b/src/modules/dcc/DccBroker.cpp @@ -241,7 +241,7 @@ void DccBroker::rsendExecute(DccDescriptor * dcc) szTag = t->m_szTag; // DCC [ST]SEND <filename> <fakeipaddress> <zero-port> <filesize> <sessionid> - dcc->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC %s %s 127.0.0.1 0 %s %s%c", + dcc->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC %s %s 2130706433 0 %s %s%c", dcc->console()->connection()->encodeText(dcc->szNick).data(), 0x01, dcc->console()->connection()->encodeText(dcc->szType).data(), diff --git a/src/modules/dcc/DccCanvasWindow.cpp b/src/modules/dcc/DccCanvasWindow.cpp index 19389dab0..e2adee2a4 100644 --- a/src/modules/dcc/DccCanvasWindow.cpp +++ b/src/modules/dcc/DccCanvasWindow.cpp @@ -114,7 +114,7 @@ DccCanvasWindow::DccCanvasWindow(DccDescriptor * dcc, const char * name) output(KVI_OUT_DCCMSG, __tr2qs_ctx("Contacting host %Q on port %Q", "dcc"), &(dcc->szIp), &(dcc->szPort)); } - // m_pSlaveThread = 0; + // m_pSlaveThread = nullptr; } DccCanvasWindow::~DccCanvasWindow() @@ -124,7 +124,7 @@ DccCanvasWindow::~DccCanvasWindow() // { // m_pSlaveThread->terminate(); // delete m_pSlaveThread; - // m_pSlaveThread = 0; + // m_pSlaveThread = nullptr; // } KviThreadManager::killPendingEvents(this); // delete m_pDescriptor; @@ -162,7 +162,7 @@ void DccCanvasWindow::getBaseLogFileName(KviCString & buffer) buffer.sprintf("%s_%s_%s", m_pDescriptor->szNick.toUtf8().data(), m_pDescriptor->szIp.toUtf8().data(), m_pDescriptor->szPort.toUtf8().data()); } -void DccCanvasWindow::ownMessage(const char * text, bool bUserFeedback) +void DccCanvasWindow::ownMessage(const QString & text, bool bUserFeedback) { KviCString buf(KviCString::Format, "%s\r\n", text); // m_pSlaveThread->sendRawData(buf.ptr(),buf.len()); @@ -173,11 +173,11 @@ void DccCanvasWindow::ownMessage(const char * text, bool bUserFeedback) m_pDescriptor->szLocalHost.toUtf8().data(), text); } -void DccCanvasWindow::ownAction(const char * text) +void DccCanvasWindow::ownAction(const QString & text) { KviCString buf(KviCString::Format, "%cACTION %s%c\r\n", text); // m_pSlaveThread->sendRawData(buf.ptr(),buf.len()); - output(KVI_OUT_ACTION, "%Q %s", &(m_pDescriptor->szLocalNick), text); + output(KVI_OUT_OWNACTION, "%Q %s", &(m_pDescriptor->szLocalNick), text); } bool DccCanvasWindow::event(QEvent * e) diff --git a/src/modules/dcc/DccCanvasWindow.h b/src/modules/dcc/DccCanvasWindow.h index 6b89bc735..7e3e6ff29 100644 --- a/src/modules/dcc/DccCanvasWindow.h +++ b/src/modules/dcc/DccCanvasWindow.h @@ -53,15 +53,15 @@ protected: QString m_szTarget; protected: - virtual const QString & target(); - virtual void fillCaptionBuffers(); - virtual void getBaseLogFileName(KviCString & buffer); - virtual QPixmap * myIconPtr(); - virtual void resizeEvent(QResizeEvent * e); - virtual QSize sizeHint() const; - virtual bool event(QEvent * e); - virtual void ownMessage(const char * text, bool bUserFeedback = true); - virtual void ownAction(const char * text); + const QString & target() override; + void fillCaptionBuffers() override; + void getBaseLogFileName(KviCString & buffer) override; + QPixmap * myIconPtr() override; + void resizeEvent(QResizeEvent * e) override; + QSize sizeHint() const override; + bool event(QEvent * e) override; + void ownMessage(const QString & text, bool bUserFeedback = true) override; + void ownAction(const QString & text) override; protected slots: void handleMarshalError(int err); void connected(); diff --git a/src/modules/dcc/DccChatWindow.cpp b/src/modules/dcc/DccChatWindow.cpp index 1af5aa314..f10caab61 100644 --- a/src/modules/dcc/DccChatWindow.cpp +++ b/src/modules/dcc/DccChatWindow.cpp @@ -407,7 +407,7 @@ void DccChatWindow::ownAction(const QString & text) return; KviCString buf(KviCString::Format, "%cACTION %s%c\r\n", 0x01, d, 0x01); m_pSlaveThread->sendRawData(buf.ptr(), buf.len()); - output(KVI_OUT_ACTION, "%Q %Q", &(m_pDescriptor->szLocalNick), &szTmpBuffer); + output(KVI_OUT_OWNACTION, "%Q %Q", &(m_pDescriptor->szLocalNick), &szTmpBuffer); } else { @@ -904,9 +904,9 @@ bool DccChatThread::tryFlushOutBuffers() { int err = kvi_socket_error(); #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - if((err != EAGAIN) || (err != EINTR) || (err != WSAEWOULDBLOCK)) + if((err != EAGAIN) && (err != EINTR) && (err != WSAEWOULDBLOCK)) #else - if((err != EAGAIN) || (err != EINTR)) + if((err != EAGAIN) && (err != EINTR)) #endif { postErrorEvent(KviError::translateSystemError(err)); diff --git a/src/modules/dcc/DccChatWindow.h b/src/modules/dcc/DccChatWindow.h index b23da0943..2af9892c0 100644 --- a/src/modules/dcc/DccChatWindow.h +++ b/src/modules/dcc/DccChatWindow.h @@ -74,7 +74,7 @@ class DccChatWindow : public DccWindow public: DccChatWindow(DccDescriptor * dcc, const char * name); ~DccChatWindow(); - QFrame * buttonContainer() { return (QFrame *)m_pButtonContainer; }; + QFrame * buttonContainer() override { return (QFrame *)m_pButtonContainer; } protected: DccChatThread * m_pSlaveThread; QString m_szTarget; @@ -84,20 +84,20 @@ protected: KviTalHBox * m_pButtonContainer; protected: - virtual const QString & target(); - virtual void fillCaptionBuffers(); - virtual void getBaseLogFileName(QString & buffer); - virtual QPixmap * myIconPtr(); - virtual void resizeEvent(QResizeEvent * e); - virtual QSize sizeHint() const; - virtual const QString & localNick(); - virtual bool event(QEvent * e); - virtual void ownMessage(const QString & text, bool bUserFeedback = true); - virtual void ownAction(const QString & text); - virtual void triggerCreationEvents(); - virtual void triggerDestructionEvents(); + const QString & target() override; + void fillCaptionBuffers() override; + void getBaseLogFileName(QString & buffer) override; + QPixmap * myIconPtr() override; + void resizeEvent(QResizeEvent * e) override; + QSize sizeHint() const override; + const QString & localNick() override; + bool event(QEvent * e) override; + void ownMessage(const QString & text, bool bUserFeedback = true) override; + void ownAction(const QString & text) override; + void triggerCreationEvents() override; + void triggerDestructionEvents() override; void startConnection(); - virtual DccThread * getSlaveThread() { return m_pSlaveThread; }; + DccThread * getSlaveThread() override { return m_pSlaveThread; } protected slots: void handleMarshalError(KviError::Code eError); void connected(); diff --git a/src/modules/dcc/DccDialog.cpp b/src/modules/dcc/DccDialog.cpp index a6d113404..6beb70ad8 100644 --- a/src/modules/dcc/DccDialog.cpp +++ b/src/modules/dcc/DccDialog.cpp @@ -27,6 +27,7 @@ #include "KviLocale.h" #include "KviIconManager.h" #include "KviApplication.h" +#include "KviMainWindow.h" #include <QLayout> #include <QPushButton> @@ -119,8 +120,11 @@ void DccAcceptDialog::closeEvent(QCloseEvent * e) void DccAcceptDialog::showEvent(QShowEvent * e) { - QRect rect = g_pApp->desktop()->screenGeometry(g_pApp->desktop()->primaryScreen()); - move((rect.width() - width()) / 2, (rect.height() - height()) / 2); + int iScreen = g_pApp->desktop()->screenNumber(g_pMainWindow); + if(iScreen < 0) + iScreen = g_pApp->desktop()->primaryScreen(); + QRect rect = g_pApp->desktop()->screenGeometry(iScreen); + move(rect.x() + ((rect.width() - width()) / 2),rect.y() + ((rect.height() - height()) / 2)); QWidget::showEvent(e); } @@ -182,8 +186,11 @@ void DccRenameDialog::closeEvent(QCloseEvent * e) void DccRenameDialog::showEvent(QShowEvent * e) { - QRect rect = g_pApp->desktop()->screenGeometry(g_pApp->desktop()->primaryScreen()); - move((rect.width() - width()) / 2, (rect.height() - height()) / 2); + int iScreen = g_pApp->desktop()->screenNumber(g_pMainWindow); + if(iScreen < 0) + iScreen = g_pApp->desktop()->primaryScreen(); + QRect rect = g_pApp->desktop()->screenGeometry(iScreen); + move(rect.x() + ((rect.width() - width()) / 2),rect.y() + ((rect.height() - height()) / 2)); QWidget::showEvent(e); } diff --git a/src/modules/dcc/DccDialog.h b/src/modules/dcc/DccDialog.h index ded6dc942..a6e6d8c7d 100644 --- a/src/modules/dcc/DccDialog.h +++ b/src/modules/dcc/DccDialog.h @@ -50,8 +50,8 @@ public: ~DccAcceptDialog(); protected: - virtual void closeEvent(QCloseEvent * e); - virtual void showEvent(QShowEvent * e); + void closeEvent(QCloseEvent * e) override; + void showEvent(QShowEvent * e) override; private slots: void acceptClicked(); void rejectClicked(); @@ -68,8 +68,8 @@ public: ~DccRenameDialog(); protected: - virtual void closeEvent(QCloseEvent * e); - virtual void showEvent(QShowEvent * e); + void closeEvent(QCloseEvent * e) override; + void showEvent(QShowEvent * e) override; private slots: void renameClicked(); void overwriteClicked(); diff --git a/src/modules/dcc/DccFileTransfer.cpp b/src/modules/dcc/DccFileTransfer.cpp index 2f3302521..34fa1ff34 100644 --- a/src/modules/dcc/DccFileTransfer.cpp +++ b/src/modules/dcc/DccFileTransfer.cpp @@ -1035,13 +1035,6 @@ void DccSendThread::run() goto handle_system_error; break; case KviSSL::SyscallError: - if(written == 0) - { - raiseSSLError(); - postErrorEvent(KviError::RemoteEndClosedConnection); - goto exit_dcc; - } - else { int iSSLErr = m_pSSL->getLastError(true); if(iSSLErr != 0) @@ -1889,9 +1882,9 @@ QString DccFileTransfer::tipText() { QString s; - s = QString("<table><tr><td bgcolor=\"#000000\"><font color=\"#FFFFFF\"><b>DCC %1 (ID %2)</b></font></td></tr>").arg(m_szDccType.ptr()).arg(id()); + s = QString(R"(<table><tr><td bgcolor="#000000"><font color="#FFFFFF"><b>DCC %1 (ID %2)</b></font></td></tr>)").arg(m_szDccType.ptr()).arg(id()); - s += "<tr><td bgcolor=\"#404040\"><font color=\"#FFFFFF\">"; + s += R"(<tr><td bgcolor="#404040"><font color="#FFFFFF">)"; s += __tr2qs_ctx("Transfer Log", "dcc"); s += "</font></td></tr>"; s += "<tr><td bgcolor=\"#C0C0C0\">"; @@ -2386,12 +2379,6 @@ bool DccFileTransfer::doResume(const char * filename, const char * port, quint64 if(!bFileNameMatches) { - // bad file name - if(!bPortMatches) - return false; // neither filename nor port match - - // port matches (this is very likely to be the right transfer) - if(!KVI_OPTION_BOOL(KviOption_boolAcceptBrokenFileNameDccResumeRequests)) { if(_OUTPUT_VERBOSE) diff --git a/src/modules/dcc/DccFileTransfer.h b/src/modules/dcc/DccFileTransfer.h index f8fb48a05..4154cdcfc 100644 --- a/src/modules/dcc/DccFileTransfer.h +++ b/src/modules/dcc/DccFileTransfer.h @@ -51,7 +51,7 @@ class DccFileTransfer; class DccMarshal; class QMenu; -typedef struct _KviDccSendThreadOptions +struct KviDccSendThreadOptions { KviCString szFileName; quint64 uStartPosition; @@ -61,7 +61,7 @@ typedef struct _KviDccSendThreadOptions bool bNoAcks; bool bIsTdcc; unsigned int uMaxBandwidth; -} KviDccSendThreadOptions; +}; class DccSendThread : public DccThread { @@ -74,8 +74,8 @@ private: uint m_uAverageSpeed; uint m_uInstantSpeed; quint64 m_uFilePosition; - quint64 m_uAckedBytes; - quint64 m_uTotalSentBytes; + quint64 m_uAckedBytes = 0; + quint64 m_uTotalSentBytes = 0; // internal unsigned long m_uStartTime; unsigned long m_uInstantSpeedInterval; @@ -99,7 +99,7 @@ protected: virtual void run(); }; -typedef struct _KviDccRecvThreadOptions +struct KviDccRecvThreadOptions { bool bResume; KviCString szFileName; @@ -110,7 +110,7 @@ typedef struct _KviDccRecvThreadOptions bool bNoAcks; bool bIsTdcc; unsigned int uMaxBandwidth; -} KviDccRecvThreadOptions; +}; class DccRecvThread : public DccThread { @@ -165,7 +165,7 @@ protected: QSpinBox * m_pLimitBox; protected: - virtual void closeEvent(QCloseEvent * e); + void closeEvent(QCloseEvent * e) override; protected slots: void okClicked(); void cancelClicked(); @@ -221,18 +221,18 @@ public: static bool handleResumeAccepted(const char * filename, const char * port, const char * szZeroPortTag); static bool handleResumeRequest(const char * filename, const char * port, quint64 filePos); - virtual bool event(QEvent * e); + bool event(QEvent * e) override; - virtual KviWindow * dccMarshalOutputWindow(); - virtual const char * dccMarshalOutputContextString(); + KviWindow * dccMarshalOutputWindow() override; + const char * dccMarshalOutputContextString() override; - virtual void displayPaint(QPainter * p, int column, QRect rect); - virtual int displayHeight(int iLineSpacing); - virtual void fillContextPopup(QMenu * m); + void displayPaint(QPainter * p, int column, QRect rect) override; + int displayHeight(int iLineSpacing) override; + void fillContextPopup(QMenu * m) override; virtual void fillStatusString(QString & szBuffer); - virtual bool active(); - virtual QString tipText(); - virtual QString localFileName(); + bool active() override; + QString tipText() override; + QString localFileName() override; bool isFileUpload() { return m_pDescriptor->isFileUpload(); }; diff --git a/src/modules/dcc/DccMarshal.cpp b/src/modules/dcc/DccMarshal.cpp index fa7d2b0b3..486aa9aee 100644 --- a/src/modules/dcc/DccMarshal.cpp +++ b/src/modules/dcc/DccMarshal.cpp @@ -32,7 +32,7 @@ #include "kvi_socket.h" #include "KviFileUtils.h" -#include <stdlib.h> //for exit() +#include <cstdlib> //for exit() #include <QTimer> diff --git a/src/modules/dcc/DccThread.h b/src/modules/dcc/DccThread.h index 25f6fc4fd..14cd96929 100644 --- a/src/modules/dcc/DccThread.h +++ b/src/modules/dcc/DccThread.h @@ -46,11 +46,11 @@ // KviThreadDataEvent<int> #define KVI_DCC_THREAD_EVENT_ACTION (KVI_THREAD_USER_EVENT_BASE + 5) -typedef struct _KviDccThreadIncomingData +struct KviDccThreadIncomingData { int iLen; char * buffer; -} KviDccThreadIncomingData; +}; class DccThread : public KviSensitiveThread { diff --git a/src/modules/dcc/DccVideoWindow.cpp b/src/modules/dcc/DccVideoWindow.cpp index ea19273fb..963a30b36 100644 --- a/src/modules/dcc/DccVideoWindow.cpp +++ b/src/modules/dcc/DccVideoWindow.cpp @@ -72,9 +72,8 @@ bool kvi_dcc_video_is_valid_codec(const char * codecName) return false; } -static DccVideoCodec * kvi_dcc_video_get_codec(const char * codecName) +static DccVideoCodec * kvi_dcc_video_get_codec([[maybe_unused]] const char * codecName) { - Q_UNUSED(codecName); #ifndef COMPILE_DISABLE_OGG_THEORA if(kvi_strEqualCI("theora", codecName)) return new DccVideoTheoraCodec(); @@ -259,7 +258,7 @@ bool DccVideoThread::handleIncomingData(KviDccThreadIncomingData * data, bool bC // no more data in the buffer KVI_ASSERT(data->iLen == 0); KviMemory::free(data->buffer); - data->buffer = end = aux = 0; + data->buffer = end = aux = nullptr; } postEvent(parent(), e); } @@ -281,7 +280,7 @@ bool DccVideoThread::handleIncomingData(KviDccThreadIncomingData * data, bool bC e->setData(s); data->iLen = 0; KviMemory::free(data->buffer); - data->buffer = 0; + data->buffer = nullptr; postEvent(parent(), e); } } @@ -396,8 +395,8 @@ DccVideoWindow::DccVideoWindow(DccDescriptor * dcc, const char * name) : DccWindow(KviWindow::DccVideo, name, dcc) { m_pDescriptor = dcc; - m_pSlaveThread = 0; - m_pszTarget = 0; + m_pSlaveThread = nullptr; + m_pszTarget = nullptr; m_pButtonBox = new KviTalHBox(this); @@ -501,51 +500,51 @@ DccVideoWindow::~DccVideoWindow() if(m_pInVideoLabel) { delete m_pInVideoLabel; - m_pInVideoLabel = 0; + m_pInVideoLabel = nullptr; } if(m_pCameraView) { delete m_pCameraView; - m_pCameraView = 0; + m_pCameraView = nullptr; } if(m_pCameraImage) { delete m_pCameraImage; - m_pCameraImage = 0; + m_pCameraImage = nullptr; } if(m_pCamera) { delete m_pCamera; - m_pCamera = 0; + m_pCamera = nullptr; } if(m_pCDevices) { delete m_pCDevices; - m_pCDevices = 0; + m_pCDevices = nullptr; } if(m_pCInputs) { delete m_pCInputs; - m_pCInputs = 0; + m_pCInputs = nullptr; } if(m_pCStandards) { delete m_pCStandards; - m_pCStandards = 0; + m_pCStandards = nullptr; } if(m_pVideoLabel[0]) { delete m_pVideoLabel[2]; delete m_pVideoLabel[1]; delete m_pVideoLabel[0]; - m_pVideoLabel[2] = 0; - m_pVideoLabel[1] = 0; - m_pVideoLabel[0] = 0; + m_pVideoLabel[2] = nullptr; + m_pVideoLabel[1] = nullptr; + m_pVideoLabel[0] = nullptr; } if(m_pLayout) { delete m_pLayout; - m_pLayout = 0; + m_pLayout = nullptr; } g_pDccBroker->unregisterDccWindow(this); @@ -554,7 +553,7 @@ DccVideoWindow::~DccVideoWindow() { m_pSlaveThread->terminate(); delete m_pSlaveThread; - m_pSlaveThread = 0; + m_pSlaveThread = nullptr; } KviThreadManager::killPendingEvents(this); @@ -562,7 +561,7 @@ DccVideoWindow::~DccVideoWindow() if(m_pszTarget) { delete m_pszTarget; - m_pszTarget = 0; + m_pszTarget = nullptr; } } @@ -792,7 +791,7 @@ void DccVideoWindow::ownAction(const QString & text) return; KviCString buf(KviCString::Format, "%cACTION %s%c\r\n", 0x01, d, 0x01); m_tmpTextDataOut.append(buf.ptr(), buf.len()); - output(KVI_OUT_ACTION, "%Q %Q", &(m_pDescriptor->szLocalNick), &szTmpBuffer); + output(KVI_OUT_OWNACTION, "%Q %Q", &(m_pDescriptor->szLocalNick), &szTmpBuffer); } else { diff --git a/src/modules/dcc/DccVideoWindow.h b/src/modules/dcc/DccVideoWindow.h index eca3ed97f..1210dcc8b 100644 --- a/src/modules/dcc/DccVideoWindow.h +++ b/src/modules/dcc/DccVideoWindow.h @@ -64,11 +64,11 @@ extern bool kvi_dcc_video_is_valid_codec(const char * codecName); #define KVI_DCC_VIDEO_THREAD_ACTION_STOP_PLAYING 3 #define KVI_DCC_VIDEO_THREAD_ACTION_GRAB_FRAME 4 -typedef struct _KviDccVideoThreadOptions +struct KviDccVideoThreadOptions { QString szVideoDevice; DccVideoCodec * pCodec; -} KviDccVideoThreadOptions; +}; class DccVideoThread : public DccThread { @@ -102,9 +102,9 @@ protected: void stopRecording(); void startPlaying(); void stopPlaying(); - inline bool isPlaying() { return m_bPlaying; }; - virtual void run(); - virtual bool handleIncomingData(KviDccThreadIncomingData * data, bool bCritical); + bool isPlaying() const { return m_bPlaying; } + void run() override; + bool handleIncomingData(KviDccThreadIncomingData * data, bool bCritical) override; }; class DccVideoWindow : public DccWindow @@ -135,21 +135,21 @@ protected: QString m_szLocalNick; protected: - virtual void triggerCreationEvents(); - virtual void triggerDestructionEvents(); - virtual const QString & target(); - virtual void fillCaptionBuffers(); - virtual QPixmap * myIconPtr(); - virtual bool event(QEvent * e); - virtual void getBaseLogFileName(QString & buffer); + void triggerCreationEvents() override; + void triggerDestructionEvents() override; + const QString & target() override; + void fillCaptionBuffers() override; + QPixmap * myIconPtr() override; + bool event(QEvent * e) override; + void getBaseLogFileName(QString & buffer) override; void startTalking(); void stopTalking(); void startConnection(); - virtual const QString & localNick(); - virtual void ownMessage(const QString & text, bool bUserFeedback = true); - virtual void ownAction(const QString & text); - virtual void resizeEvent(QResizeEvent *); - virtual QSize sizeHint() const; + const QString & localNick() override; + void ownMessage(const QString & text, bool bUserFeedback = true) override; + void ownAction(const QString & text) override; + void resizeEvent(QResizeEvent *) override; + QSize sizeHint() const override; protected slots: void handleMarshalError(KviError::Code eError); void connected(); diff --git a/src/modules/dcc/DccVoiceAdpcmCodec.cpp b/src/modules/dcc/DccVoiceAdpcmCodec.cpp index f3b9e0334..de05544e1 100644 --- a/src/modules/dcc/DccVoiceAdpcmCodec.cpp +++ b/src/modules/dcc/DccVoiceAdpcmCodec.cpp @@ -53,7 +53,7 @@ #define _ADPCMCODEC_CPP_ #include "DccVoiceAdpcmCodec.h" -#include <stdio.h> /*DBG*/ +#include <cstdio> /*DBG*/ #ifndef __STDC__ #define signed diff --git a/src/modules/dcc/DccVoiceAdpcmCodec.h b/src/modules/dcc/DccVoiceAdpcmCodec.h index e437c18b5..8015bd052 100644 --- a/src/modules/dcc/DccVoiceAdpcmCodec.h +++ b/src/modules/dcc/DccVoiceAdpcmCodec.h @@ -47,11 +47,11 @@ #include "DccVoiceCodec.h" -typedef struct adpcm_state +struct ADPCM_state { short valprev; /* Previous output value */ char index; /* HelpIndex into stepsize table */ -} ADPCM_state; +}; class DccVoiceAdpcmCodec : public DccVoiceCodec { diff --git a/src/modules/dcc/DccVoiceCodec.cpp b/src/modules/dcc/DccVoiceCodec.cpp index 8f52060a2..5e70d176c 100644 --- a/src/modules/dcc/DccVoiceCodec.cpp +++ b/src/modules/dcc/DccVoiceCodec.cpp @@ -29,8 +29,7 @@ #include <QBuffer> DccVoiceCodec::DccVoiceCodec() -{ -} + = default; DccVoiceCodec::~DccVoiceCodec() = default; @@ -95,8 +94,7 @@ int DccVoiceNullCodec::decodedFrameSize() } DccVideoCodec::DccVideoCodec() -{ -} + = default; DccVideoCodec::~DccVideoCodec() = default; @@ -265,19 +263,19 @@ DccVideoTheoraCodec::DccVideoTheoraCodec() : DccVideoCodec() { m_szName = "theora"; - m_pEncoder = 0; - m_pDecoder = 0; + m_pEncoder = nullptr; + m_pDecoder = nullptr; } DccVideoTheoraCodec::~DccVideoTheoraCodec() { if(m_pEncoder) delete m_pEncoder; - m_pEncoder = 0; + m_pEncoder = nullptr; if(m_pDecoder) delete m_pDecoder; - m_pDecoder = 0; + m_pDecoder = nullptr; } void DccVideoTheoraCodec::encodeVideo(KviDataBuffer * videoSignal, KviDataBuffer * stream) diff --git a/src/modules/dcc/DccVoiceGsmCodec.cpp b/src/modules/dcc/DccVoiceGsmCodec.cpp index e2a23bb4e..3a7929b3d 100644 --- a/src/modules/dcc/DccVoiceGsmCodec.cpp +++ b/src/modules/dcc/DccVoiceGsmCodec.cpp @@ -33,12 +33,12 @@ #define GSM_UNPACKED_FRAME_SIZE_IN_BYTES 320 #define GSM_UNPACKED_FRAME_SIZE_IN_SHORTS 160 -void * (*gsm_session_create)() = 0; -void (*gsm_session_destroy)(void *) = 0; -void (*gsm_session_encode)(void *, short *, unsigned char *) = 0; -int (*gsm_session_decode)(void *, unsigned char *, short *) = 0; +void * (*gsm_session_create)() = nullptr; +void (*gsm_session_destroy)(void *) = nullptr; +void (*gsm_session_encode)(void *, short *, unsigned char *) = nullptr; +int (*gsm_session_decode)(void *, unsigned char *, short *) = nullptr; -void * g_pGSMCodecLibraryHandle = 0; +void * g_pGSMCodecLibraryHandle = nullptr; bool kvi_gsm_codec_init() { @@ -57,7 +57,7 @@ bool kvi_gsm_codec_init() if(!(gsm_session_create && gsm_session_destroy && gsm_session_encode && gsm_session_decode)) { dlclose(g_pGSMCodecLibraryHandle); - g_pGSMCodecLibraryHandle = 0; + g_pGSMCodecLibraryHandle = nullptr; return false; } return true; @@ -68,7 +68,7 @@ void kvi_gsm_codec_done() if(g_pGSMCodecLibraryHandle) { dlclose(g_pGSMCodecLibraryHandle); - g_pGSMCodecLibraryHandle = 0; + g_pGSMCodecLibraryHandle = nullptr; } } diff --git a/src/modules/dcc/DccVoiceWindow.cpp b/src/modules/dcc/DccVoiceWindow.cpp index be04e9e83..279823727 100644 --- a/src/modules/dcc/DccVoiceWindow.cpp +++ b/src/modules/dcc/DccVoiceWindow.cpp @@ -49,7 +49,7 @@ #include <sys/time.h> #include <sys/types.h> #include <unistd.h> -#include <errno.h> +#include <cerrno> #include <fcntl.h> #include <sys/stat.h> // for open() #include <sys/ioctl.h> // for ioctl() @@ -1014,7 +1014,7 @@ void DccVoiceWindow::startOrStopTalking(bool bStart) stopTalking(); } -int DccVoiceWindow::getMixerVolume(void) const +int DccVoiceWindow::getMixerVolume() const { #ifndef COMPILE_DISABLE_DCC_VOICE int fd; diff --git a/src/modules/dcc/DccVoiceWindow.h b/src/modules/dcc/DccVoiceWindow.h index e0d526382..f0f7dc898 100644 --- a/src/modules/dcc/DccVoiceWindow.h +++ b/src/modules/dcc/DccVoiceWindow.h @@ -51,14 +51,14 @@ extern bool kvi_dcc_voice_is_valid_codec(const char * codecName); #define KVI_DCC_VOICE_THREAD_ACTION_START_PLAYING 2 #define KVI_DCC_VOICE_THREAD_ACTION_STOP_PLAYING 3 -typedef struct _KviDccVoiceThreadOptions +struct KviDccVoiceThreadOptions { bool bForceHalfDuplex; int iPreBufferSize; int iSampleRate; KviCString szSoundDevice; DccVoiceCodec * pCodec; -} KviDccVoiceThreadOptions; +}; class DccVoiceThread : public DccThread { @@ -125,14 +125,14 @@ protected: DccVoiceThread * m_pSlaveThread; protected: - virtual void focusInEvent(QFocusEvent *); - virtual const QString & target(); - virtual void fillCaptionBuffers(); - virtual QPixmap * myIconPtr(); - virtual void resizeEvent(QResizeEvent * e); - virtual QSize sizeHint() const; - virtual bool event(QEvent * e); - virtual void getBaseLogFileName(QString & buffer); + void focusInEvent(QFocusEvent *) override; + const QString & target() override; + void fillCaptionBuffers() override; + QPixmap * myIconPtr() override; + void resizeEvent(QResizeEvent * e) override; + QSize sizeHint() const override; + bool event(QEvent * e) override; + void getBaseLogFileName(QString & buffer) override; void startTalking(); void stopTalking(); void startConnection(); @@ -188,7 +188,7 @@ public: KviVoiceParty::KviVoiceParty(const QString &szNick,const QString &szIp,unsigned short uPort) : m_szIp(szIp), m_uPort(uPort), m_szNick(szNick) { - m_pChildrenTree = 0; + m_pChildrenTree = nullptr; } KviVoiceParty::~KviVoiceParty() @@ -241,8 +241,8 @@ KviVoiceLink::KviVoiceLink(KviVoiceParty * pRemoteParty) { KviQString::sprintf("%Q:%u",&(pRemoteParty->nick()),pRemoteParty->port()); m_pRemoteParty = pRemoteParty; - m_pAudioEncoder = 0; - m_pAudioDecoder = 0; + m_pAudioEncoder = nullptr; + m_pAudioDecoder = nullptr; } KviVoiceLink::~KviVoiceLink() diff --git a/src/modules/dcc/DccWindow.h b/src/modules/dcc/DccWindow.h index 31a4710fd..483f1ad43 100644 --- a/src/modules/dcc/DccWindow.h +++ b/src/modules/dcc/DccWindow.h @@ -45,7 +45,7 @@ protected: public: DccDescriptor * descriptor() { return m_pDescriptor; }; const DccMarshal * marshal() { return m_pMarshal; }; - virtual DccThread * getSlaveThread() { return 0; }; + virtual DccThread * getSlaveThread() { return nullptr; } virtual KviWindow * dccMarshalOutputWindow(); virtual const char * dccMarshalOutputContextString(); }; diff --git a/src/modules/dcc/canvaswidget.cpp b/src/modules/dcc/canvaswidget.cpp index 8da7a0204..03d69ac58 100644 --- a/src/modules/dcc/canvaswidget.cpp +++ b/src/modules/dcc/canvaswidget.cpp @@ -466,7 +466,7 @@ KviCanvasView::KviCanvasView(QCanvas * c, DccCanvasWidget * cw, QWidget * par) m_pCanvasWidget = cw; m_state = Idle; m_dragMode = None; - m_pSelectedItem = 0; + m_pSelectedItem = nullptr; viewport()->setMouseTracking(true); } @@ -562,7 +562,7 @@ static void calcPolygonPoints(QPointArray & pnts, unsigned int nVertices) void KviCanvasView::insertObjectAt(const QPoint & pnt, ObjectType o) { - QCanvasItem * r = 0; + QCanvasItem * r = nullptr; switch(o) { @@ -655,7 +655,7 @@ void KviCanvasView::clearSelection() if(!m_pSelectedItem) return; m_pSelectedItem->setSelected(false); - m_pSelectedItem = 0; + m_pSelectedItem = nullptr; m_pCanvasWidget->m_pPropertiesWidget->editItem(0); } @@ -1297,7 +1297,7 @@ QWidget * KviVariantTableItem::createEditor() const default: break; } - return 0; + return nullptr; } void KviVariantTableItem::setContentFromEditor(QWidget * w) @@ -1429,7 +1429,7 @@ void KviCanvasItemPropertiesWidget::editItem(QCanvasItem * it) return; } - QMap<QString, QVariant> * m = 0; + QMap<QString, QVariant> * m = nullptr; switch(KVI_CANVAS_RTTI_CONTROL_TYPE(it)) { diff --git a/src/modules/dcc/canvaswidget.h b/src/modules/dcc/canvaswidget.h index d6737cef4..c03a750c7 100644 --- a/src/modules/dcc/canvaswidget.h +++ b/src/modules/dcc/canvaswidget.h @@ -263,9 +263,9 @@ protected: void setItemSelected(QCanvasItem * it); void clearSelection(); void insertObjectAt(const QPoint & pnt, ObjectType o); - virtual void contentsMousePressEvent(QMouseEvent * e); - virtual void contentsMouseMoveEvent(QMouseEvent * e); - virtual void contentsMouseReleaseEvent(QMouseEvent * e); + void contentsMousePressEvent(QMouseEvent * e) override; + void contentsMouseMoveEvent(QMouseEvent * e) override; + void contentsMouseReleaseEvent(QMouseEvent * e) override; public slots: void insertRectangle(); void insertRichText(); @@ -328,7 +328,7 @@ protected: KviCanvasItemPropertiesWidget * m_pPropertiesWidget; protected: - virtual void resizeEvent(QResizeEvent *); + void resizeEvent(QResizeEvent *) override; }; #endif diff --git a/src/modules/dcc/libkvidcc.cpp b/src/modules/dcc/libkvidcc.cpp index 510c5b122..16427465b 100644 --- a/src/modules/dcc/libkvidcc.cpp +++ b/src/modules/dcc/libkvidcc.cpp @@ -2420,7 +2420,7 @@ static bool dcc_kvs_fnc_ircContext(KviKvsModuleFunctionCall * c) } else { - c->error(__tr2qs_ctx("The IRC context that originated the DCC doesn't exists anymore.", "dcc")); + c->error(__tr2qs_ctx("The IRC context that originated the DCC doesn't exist anymore.", "dcc")); return false; } } diff --git a/src/modules/dcc/requests.cpp b/src/modules/dcc/requests.cpp index 2e856ac44..7440c58ad 100644 --- a/src/modules/dcc/requests.cpp +++ b/src/modules/dcc/requests.cpp @@ -1175,12 +1175,12 @@ static void dccModuleParseDccList(KviDccRequest *) // FIXME! } -typedef void (*dccParseProc)(KviDccRequest *); -typedef struct _dccParseProcEntry +using dccParseProc = void (*)(KviDccRequest *); +struct dccParseProcEntry { const char * type; dccParseProc proc; -} dccParseProcEntry; +}; #define KVI_NUM_KNOWN_DCC_TYPES 28 diff --git a/src/modules/dialog/libkvidialog.h b/src/modules/dialog/libkvidialog.h index 5bec526e4..ac0eb86fc 100644 --- a/src/modules/dialog/libkvidialog.h +++ b/src/modules/dialog/libkvidialog.h @@ -49,7 +49,7 @@ public: KviWindow * pWindow, bool modal = false); ~KviKvsCallbackMessageBox(); protected slots: - virtual void done(int code); + void done(int code) override; }; class KviKvsCallbackTextInput : public QDialog, public KviKvsCallbackObject @@ -79,13 +79,13 @@ protected: int m_iDefaultButton; protected: - virtual void closeEvent(QCloseEvent * e); - virtual void showEvent(QShowEvent * e); + void closeEvent(QCloseEvent * e) override; + void showEvent(QShowEvent * e) override; protected slots: void b0Clicked(); void b1Clicked(); void b2Clicked(); - virtual void done(int code); + void done(int code) override; }; class KviKvsCallbackFileDialog : public KviFileDialog, public KviKvsCallbackObject @@ -102,7 +102,7 @@ public: ~KviKvsCallbackFileDialog(); protected: - virtual void done(int code); + void done(int code) override; }; class KviKvsCallbackImageDialog : public KviImageDialog, public KviKvsCallbackObject @@ -120,7 +120,7 @@ public: ~KviKvsCallbackImageDialog(); protected: - virtual void done(int code); + void done(int code) override; }; #endif //_KVI_DIALOG_H_ diff --git a/src/modules/editor/ScriptEditorImplementation.cpp b/src/modules/editor/ScriptEditorImplementation.cpp index c05308977..f21ef4fdb 100644 --- a/src/modules/editor/ScriptEditorImplementation.cpp +++ b/src/modules/editor/ScriptEditorImplementation.cpp @@ -317,10 +317,6 @@ void ScriptEditorWidget::updateOptions() disableSyntaxHighlighter(); enableSyntaxHighlighter(); - p = ((ScriptEditorImplementation *)m_pParent)->findLineEdit()->palette(); - p.setColor(foregroundRole(), g_clrFind); - ((ScriptEditorImplementation *)m_pParent)->findLineEdit()->setPalette(p); - //set cursor custom width if(KVI_OPTION_BOOL(KviOption_boolEnableCustomCursorWidth)) { @@ -715,16 +711,16 @@ ScriptEditorImplementation::ScriptEditorImplementation(QWidget * par) m_lastCursorPos = 0; QGridLayout * g = new QGridLayout(this); + m_pEditor = new ScriptEditorWidget(this); + m_pFindLineEdit = new QLineEdit(" ", this); m_pFindLineEdit->setText(""); QPalette p = m_pFindLineEdit->palette(); - p.setColor(foregroundRole(), g_clrFind); + p.setColor(QPalette::Text, g_clrFind); m_pFindLineEdit->setPalette(p); - m_pEditor = new ScriptEditorWidget(this); - - g->addWidget(m_pEditor, 0, 0, 1, 4); + g->addWidget(m_pEditor, 0, 0, 1, 5); g->setRowStretch(0, 1); QToolButton * b = new QToolButton(this); @@ -753,13 +749,18 @@ ScriptEditorImplementation::ScriptEditorImplementation(QWidget * par) pLab->setAlignment(Qt::AlignRight | Qt::AlignVCenter); g->addWidget(pLab, 1, 1); + m_pFindButton = new QPushButton(QString(__tr2qs_ctx("&Find", "editor")), this); + g->addWidget(m_pFindButton, 1, 3); + m_pRowColLabel = new QLabel(QString(__tr2qs_ctx("Line: %1 Col: %2", "editor")).arg(1).arg(1), this); m_pRowColLabel->setFrameStyle(QFrame::Sunken | QFrame::Panel); m_pRowColLabel->setMinimumWidth(80); - g->addWidget(m_pRowColLabel, 1, 3); + g->addWidget(m_pRowColLabel, 1, 4); connect(m_pFindLineEdit, SIGNAL(returnPressed()), m_pEditor, SLOT(slotFind())); connect(m_pFindLineEdit, SIGNAL(returnPressed()), this, SLOT(slotFind())); + connect(m_pFindButton, SIGNAL(clicked()), m_pEditor, SLOT(slotFind())); + connect(m_pFindButton, SIGNAL(clicked()), this, SLOT(slotFind())); connect(m_pEditor, SIGNAL(cursorPositionChanged()), this, SLOT(updateRowColLabel())); connect(m_pEditor, SIGNAL(selectionChanged()), this, SLOT(updateRowColLabel())); m_lastCursorPos = 0; diff --git a/src/modules/editor/ScriptEditorImplementation.h b/src/modules/editor/ScriptEditorImplementation.h index 1a99aa490..35ee28ba9 100644 --- a/src/modules/editor/ScriptEditorImplementation.h +++ b/src/modules/editor/ScriptEditorImplementation.h @@ -155,6 +155,7 @@ protected: ScriptEditorWidgetColorOptions * m_pOptionsDialog; ScriptEditorWidget * m_pEditor; QLabel * m_pRowColLabel; + QPushButton * m_pFindButton; int m_lastCursorPos; public: @@ -201,7 +202,7 @@ class ScriptEditorReplaceDialog final : public QDialog { Q_OBJECT public: - ScriptEditorReplaceDialog(QWidget * parent = 0, const QString & szName = QString()); + ScriptEditorReplaceDialog(QWidget * parent = nullptr, const QString & szName = QString()); public: QLineEdit * m_pFindLineEdit; diff --git a/src/modules/eventeditor/EventEditorWindow.cpp b/src/modules/eventeditor/EventEditorWindow.cpp index d54d110d3..ca9ef2cfd 100644 --- a/src/modules/eventeditor/EventEditorWindow.cpp +++ b/src/modules/eventeditor/EventEditorWindow.cpp @@ -39,6 +39,7 @@ #include "KviQString.h" #include "KviKvsEventManager.h" #include "KviTalVBox.h" +#include "KviTalHBox.h" #include <QMessageBox> #include <QSplitter> @@ -47,11 +48,14 @@ #include <QPushButton> #include <QMouseEvent> #include <QMenu> +#include <utility> extern EventEditorWindow * g_pEventEditorWindow; -EventEditorEventTreeWidgetItem::EventEditorEventTreeWidgetItem(QTreeWidget * par, unsigned int uEvIdx, const QString & name, const QString & params) - : QTreeWidgetItem(par), m_uEventIdx(uEvIdx), m_szParams(params) +EventEditorEventTreeWidgetItem::EventEditorEventTreeWidgetItem(QTreeWidget * par, unsigned int uEvIdx, const QString & name, QString params) + : QTreeWidgetItem(par) + , m_uEventIdx(uEvIdx) + , m_szParams(std::move(params)) { setName(name); } @@ -62,8 +66,9 @@ void EventEditorEventTreeWidgetItem::setName(const QString & szName) setText(0, m_szName); } -EventEditorHandlerTreeWidgetItem::EventEditorHandlerTreeWidgetItem(QTreeWidgetItem * par, const QString & name, const QString & buffer, bool bEnabled) - : QTreeWidgetItem(par), m_szBuffer(buffer) +EventEditorHandlerTreeWidgetItem::EventEditorHandlerTreeWidgetItem(QTreeWidgetItem * par, const QString & name, QString buffer, bool bEnabled) + : QTreeWidgetItem(par) + , m_szBuffer(std::move(buffer)) { m_cPos = 0; setEnabled(bEnabled); //this updates the icon too @@ -110,11 +115,25 @@ EventEditor::EventEditor(QWidget * par) box->setSpacing(0); box->setMargin(0); - m_pNameEditor = new QLineEdit(box); + KviTalHBox * hbox = new KviTalHBox(box); + hbox->setContentsMargins(10, 0, 10, 0); + + m_pIsEnabled = new QCheckBox(hbox); + m_pIsEnabled->setText(__tr2qs_ctx("E&nabled", "editor")); + m_pIsEnabled->setEnabled(false); + connect(m_pIsEnabled, SIGNAL(clicked(bool)), this, SLOT(toggleCurrentHandlerEnabled())); + + m_pNameEditor = new QLineEdit(hbox); + m_pNameEditor->setText(__tr2qs_ctx("No item selected", "editor")); m_pNameEditor->setToolTip(__tr2qs_ctx("Edit the event handler name.", "editor")); + m_pNameEditor->setEnabled(false); + QRegExpValidator * pValidator = new QRegExpValidator(QRegExp(KVI_KVS_EVENT_HANDLER_NAME_REG_EXP), this); + m_pNameEditor->setValidator(pValidator); + m_pNameEditor->setEnabled(false); m_pEditor = KviScriptEditor::createInstance(box); m_pEditor->setFocus(); + m_pEditor->setEnabled(false); m_bOneTimeSetupDone = false; m_pLastEditedItem = nullptr; } @@ -163,6 +182,14 @@ void EventEditor::eventHandlerDisabled(const QString & szHandler) QString szEventName = szHandler.split("::")[0]; QString szHandlerName = szHandler.split("::")[1]; qDebug("Handler %s of event %s : disabled", szHandlerName.toUtf8().data(), szEventName.toUtf8().data()); + + QTreeWidgetItem * pSelectedItem = nullptr; + QList <QTreeWidgetItem *> itemList = m_pTreeWidget->selectedItems(); + if (!itemList.isEmpty()) + { + pSelectedItem = itemList.first(); + } + for(int i = 0; i < m_pTreeWidget->topLevelItemCount(); i++) { EventEditorEventTreeWidgetItem * pItem = (EventEditorEventTreeWidgetItem *)m_pTreeWidget->topLevelItem(i); @@ -173,6 +200,8 @@ void EventEditor::eventHandlerDisabled(const QString & szHandler) if(KviQString::equalCI(szHandlerName, ((EventEditorHandlerTreeWidgetItem *)pItem->child(j))->name())) { ((EventEditorHandlerTreeWidgetItem *)pItem->child(j))->setEnabled(false); + if (pItem->child(j) == pSelectedItem) + m_pIsEnabled->setChecked(false); return; } } @@ -310,6 +339,7 @@ void EventEditor::removeCurrentHandler() parent->setIcon(0, QIcon(*(g_pIconManager->getSmallIcon(KviIconManager::EventNoHandlers)))); } + m_pIsEnabled->setEnabled(false); m_pEditor->setEnabled(false); m_pNameEditor->setEnabled(false); } @@ -320,6 +350,7 @@ void EventEditor::toggleCurrentHandlerEnabled() KVI_ASSERT(m_bOneTimeSetupDone); if(m_pLastEditedItem) { + m_pIsEnabled->setChecked(!(m_pLastEditedItem->m_bEnabled)); m_pLastEditedItem->setEnabled(!(m_pLastEditedItem->m_bEnabled)); m_pTreeWidget->repaint(m_pTreeWidget->visualItemRect(m_pLastEditedItem)); currentItemChanged(m_pLastEditedItem, nullptr); @@ -368,8 +399,7 @@ void EventEditor::saveLastEditedItem() return; ((EventEditorHandlerTreeWidgetItem *)m_pLastEditedItem)->setCursorPosition(m_pEditor->getCursor()); QString buffer = m_pNameEditor->text(); - //not-so elaborate fix for #218, we'd better rework this - buffer.replace(QRegExp("[^A-Za-z0-9_]"), ""); + KviKvsEventManager::instance()->cleanHandlerName(buffer); if(!KviQString::equalCI(buffer, m_pLastEditedItem->m_szName)) { getUniqueHandlerName((EventEditorEventTreeWidgetItem *)(m_pLastEditedItem->parent()), buffer); @@ -398,6 +428,8 @@ void EventEditor::currentItemChanged(QTreeWidgetItem * it, QTreeWidgetItem *) if(it->parent()) { m_pLastEditedItem = (EventEditorHandlerTreeWidgetItem *)it; + m_pIsEnabled->setEnabled(true); + m_pIsEnabled->setChecked(m_pLastEditedItem->isEnabled()); m_pNameEditor->setEnabled(true); m_pNameEditor->setText(m_pLastEditedItem->name()); m_pEditor->setEnabled(true); @@ -408,8 +440,10 @@ void EventEditor::currentItemChanged(QTreeWidgetItem * it, QTreeWidgetItem *) else { m_pLastEditedItem = nullptr; + m_pIsEnabled->setEnabled(false); + m_pIsEnabled->setChecked(false); m_pNameEditor->setEnabled(false); - m_pNameEditor->setText(""); + m_pNameEditor->setText(__tr2qs_ctx("No item selected", "editor")); m_pEditor->setEnabled(false); QString parms = ((EventEditorEventTreeWidgetItem *)it)->m_szParams; if(parms.isEmpty()) diff --git a/src/modules/eventeditor/EventEditorWindow.h b/src/modules/eventeditor/EventEditorWindow.h index f6ca3644f..0425b13ea 100644 --- a/src/modules/eventeditor/EventEditorWindow.h +++ b/src/modules/eventeditor/EventEditorWindow.h @@ -31,6 +31,7 @@ #include <QLineEdit> #include <QTreeWidget> #include <QMenu> +#include <QCheckBox> class KviScriptEditor; @@ -42,7 +43,7 @@ public: QString m_szParams; public: - EventEditorEventTreeWidgetItem(QTreeWidget * par, unsigned int uEvIdx, const QString & name, const QString & params); + EventEditorEventTreeWidgetItem(QTreeWidget * par, unsigned int uEvIdx, const QString & name, QString params); ~EventEditorEventTreeWidgetItem(){}; public: @@ -59,20 +60,20 @@ public: int m_cPos; public: - EventEditorHandlerTreeWidgetItem(QTreeWidgetItem * par, const QString & name, const QString & buffer, bool bEnabled); + EventEditorHandlerTreeWidgetItem(QTreeWidgetItem * par, const QString & name, QString buffer, bool bEnabled); ~EventEditorHandlerTreeWidgetItem(){}; public: const int & cursorPosition() { return m_cPos; }; void setCursorPosition(const int & cPos) { - qDebug("set cursor to %d", cPos); m_cPos = cPos; }; void setName(const QString & szName); QString name() const { return m_szName; }; void setEnabled(const bool bEnabled); + bool isEnabled() { return m_bEnabled; }; }; class EventEditorTreeWidget : public QTreeWidget @@ -83,7 +84,7 @@ public: ~EventEditorTreeWidget(){}; protected: - void mousePressEvent(QMouseEvent * e); + void mousePressEvent(QMouseEvent * e) override; signals: void rightButtonPressed(QTreeWidgetItem *, QPoint); }; @@ -99,7 +100,8 @@ public: KviScriptEditor * m_pEditor; EventEditorTreeWidget * m_pTreeWidget; QLineEdit * m_pNameEditor; - QMenu * m_pContextPopup; + QCheckBox * m_pIsEnabled; + QMenu * m_pContextPopup = nullptr; EventEditorHandlerTreeWidgetItem * m_pLastEditedItem; bool m_bOneTimeSetupDone; @@ -119,7 +121,7 @@ protected slots: void eventHandlerDisabled(const QString & szName); protected: - void showEvent(QShowEvent * e); + void showEvent(QShowEvent * e) override; private: void oneTimeSetup(); @@ -136,11 +138,11 @@ protected: EventEditor * m_pEditor; protected: - virtual QPixmap * myIconPtr(); - virtual void fillCaptionBuffers(); - virtual void getConfigGroupName(QString & szName); - virtual void saveProperties(KviConfigurationFile *); - virtual void loadProperties(KviConfigurationFile *); + QPixmap * myIconPtr() override; + void fillCaptionBuffers() override; + void getConfigGroupName(QString & szName) override; + void saveProperties(KviConfigurationFile *) override; + void loadProperties(KviConfigurationFile *) override; protected slots: void cancelClicked(); void okClicked(); diff --git a/src/modules/file/libkvifile.cpp b/src/modules/file/libkvifile.cpp index 84d7d5d37..2ff800b5f 100644 --- a/src/modules/file/libkvifile.cpp +++ b/src/modules/file/libkvifile.cpp @@ -53,6 +53,12 @@ #endif #include <openssl/evp.h> + +#if OPENSSL_VERSION_NUMBER < 0x10100005L +#define EVP_MD_CTX_new EVP_MD_CTX_create +#define EVP_MD_CTX_free EVP_MD_CTX_destroy +#endif + #else // The fallback we can always use, but with very limited set of // functionality. @@ -707,20 +713,20 @@ static bool file_kvs_fnc_ps(KviKvsModuleFunctionCall * c) The <directory> should be given as a UNIX style path and is adjusted according to the system that KVIrc is running on.[br][br] <flags> may be a combination of the following characters:[br] [pre] - [b]d:[/b] list directories[br] - [b]f:[/b] list files[br] - [b]l:[/b] list symbolic links[br] - [b]r:[/b] list readable files[br] - [b]w:[/b] list writable files[br] - [b]x:[/b] list executable files[br] - [b]h:[/b] list hidden files[br] - [b]s:[/b] list system files[br] - [b]n:[/b] sort files by name[br] - [b]t:[/b] sort files by file time[br] - [b]b:[/b] sort files by file size[br] - [b]z:[/b] put the directories first, then the files[br] - [b]k:[/b] invert sort order[br] - [b]i:[/b] case insensitive sort[br] + [b]d:[/b] list directories + [b]f:[/b] list files + [b]l:[/b] list symbolic links + [b]r:[/b] list readable files + [b]w:[/b] list writable files + [b]x:[/b] list executable files + [b]h:[/b] list hidden files + [b]s:[/b] list system files + [b]n:[/b] sort files by name + [b]t:[/b] sort files by file time + [b]b:[/b] sort files by file size + [b]z:[/b] put the directories first, then the files + [b]k:[/b] invert sort order + [b]i:[/b] case insensitive sort [/pre] If <flags> is empty, then a default of [b]dfrwxhs[/b] is set. If none of the [b]r[/b],[b]w[/b],[b]x[/b] flags are set then KVIrc sets all of them by default.[br][br] If <namefilter> is passed then it is interpreted as a wildcard string @@ -1483,7 +1489,7 @@ static bool file_kvs_fnc_diskSpace(KviKvsModuleFunctionCall * c) // this for win #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) ULARGE_INTEGER free, total; - if (GetDiskFreeSpaceEx(szPath.toStdWString().c_str(), NULL, &total, &free) == 0) { + if (GetDiskFreeSpaceEx(szPath.toStdWString().c_str(), nullptr, &total, &free) == 0) { c->warning(__tr2qs("An error occurred retrieving the amount of free space in '%Q'"), &szPath); return true; } @@ -1553,7 +1559,7 @@ static bool file_kvs_fnc_digest(KviKvsModuleFunctionCall * c) if(szAlgo.isEmpty()) szAlgo = "md5"; - EVP_MD_CTX mdctx; + EVP_MD_CTX *mdctx; const EVP_MD * pMD; unsigned char ucMDValue[EVP_MAX_MD_SIZE]; unsigned int uMDLen, u; @@ -1567,11 +1573,11 @@ static bool file_kvs_fnc_digest(KviKvsModuleFunctionCall * c) return true; } - EVP_MD_CTX_init(&mdctx); - EVP_DigestInit_ex(&mdctx, pMD, nullptr); - EVP_DigestUpdate(&mdctx, content.constData(), content.size()); - EVP_DigestFinal_ex(&mdctx, ucMDValue, &uMDLen); - EVP_MD_CTX_cleanup(&mdctx); + mdctx = EVP_MD_CTX_new(); + EVP_DigestInit_ex(mdctx, pMD, nullptr); + EVP_DigestUpdate(mdctx, content.constData(), content.size()); + EVP_DigestFinal_ex(mdctx, ucMDValue, &uMDLen); + EVP_MD_CTX_free(mdctx); for(u = 0; u < uMDLen; u++) { diff --git a/src/modules/filetransferwindow/FileTransferWindow.cpp b/src/modules/filetransferwindow/FileTransferWindow.cpp index d802c2bc1..03328ecd5 100644 --- a/src/modules/filetransferwindow/FileTransferWindow.cpp +++ b/src/modules/filetransferwindow/FileTransferWindow.cpp @@ -248,7 +248,7 @@ void FileTransferItemDelegate::paint(QPainter * p, const QStyleOptionViewItem & QSize FileTransferItemDelegate::sizeHint(const QStyleOptionViewItem &, const QModelIndex &) const { // FIXME fixed width - return QSize(((FileTransferWidget *)parent())->viewport()->size().width(), 68); + return { ((FileTransferWidget *)parent())->viewport()->size().width(), 68 }; } FileTransferWindow::FileTransferWindow( @@ -666,7 +666,7 @@ void FileTransferWindow::openLocalFile() if(tmp.isEmpty()) return; tmp.replace("/", "\\"); - ShellExecute(0, TEXT("open"), tmp.toStdWString().c_str(), NULL, NULL, SW_SHOWNORMAL); //You have to link the shell32.lib + ShellExecute(0, TEXT("open"), tmp.toStdWString().c_str(), nullptr, nullptr, SW_SHOWNORMAL); //You have to link the shell32.lib #else // G&N end #ifdef COMPILE_KDE4_SUPPORT diff --git a/src/modules/filetransferwindow/FileTransferWindow.h b/src/modules/filetransferwindow/FileTransferWindow.h index 120d87c50..9c13d1c0c 100644 --- a/src/modules/filetransferwindow/FileTransferWindow.h +++ b/src/modules/filetransferwindow/FileTransferWindow.h @@ -51,11 +51,11 @@ class FileTransferWidget : public KviTalTableWidget public: FileTransferWidget(QWidget * pParent); ~FileTransferWidget(){}; - void paintEvent(QPaintEvent * event); + void paintEvent(QPaintEvent * event) override; int dummyRead() const { return 0; }; protected: - void mousePressEvent(QMouseEvent * e); - void mouseDoubleClickEvent(QMouseEvent * e); + void mousePressEvent(QMouseEvent * e) override; + void mouseDoubleClickEvent(QMouseEvent * e) override; signals: void rightButtonPressed(FileTransferItem *, QPoint pnt); void doubleClicked(FileTransferItem *, QPoint pnt); @@ -81,7 +81,7 @@ class FileTransferItemDelegate : public KviTalIconAndRichTextItemDelegate { Q_OBJECT public: - FileTransferItemDelegate(QAbstractItemView * pWidget = 0) + FileTransferItemDelegate(QAbstractItemView * pWidget = nullptr) : KviTalIconAndRichTextItemDelegate(pWidget){}; ~FileTransferItemDelegate(){}; QSize sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const; @@ -117,18 +117,18 @@ public: // Methods virtual void die(); protected: - virtual QPixmap * myIconPtr(); - virtual void fillCaptionBuffers(); - virtual void applyOptions(); - virtual void resizeEvent(QResizeEvent * e); - virtual void getBaseLogFileName(QString & buffer); + QPixmap * myIconPtr() override; + void fillCaptionBuffers() override; + void applyOptions() override; + void resizeEvent(QResizeEvent * e) override; + void getBaseLogFileName(QString & buffer) override; FileTransferItem * findItem(KviFileTransfer * t); void fillTransferView(); KviFileTransfer * selectedTransfer(); - bool eventFilter(QObject * obj, QEvent * ev); + bool eventFilter(QObject * obj, QEvent * ev) override; public: - virtual QSize sizeHint() const; + QSize sizeHint() const override; int lineSpacing() { return m_iLineSpacing; }; protected slots: void transferRegistered(KviFileTransfer * t); diff --git a/src/modules/fish/libkvifish.cpp b/src/modules/fish/libkvifish.cpp index 437b6c6e6..5d17ec994 100644 --- a/src/modules/fish/libkvifish.cpp +++ b/src/modules/fish/libkvifish.cpp @@ -81,25 +81,34 @@ static bool fish_DH1080_gen(unsigned char ** szPubKey, int * iLen) if(!g_fish_dh) { BIGNUM * dhp = BN_new(); - BN_init(dhp); if(!BN_hex2bn(&dhp, g_fish_prime1080_hex)) return false; BIGNUM * dhg = BN_new(); - BN_init(dhg); if(!BN_hex2bn(&dhg, g_fish_generator)) return false; g_fish_dh = DH_new(); +#if OPENSSL_VERSION_NUMBER >= 0x10100005L + DH_set0_pqg(g_fish_dh, dhp, nullptr, dhg); +#else g_fish_dh->p = dhp; g_fish_dh->g = dhg; +#endif DH_generate_key(g_fish_dh); } - *iLen = BN_num_bytes(g_fish_dh->pub_key); + const BIGNUM* pub_key; +#if OPENSSL_VERSION_NUMBER >= 0x10100005L + DH_get0_key(g_fish_dh, &pub_key, nullptr); +#else + pub_key = g_fish_dh->pub_key; +#endif + + *iLen = BN_num_bytes(pub_key); *szPubKey = (unsigned char *)KviMemory::allocate(*iLen); - BN_bn2bin(g_fish_dh->pub_key, *szPubKey); + BN_bn2bin(pub_key, *szPubKey); return true; #else diff --git a/src/modules/help/HelpIndex.cpp b/src/modules/help/HelpIndex.cpp index f34a9fc47..102b666e8 100644 --- a/src/modules/help/HelpIndex.cpp +++ b/src/modules/help/HelpIndex.cpp @@ -45,20 +45,26 @@ #include <QTextStream> #include <QUrl> #include <QTextCodec> -#include <ctype.h> +#include <cctype> #include <QTextDocument> #include <QTimer> #include <algorithm> +#include <utility> QT_BEGIN_NAMESPACE struct Term { - Term() : frequency(-1) {} - Term(const QString & t, int f, QVector<Document> l) : term(t), frequency(f), documents(l) {} + Term() = default; + Term(QString t, int f, QVector<Document> l) + : term(std::move(t)) + , frequency(f) + , documents(std::move(l)) + { + } QString term; - int frequency; + int frequency = -1; QVector<Document> documents; bool operator<(const Term & i2) const { return frequency < i2.frequency; } }; @@ -77,15 +83,13 @@ QDataStream & operator<<(QDataStream & s, const Document & l) return s; } -HelpIndex::HelpIndex(const QString & dp, const QString & hp) - : QObject(nullptr), docPath(dp) +HelpIndex::HelpIndex(QString dp, const QString & /* hp */) + : QObject(nullptr) + , docPath(std::move(dp)) { - Q_UNUSED(hp); - alreadyHaveDocList = false; - lastWindowClosed = false; - connect(qApp, SIGNAL(lastWindowClosed()), - this, SLOT(setLastWinClosed())); + + connect(qApp, SIGNAL(lastWindowClosed()), this, SLOT(setLastWinClosed())); m_pTimer = new QTimer(this); m_pTimer->setSingleShot(true); @@ -93,13 +97,12 @@ HelpIndex::HelpIndex(const QString & dp, const QString & hp) connect(m_pTimer, SIGNAL(timeout()), this, SLOT(filterNext())); } -HelpIndex::HelpIndex(const QStringList & dl, const QString & hp) +HelpIndex::HelpIndex(QStringList dl, const QString & /* hp */) : QObject(nullptr) + , docList{ std::move(dl) } { - Q_UNUSED(hp); - docList = dl; alreadyHaveDocList = true; - lastWindowClosed = false; + connect(qApp, SIGNAL(lastWindowClosed()), this, SLOT(setLastWinClosed())); } diff --git a/src/modules/help/HelpIndex.h b/src/modules/help/HelpIndex.h index 0a6b401f8..5938ec136 100644 --- a/src/modules/help/HelpIndex.h +++ b/src/modules/help/HelpIndex.h @@ -52,8 +52,8 @@ QT_BEGIN_NAMESPACE struct Document { + Document() = default; Document(int d, int f) : docNumber(d), frequency(f) {} - Document() : docNumber(-1), frequency(0) {} bool operator==(const Document & doc) const { return docNumber == doc.docNumber; @@ -70,8 +70,8 @@ struct Document { return frequency < doc.frequency; } - qint16 docNumber; - qint16 frequency; + qint16 docNumber = -1; + qint16 frequency = 0; }; QDataStream & operator>>(QDataStream & s, Document & l); @@ -93,8 +93,8 @@ public: QList<uint> positions; }; - HelpIndex(const QString & dp, const QString & hp); - HelpIndex(const QStringList & dl, const QString & hp); + HelpIndex(QString dp, const QString & hp); + HelpIndex(QStringList dl, const QString & hp); void writeDict(); void readDict(); void makeIndex(); @@ -104,8 +104,8 @@ public: void setDocListFile(const QString &); void setDocList(const QStringList &); - const QStringList & documentList() { return docList; }; - const QStringList & titlesList() { return titleList; }; + const QStringList & documentList() const { return docList; }; + const QStringList & titlesList() const { return titleList; }; signals: void indexingStart(int); @@ -127,19 +127,21 @@ private: QVector<Document> setupDummyTerm(const QStringList &); bool searchForPattern(const QStringList &, const QStringList &, const QString &); void buildMiniDict(const QString &); + QString getCharsetForDocument(QFile *); QStringList docList; QStringList titleList; QHash<QString, Entry *> dict; QHash<QString, PosEntry *> miniDict; - uint wordNum; + uint wordNum = 0; QString docPath; - QString dictFile, docListFile; + QString dictFile; + QString docListFile; bool alreadyHaveDocList; - bool lastWindowClosed; + bool lastWindowClosed = false; QHash<QString, QString> documentTitleCache; - QTimer * m_pTimer; - int m_iCurItem; + QTimer * m_pTimer = nullptr; + int m_iCurItem = 0; }; #endif diff --git a/src/modules/help/HelpWindow.cpp b/src/modules/help/HelpWindow.cpp index 8ae68e57b..c7140d641 100644 --- a/src/modules/help/HelpWindow.cpp +++ b/src/modules/help/HelpWindow.cpp @@ -186,7 +186,7 @@ void HelpWindow::startSearch() str = str.replace("`", "\""); QString buf = str; str = str.replace("-", " "); - str = str.replace(QRegExp("\\s[\\S]?\\s"), " "); + str = str.replace(QRegExp(R"(\s[\S]?\s)"), " "); m_terms = str.split(" ", QString::SkipEmptyParts); QStringList termSeq; QStringList seqWords; diff --git a/src/modules/help/HelpWindow.h b/src/modules/help/HelpWindow.h index 1447d15dc..865fb5fee 100644 --- a/src/modules/help/HelpWindow.h +++ b/src/modules/help/HelpWindow.h @@ -72,11 +72,11 @@ protected: public: HelpWidget * helpWidget() { return m_pHelpWidget; }; protected: - virtual QPixmap * myIconPtr(); - virtual void fillCaptionBuffers(); - virtual void resizeEvent(QResizeEvent * e); - virtual void saveProperties(KviConfigurationFile * cfg); - virtual void loadProperties(KviConfigurationFile * cfg); + QPixmap * myIconPtr() override; + void fillCaptionBuffers() override; + void resizeEvent(QResizeEvent * e) override; + void saveProperties(KviConfigurationFile * cfg) override; + void loadProperties(KviConfigurationFile * cfg) override; public: #ifdef COMPILE_WEBKIT_SUPPORT diff --git a/src/modules/http/HttpFileTransfer.cpp b/src/modules/http/HttpFileTransfer.cpp index d1112450e..b21b81904 100644 --- a/src/modules/http/HttpFileTransfer.cpp +++ b/src/modules/http/HttpFileTransfer.cpp @@ -304,11 +304,11 @@ int HttpFileTransfer::displayHeight(int iLineSpacing) QString HttpFileTransfer::tipText() { QString s; - s = QString("<table><tr><td bgcolor=\"#000000\"><font color=\"#FFFFFF\"><b>HTTP Transfer (ID %1)</b></font></td></tr>").arg(id()); + s = QString(R"(<table><tr><td bgcolor="#000000"><font color="#FFFFFF"><b>HTTP Transfer (ID %1)</b></font></td></tr>)").arg(id()); if(m_lRequest.count() > 0) { - s += "<tr><td bgcolor=\"#404040\"><font color=\"#FFFFFF\">Request Headers</font></td></tr>"; + s += R"(<tr><td bgcolor="#404040"><font color="#FFFFFF">Request Headers</font></td></tr>)"; s += "<tr><td bgcolor=\"#C0C0C0\">"; for(QStringList::ConstIterator it = m_lRequest.begin(); it != m_lRequest.end(); ++it) { @@ -321,7 +321,7 @@ QString HttpFileTransfer::tipText() if(m_lHeaders.count() > 0) { - s += "<tr><td bgcolor=\"#404040\"><font color=\"#FFFFFF\">Response Headers</font></td></tr>"; + s += R"(<tr><td bgcolor="#404040"><font color="#FFFFFF">Response Headers</font></td></tr>)"; s += "<tr><td bgcolor=\"#C0C0C0\">"; for(QStringList::ConstIterator it = m_lHeaders.begin(); it != m_lHeaders.end(); ++it) { diff --git a/src/modules/ident/libkviident.cpp b/src/modules/ident/libkviident.cpp index dcfe35ebf..c81554fda 100644 --- a/src/modules/ident/libkviident.cpp +++ b/src/modules/ident/libkviident.cpp @@ -46,7 +46,6 @@ extern KVIRC_API int g_iIdentDaemonRunningUsers; void startIdentService() { - // qDebug("Stargin"); if(!g_pIdentDaemon) g_pIdentDaemon = new KviIdentDaemon(); if(!g_pIdentDaemon->isRunning()) @@ -59,16 +58,13 @@ void startIdentService() usleep(100); #endif } - // qDebug("Service started"); } void stopIdentService() { - // qDebug("Stopping"); if(g_pIdentDaemon) delete g_pIdentDaemon; g_pIdentDaemon = nullptr; - // qDebug("Stopped"); } KviIdentSentinel::KviIdentSentinel() @@ -155,7 +151,6 @@ KviIdentRequest::~KviIdentRequest() KviIdentDaemon::KviIdentDaemon() : KviSensitiveThread() { - // qDebug("Thread constructor"); m_szUser = KVI_OPTION_STRING(KviOption_stringIdentdUser); if(m_szUser.isEmpty()) m_szUser = "kvirc"; @@ -166,17 +161,14 @@ KviIdentDaemon::KviIdentDaemon() m_bEnableIPv6 = false; #endif m_bIPv6ContainsIPv4 = KVI_OPTION_BOOL(KviOption_boolIdentdIPv6ContainsIPv4); - // qDebug("Thread constructor done"); } KviIdentDaemon::~KviIdentDaemon() { - // qDebug("Thread destructor"); terminate(); g_iIdentDaemonRunningUsers = 0; g_pIdentDaemon = nullptr; - // qDebug("Destructor gone"); } void KviIdentDaemon::postMessage(const char * message, KviIdentRequest * r, const char * szAux) @@ -201,7 +193,6 @@ void KviIdentDaemon::postMessage(const char * message, KviIdentRequest * r, cons void KviIdentDaemon::run() { - // qDebug("RUN STARTED"); m_sock = KVI_INVALID_SOCKET; m_sock6 = KVI_INVALID_SOCKET; bool bEventPosted = false; @@ -511,7 +502,6 @@ ipv6_failure: } else { - // qDebug("Data is : (%s)",r->m_szData.ptr()); if(r->m_szData.len() > 1024) { // request too long...kill it @@ -556,7 +546,6 @@ exit_thread: delete m_pRequestList; m_pRequestList = nullptr; - // qDebug("RUN EXITING"); } /* diff --git a/src/modules/ident/libkviident.h b/src/modules/ident/libkviident.h index 238755aa6..2aa573402 100644 --- a/src/modules/ident/libkviident.h +++ b/src/modules/ident/libkviident.h @@ -47,13 +47,13 @@ public: time_t m_tStart; }; -typedef struct _KviIdentMessageData +struct KviIdentMessageData { KviCString szMessage; KviCString szHost; KviCString szAux; unsigned int uPort; -} KviIdentMessageData; +}; class KviIdentSentinel : public QObject { @@ -63,7 +63,7 @@ public: ~KviIdentSentinel(); protected: - virtual bool event(QEvent * e); + bool event(QEvent * e) override; }; class KviIdentDaemon : public KviSensitiveThread @@ -79,13 +79,13 @@ private: bool m_bIPv6ContainsIPv4; kvi_socket_t m_sock; kvi_socket_t m_sock6; - KviPointerList<KviIdentRequest> * m_pRequestList; + KviPointerList<KviIdentRequest> * m_pRequestList = nullptr; public: - virtual void run(); + void run() override; protected: - void postMessage(const char * message, KviIdentRequest * r, const char * szAux = 0); + void postMessage(const char * message, KviIdentRequest * r, const char * szAux = nullptr); }; #endif //_LIBKVIIDENT_H_ diff --git a/src/modules/iograph/libkviiograph.cpp b/src/modules/iograph/libkviiograph.cpp index c9149a682..8e08bb427 100644 --- a/src/modules/iograph/libkviiograph.cpp +++ b/src/modules/iograph/libkviiograph.cpp @@ -22,7 +22,7 @@ // //============================================================================= -#include <math.h> +#include <cmath> #include "libkviiograph.h" #include "KviMainWindow.h" diff --git a/src/modules/iograph/libkviiograph.h b/src/modules/iograph/libkviiograph.h index c66812b48..9c7c0eeb1 100644 --- a/src/modules/iograph/libkviiograph.h +++ b/src/modules/iograph/libkviiograph.h @@ -51,8 +51,8 @@ protected: kvi_u64_t m_uLastRecvBytes; protected: - virtual void timerEvent(QTimerEvent * e); - virtual void paintEvent(QPaintEvent * e); + void timerEvent(QTimerEvent * e) override; + void paintEvent(QPaintEvent * e) override; }; class KviIOGraphWindow : public KviWindow @@ -67,12 +67,12 @@ private: virtual void updatePseudoTransparency(); protected: - virtual QPixmap * myIconPtr(); - virtual void fillCaptionBuffers(); - virtual void resizeEvent(QResizeEvent * e); + QPixmap * myIconPtr() override; + void fillCaptionBuffers() override; + void resizeEvent(QResizeEvent * e) override; virtual void die(); - virtual void moveEvent(QMoveEvent *); - virtual void paintEvent(QPaintEvent * e); + void moveEvent(QMoveEvent *) override; + void paintEvent(QPaintEvent * e) override; }; #endif diff --git a/src/modules/language/detector.cpp b/src/modules/language/detector.cpp index bbdb67812..9e5694972 100644 --- a/src/modules/language/detector.cpp +++ b/src/modules/language/detector.cpp @@ -23,30 +23,31 @@ // DO NOT EDIT THIS FILE: Edit detector/build_detector.pl instead! // -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <ctype.h> +#include <cstdlib> +#include <cstdio> +#include <cstring> +#include <cctype> #include "detector.h" +namespace { // // CORE DEFS // -typedef struct _DetectorNGram +struct DetectorNGram { const unsigned char * szNGram; double dScore; -} DetectorNGram; +}; -typedef struct _DetectorDescriptor +struct DetectorDescriptor { const char * szLanguage; const char * szEncoding; double single_char_data[256]; DetectorNGram * ngram_hash[256]; -} DetectorDescriptor; +}; static DetectorNGram X[] = { { nullptr, 0 } }; @@ -18712,6 +18713,7 @@ static int utf8score(const unsigned char * p) } static const char * unknown_string = "?"; +} // namespace void detect_language_and_encoding(const char * data, LanguageAndEncodingResult * retBuffer, int iFlags = 0) { diff --git a/src/modules/language/detector.h b/src/modules/language/detector.h index 7ed71bb6c..b11200904 100644 --- a/src/modules/language/detector.h +++ b/src/modules/language/detector.h @@ -27,18 +27,18 @@ #define DLE_NUM_BEST_MATCHES 4 #define DLE_STRICT_UTF8_CHECKING 1 -typedef struct _LanguageAndEncodingMatch +struct LanguageAndEncodingMatch { const char * szLanguage; const char * szEncoding; double dScore; -} LanguageAndEncodingMatch; +}; -typedef struct _LanguageAndEncodingResult +struct LanguageAndEncodingResult { LanguageAndEncodingMatch match[DLE_NUM_BEST_MATCHES]; // the first best matches double dAccuracy; // accuracy score: from 0 to 100 -} LanguageAndEncodingResult; +}; void detect_language_and_encoding(const char * data, LanguageAndEncodingResult * retBuffer, int iFlags); diff --git a/src/modules/language/detector/build_detector.pl b/src/modules/language/detector/build_detector.pl index 45c75d5fc..df702ca5a 100755 --- a/src/modules/language/detector/build_detector.pl +++ b/src/modules/language/detector/build_detector.pl @@ -95,30 +95,31 @@ print OUTPUT "//\n"; print OUTPUT "// DO NOT EDIT THIS FILE: Edit detector/build_detector.pl instead!\n"; print OUTPUT "//\n"; print OUTPUT "\n"; -print OUTPUT "#include <stdlib.h>\n"; -print OUTPUT "#include <stdio.h>\n"; -print OUTPUT "#include <string.h>\n"; -print OUTPUT "#include <ctype.h>\n"; +print OUTPUT "#include <cstdlib>\n"; +print OUTPUT "#include <cstdio>\n"; +print OUTPUT "#include <cstring>\n"; +print OUTPUT "#include <cctype>\n"; print OUTPUT "\n"; print OUTPUT "#include \"detector.h\"\n"; print OUTPUT "\n"; +print OUTPUT "namespace {\n"; print OUTPUT "///////////////////////////////////////////////////////////////////////////////\n"; print OUTPUT "// CORE DEFS\n"; print OUTPUT "///////////////////////////////////////////////////////////////////////////////\n"; print OUTPUT "\n"; -print OUTPUT "typedef struct _DetectorNGram\n"; +print OUTPUT "struct DetectorNGram\n"; print OUTPUT "{\n"; print OUTPUT " const unsigned char * szNGram;\n"; print OUTPUT " ".$g_dataTypeName." dScore;\n"; -print OUTPUT "} DetectorNGram;\n"; +print OUTPUT "};\n"; print OUTPUT "\n"; -print OUTPUT "typedef struct _DetectorDescriptor\n"; +print OUTPUT "struct DetectorDescriptor\n"; print OUTPUT "{\n"; print OUTPUT " const char * szLanguage;\n"; print OUTPUT " const char * szEncoding;\n"; print OUTPUT " ".$g_dataTypeName." single_char_data[256];\n"; print OUTPUT " DetectorNGram * ngram_hash[256];\n"; -print OUTPUT "} DetectorDescriptor;\n"; +print OUTPUT "};\n"; print OUTPUT "\n"; print OUTPUT "static DetectorNGram X[] = { { 0, 0 } };\n"; print OUTPUT "\n"; @@ -786,6 +787,7 @@ print OUTPUT "\n"; print OUTPUT "\n"; print OUTPUT "static const char * unknown_string = \"?\";\n"; +print OUTPUT "} // namespace\n"; print OUTPUT "\n"; print OUTPUT "void detect_language_and_encoding(const char * data,LanguageAndEncodingResult * retBuffer,int iFlags = 0)\n"; print OUTPUT "{\n"; diff --git a/src/modules/links/LinksWindow.h b/src/modules/links/LinksWindow.h index 89b4b40b6..4cf166adb 100644 --- a/src/modules/links/LinksWindow.h +++ b/src/modules/links/LinksWindow.h @@ -40,13 +40,13 @@ class KviThemedLabel; -typedef struct _KviLink +struct KviLink { KviCString host; KviCString parent; int hops; KviCString description; -} KviLink; +}; class LinksListView : public KviThemedTreeWidget { @@ -56,7 +56,7 @@ public: ~LinksListView(){}; protected: - void mousePressEvent(QMouseEvent * e); + void mousePressEvent(QMouseEvent * e) override; signals: void rightButtonPressed(QTreeWidgetItem *, QPoint); }; @@ -79,16 +79,16 @@ protected: KviThemedLabel * m_pInfoLabel; public: // Methods - virtual void control(int msg); - virtual void processData(KviIrcMessage * msg); - virtual void die(); + void control(int msg) override; + void processData(KviIrcMessage * msg) override; + void die() override; protected: - virtual QPixmap * myIconPtr(); - virtual void fillCaptionBuffers(); - virtual void applyOptions(); - virtual void resizeEvent(QResizeEvent * e); - virtual void getBaseLogFileName(QString & buffer); + QPixmap * myIconPtr() override; + void fillCaptionBuffers() override; + void applyOptions() override; + void resizeEvent(QResizeEvent * e) override; + void getBaseLogFileName(QString & buffer) override; protected slots: void showHostPopup(QTreeWidgetItem * i, const QPoint & p); void hostPopupClicked(QAction * pAction); @@ -96,7 +96,7 @@ protected slots: void connectionStateChange(); public: - virtual QSize sizeHint() const; + QSize sizeHint() const override; private: void reset(); diff --git a/src/modules/list/ListWindow.cpp b/src/modules/list/ListWindow.cpp index 392ab9d60..8a52f28e8 100644 --- a/src/modules/list/ListWindow.cpp +++ b/src/modules/list/ListWindow.cpp @@ -113,7 +113,7 @@ QSize ChannelTreeWidgetItemDelegate::sizeHint(const QStyleOptionViewItem & sovIt ChannelTreeWidgetItem * item = dynamic_cast<ChannelTreeWidgetItem *>(treeWidget->itemFromIndex(index)); if(!item) - return QSize(100, iHeight); + return { 100, iHeight }; QFontMetrics fm(sovItem.font); switch(index.column()) diff --git a/src/modules/list/ListWindow.h b/src/modules/list/ListWindow.h index 08c8811b0..0eba68571 100644 --- a/src/modules/list/ListWindow.h +++ b/src/modules/list/ListWindow.h @@ -44,7 +44,7 @@ class KviThemedLineEdit; class ChannelTreeWidgetItemDelegate : public QItemDelegate { public: - ChannelTreeWidgetItemDelegate(QTreeWidget * pWidget = 0); + ChannelTreeWidgetItemDelegate(QTreeWidget * pWidget = nullptr); ~ChannelTreeWidgetItemDelegate(); void paint(QPainter * pPainter, const QStyleOptionViewItem & option, const QModelIndex & index) const; QSize sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const; @@ -80,7 +80,7 @@ private: public: bool operator<(const QTreeWidgetItem & other) const; - inline ChannelTreeWidgetItemData * itemData() { return m_pData; }; + ChannelTreeWidgetItemData * itemData() const { return m_pData; } }; class ChannelTreeWidget : public KviThemedTreeWidget @@ -115,17 +115,17 @@ protected: KviPointerList<ChannelTreeWidgetItemData> * m_pItemList; public: // Methods - virtual void control(int iMsg); - virtual void processData(KviIrcMessage * pMsg); - virtual void die(); - virtual QSize sizeHint() const; + void control(int iMsg) override; + void processData(KviIrcMessage * pMsg) override; + void die() override; + QSize sizeHint() const override; protected: - virtual QPixmap * myIconPtr(); - virtual void fillCaptionBuffers(); - virtual void applyOptions(); - virtual void resizeEvent(QResizeEvent * e); - virtual void getBaseLogFileName(QString & szBuffer); + QPixmap * myIconPtr() override; + void fillCaptionBuffers() override; + void applyOptions() override; + void resizeEvent(QResizeEvent * e) override; + void getBaseLogFileName(QString & szBuffer) override; protected slots: void flush(); void itemDoubleClicked(QTreeWidgetItem * it, int); diff --git a/src/modules/logview/LogFile.h b/src/modules/logview/LogFile.h index 53281af8a..9b4984aa7 100644 --- a/src/modules/logview/LogFile.h +++ b/src/modules/logview/LogFile.h @@ -37,16 +37,15 @@ class QString; /** -* \typedef LogFileData * \struct _LogFileData * \brief A struct that contains the data of a log */ -typedef struct _LogFileData +struct LogFileData { QString szName; /**< the name of the log */ QString szType; /**< the type of the log */ QString szFile; /**< the name of the exported log */ -} LogFileData; +}; /** * \class LogFile diff --git a/src/modules/logview/LogViewWindow.cpp b/src/modules/logview/LogViewWindow.cpp index c0cb2590d..f954ad9df 100644 --- a/src/modules/logview/LogViewWindow.cpp +++ b/src/modules/logview/LogViewWindow.cpp @@ -58,7 +58,7 @@ #include <QCheckBox> #include <QMenu> -#include <limits.h> //for INT_MAX +#include <climits> //for INT_MAX extern LogViewWindow * g_pLogViewWindow; @@ -739,7 +739,7 @@ void LogViewWindow::createLog(LogFile * pLog, int iId, QString * pszFile) // insert msgtype icon at start of the current text line KviMessageTypeSettings msg(KVI_OPTION_MSGTYPE(iMsgType)); QString szIcon = g_pIconManager->getSmallIconResourceName((KviIconManager::SmallIcon)msg.pixId()); - szTmp.prepend("<img src=\"" + szIcon + "\" alt=\"\" /> "); + szTmp.prepend("<img src=\"" + szIcon + R"(" alt="" /> )"); /* * Check if the nick who has talked is the same of the above line. diff --git a/src/modules/logview/LogViewWindow.h b/src/modules/logview/LogViewWindow.h index c2e2ed850..b90866b39 100644 --- a/src/modules/logview/LogViewWindow.h +++ b/src/modules/logview/LogViewWindow.h @@ -55,7 +55,7 @@ public: ~LogViewListView(){}; protected: - void mousePressEvent(QMouseEvent * pEvent); + void mousePressEvent(QMouseEvent * pEvent) override; signals: void rightButtonPressed(QTreeWidgetItem *, QPoint); }; @@ -89,7 +89,6 @@ protected: QDateEdit * m_pFromDateEdit; QDateEdit * m_pToDateEdit; - QStringList * m_pFileNames; QTabWidget * m_pTabWidget; KviTalVBox * m_pIndexTab; KviTalVBox * m_pLeftLayout; @@ -98,10 +97,10 @@ protected: QPushButton * m_pCancelButton; KviTalHBox * m_pBottomLayout; QProgressBar * m_pProgressBar; - LogListViewItem * m_pLastCategory; - LogListViewItemFolder * m_pLastGroupItem; + LogListViewItem * m_pLastCategory = nullptr; + LogListViewItemFolder * m_pLastGroupItem = nullptr; QString m_szLastGroup; - bool m_bAborted; + bool m_bAborted = false; QTimer * m_pTimer; QMenu * m_pExportLogPopup; @@ -120,12 +119,12 @@ protected: void recurseDirectory(const QString & szDir); void setupItemList(); - virtual QPixmap * myIconPtr(); - virtual void resizeEvent(QResizeEvent * pEvent); - virtual void keyPressEvent(QKeyEvent * pEvent); - virtual void fillCaptionBuffers(); + QPixmap * myIconPtr() override; + void resizeEvent(QResizeEvent * pEvent) override; + void keyPressEvent(QKeyEvent * pEvent) override; + void fillCaptionBuffers() override; virtual void die(); - virtual QSize sizeHint() const; + QSize sizeHint() const override; protected slots: void rightButtonClicked(QTreeWidgetItem *, const QPoint &); void itemSelected(QTreeWidgetItem * pItem, QTreeWidgetItem *); diff --git a/src/modules/mediaplayer/MpAmipInterface.cpp b/src/modules/mediaplayer/MpAmipInterface.cpp index 640c9fc8f..2514ba52b 100644 --- a/src/modules/mediaplayer/MpAmipInterface.cpp +++ b/src/modules/mediaplayer/MpAmipInterface.cpp @@ -51,7 +51,7 @@ enum ac_ErrorCode #define AC_BUFFER_SIZE 2048 -static HINSTANCE amip_dll = NULL; +static HINSTANCE amip_dll = nullptr; #define MP_AC_DYNPTR(__rettype, __func, __args) \ typedef __rettype(CALLBACK * lp_##__func)(__args); \ @@ -94,7 +94,7 @@ static bool loadAmipDll() static QTextCodec * mediaplayer_get_codec() { - QTextCodec * pCodec = 0; + QTextCodec * pCodec = nullptr; pCodec = QTextCodec::codecForName(KVI_OPTION_STRING(KviOption_stringWinampTextEncoding).toUtf8()); if(!pCodec) @@ -120,7 +120,7 @@ MpAmipInterface::MpAmipInterface() bool res = loadAmipDll(); if(!res) { - amip_dll = NULL; + amip_dll = nullptr; return; } ac_init(AC_START_CLIENT); @@ -133,7 +133,7 @@ MpAmipInterface::~MpAmipInterface() return; ac_uninit(); FreeLibrary(amip_dll); - amip_dll = NULL; + amip_dll = nullptr; } int MpAmipInterface::detect(bool bStart) diff --git a/src/modules/mediaplayer/MpInterface.cpp b/src/modules/mediaplayer/MpInterface.cpp index f0feb5861..ae17beb61 100644 --- a/src/modules/mediaplayer/MpInterface.cpp +++ b/src/modules/mediaplayer/MpInterface.cpp @@ -104,8 +104,7 @@ QString MpInterface::amipEval(const QString &) mp3info mp3; \ if(!scan_mp3_file(f, &mp3)) \ return QString(); \ - QTextCodec * pCodec; \ - pCodec = mediaplayer_get_codec(); + [[maybe_unused]] QTextCodec * pCodec = mediaplayer_get_codec(); #define SCAN_MP3_FILE_RET_INT \ QString f = getLocalFile(); \ @@ -142,7 +141,6 @@ QString MpInterface::comment() QString MpInterface::year() { SCAN_MP3_FILE - Q_UNUSED(pCodec); return QString(mp3.id3.year); } diff --git a/src/modules/mediaplayer/MpInterface.h b/src/modules/mediaplayer/MpInterface.h index a82016b24..69ec610bb 100644 --- a/src/modules/mediaplayer/MpInterface.h +++ b/src/modules/mediaplayer/MpInterface.h @@ -219,7 +219,7 @@ public: _interfaceclass##Descriptor::_interfaceclass##Descriptor() \ : MpInterfaceDescriptor() \ { \ - m_pInstance = 0; \ + m_pInstance = nullptr; \ m_szName = _name; \ m_szDescription = _description; \ } \ diff --git a/src/modules/mediaplayer/MpMp3.cpp b/src/modules/mediaplayer/MpMp3.cpp index 98366a9c7..7218e4ffc 100644 --- a/src/modules/mediaplayer/MpMp3.cpp +++ b/src/modules/mediaplayer/MpMp3.cpp @@ -239,7 +239,7 @@ int get_first_header(mp3info * mp3, long startpos) long valid_start = 0; fseek(mp3->file, startpos, SEEK_SET); - while(1) + while(true) { while((c = fgetc(mp3->file)) != 255 && (c != EOF)) { @@ -384,9 +384,8 @@ int get_id3(mp3info * mp3) } else { - size_t dummy = fread(fbuf, 1, 3, mp3->file); + (void)fread(fbuf, 1, 3, mp3->file); fbuf[3] = '\0'; - Q_UNUSED(dummy); mp3->id3.genre[0] = 255; if(!strcmp((const char *)"TAG", (const char *)fbuf)) @@ -394,21 +393,21 @@ int get_id3(mp3info * mp3) mp3->id3_isvalid = 1; mp3->datasize -= 128; fseek(mp3->file, -125, SEEK_END); - dummy = fread(mp3->id3.title, 1, 30, mp3->file); + (void)fread(mp3->id3.title, 1, 30, mp3->file); mp3->id3.title[30] = '\0'; - dummy = fread(mp3->id3.artist, 1, 30, mp3->file); + (void)fread(mp3->id3.artist, 1, 30, mp3->file); mp3->id3.artist[30] = '\0'; - dummy = fread(mp3->id3.album, 1, 30, mp3->file); + (void)fread(mp3->id3.album, 1, 30, mp3->file); mp3->id3.album[30] = '\0'; - dummy = fread(mp3->id3.year, 1, 4, mp3->file); + (void)fread(mp3->id3.year, 1, 4, mp3->file); mp3->id3.year[4] = '\0'; - dummy = fread(mp3->id3.comment, 1, 30, mp3->file); + (void)fread(mp3->id3.comment, 1, 30, mp3->file); mp3->id3.comment[30] = '\0'; if(mp3->id3.comment[28] == '\0') { mp3->id3.track[0] = mp3->id3.comment[29]; } - dummy = fread(mp3->id3.genre, 1, 1, mp3->file); + (void)fread(mp3->id3.genre, 1, 1, mp3->file); unpad(mp3->id3.title); unpad(mp3->id3.artist); unpad(mp3->id3.album); diff --git a/src/modules/mediaplayer/MpMp3.h b/src/modules/mediaplayer/MpMp3.h index 6d534e625..5051f14a8 100644 --- a/src/modules/mediaplayer/MpMp3.h +++ b/src/modules/mediaplayer/MpMp3.h @@ -66,7 +66,7 @@ enum VBR_REPORT VBR_MEDIAN }; -typedef struct +struct mp3header { unsigned int sync; unsigned int version; @@ -81,9 +81,9 @@ typedef struct unsigned int copyright; unsigned int original; unsigned int emphasis; -} mp3header; +}; -typedef struct +struct id3tag { char title[31]; char artist[31]; @@ -92,9 +92,9 @@ typedef struct char comment[31]; unsigned char track[1]; unsigned char genre[1]; -} id3tag; +}; -typedef struct +struct mp3info { QString filename; FILE * file; @@ -108,7 +108,7 @@ typedef struct int seconds; int frames; int badframes; -} mp3info; +}; // mode field: // 00 - Stereo diff --git a/src/modules/mediaplayer/MpWinampInterface.cpp b/src/modules/mediaplayer/MpWinampInterface.cpp index 0d08cc4b5..875fc8838 100644 --- a/src/modules/mediaplayer/MpWinampInterface.cpp +++ b/src/modules/mediaplayer/MpWinampInterface.cpp @@ -83,13 +83,13 @@ // ** (requires Winamp 2.04+, only usable from plug-ins (not external apps)) // ** char *name=SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTFILE); // ** IPC_GETPLAYLISTFILE gets the filename of the playlist entry [index]. -// ** returns a pointer to it. returns NULL on error. +// ** returns a pointer to it. returns nullptr on error. #define IPC_GETPLAYLISTTITLE 212 // * (requires Winamp 2.04+, only usable from plug-ins (not external apps)) // ** char *name=SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTTITLE); // ** IPC_GETPLAYLISTTITLE gets the title of the playlist entry [index]. -// ** returns a pointer to it. returns NULL on error. +// ** returns a pointer to it. returns nullptr on error. #define IPC_GET_SHUFFLE 250 // ** val=SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_GET_SHUFFLE); @@ -131,7 +131,7 @@ // ** cds.dwData = IPC_PLAYFILE; // ** cds.lpData = (void *) "file.mp3"; // ** cds.cbData = strlen((char *) cds.lpData)+1; // include space for null char -// ** SendMessage(hwnd_winamp,WM_COPYDATA,(WPARAM)NULL,(LPARAM)&cds); +// ** SendMessage(hwnd_winamp,WM_COPYDATA,(WPARAM)nullptr,(LPARAM)&cds); // ** // ** This will play the file "file.mp3". @@ -165,8 +165,7 @@ static QTextCodec * mediaplayer_get_codec() { - QTextCodec * pCodec = 0; - pCodec = QTextCodec::codecForName(KVI_OPTION_STRING(KviOption_stringWinampTextEncoding).toUtf8()); + QTextCodec * pCodec = QTextCodec::codecForName(KVI_OPTION_STRING(KviOption_stringWinampTextEncoding).toUtf8()); if(!pCodec) pCodec = QTextCodec::codecForLocale(); @@ -175,7 +174,7 @@ static QTextCodec * mediaplayer_get_codec() static HWND find_winamp(KviWinampInterface * i) { - HWND hWnd = FindWindow(TEXT("Winamp v1.x"), NULL); + HWND hWnd = FindWindow(TEXT("Winamp v1.x"), nullptr); if(!hWnd) { // try to start the process ? @@ -385,7 +384,7 @@ bool KviWinampInterface::playMrl(const QString & mrl) cds.dwData = IPC_PLAYFILE; cds.lpData = (void *)szMrl.ptr(); cds.cbData = szMrl.len() + 1; // include space for null char - SendMessage(hWinamp, WM_COPYDATA, (WPARAM)NULL, (LPARAM)&cds); + SendMessage(hWinamp, WM_COPYDATA, (WPARAM)nullptr, (LPARAM)&cds); return true; } return false; @@ -429,11 +428,11 @@ bool KviWinampInterface::jumpTo(kvs_int_t & iPos) bool KviWinampInterface::hide() { HWND hWinamp = find_winamp(this); - HWND hWinampPE = FindWindow(TEXT("Winamp PE"), NULL); /*Playlist*/ - HWND hWinampEQ = FindWindow(TEXT("Winamp EQ"), NULL); /*Equalizer*/ - HWND hWinampMB = FindWindow(TEXT("Winamp MB"), NULL); /*MiniBrowser*/ - HWND hWinampGen = FindWindow(TEXT("Winamp Gen"), NULL); /*Library*/ - HWND hWinampVideo = FindWindow(TEXT("Winamp Video"), NULL); /*Video*/ + HWND hWinampPE = FindWindow(TEXT("Winamp PE"), nullptr); /*Playlist*/ + HWND hWinampEQ = FindWindow(TEXT("Winamp EQ"), nullptr); /*Equalizer*/ + HWND hWinampMB = FindWindow(TEXT("Winamp MB"), nullptr); /*MiniBrowser*/ + HWND hWinampGen = FindWindow(TEXT("Winamp Gen"), nullptr); /*Library*/ + HWND hWinampVideo = FindWindow(TEXT("Winamp Video"), nullptr); /*Video*/ if(hWinamp) { ShowWindow(hWinamp, SW_HIDE); diff --git a/src/modules/mediaplayer/winamp.cpp b/src/modules/mediaplayer/winamp.cpp index bf8b29138..0d701558a 100644 --- a/src/modules/mediaplayer/winamp.cpp +++ b/src/modules/mediaplayer/winamp.cpp @@ -31,7 +31,7 @@ // This stuff is compiled only on windows, as a separate dll module -typedef struct +struct winampGeneralPurposePlugin { int version; char * description; @@ -40,7 +40,7 @@ typedef struct void (*quit)(); HWND hwndParent; HINSTANCE hDllInstance; -} winampGeneralPurposePlugin; +}; #define GPPHDR_VER 0x10 @@ -72,7 +72,7 @@ winampGeneralPurposePlugin plugin = { #define KVIRC_WM_USER_CHECK 13123 #define KVIRC_WM_USER_CHECK_REPLY 13124 -void * lpWndProcOld = 0; +void * lpWndProcOld = nullptr; char szBuffer[4096]; diff --git a/src/modules/mircimport/libkvimircimport.h b/src/modules/mircimport/libkvimircimport.h index 3069849b4..4c8e00206 100644 --- a/src/modules/mircimport/libkvimircimport.h +++ b/src/modules/mircimport/libkvimircimport.h @@ -43,8 +43,8 @@ public: public: int doImport(const QString & filename); - virtual void start(); - virtual void die(); + void start() override; + void die() override; }; class KviRemoteMircServersIniImport : public KviMircServersIniImport @@ -58,8 +58,8 @@ protected: KviRemoteMircServerImportWizard * m_pWizard; public: - virtual void start(); - virtual void die(); + void start() override; + void die() override; }; class KviRemoteMircServerImportWizard : public KviTalWizard @@ -77,8 +77,8 @@ protected: QString m_szTmpFileName; protected: - virtual void closeEvent(QCloseEvent * e); - virtual void done(int r); + void closeEvent(QCloseEvent * e) override; + void done(int r) override; void start(); protected slots: void getListMessage(const QString & message); diff --git a/src/modules/my/Idle_win.cpp b/src/modules/my/Idle_win.cpp index fe440e9bc..c7dd5004b 100644 --- a/src/modules/my/Idle_win.cpp +++ b/src/modules/my/Idle_win.cpp @@ -24,11 +24,12 @@ #include <QLibrary> -typedef struct tagLASTINPUTINFO +struct LASTINPUTINFO { UINT cbSize; DWORD dwTime; -} LASTINPUTINFO, *PLASTINPUTINFO; +}; +using PLASTINPUTINFO = LASTINPUTINFO *; class IdlePlatform::Private { diff --git a/src/modules/my/libkvimy.cpp b/src/modules/my/libkvimy.cpp index 43ea72c1c..822559314 100644 --- a/src/modules/my/libkvimy.cpp +++ b/src/modules/my/libkvimy.cpp @@ -37,7 +37,7 @@ Idle * g_pIdle; #define GET_KVS_CONSOLE \ kvs_uint_t uiWnd; \ - KviConsoleWindow * wnd = 0; \ + KviConsoleWindow * wnd = nullptr; \ KVSM_PARAMETERS_BEGIN(c) \ KVSM_PARAMETER("context_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uiWnd) \ KVSM_PARAMETERS_END(c) \ diff --git a/src/modules/notifier/NotifierMessage.cpp b/src/modules/notifier/NotifierMessage.cpp index b0a6e401b..6e9018a0d 100644 --- a/src/modules/notifier/NotifierMessage.cpp +++ b/src/modules/notifier/NotifierMessage.cpp @@ -31,19 +31,12 @@ #include <QRect> #include <QResizeEvent> +#include <utility> -NotifierMessage::NotifierMessage(QPixmap * pPixmap, const QString & szText) +NotifierMessage::NotifierMessage(QPixmap * pPixmap, QString szText) + : m_szText{ std::move(szText) } + , m_pPixmap{ pPixmap } { - m_pLabel0 = nullptr; - m_pLabel1 = nullptr; - - m_szText = szText; - m_pPixmap = pPixmap; - - //QByteArray utf8 = szText.toUtf8(); - //if(utf8.data()) - // qDebug("NOTIFIER TEXT MESSAGE: \n%s\n",utf8.data()); - m_pHBox = new QHBoxLayout(this); m_pHBox->setSpacing(SPACING); m_pHBox->setMargin(SPACING); @@ -63,14 +56,14 @@ NotifierMessage::~NotifierMessage() void NotifierMessage::updateGui() { - bool bShowImages = KVI_OPTION_BOOL(KviOption_boolIrcViewShowImages); - if(m_pLabel0) delete m_pLabel0; if(m_pLabel1) delete m_pLabel1; + bool bShowImages = KVI_OPTION_BOOL(KviOption_boolIrcViewShowImages); + if(bShowImages) { m_pLabel0 = new QLabel(this); diff --git a/src/modules/notifier/NotifierMessage.h b/src/modules/notifier/NotifierMessage.h index c0179f0e1..60c0d76b4 100644 --- a/src/modules/notifier/NotifierMessage.h +++ b/src/modules/notifier/NotifierMessage.h @@ -44,6 +44,7 @@ class NotifierMessage : public QWidget { friend class NotifierWindow; + Q_OBJECT public: /** * \brief Constructs the NotifierMessage object @@ -51,7 +52,7 @@ public: * \param szText const reference to message text in irc format * \return NotifierMessage */ - NotifierMessage(QPixmap * pPixmap, const QString & szText); + NotifierMessage(QPixmap * pPixmap, QString szText); /** * \brief Destroys the NotifierMessage object */ @@ -61,25 +62,25 @@ private: /// The message text QString m_szText; /// The message icon (can be null) - QPixmap * m_pPixmap; + QPixmap * m_pPixmap = nullptr; /// Layout for the labels - QHBoxLayout * m_pHBox; + QHBoxLayout * m_pHBox = nullptr; /// Label for the message icon - QLabel * m_pLabel0; + QLabel * m_pLabel0 = nullptr; /// Label for the message text - QLabel * m_pLabel1; + QLabel * m_pLabel1 = nullptr; public: /** * \brief Returns the original irc message - * \return QString + * \return const QString & */ - inline QString text() const { return m_szText; }; + const QString & text() const { return m_szText; } /** * \brief Returns the message icon * \return QPixmap * */ - inline QPixmap * pixmap() const { return m_pPixmap; }; + QPixmap * pixmap() const { return m_pPixmap; } /** * \brief Updates the aspect of this message * \return void diff --git a/src/modules/notifier/NotifierWindow.cpp b/src/modules/notifier/NotifierWindow.cpp index 4ce8ea027..956383176 100644 --- a/src/modules/notifier/NotifierWindow.cpp +++ b/src/modules/notifier/NotifierWindow.cpp @@ -38,43 +38,34 @@ #include "KviThemedLineEdit.h" #include <QApplication> -#include <QImage> #include <QDesktopWidget> -#include <QToolTip> #include <QEvent> -#include <QPen> #include <QFontMetrics> -#include <QRegExp> +#include <QImage> +#include <QMouseEvent> #include <QPainter> #include <QPaintEvent> -#include <QMouseEvent> +#include <QPen> +#include <QRegExp> +#include <QToolTip> extern NotifierWindow * g_pNotifierWindow; NotifierWindow::NotifierWindow() - : QWidget(nullptr, + : QWidget(nullptr, Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) - Qt::FramelessWindowHint | Qt::Tool | Qt::WindowStaysOnTopHint) + | Qt::Tool) #else - Qt::FramelessWindowHint | #ifndef COMPILE_ON_MAC - Qt::Tool | Qt::X11BypassWindowManagerHint | + | Qt::Tool | Qt::X11BypassWindowManagerHint #endif - Qt::WindowStaysOnTopHint) + ) #endif { setObjectName("kvirc_notifier_window"); g_pNotifierWindow = this; - m_eState = Hidden; - m_dOpacity = 0.0; - m_pShowHideTimer = nullptr; - m_pBlinkTimer = nullptr; - m_tAutoHideAt = 0; - m_tStartedAt = 0; - m_pAutoHideTimer = nullptr; - m_pWndBorder = new NotifierWindowBorder(); setFocusPolicy(Qt::NoFocus); @@ -83,24 +74,6 @@ NotifierWindow::NotifierWindow() hide(); - m_bBlinkOn = false; - - m_bCloseDown = false; - m_bPrevDown = false; - m_bNextDown = false; - m_bWriteDown = false; - - m_bLeftButtonIsPressed = false; - m_bDiagonalResizing = false; - m_bResizing = false; - - m_pContextPopup = nullptr; - m_pDisablePopup = nullptr; - - m_bDragging = false; - - m_bDisableHideOnMainWindowGotAttention = false; - // Positioning the notifier bottom-right QDesktopWidget * pDesktop = QApplication::desktop(); QRect r = pDesktop->availableGeometry(pDesktop->primaryScreen()); @@ -162,19 +135,15 @@ void NotifierWindow::updateGui() m_pLineEdit->setFont(KVI_OPTION_FONT(KviOption_fontNotifier)); for(int i = 0; i < m_pWndTabs->count(); ++i) - { ((NotifierWindowTab *)m_pWndTabs->widget(i))->updateGui(); - } } void NotifierWindow::addMessage(KviWindow * pWnd, const QString & szImageId, const QString & szText, unsigned int uMessageTime) { - QPixmap * pIcon; + QPixmap * pIcon = nullptr; QString szMessage = szText; szMessage.replace(QRegExp("\r([^\r])*\r([^\r])+\r"), "\\2"); - if(szImageId.isEmpty()) - pIcon = nullptr; - else + if(!szImageId.isEmpty()) pIcon = g_pIconManager->getImage(szImageId); NotifierMessage * pMessage = new NotifierMessage(pIcon ? new QPixmap(*pIcon) : nullptr, szMessage); @@ -192,9 +161,7 @@ void NotifierWindow::addMessage(KviWindow * pWnd, const QString & szImageId, con } if(!pTab) - { pTab = new NotifierWindowTab(pWnd, m_pWndTabs); - } //if the notifier is already visible, don't steal the focus from the current tab! //the user could be writing a message on it (bug #678) @@ -223,11 +190,8 @@ void NotifierWindow::addMessage(KviWindow * pWnd, const QString & szImageId, con m_tAutoHideAt = 0; } - if(pWnd) - { - if(pWnd->hasAttention(KviWindow::MainWindowIsVisible)) - m_bDisableHideOnMainWindowGotAttention = true; - } + if(pWnd && pWnd->hasAttention(KviWindow::MainWindowIsVisible)) + m_bDisableHideOnMainWindowGotAttention = true; if(isVisible()) update(); @@ -385,8 +349,6 @@ bool NotifierWindow::shouldHideIfMainWindowGotAttention() void NotifierWindow::heartbeat() { - bool bIncreasing; - double targetOpacity = 0; switch(m_eState) { case Hidden: @@ -410,7 +372,7 @@ void NotifierWindow::heartbeat() else { m_dOpacity += OPACITY_STEP; - targetOpacity = isActiveWindow() ? KVI_OPTION_UINT(KviOption_uintNotifierActiveTransparency) : KVI_OPTION_UINT(KviOption_uintNotifierInactiveTransparency); + double targetOpacity = isActiveWindow() ? KVI_OPTION_UINT(KviOption_uintNotifierActiveTransparency) : KVI_OPTION_UINT(KviOption_uintNotifierInactiveTransparency); targetOpacity /= 100; if(m_dOpacity >= targetOpacity) @@ -429,9 +391,10 @@ void NotifierWindow::heartbeat() } break; case FocusingOn: - targetOpacity = KVI_OPTION_UINT(KviOption_uintNotifierActiveTransparency); + { + double targetOpacity = KVI_OPTION_UINT(KviOption_uintNotifierActiveTransparency); targetOpacity /= 100; - bIncreasing = targetOpacity > m_dOpacity; + bool bIncreasing = targetOpacity > m_dOpacity; m_dOpacity += bIncreasing ? OPACITY_STEP : -(OPACITY_STEP); if((bIncreasing && (m_dOpacity >= targetOpacity)) || (!bIncreasing && (m_dOpacity <= targetOpacity))) { @@ -441,13 +404,15 @@ void NotifierWindow::heartbeat() } setWindowOpacity(m_dOpacity); + } break; case FocusingOff: - targetOpacity = KVI_OPTION_UINT(KviOption_uintNotifierInactiveTransparency); + { + double targetOpacity = KVI_OPTION_UINT(KviOption_uintNotifierInactiveTransparency); targetOpacity /= 100; - bIncreasing = targetOpacity > m_dOpacity; + bool bIncreasing = targetOpacity > m_dOpacity; m_dOpacity += bIncreasing ? OPACITY_STEP : -(OPACITY_STEP); - //qDebug("%f %f %i %i",m_dOpacity,targetOpacity,bIncreasing,(m_dOpacity >= targetOpacity)); + if((bIncreasing && (m_dOpacity >= targetOpacity)) || (!bIncreasing && (m_dOpacity <= targetOpacity))) { m_dOpacity = targetOpacity; @@ -456,6 +421,7 @@ void NotifierWindow::heartbeat() } setWindowOpacity(m_dOpacity); + } break; case Hiding: m_dOpacity -= OPACITY_STEP; @@ -512,7 +478,6 @@ void NotifierWindow::doHide(bool bDoAnimate) if((!bDoAnimate) || (x() != m_pWndBorder->x()) || (y() != m_pWndBorder->y())) { - //qDebug("just hide quickly with notifier x() %d and notifier y() % - WBorderx() %d and WBordery() %d and bDoanimate %d",x(),y(),m_pWndBorder->x(),m_pWndBorder->y(),bDoAnimate); // the user asked to not animate or // the window has been moved and the animation would suck anyway // just hide quickly @@ -520,7 +485,6 @@ void NotifierWindow::doHide(bool bDoAnimate) } else { - //qDebug("starting hide animation notifier x() %d and notifier y() % - WBorderx() %d and WBordery() %d and bDoanimate %d",x(),y(),m_pWndBorder->x(),m_pWndBorder->y(),bDoAnimate); m_pShowHideTimer = new QTimer(); connect(m_pShowHideTimer, SIGNAL(timeout()), this, SLOT(heartbeat())); m_dOpacity = 1.0 - OPACITY_STEP; @@ -613,35 +577,18 @@ void NotifierWindow::paintEvent(QPaintEvent * e) if(width() != m_pWndBorder->width() || height() != m_pWndBorder->height()) m_pWndBorder->resize(size()); - if(m_bBlinkOn) - { - m_pWndBorder->draw(pPaint, true); - } - else - { - m_pWndBorder->draw(pPaint); - } + m_pWndBorder->draw(pPaint, m_bBlinkOn); pPaint->setPen(KVI_OPTION_COLOR(KviOption_colorNotifierTitleForeground)); pPaint->setFont(KVI_OPTION_FONT(KviOption_fontNotifierTitle)); QString szTitle = "KVIrc - "; NotifierWindowTab * pTab = (NotifierWindowTab *)m_pWndTabs->currentWidget(); - if(pTab) - { - if(pTab->wnd()) - { - szTitle += pTab->wnd()->plainTextCaption(); - } - else - { - szTitle += "notifier"; - } - } + if(pTab && pTab->wnd()) + szTitle += pTab->wnd()->plainTextCaption(); else - { szTitle += "notifier"; - } + pPaint->drawText(m_pWndBorder->titleRect(), Qt::AlignLeft | Qt::AlignVCenter | Qt::TextSingleLine, szTitle); delete pPaint; @@ -652,19 +599,14 @@ void NotifierWindow::mouseMoveEvent(QMouseEvent * e) { if(!m_bLeftButtonIsPressed) { - if(checkResizing(e->pos())) - goto sartelo; - - if(m_pWndBorder->captionRect().contains(e->pos())) + if(!checkResizing(e->pos()) && m_pWndBorder->captionRect().contains(e->pos())) { if(m_pWndBorder->closeRect().contains(e->pos())) m_pWndBorder->setCloseIcon(WDG_ICON_OVER); else m_pWndBorder->setCloseIcon(WDG_ICON_OUT); - goto sartelo; } - sartelo: update(); } @@ -922,7 +864,7 @@ void NotifierWindow::resize(QPoint, bool) setGeometry(m_wndRect); } -inline void NotifierWindow::setCursor(int iCur) +void NotifierWindow::setCursor(int iCur) { if(m_cursor.shape() != iCur) { @@ -1141,7 +1083,7 @@ void NotifierWindow::returnPressed() addMessage(pTab->wnd(), szTmp.ptr(), szHtml, 0); m_pLineEdit->setText(""); - KviUserInput::parse(szTxt, pTab->wnd(), QString(), 1); + KviUserInput::parse(szTxt, pTab->wnd(), QString(), true); } void NotifierWindow::progressUpdate() diff --git a/src/modules/notifier/NotifierWindow.h b/src/modules/notifier/NotifierWindow.h index c85c1d18e..20665b871 100644 --- a/src/modules/notifier/NotifierWindow.h +++ b/src/modules/notifier/NotifierWindow.h @@ -62,28 +62,28 @@ public: ~NotifierWindow(); protected: - QTimer * m_pShowHideTimer; - QTimer * m_pBlinkTimer; - QTimer * m_pAutoHideTimer; - State m_eState; - bool m_bBlinkOn; - double m_dOpacity; + QTimer * m_pShowHideTimer = nullptr; + QTimer * m_pBlinkTimer = nullptr; + QTimer * m_pAutoHideTimer = nullptr; + State m_eState = Hidden; + bool m_bBlinkOn = false; + double m_dOpacity = 0.0; - bool m_bCloseDown; - bool m_bPrevDown; - bool m_bNextDown; - bool m_bWriteDown; + bool m_bCloseDown = false; + bool m_bPrevDown = false; + bool m_bNextDown = false; + bool m_bWriteDown = false; bool m_bCrashShowWorkAround; QRect m_wndRect; - NotifierMessage * m_pCurrentMessage; - KviThemedLineEdit * m_pLineEdit; + NotifierMessage * m_pCurrentMessage = nullptr; + KviThemedLineEdit * m_pLineEdit = nullptr; - bool m_bDragging; - bool m_bLeftButtonIsPressed; - bool m_bDiagonalResizing; - bool m_bResizing; + bool m_bDragging = false; + bool m_bLeftButtonIsPressed = false; + bool m_bDiagonalResizing = false; + bool m_bResizing = false; int m_whereResizing; @@ -91,19 +91,19 @@ protected: QPoint m_pntPos; QPoint m_pntClick; int m_iBlinkCount; - QMenu * m_pContextPopup; - QMenu * m_pDisablePopup; - KviWindow * m_pWindowToRaise; - kvi_time_t m_tAutoHideAt; - kvi_time_t m_tStartedAt; + QMenu * m_pContextPopup = nullptr; + QMenu * m_pDisablePopup = nullptr; + KviWindow * m_pWindowToRaise = nullptr; + kvi_time_t m_tAutoHideAt = 0; + kvi_time_t m_tStartedAt = 0; QTime m_qtStartedAt; - bool m_bDisableHideOnMainWindowGotAttention; + bool m_bDisableHideOnMainWindowGotAttention = false; QCursor m_cursor; - QTabWidget * m_pWndTabs; - QProgressBar * m_pProgressBar; - NotifierWindowBorder * m_pWndBorder; + QTabWidget * m_pWndTabs = nullptr; + QProgressBar * m_pProgressBar = nullptr; + NotifierWindowBorder * m_pWndBorder = nullptr; public: void doShow(bool bDoAnimate); @@ -112,24 +112,24 @@ public: void addMessage(KviWindow * pWnd, const QString & szImageId, const QString & szText, unsigned int uMessageTime); void setDisableHideOnMainWindowGotAttention(bool b) { m_bDisableHideOnMainWindowGotAttention = b; }; void showLineEdit(bool bShow); - inline int countTabs() const + int countTabs() const { if(m_pWndTabs) return m_pWndTabs->count(); return 0; - }; - inline State state() const { return m_eState; }; + } + State state() const { return m_eState; } protected: - virtual void showEvent(QShowEvent * e); - virtual void hideEvent(QHideEvent * e); - virtual void paintEvent(QPaintEvent * e); - virtual void mousePressEvent(QMouseEvent * e); - virtual void mouseReleaseEvent(QMouseEvent * e); - virtual void mouseMoveEvent(QMouseEvent * e); - virtual void leaveEvent(QEvent * e); - virtual void enterEvent(QEvent * e); - virtual bool eventFilter(QObject * pEdit, QEvent * e); - virtual void keyPressEvent(QKeyEvent * e); + void showEvent(QShowEvent * e) override; + void hideEvent(QHideEvent * e) override; + void paintEvent(QPaintEvent * e) override; + void mousePressEvent(QMouseEvent * e) override; + void mouseReleaseEvent(QMouseEvent * e) override; + void mouseMoveEvent(QMouseEvent * e) override; + void leaveEvent(QEvent * e) override; + void enterEvent(QEvent * e) override; + bool eventFilter(QObject * pEdit, QEvent * e) override; + void keyPressEvent(QKeyEvent * e) override; public slots: void hideNow(); void toggleLineEdit(); diff --git a/src/modules/notifier/NotifierWindowBorder.h b/src/modules/notifier/NotifierWindowBorder.h index df07079d8..1c6a6ff90 100644 --- a/src/modules/notifier/NotifierWindowBorder.h +++ b/src/modules/notifier/NotifierWindowBorder.h @@ -26,9 +26,9 @@ #include "NotifierSettings.h" -#include <QSize> -#include <QRect> #include <QPixmap> +#include <QRect> +#include <QSize> class QPainter; @@ -38,9 +38,6 @@ public: NotifierWindowBorder(QSize = QSize(WDG_MIN_WIDTH, WDG_MIN_HEIGHT)); ~NotifierWindowBorder(); - // ================================ - // Put members declaration below... - // ================================ private: QRect m_rct; QPoint m_pnt; @@ -52,18 +49,18 @@ private: QRect m_titleRect; // Pictures - QPixmap * m_pixSX; - QPixmap * m_pixDX; - QPixmap * m_pixDWN; - QPixmap * m_pixDWNSX; - QPixmap * m_pixDWNDX; - QPixmap * m_pixCaptionSX; - QPixmap * m_pixCaptionDX; - QPixmap * m_pixCaptionBKG; - QPixmap * m_pixIconClose_out; - QPixmap * m_pixIconClose_over; - QPixmap * m_pixIconClose_clicked; - QPixmap * m_pixIconClose; + QPixmap * m_pixSX = nullptr; + QPixmap * m_pixDX = nullptr; + QPixmap * m_pixDWN = nullptr; + QPixmap * m_pixDWNSX = nullptr; + QPixmap * m_pixDWNDX = nullptr; + QPixmap * m_pixCaptionSX = nullptr; + QPixmap * m_pixCaptionDX = nullptr; + QPixmap * m_pixCaptionBKG = nullptr; + QPixmap * m_pixIconClose_out = nullptr; + QPixmap * m_pixIconClose_over = nullptr; + QPixmap * m_pixIconClose_clicked = nullptr; + QPixmap * m_pixIconClose = nullptr; QPixmap m_pixSX_N; QPixmap m_pixDX_N; @@ -105,23 +102,23 @@ public: { setWidth(w); setHeight(h); - }; + } void resize(QSize r) { setWidth(r.width()); setHeight(r.height()); - }; + } void setGeometry(QRect r) { r.topLeft(); - r.size(); /*qDebug("x,y: %d,%d", r.x(), r.y()); qDebug("w,h: %d,%d", r.width(), r.height());*/ - }; + r.size(); + } void setGeometry(QPoint p, QSize s) { setPoint(p.x(), p.y()); setWidth(s.width()); setHeight(s.height()); - }; + } void setPoint(int x, int y) { @@ -129,23 +126,23 @@ public: m_pnt.setY(y); m_rct.setX(x); m_rct.setY(y); - }; + } void setCloseIcon(int state); void resetIcons(); // writing methods... - inline int x() const { return m_pnt.x(); }; - inline int y() const { return m_pnt.y(); }; - inline int width() const { return m_rct.width(); }; - inline int height() const { return m_rct.height(); }; - inline int baseLine() const { return (y() + height()); }; + int x() const { return m_pnt.x(); } + int y() const { return m_pnt.y(); } + int width() const { return m_rct.width(); } + int height() const { return m_rct.height(); } + int baseLine() const { return (y() + height()); } - inline QRect bodyRect() const { return m_bodyRect; }; - inline QRect captionRect() const { return m_captionRect; }; - inline QRect rect() const { return m_rct; }; - inline QRect closeRect() const { return m_closeIconRect; }; - inline QRect titleRect() const { return m_titleRect; }; + QRect bodyRect() const { return m_bodyRect; } + QRect captionRect() const { return m_captionRect; } + QRect rect() const { return m_rct; } + QRect closeRect() const { return m_closeIconRect; } + QRect titleRect() const { return m_titleRect; } void draw(QPainter *, bool b = false); void setPics(bool b = false); diff --git a/src/modules/notifier/NotifierWindowTab.cpp b/src/modules/notifier/NotifierWindowTab.cpp index d02fd095d..0ec9f2a90 100644 --- a/src/modules/notifier/NotifierWindowTab.cpp +++ b/src/modules/notifier/NotifierWindowTab.cpp @@ -36,9 +36,9 @@ #include "KviPixmapUtils.h" #include "KviWindow.h" -#include <QScrollBar> -#include <QResizeEvent> #include <QPainter> +#include <QResizeEvent> +#include <QScrollBar> #include <QTabWidget> #include <QVBoxLayout> #include <QWidget> @@ -51,9 +51,8 @@ extern KVIRC_API QPixmap * g_pShadedChildGlobalDesktopBackground; extern NotifierWindow * g_pNotifierWindow; NotifierWindowTab::NotifierWindowTab(KviWindow * pWnd, QTabWidget * pParent) - : QScrollArea(pParent) + : QScrollArea(pParent), m_pWnd{pWnd}, m_pParent{pParent} { - m_pWnd = pWnd; if(m_pWnd) { m_szLabel = m_pWnd->windowName(); @@ -65,11 +64,8 @@ NotifierWindowTab::NotifierWindowTab(KviWindow * pWnd, QTabWidget * pParent) m_szLabel = "----"; } - if(pParent) - { - m_pParent = pParent; + if(m_pParent) m_pParent->addTab(this, m_szLabel); - } setFocusPolicy(Qt::NoFocus); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); @@ -170,24 +166,18 @@ void NotifierWindowTab::closeMe() { int iIdx = m_pParent->indexOf(this); if(iIdx != -1) - { g_pNotifierWindow->slotTabCloseRequested(iIdx); - } } } void NotifierWindowTab::resizeEvent(QResizeEvent *) { - if(m_pVBox) + int iWidth = viewport()->width(); + for(int i = 0; i < m_pVBox->count(); i++) { - int iWidth = viewport()->width(); - NotifierMessage * pMessage; - for(int i = 0; i < m_pVBox->count(); i++) - { - pMessage = (NotifierMessage *)m_pVBox->itemAt(i)->widget(); - if(pMessage) - pMessage->setFixedWidth(iWidth); - } + NotifierMessage * pMessage = (NotifierMessage *)m_pVBox->itemAt(i)->widget(); + if(pMessage) + pMessage->setFixedWidth(iWidth); } } diff --git a/src/modules/notifier/NotifierWindowTab.h b/src/modules/notifier/NotifierWindowTab.h index 784936aa6..550d3dd60 100644 --- a/src/modules/notifier/NotifierWindowTab.h +++ b/src/modules/notifier/NotifierWindowTab.h @@ -36,11 +36,11 @@ #include <QScrollArea> +class KviWindow; +class QPainter; +class QTabWidget; class QVBoxLayout; class QWidget; -class QTabWidget; -class QPainter; -class KviWindow; /** * \class NotifierWindowTab @@ -65,10 +65,10 @@ public: private: QString m_szLabel; - KviWindow * m_pWnd; - QTabWidget * m_pParent; - QVBoxLayout * m_pVBox; - QWidget * m_pVWidget; + KviWindow * m_pWnd = nullptr; + QTabWidget * m_pParent = nullptr; + QVBoxLayout * m_pVBox = nullptr; + QWidget * m_pVWidget = nullptr; public: /** @@ -88,17 +88,17 @@ public: * \brief Returns the name of the current window * \return QString */ - inline QString label() const { return m_szLabel; }; + QString label() const { return m_szLabel; } /** * \brief Returns the pointer of the current window * \return KviWindow * */ - inline KviWindow * wnd() const { return m_pWnd; }; + KviWindow * wnd() const { return m_pWnd; } protected: - virtual void mouseDoubleClickEvent(QMouseEvent * e); - virtual void resizeEvent(QResizeEvent * e); - virtual void paintEvent(QPaintEvent * e); + void mouseDoubleClickEvent(QMouseEvent * e) override; + void resizeEvent(QResizeEvent * e) override; + void paintEvent(QPaintEvent * e) override; private slots: /** * \brief Emitted when the scrollbar range is changed diff --git a/src/modules/notifier/libkvinotifier.cpp b/src/modules/notifier/libkvinotifier.cpp index fa21755df..47f814964 100644 --- a/src/modules/notifier/libkvinotifier.cpp +++ b/src/modules/notifier/libkvinotifier.cpp @@ -36,8 +36,6 @@ #include "KviTimeUtils.h" #include "KviOptions.h" -#include <QSplitter> - NotifierWindow * g_pNotifierWindow = nullptr; kvi_time_t g_tNotifierDisabledUntil = 0; @@ -255,10 +253,8 @@ static bool notifier_kvs_cmd_show(KviKvsModuleCommandCall * c) static bool notifier_kvs_fnc_isEnabled(KviKvsModuleFunctionCall * c) { - bool bCheck; - if(!KVI_OPTION_BOOL(KviOption_boolEnableNotifier)) - bCheck = false; - else + bool bCheck = false; + if(KVI_OPTION_BOOL(KviOption_boolEnableNotifier)) bCheck = g_tNotifierDisabledUntil < kvi_unixTime(); c->returnValue()->setBoolean(bCheck); return true; diff --git a/src/modules/objects/KvsObject_button.h b/src/modules/objects/KvsObject_button.h index 45e1e3408..cb8758d57 100644 --- a/src/modules/objects/KvsObject_button.h +++ b/src/modules/objects/KvsObject_button.h @@ -36,7 +36,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool setText(KviKvsObjectFunctionCall * c); bool text(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_checkBox.h b/src/modules/objects/KvsObject_checkBox.h index 1db7575f8..68dca40ff 100644 --- a/src/modules/objects/KvsObject_checkBox.h +++ b/src/modules/objects/KvsObject_checkBox.h @@ -36,7 +36,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool setChecked(KviKvsObjectFunctionCall * c); bool isChecked(KviKvsObjectFunctionCall * c); bool toggleEvent(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_colorDialog.h b/src/modules/objects/KvsObject_colorDialog.h index 35321731c..a6d37121f 100644 --- a/src/modules/objects/KvsObject_colorDialog.h +++ b/src/modules/objects/KvsObject_colorDialog.h @@ -36,7 +36,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); } protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool setCurrentColor(KviKvsObjectFunctionCall * c); bool currentColorChangedEvent(KviKvsObjectFunctionCall * c); bool colorSelectedEvent(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_comboBox.cpp b/src/modules/objects/KvsObject_comboBox.cpp index 331f3fe5a..e4ec1924c 100644 --- a/src/modules/objects/KvsObject_comboBox.cpp +++ b/src/modules/objects/KvsObject_comboBox.cpp @@ -306,8 +306,6 @@ KVSO_CLASS_FUNCTION(comboBox, setCurrentItem) } KVSO_CLASS_FUNCTION(comboBox, popup) { - Q_UNUSED(c); - if(widget()) ((QComboBox *)widget())->showPopup(); return true; diff --git a/src/modules/objects/KvsObject_comboBox.h b/src/modules/objects/KvsObject_comboBox.h index 2d14c01f9..dc0376229 100644 --- a/src/modules/objects/KvsObject_comboBox.h +++ b/src/modules/objects/KvsObject_comboBox.h @@ -37,7 +37,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool insertItem(KviKvsObjectFunctionCall * c); bool changeItem(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_dateTimeEdit.h b/src/modules/objects/KvsObject_dateTimeEdit.h index f10340900..400c32f8a 100644 --- a/src/modules/objects/KvsObject_dateTimeEdit.h +++ b/src/modules/objects/KvsObject_dateTimeEdit.h @@ -39,7 +39,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool date(KviKvsObjectFunctionCall * c); bool setDate(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_dialog.h b/src/modules/objects/KvsObject_dialog.h index 14c2b668c..9975d944b 100644 --- a/src/modules/objects/KvsObject_dialog.h +++ b/src/modules/objects/KvsObject_dialog.h @@ -35,7 +35,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool setModal(KviKvsObjectFunctionCall * c); }; diff --git a/src/modules/objects/KvsObject_dockWindow.h b/src/modules/objects/KvsObject_dockWindow.h index dab239f54..0fe56de9c 100644 --- a/src/modules/objects/KvsObject_dockWindow.h +++ b/src/modules/objects/KvsObject_dockWindow.h @@ -34,7 +34,7 @@ class KvsObject_dockWindow : public KvsObject_widget public: KVSO_DECLARE_OBJECT(KvsObject_dockWindow) protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool addWidget(KviKvsObjectFunctionCall * c); bool setAllowedDockAreas(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_file.cpp b/src/modules/objects/KvsObject_file.cpp index d0f773b85..2b2e10746 100644 --- a/src/modules/objects/KvsObject_file.cpp +++ b/src/modules/objects/KvsObject_file.cpp @@ -93,12 +93,12 @@ const QIODevice::OpenMode mod_cod[] = { Attempts to open the file in specified mode or modes [i]sum[/i]. Valid modes are:[br] [pre] - RAW - RAW, non-buffered access[br] - ReadOnly - opens the file read-only[br] - WriteOnly - opens the file write-only[br] - ReadWrite - opens the file in read-write mode[br] - Append - opens the file in append mode. The file index is set to the end of the file.[br] - Truncate - truncates the file[br] + RAW - RAW, non-buffered access + ReadOnly - opens the file read-only + WriteOnly - opens the file write-only + ReadWrite - opens the file in read-write mode + Append - opens the file in append mode. The file index is set to the end of the file. + Truncate - truncates the file [/pre] If you call this function without any parameters, the file is opened in read-only mode.[br] @@ -335,8 +335,8 @@ KVSO_CLASS_FUNCTION(file, putch) KVSO_PARAMETERS_END(c) if(szChar.length() > 1) c->warning(__tr2qs_ctx("Argument too long, using only first char", "objects")); - const char * ch = szChar.toUtf8().data(); - if(!m_pFile->putChar(ch[0])) + QByteArray szCh = szChar.toUtf8(); + if(!m_pFile->putChar(szCh[0])) c->warning(__tr2qs_ctx("Write error occurred!", "objects")); return true; } @@ -375,8 +375,8 @@ KVSO_CLASS_FUNCTION(file, unGetch) KVSO_PARAMETERS_END(c) if(szChar.length() > 1) c->warning(__tr2qs_ctx("Argument too long, using only the first char", "objects")); - const char * ch = szChar.toUtf8().data(); - m_pFile->ungetChar(ch[0]); + QByteArray szCh = szChar.toUtf8(); + m_pFile->ungetChar(szCh[0]); return true; } @@ -554,8 +554,8 @@ KVSO_CLASS_FUNCTION(file, writeBlock) } QString szBlock; pVariantData->asString(szBlock); - const char * block = szBlock.toUtf8().data(); - int rlen = m_pFile->write(block, uLen); + QByteArray block = szBlock.toUtf8(); + int rlen = m_pFile->write(block.data(), uLen); c->returnValue()->setInteger(rlen); } } diff --git a/src/modules/objects/KvsObject_groupBox.h b/src/modules/objects/KvsObject_groupBox.h index 50cf5a78e..f2506d6fa 100644 --- a/src/modules/objects/KvsObject_groupBox.h +++ b/src/modules/objects/KvsObject_groupBox.h @@ -36,7 +36,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool setTitle(KviKvsObjectFunctionCall * c); bool title(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_hBox.h b/src/modules/objects/KvsObject_hBox.h index ef2ce93ca..e94717587 100644 --- a/src/modules/objects/KvsObject_hBox.h +++ b/src/modules/objects/KvsObject_hBox.h @@ -34,7 +34,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool setMargin(KviKvsObjectFunctionCall * c); bool setSpacing(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_label.cpp b/src/modules/objects/KvsObject_label.cpp index 6d9ebf848..da4744cbd 100644 --- a/src/modules/objects/KvsObject_label.cpp +++ b/src/modules/objects/KvsObject_label.cpp @@ -120,21 +120,21 @@ const int frame_cod[] = { Returns a string containing alignment flags that are set for this label. The flags are separated by commas.[br] An example output could look like this:[br] - [pre]Bottom, Right[/pre][br] + [pre]Bottom, Right[/pre] See [classfnc]$setAlignment[/classfnc]() for explanation of all alignment flags. !fn: $setAlignment(<flag1:string>, <flag2:string>, ...) This function sets alignment flags, given as parameters, for this label. Valid flags are: [pre] - Right - Text is aligned to right border[br] - Left - Text is aligned to left border[br] - Top - Text is aligned to the top border[br] - Bottom - Text is aligned to the bottom border[br] - HCenter - Text is horizontally centered[br] - VCenter - Text is vertically centered[br] - Center - Equals HCenter + VCenter[br] - Justify - Text is spaced apart to cover available room[br] + Right - Text is aligned to right border + Left - Text is aligned to left border + Top - Text is aligned to the top border + Bottom - Text is aligned to the bottom border + HCenter - Text is horizontally centered + VCenter - Text is vertically centered + Center - Equals HCenter + VCenter + Justify - Text is spaced apart to cover available room [/pre] It is obvious that you can not set [i]Right[/i] and [i]Left[/i] simultaneously - this will [b]not[/b] @@ -153,17 +153,17 @@ const int frame_cod[] = { The flags determine the shape or shadow of the label's frame. Valid shape flags are:[br] [pre] - NoFrame - Draw no frame. You shouldn't specify a shadow when using this.[br] - Box - Draws a rectangular box. Its borders can be [i]Raised[/i] or [i]Sunken[/i][br] - Panel - Draws a rectangular panel which can be [i]Raised[/i] or [i]Sunken[/i][br] - WinPanel - Similar to [i]Panel[/i], but is more in Win95 style[br] + NoFrame - Draw no frame. You shouldn't specify a shadow when using this. + Box - Draws a rectangular box. Its borders can be [i]Raised[/i] or [i]Sunken[/i] + Panel - Draws a rectangular panel which can be [i]Raised[/i] or [i]Sunken[/i] + WinPanel - Similar to [i]Panel[/i], but is more in Win95 style Hline - Draws a horizontal line that frames nothing (useful as separator) [/pre] Valid shadow flags are:[br] [pre] - Plain - No 3D effect (draws using foreground color)[br] - Raised - Makes the label look like it was raised above the parent widget[br] - Sunken - Makes the label look like it was [i]pushed[/i] inside the parent widget[br] + Plain - No 3D effect (draws using foreground color) + Raised - Makes the label look like it was raised above the parent widget + Sunken - Makes the label look like it was [i]pushed[/i] inside the parent widget [/pre] !fn: $setImage(<image_id>) Sets the image to be displayed on this label. diff --git a/src/modules/objects/KvsObject_label.h b/src/modules/objects/KvsObject_label.h index 1382c60f6..de6728ab2 100644 --- a/src/modules/objects/KvsObject_label.h +++ b/src/modules/objects/KvsObject_label.h @@ -35,7 +35,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool setTitle(KviKvsObjectFunctionCall * c); bool setText(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_layout.cpp b/src/modules/objects/KvsObject_layout.cpp index 2c57a60fd..b48e5b2e7 100644 --- a/src/modules/objects/KvsObject_layout.cpp +++ b/src/modules/objects/KvsObject_layout.cpp @@ -98,10 +98,10 @@ const int align_cod[] = { Sets the resize mode of the parent widget in relation to this layout. <mode> can be one of:[br] [pre] - -Auto: this is the default[br] - -Fixed: the parent widget of this layout is resized to the "sizeHint" value and it cannot be resized by the user.[br] - -Minimum: the minimum size of the parent widget of this layout is set to minimumSize() and it cannot be smaller[br] - -FreeResize: the parent widget of this layout is not constrained at all[br] + -Auto: this is the default + -Fixed: the parent widget of this layout is resized to the "sizeHint" value and it cannot be resized by the user. + -Minimum: the minimum size of the parent widget of this layout is set to minimumSize() and it cannot be smaller + -FreeResize: the parent widget of this layout is not constrained at all [/pre] */ diff --git a/src/modules/objects/KvsObject_layout.h b/src/modules/objects/KvsObject_layout.h index 99b0c1238..c41a01e66 100644 --- a/src/modules/objects/KvsObject_layout.h +++ b/src/modules/objects/KvsObject_layout.h @@ -33,7 +33,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool addWidget(KviKvsObjectFunctionCall * c); bool addMultiCellWidget(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_lcd.h b/src/modules/objects/KvsObject_lcd.h index 3595aa164..f1a923906 100644 --- a/src/modules/objects/KvsObject_lcd.h +++ b/src/modules/objects/KvsObject_lcd.h @@ -34,7 +34,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool displayStr(KviKvsObjectFunctionCall * c); bool setMode(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_lineEdit.cpp b/src/modules/objects/KvsObject_lineEdit.cpp index 8af1498ce..daeea0142 100644 --- a/src/modules/objects/KvsObject_lineEdit.cpp +++ b/src/modules/objects/KvsObject_lineEdit.cpp @@ -72,9 +72,9 @@ static const int mode_cod[] = { !fn: $setEchoMode(<echo_mode:string>) Sets the line edit's echo mode. Possible value are:[br] [pre] - -Normal: display chars as they entered[br] - -Noecho: do not display anything[br] - -Password: display asterisks instead of the characters actually entered[br] + -Normal: display chars as they entered + -Noecho: do not display anything + -Password: display asterisks instead of the characters actually entered [/pre] See also [classfnc]$echoMode[/classfnc](). !fn: <string> $echoMode() diff --git a/src/modules/objects/KvsObject_lineEdit.h b/src/modules/objects/KvsObject_lineEdit.h index a004190a2..92e1d8754 100644 --- a/src/modules/objects/KvsObject_lineEdit.h +++ b/src/modules/objects/KvsObject_lineEdit.h @@ -42,7 +42,7 @@ protected: QCompleter * m_pCompleter; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool setCompleter(KviKvsObjectFunctionCall * c); bool enableCompleter(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_list.cpp b/src/modules/objects/KvsObject_list.cpp index 25ccf5dfc..83bc9ca5c 100644 --- a/src/modules/objects/KvsObject_list.cpp +++ b/src/modules/objects/KvsObject_list.cpp @@ -26,7 +26,7 @@ #include "KviMemory.h" #include "KviLocale.h" #include "KvsObject_list.h" -#include <stdlib.h> +#include <cstdlib> /* @doc: list @@ -48,6 +48,23 @@ [classfnc:list]$moveNext[/classfnc](),[classfnc:list]$movePrev[/classfnc](), [classfnc:list]$current[/classfnc]() and [classfnc:list]$eof[/classfnc]() functions. @functions: + !fn: $sort(<bReverse:bool>) + Sorts items in the list alphabetically ($true) or in reverse order ($false); Default to $false. + [example] + %list=$new(list);[br] + %list->$append('Foo');[br] + %list->$append('Bar');[br] + %list->$append('Dummy');[br] + %list->$append('Aria');[br] + [br] + %list->$sort(true);[br] + %list->$moveFirst();[br] + while(%list->$eof())[br] + {[br] + echo %list->$current();[br] + %list->$moveNext();[br] + }[br] + [/example] !fn: <integer> $count() Returns the number of items in the list !fn: <boolean> $isEmpty() @@ -168,7 +185,7 @@ KVSO_CLASS_FUNCTION(list, current) KVSO_CLASS_FUNCTION(list, eof) { CHECK_INTERNAL_POINTER(m_pDataList) - c->returnValue()->setBoolean(m_pDataList->current() != nullptr); + c->returnValue()->setBoolean(m_pDataList->safeCurrent() != nullptr); return true; } @@ -299,7 +316,7 @@ KVSO_CLASS_FUNCTION(list, clear) return true; } -inline int kvi_compare(const KviKvsVariant * p1, const KviKvsVariant * p2) +int kvi_compare(const KviKvsVariant * p1, const KviKvsVariant * p2) { return p1->compare(p2); } @@ -307,7 +324,13 @@ inline int kvi_compare(const KviKvsVariant * p1, const KviKvsVariant * p2) KVSO_CLASS_FUNCTION(list, sort) { CHECK_INTERNAL_POINTER(m_pDataList) + bool bReverse; + KVSO_PARAMETERS_BEGIN(c) + KVSO_PARAMETER("bReverse", KVS_PT_BOOL, KVS_PF_OPTIONAL, bReverse) + KVSO_PARAMETERS_END(c) m_pDataList->sort(); + if(bReverse) + m_pDataList->invert(); return true; } diff --git a/src/modules/objects/KvsObject_listWidget.cpp b/src/modules/objects/KvsObject_listWidget.cpp index df2db43a1..e7a634f57 100644 --- a/src/modules/objects/KvsObject_listWidget.cpp +++ b/src/modules/objects/KvsObject_listWidget.cpp @@ -288,7 +288,7 @@ KVSO_CLASS_FUNCTION(listWidget, isChecked) QListWidgetItem * pItem = ((QListWidget *)widget())->item(iIdx); if(!pItem) return true; - c->returnValue()->setBoolean(pItem->checkState() == Qt::Checked ? 1 : 0); + c->returnValue()->setBoolean(pItem->checkState() == Qt::Checked ? true : false); return true; } diff --git a/src/modules/objects/KvsObject_listWidget.h b/src/modules/objects/KvsObject_listWidget.h index c1eb80fcb..90a6b14c4 100644 --- a/src/modules/objects/KvsObject_listWidget.h +++ b/src/modules/objects/KvsObject_listWidget.h @@ -36,7 +36,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool insertItem(KviKvsObjectFunctionCall * c); bool changeItem(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_mainWindow.h b/src/modules/objects/KvsObject_mainWindow.h index 88eb727bd..01e1f0859 100644 --- a/src/modules/objects/KvsObject_mainWindow.h +++ b/src/modules/objects/KvsObject_mainWindow.h @@ -35,7 +35,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool setCentralWidget(KviKvsObjectFunctionCall * c); }; diff --git a/src/modules/objects/KvsObject_menuBar.h b/src/modules/objects/KvsObject_menuBar.h index f0bcd5c14..a1e8a5478 100644 --- a/src/modules/objects/KvsObject_menuBar.h +++ b/src/modules/objects/KvsObject_menuBar.h @@ -35,7 +35,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool insertItem(KviKvsObjectFunctionCall * c); }; diff --git a/src/modules/objects/KvsObject_multiLineEdit.h b/src/modules/objects/KvsObject_multiLineEdit.h index a17bbb39b..576715d59 100644 --- a/src/modules/objects/KvsObject_multiLineEdit.h +++ b/src/modules/objects/KvsObject_multiLineEdit.h @@ -36,7 +36,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool functionTextLine(KviKvsObjectFunctionCall * c); bool functionInsertLine(KviKvsObjectFunctionCall * c); bool functionRemoveLine(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_painter.cpp b/src/modules/objects/KvsObject_painter.cpp index 2c447d368..4918253d3 100644 --- a/src/modules/objects/KvsObject_painter.cpp +++ b/src/modules/objects/KvsObject_painter.cpp @@ -235,10 +235,10 @@ const char * const brushstyles_tbl[] = { All parameters are in integer form. The HSV system, like RGB, has three components:[br] [pre] - * H, for hue, is either 0-359 if the color is chromatic (not gray), or meaningless if it is gray.[br] - It represents degrees on the color wheel familiar to most people. Red is 0 (degrees), green is 120 and blue is 240.[br] - * S, for saturation, is 0-255, and the bigger it is, the stronger the color is. Grayish colors have saturation near 0; very strong colors have saturation near 255.[br] - * V, for value, is 0-255 and represents lightness or brightness of the color. 0 is black; 255 is as far from black as possible.[br] + * H, for hue, is either 0-359 if the color is chromatic (not gray), or meaningless if it is gray. + It represents degrees on the color wheel familiar to most people. Red is 0 (degrees), green is 120 and blue is 240. + * S, for saturation, is 0-255, and the bigger it is, the stronger the color is. Grayish colors have saturation near 0; very strong colors have saturation near 255. + * V, for value, is 0-255 and represents lightness or brightness of the color. 0 is black; 255 is as far from black as possible. [/pre] Examples: [b]Red[/b] is H=0, S=255, V=255.[br] Light red could have H about 0, S about 50-100, and S=255. @@ -284,17 +284,17 @@ const char * const brushstyles_tbl[] = { Draws the given <text> within the rectangle specified by <x>,<y> <width> and <height>.[br] The <flag> parameters may be:[br] [pre] - Left[br] - Top[br] - Right[br] - Bottom[br] - HCenter[br] - VCenter[br] - Center[br] - TextSingleLine[br] - TextExpandTabs[br] - TextShowMnemonic[br] - TextWordWrap[br] + Left + Top + Right + Bottom + HCenter + VCenter + Center + TextSingleLine + TextExpandTabs + TextShowMnemonic + TextWordWrap TextIncludeTrailingSpaces [/pre] !fn: $drawPixmap(<x:integer>,<y:integer>,<pixmap:hobject>,<sx:integer>,<sy:integer>,<ex:integer>,<ey:integer>) @@ -302,12 +302,12 @@ const char * const brushstyles_tbl[] = { !fn: $setFont(<family:string>,<size:integer>[,<style:enum>,<style:enum>,..])[br] Set the font's family, size and style, valid flag for style are:[br] [pre] - italic[br] - bold [br] - underline [br] - overline [br] - strikeout [br] - fixedpitch [br] + italic + bold + underline + overline + strikeout + fixedpitch [/pre] !fn: $setFontSize(<size:unsigned integer>)[br] Set the current painter font's size.[br] @@ -333,7 +333,7 @@ const char * const brushstyles_tbl[] = { Sets the background mode of the painter to <bgMode>: Valid values are:[br] [pre] - - Transparent (that is the default value);[br] + - Transparent (that is the default value); - Opaque. [/pre] !fn: $setOpacity(<opacity_factor:real>) @@ -418,7 +418,7 @@ const char * const brushstyles_tbl[] = { if ($$->%scrollright >= 550) return %P->$scale(0.$$->%Zoomindex,0.$$->%Zoomindex) %P->$translate(400,350) - %P->$drawText($$->%scrollright,10,"Another cool class brought to you by...",-1,Auto) + %P->$drawText($$->%scrollright,10,"Another cool class brought to you by...",-1,Auto) $$->%scrollright += 3; %P->$reset() } @@ -1271,8 +1271,6 @@ void KvsObject_painter::detachDevice() KVSO_CLASS_FUNCTION(painter, end) { - Q_UNUSED(c); - if(!m_pDeviceObject) { m_pPainter->end(); @@ -1958,7 +1956,6 @@ KVSO_CLASS_FUNCTION(painter, setGradientAsBrush) KVSO_CLASS_FUNCTION(painter, clearGradient) { - Q_UNUSED(c); if(!m_pGradient) delete m_pGradient; m_pGradient = nullptr; @@ -2113,7 +2110,7 @@ KVSO_CLASS_FUNCTION(painter, drawPath) CHECK_INTERNAL_POINTER(m_pPainter) m_pPainter->drawPath(*m_pPainterPath); //delete m_pPainterPath; - //m_pPainterPath=0; + //m_pPainterPath=nullptr; return true; } @@ -2144,7 +2141,6 @@ KVSO_CLASS_FUNCTION(painter, setCompositionMode) } KVSO_CLASS_FUNCTION(painter, resetPath) { - Q_UNUSED(c); if(m_pPainterPath) { delete m_pPainterPath; diff --git a/src/modules/objects/KvsObject_pixmap.cpp b/src/modules/objects/KvsObject_pixmap.cpp index c2b56476d..e3ef0a5c8 100644 --- a/src/modules/objects/KvsObject_pixmap.cpp +++ b/src/modules/objects/KvsObject_pixmap.cpp @@ -533,7 +533,6 @@ KVSO_CLASS_FUNCTION(pixmap, loadAnimation) KVSO_CLASS_FUNCTION(pixmap, startAnimation) { - Q_UNUSED(c); if(m_pAnimatedPixmap) m_pAnimatedPixmap->start(); return true; @@ -541,7 +540,6 @@ KVSO_CLASS_FUNCTION(pixmap, startAnimation) KVSO_CLASS_FUNCTION(pixmap, stopAnimation) { - Q_UNUSED(c); if(m_pAnimatedPixmap) m_pAnimatedPixmap->stop(); return true; diff --git a/src/modules/objects/KvsObject_pixmap.h b/src/modules/objects/KvsObject_pixmap.h index 35874f1f6..63b4de5c4 100644 --- a/src/modules/objects/KvsObject_pixmap.h +++ b/src/modules/objects/KvsObject_pixmap.h @@ -58,7 +58,7 @@ public: { *m_pImage = m_pPixmap->toImage(); delete m_pPixmap; - m_pPixmap = 0; + m_pPixmap = nullptr; } } m_currentType = Image; @@ -75,7 +75,7 @@ public: { *m_pPixmap = m_pPixmap->fromImage(*m_pImage); delete m_pImage; - m_pImage = 0; + m_pImage = nullptr; } } m_currentType = Pixmap; diff --git a/src/modules/objects/KvsObject_popupMenu.h b/src/modules/objects/KvsObject_popupMenu.h index 67624bf72..ac52f7744 100644 --- a/src/modules/objects/KvsObject_popupMenu.h +++ b/src/modules/objects/KvsObject_popupMenu.h @@ -38,7 +38,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool insertItem(KviKvsObjectFunctionCall * c); bool setTitle(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_progressBar.h b/src/modules/objects/KvsObject_progressBar.h index 4a957ae20..284753c45 100644 --- a/src/modules/objects/KvsObject_progressBar.h +++ b/src/modules/objects/KvsObject_progressBar.h @@ -35,7 +35,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool setProgress(KviKvsObjectFunctionCall * c); bool setTotalSteps(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_radioButton.h b/src/modules/objects/KvsObject_radioButton.h index b57cd3801..81af5d1c9 100644 --- a/src/modules/objects/KvsObject_radioButton.h +++ b/src/modules/objects/KvsObject_radioButton.h @@ -36,7 +36,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool setText(KviKvsObjectFunctionCall * c); bool isChecked(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_slider.cpp b/src/modules/objects/KvsObject_slider.cpp index 73b71937e..b36350810 100644 --- a/src/modules/objects/KvsObject_slider.cpp +++ b/src/modules/objects/KvsObject_slider.cpp @@ -67,11 +67,11 @@ Sets the tickmark settings for this slider.[br] Values are:[br] [pre] - NoMarks - do not draw any tickmarks.[br] - Both - draw tickmarks on both sides of the groove.[br] - Above - draw tickmarks above the (horizontal) slider[br] - Below - draw tickmarks below the (horizontal) slider[br] - Left - draw tickmarks to the left of the (vertical) slider[br] + NoMarks - do not draw any tickmarks. + Both - draw tickmarks on both sides of the groove. + Above - draw tickmarks above the (horizontal) slider + Below - draw tickmarks below the (horizontal) slider + Left - draw tickmarks to the left of the (vertical) slider Right - draw tickmarks to the right of the (vertical) slider [/pre] !fn: $setTickInterval(<value>) diff --git a/src/modules/objects/KvsObject_slider.h b/src/modules/objects/KvsObject_slider.h index 953add8a9..5ce6ae201 100644 --- a/src/modules/objects/KvsObject_slider.h +++ b/src/modules/objects/KvsObject_slider.h @@ -36,7 +36,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool setTracking(KviKvsObjectFunctionCall * c); bool setValue(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_socket.cpp b/src/modules/objects/KvsObject_socket.cpp index 92f2e3db9..b1e492c7e 100644 --- a/src/modules/objects/KvsObject_socket.cpp +++ b/src/modules/objects/KvsObject_socket.cpp @@ -101,10 +101,10 @@ const char * const sockerrors_tbl[] = { [pre] 0 = Unconnected 1 = HostLookUp - 2 = Connecting[br] - 3 = Connected[br] - 4 = Bound[br] - 5 = Closing[br] + 2 = Connecting + 3 = Connected + 4 = Bound + 5 = Closing 6 = Listening [/pre] !fn: $connect(<host>,<port>) @@ -325,7 +325,6 @@ KVSO_CLASS_FUNCTION(socket, status) KVSO_CLASS_FUNCTION(socket, close) { - Q_UNUSED(c); m_pSocket->disconnectFromHost(); return true; } @@ -408,7 +407,7 @@ KVSO_CLASS_FUNCTION(socket, read) // convert NULLS to char 255 char * buffer = (char *)KviMemory::allocate(iLen); m_pSocket->read(buffer, iLen); - for(size_t i{}; i < iLen; i++) + for(int i{}; i < iLen; i++) { if(!buffer[i]) buffer[i] = (char)(255); diff --git a/src/modules/objects/KvsObject_socket.h b/src/modules/objects/KvsObject_socket.h index 2bb623be9..09c8159eb 100644 --- a/src/modules/objects/KvsObject_socket.h +++ b/src/modules/objects/KvsObject_socket.h @@ -35,13 +35,13 @@ class KvsObject_socket : public KviKvsObject public: KVSO_DECLARE_OBJECT(KvsObject_socket) protected: - QAbstractSocket * m_pSocket; - QTcpServer * m_pServer; - KviKvsRunTimeContext * m_pContext; - bool bIsSetFromExternal; + QAbstractSocket * m_pSocket = nullptr; + QTcpServer * m_pServer = nullptr; + KviKvsRunTimeContext * m_pContext = nullptr; + bool bIsSetFromExternal = false; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; const char * getStateString(QAbstractSocket::SocketState); void setInternalSocket(QAbstractSocket * pSocket) diff --git a/src/modules/objects/KvsObject_spinBox.h b/src/modules/objects/KvsObject_spinBox.h index f0eb2313d..76f25d9e2 100644 --- a/src/modules/objects/KvsObject_spinBox.h +++ b/src/modules/objects/KvsObject_spinBox.h @@ -36,7 +36,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool setTracking(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_sql.cpp b/src/modules/objects/KvsObject_sql.cpp index 7fd68c240..a4c036546 100644 --- a/src/modules/objects/KvsObject_sql.cpp +++ b/src/modules/objects/KvsObject_sql.cpp @@ -27,7 +27,7 @@ #include "KviLocale.h" #include "KvsObject_sql.h" #include "KvsObject_memoryBuffer.h" -#include <stdlib.h> +#include <cstdlib> #include <QHash> #include <QSqlDriver> #include <QSqlError> @@ -482,8 +482,7 @@ KVSO_CLASS_FUNCTION(sql, queryRecord) else pValue = new KviKvsVariant(QString()); pHash->set(record.fieldName(i), pValue); - KviKvsVariant * value2 = pHash->get(record.fieldName(i)); - value2->type(); + (void)pHash->get(record.fieldName(i)); } c->returnValue()->setHash(pHash); return true; diff --git a/src/modules/objects/KvsObject_tabWidget.h b/src/modules/objects/KvsObject_tabWidget.h index 9b0b14d1c..5db1f58b3 100644 --- a/src/modules/objects/KvsObject_tabWidget.h +++ b/src/modules/objects/KvsObject_tabWidget.h @@ -36,7 +36,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; QList<kvs_hobject_t> tabsList; bool addTab(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_tableWidget.cpp b/src/modules/objects/KvsObject_tableWidget.cpp index 17c12fd66..d2d7bee17 100644 --- a/src/modules/objects/KvsObject_tableWidget.cpp +++ b/src/modules/objects/KvsObject_tableWidget.cpp @@ -737,28 +737,24 @@ KVSO_CLASS_FUNCTION(tableWidget, setCellWidget) KVSO_CLASS_FUNCTION(tableWidget, hideHorizontalHeader) { - Q_UNUSED(c); ((QTableWidget *)widget())->horizontalHeader()->hide(); return true; } KVSO_CLASS_FUNCTION(tableWidget, hideVerticalHeader) { - Q_UNUSED(c); ((QTableWidget *)widget())->verticalHeader()->hide(); return true; } KVSO_CLASS_FUNCTION(tableWidget, showHorizontalHeader) { - Q_UNUSED(c); ((QTableWidget *)widget())->horizontalHeader()->show(); return true; } KVSO_CLASS_FUNCTION(tableWidget, showVerticalHeader) { - Q_UNUSED(c); ((QTableWidget *)widget())->verticalHeader()->show(); return true; } diff --git a/src/modules/objects/KvsObject_tableWidget.h b/src/modules/objects/KvsObject_tableWidget.h index b25613c36..416e78f9b 100644 --- a/src/modules/objects/KvsObject_tableWidget.h +++ b/src/modules/objects/KvsObject_tableWidget.h @@ -39,15 +39,15 @@ class KvsObject_tableWidget; class KviCellItemDelegate : public QItemDelegate { public: - KviCellItemDelegate(QAbstractItemView * pWidget = 0, KvsObject_tableWidget * pParent = 0); + KviCellItemDelegate(QAbstractItemView * pWidget = nullptr, KvsObject_tableWidget * pParent = nullptr); ~KviCellItemDelegate(); protected: KvsObject_tableWidget * m_pParentScript; public: - QSize sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const; - void paint(QPainter * pPainter, const QStyleOptionViewItem & option, const QModelIndex & index) const; + QSize sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const override; + void paint(QPainter * pPainter, const QStyleOptionViewItem & option, const QModelIndex & index) const override; }; class KvsObject_tableWidget : public KvsObject_widget @@ -60,11 +60,11 @@ public: bool paint(QPainter * pPainter, const QStyleOptionViewItem & option, const QModelIndex & index); protected: - KviKvsRunTimeContext * m_pContext; - KviCellItemDelegate * m_pCellItemDelegate; + KviKvsRunTimeContext * m_pContext = nullptr; + KviCellItemDelegate * m_pCellItemDelegate = nullptr; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool setText(KviKvsObjectFunctionCall * c); bool setForeground(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_textBrowser.h b/src/modules/objects/KvsObject_textBrowser.h index a4fc36041..eda1d4ea6 100644 --- a/src/modules/objects/KvsObject_textBrowser.h +++ b/src/modules/objects/KvsObject_textBrowser.h @@ -38,7 +38,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool setSource(KviKvsObjectFunctionCall * c); bool forward(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_toolBar.h b/src/modules/objects/KvsObject_toolBar.h index ce6fa0620..7eaa60bae 100644 --- a/src/modules/objects/KvsObject_toolBar.h +++ b/src/modules/objects/KvsObject_toolBar.h @@ -35,7 +35,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool addSeparator(KviKvsObjectFunctionCall * c); bool setLabel(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_toolButton.h b/src/modules/objects/KvsObject_toolButton.h index f9dcbb7d7..7cb4e43b4 100644 --- a/src/modules/objects/KvsObject_toolButton.h +++ b/src/modules/objects/KvsObject_toolButton.h @@ -36,7 +36,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool setImage(KviKvsObjectFunctionCall * c); bool setUsesBigPixmap(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_trayIcon.cpp b/src/modules/objects/KvsObject_trayIcon.cpp index 127be0065..d09523888 100644 --- a/src/modules/objects/KvsObject_trayIcon.cpp +++ b/src/modules/objects/KvsObject_trayIcon.cpp @@ -62,10 +62,10 @@ Message can be clicked by the user; the messageClickedEvent() will be triggered when this occurs.[br] Valid values for message_icon are: [pre] - - NoIcon : No icon is shown.[br] - - Information : An information icon is shown.[br] - - Warning : A standard warning icon is shown.[br] - - Critical : A critical warning icon is shown.[br] + - NoIcon : No icon is shown. + - Information : An information icon is shown. + - Warning : A standard warning icon is shown. + - Critical : A critical warning icon is shown. [/pre] !fn: setContextMenu(<popupmenu:hobject>). Associates the given <popupmenu> with the tray icon. @@ -74,11 +74,11 @@ If you reimplement this function the reason parameter will be passed as $0. Values for reason are:[br] [pre] - - Unknown : Unknown reason.[br] - - Context : The context menu for the tray icon was requested.[br] - - DoubleClick : The tray icon was double clicked.[br] - - Trigger : The tray icon was clicked.[br] - - MiddleClick : The tray icon was clicked with the middle mouse button.[br] + - Unknown : Unknown reason. + - Context : The context menu for the tray icon was requested. + - DoubleClick : The tray icon was double clicked. + - Trigger : The tray icon was clicked. + - MiddleClick : The tray icon was clicked with the middle mouse button. [/pre] The default implementation emits the [classfnc]$activated[/classfnc]() signal. !fn: messageClickedEvent() diff --git a/src/modules/objects/KvsObject_treeWidget.cpp b/src/modules/objects/KvsObject_treeWidget.cpp index afaf389ca..15b8e1a47 100644 --- a/src/modules/objects/KvsObject_treeWidget.cpp +++ b/src/modules/objects/KvsObject_treeWidget.cpp @@ -318,7 +318,6 @@ KVSO_CLASS_FUNCTION(treeWidget, setAcceptDrops) KVSO_CLASS_FUNCTION(treeWidget, clear) { - Q_UNUSED(c); if(widget()) ((QTreeWidget *)object())->clear(); return true; @@ -443,14 +442,12 @@ KVSO_CLASS_FUNCTION(treeWidget, setAllColumnsShowFocus) KVSO_CLASS_FUNCTION(treeWidget, hideListViewHeader) { - Q_UNUSED(c); ((QTreeWidget *)widget())->header()->hide(); return true; } KVSO_CLASS_FUNCTION(treeWidget, showListViewHeader) { - Q_UNUSED(c); ((QTreeWidget *)widget())->header()->show(); return true; } diff --git a/src/modules/objects/KvsObject_treeWidget.h b/src/modules/objects/KvsObject_treeWidget.h index db277c107..bfa64c589 100644 --- a/src/modules/objects/KvsObject_treeWidget.h +++ b/src/modules/objects/KvsObject_treeWidget.h @@ -42,7 +42,7 @@ public: void fileDropped(QString &, QTreeWidgetItem *); protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool setBackgroundImage(KviKvsObjectFunctionCall * c); bool addColumn(KviKvsObjectFunctionCall * c); @@ -90,15 +90,15 @@ class KviKvsTreeWidget : public QTreeWidget Q_OBJECT public: KviKvsTreeWidget(QWidget * par, const char * name, KvsObject_treeWidget *); - virtual ~KviKvsTreeWidget(); + ~KviKvsTreeWidget(); protected: KvsObject_treeWidget * m_pParentScript; protected: - void dropEvent(QDropEvent * e); - void dragEnterEvent(QDragEnterEvent * e); - void dragMoveEvent(QDragMoveEvent * e); + void dropEvent(QDropEvent * e) override; + void dragEnterEvent(QDragEnterEvent * e) override; + void dragMoveEvent(QDragMoveEvent * e) override; }; #endif // _CLASS_TREEWIDGET_H_ diff --git a/src/modules/objects/KvsObject_treeWidgeteItem.cpp b/src/modules/objects/KvsObject_treeWidgeteItem.cpp index dc38fc591..ca5419f1e 100644 --- a/src/modules/objects/KvsObject_treeWidgeteItem.cpp +++ b/src/modules/objects/KvsObject_treeWidgeteItem.cpp @@ -345,7 +345,7 @@ KVSO_CLASS_FUNCTION(treeWidgetItem, isChecked) c->returnValue()->setBoolean(false); return true; } - c->returnValue()->setBoolean(((QTreeWidgetItem *)m_pTreeWidgetItem)->checkState(0) == Qt::Checked ? 1 : 0); + c->returnValue()->setBoolean(((QTreeWidgetItem *)m_pTreeWidgetItem)->checkState(0) == Qt::Checked ? true : false); return true; } diff --git a/src/modules/objects/KvsObject_treeWidgeteItem.h b/src/modules/objects/KvsObject_treeWidgeteItem.h index 8d3aa01f6..9e4c13f6e 100644 --- a/src/modules/objects/KvsObject_treeWidgeteItem.h +++ b/src/modules/objects/KvsObject_treeWidgeteItem.h @@ -40,7 +40,7 @@ protected: QTreeWidgetItem * m_pTreeWidgetItem; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; protected: bool setText(KviKvsObjectFunctionCall * c); @@ -68,7 +68,7 @@ class KviKvsStandardTreeWidgetItem : public QTreeWidgetItem public: KviKvsStandardTreeWidgetItem(KvsObject_treeWidgetItem * ob, QTreeWidget * par); KviKvsStandardTreeWidgetItem(KvsObject_treeWidgetItem * ob, QTreeWidgetItem * par); - virtual ~KviKvsStandardTreeWidgetItem(); + ~KviKvsStandardTreeWidgetItem(); protected: KvsObject_treeWidgetItem * m_pMasterObject; diff --git a/src/modules/objects/KvsObject_vBox.cpp b/src/modules/objects/KvsObject_vBox.cpp index 76f750fc1..557dd5b35 100644 --- a/src/modules/objects/KvsObject_vBox.cpp +++ b/src/modules/objects/KvsObject_vBox.cpp @@ -82,15 +82,15 @@ const int align_cod[] = { Adds a stretchable space with zero minimum size and stretch factor stretch to the end of this box layout. !fn: $setAlignment(<flag1:string>, <flag2:string>, ...) Sets the alignment for widget w to flags, given as parameters.[br] - Valid flags are:[br] + Valid flags are: [pre] - Right[br] - Left[br] - Top[br] - Bottom[br] - HCenter[br] - VCenter[br] - Center[br] + Right + Left + Top + Bottom + HCenter + VCenter + Center Justify [/pre] */ @@ -111,11 +111,8 @@ KVSO_BEGIN_DESTRUCTOR(KvsObject_vBox) KVSO_END_CONSTRUCTOR(KvsObject_vBox) -bool KvsObject_vBox::init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) +bool KvsObject_vBox::init(KviKvsRunTimeContext *, KviKvsVariantList *) { - Q_UNUSED(pContext); - Q_UNUSED(pParams); - SET_OBJECT(KviTalVBox); return true; } diff --git a/src/modules/objects/KvsObject_vBox.h b/src/modules/objects/KvsObject_vBox.h index 24b7ae590..4b46c4274 100644 --- a/src/modules/objects/KvsObject_vBox.h +++ b/src/modules/objects/KvsObject_vBox.h @@ -36,7 +36,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool setMargin(KviKvsObjectFunctionCall * c); bool setSpacing(KviKvsObjectFunctionCall * c); bool setStretchFactor(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_webView.cpp b/src/modules/objects/KvsObject_webView.cpp index 0a0a24354..abb46faba 100644 --- a/src/modules/objects/KvsObject_webView.cpp +++ b/src/modules/objects/KvsObject_webView.cpp @@ -1094,7 +1094,6 @@ KVSO_CLASS_FUNCTION(webView, addToJavaScriptWindowObject) } KVSO_CLASS_FUNCTION(webView, setEventFilter) { - Q_UNUSED(c); QWebFrame * pFrame; pFrame = ((QWebView *)widget())->page()->mainFrame(); pFrame->addToJavaScriptWindowObject("kvs", this); @@ -1323,8 +1322,7 @@ void KvsObject_webView::slotDownloadRequest(const QNetworkRequest & r) pReply->deleteLater(); return; } - KviKvsDownloadHandler * pHandler = new KviKvsDownloadHandler(this, pFile, pReply, g_iDownloadId); - Q_UNUSED(pHandler); + (void)new KviKvsDownloadHandler(this, pFile, pReply, g_iDownloadId); g_iDownloadId++; } } diff --git a/src/modules/objects/KvsObject_webView.h b/src/modules/objects/KvsObject_webView.h index 45de20ceb..92c47804a 100644 --- a/src/modules/objects/KvsObject_webView.h +++ b/src/modules/objects/KvsObject_webView.h @@ -44,15 +44,15 @@ public: KviKvsWebView(QWidget * par, const char * name, KvsObject_webView *); //void accept(); //void reject(); - virtual ~KviKvsWebView(); + ~KviKvsWebView(); protected: KvsObject_webView * m_pParentScript; protected: - virtual void mouseMoveEvent(QMouseEvent * ev); - virtual void contextMenuEvent(QContextMenuEvent *); - virtual bool event(QEvent * e); + void mouseMoveEvent(QMouseEvent * ev) override; + void contextMenuEvent(QContextMenuEvent *) override; + bool event(QEvent * e) override; /*protected slots: void slotNextClicked(); void slotBackClicked(); @@ -65,16 +65,16 @@ class KvsObject_webView : public KviKvsObject public: KVSO_DECLARE_OBJECT(KvsObject_webView) protected: - KviKvsRunTimeContext * m_pContext; - int elementMapId; + KviKvsRunTimeContext * m_pContext = nullptr; + int elementMapId = 1; int insertElement(const QWebElement & ele); QWebElement getElement(int iIdx); int getElementId(const QWebElement &); QHash<int, QWebElement> m_elementMapper; - KviPointerList<KviKvsObject> * lWebelement; + KviPointerList<KviKvsObject> * lWebelement = nullptr; QHash<QString, QWebElement *> m_dictCache; - KviPointerList<QNetworkReply> * m_pReplyList; - QNetworkAccessManager * m_pNetworkManager; + KviPointerList<QNetworkReply> * m_pReplyList = nullptr; + QNetworkAccessManager * m_pNetworkManager = nullptr; QWebElementCollection m_webElementCollection; QWebElement m_currentElement; @@ -83,7 +83,7 @@ public: protected: void getFrames(QWebFrame * pCurFrame, QStringList & szFramesNames); QWebFrame * findFrame(QWebFrame * pCurFrame, QString & szFrameName); - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool removeFromDocument(KviKvsObjectFunctionCall * c); bool makePreview(KviKvsObjectFunctionCall * c); @@ -160,7 +160,7 @@ class KviKvsDownloadHandler : public QObject public: KviKvsDownloadHandler(KvsObject_webView * pParent, QFile * pFile, QNetworkReply * pNetReply, int iId); - virtual ~KviKvsDownloadHandler(); + ~KviKvsDownloadHandler(); protected: KvsObject_webView * m_pParentScript; diff --git a/src/modules/objects/KvsObject_widget.cpp b/src/modules/objects/KvsObject_widget.cpp index eb3009a2b..c41183d5b 100644 --- a/src/modules/objects/KvsObject_widget.cpp +++ b/src/modules/objects/KvsObject_widget.cpp @@ -422,15 +422,15 @@ const char * const widgettypes_tbl[] = { This function sets widget flags, given as parameters. Valid flags are: [pre] - TopLevel - indicates that this widget is a top-level widget[br] - Dialog - indicates that this widget is a top-level window that should be decorated as a dialog[br] - Desktop - indicates that this widget is the desktop[br] - Popup - indicates that this widget is a popup top-level window[br] - Title - gives the window a title bar[br] - StaysOnTop - window stays on top [br] - SysMenu - add a windows system menu[br] - Minimize - add a minimize button for the sysmenu style[br] - Maximize - add a maximize button for the sysmenu style[br] + TopLevel - indicates that this widget is a top-level widget + Dialog - indicates that this widget is a top-level window that should be decorated as a dialog + Desktop - indicates that this widget is the desktop + Popup - indicates that this widget is a popup top-level window + Title - gives the window a title bar + StaysOnTop - window stays on top + SysMenu - add a windows system menu + Minimize - add a minimize button for the sysmenu style + Maximize - add a maximize button for the sysmenu style [/pre] !fn: $centerToScreen() Centers the window on the screen (useful only for toplevel widgets).[br] @@ -439,48 +439,48 @@ const char * const widgettypes_tbl[] = { Sets the way the widget accepts keyboard focus.[br] Valid parameters are: [pre] - - TabFocus; (widget accepts keyboard focus by tabbing)[br] - - ClickFocus; (widget accepts keyboard focus by clicking)[br] - - StrongFocus; (widget accepts both tabbing/clicking)[br] - - No Focus; (widget does not accept focus at all; this is the default value)[br] + - TabFocus; (widget accepts keyboard focus by tabbing) + - ClickFocus; (widget accepts keyboard focus by clicking) + - StrongFocus; (widget accepts both tabbing/clicking) + - NoFocus; (widget does not accept focus at all; this is the default value) [/pre] !fn: $keyPressEvent(<key>) If widget accepts keyboard focus (see [classfnc]$setFocusPolicy[/classfnc] ) this function handles for keys; In its argument the key pressed.[br] Special keys are: [pre] - - Return [br] - - Enter [br] - - Down (cursor arrow down) [br] - - Up (cursor arrow up) [br] - - Left (cursor arrow left) [br] - - Right (cursor arrow right) [br] - - Shift [br] - - Ctrl [br] - - Alt [br] - - CapsLock [br] - - Backspace [br] - - Del [br] - - Esc [br] - - 0 [br] - - 1 [br] - - 2 [br] - - 3 [br] - - 4 [br] - - 5 [br] - - 6 [br] - - 7 [br] - - 8 [br] - - 9 [br] - - + [br] - - - [br] - - * [br] - - / [br] - - ( [br] - - ) [br] - - = [br] - - . [br] - - ^ [br] + - Return + - Enter + - Down (cursor arrow down) + - Up (cursor arrow up) + - Left (cursor arrow left) + - Right (cursor arrow right) + - Shift + - Ctrl + - Alt + - CapsLock + - Backspace + - Del + - Esc + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - + + - - + - * + - / + - ( + - ) + - = + - . + - ^ [/pre] !fn: $mapFromGlobal(<x>,<y>) Translates the global screen coordinate pos to widget coordinates. diff --git a/src/modules/objects/KvsObject_widget.h b/src/modules/objects/KvsObject_widget.h index 4d35b34e1..a7fc36a17 100644 --- a/src/modules/objects/KvsObject_widget.h +++ b/src/modules/objects/KvsObject_widget.h @@ -46,14 +46,14 @@ public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; #ifdef COMPILE_WEBKIT_SUPPORT - QWebView * m_pWebview; + QWebView * m_pWebview = nullptr; #endif - virtual bool eventFilter(QObject * o, QEvent * e); - KviKvsRunTimeContext * m_pContext; - QGraphicsDropShadowEffect * pGraphicsEffect; + bool eventFilter(QObject * o, QEvent * e) override; + KviKvsRunTimeContext * m_pContext = nullptr; + QGraphicsDropShadowEffect * pGraphicsEffect = nullptr; // ok, it is clear that we're messing with the naming conventions for the // object classes :D // let's try to use this one: @@ -144,12 +144,12 @@ class KviKvsWidget : public QWidget Q_PROPERTY(QSize sizeHint READ sizeHint) public: KviKvsWidget(KvsObject_widget * ob, QWidget * par); - virtual ~KviKvsWidget(); + ~KviKvsWidget(); protected: KvsObject_widget * m_pObject; public: - QSize sizeHint() const; + QSize sizeHint() const override; }; #endif //_CLASS_WIDGET_H_ diff --git a/src/modules/objects/KvsObject_window.cpp b/src/modules/objects/KvsObject_window.cpp index 28ccbd7a8..5bd8b428a 100644 --- a/src/modules/objects/KvsObject_window.cpp +++ b/src/modules/objects/KvsObject_window.cpp @@ -34,8 +34,6 @@ KviKvsScriptWindowWindow::KviKvsScriptWindowWindow(const QString & szName) : KviWindow(KviWindow::ScriptObject, szName) { - m_pCentralWidget = nullptr; - m_pIcon = nullptr; } KviKvsScriptWindowWindow::~KviKvsScriptWindowWindow() diff --git a/src/modules/objects/KvsObject_window.h b/src/modules/objects/KvsObject_window.h index 172db20de..0c21138ff 100644 --- a/src/modules/objects/KvsObject_window.h +++ b/src/modules/objects/KvsObject_window.h @@ -36,12 +36,12 @@ public: ~KviKvsScriptWindowWindow(); protected: - KvsObject_widget * m_pCentralWidgetObject; - QWidget * m_pCentralWidget; - QPixmap * m_pIcon; + KvsObject_widget * m_pCentralWidgetObject = nullptr; + QWidget * m_pCentralWidget = nullptr; + QPixmap * m_pIcon = nullptr; public: - virtual QPixmap * myIconPtr(); + QPixmap * myIconPtr() override; void setIcon(QPixmap * pPixmap) { m_pIcon = pPixmap; }; void setCentralWidget(KvsObject_widget * o, QWidget * w); void setWindowTitleString(const QString & s) @@ -49,7 +49,7 @@ public: setFixedCaption(s); fillCaptionBuffers(); }; - virtual void resizeEvent(QResizeEvent * e); + void resizeEvent(QResizeEvent * e) override; protected slots: void centralWidgetObjectDestroyed(); void centralWidgetDestroyed(); @@ -60,10 +60,10 @@ class KvsObject_window : public KvsObject_widget public: KVSO_DECLARE_OBJECT(KvsObject_window) public: - QWidget * widget() { return (QWidget *)object(); }; + QWidget * widget() { return (QWidget *)object(); } protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool setWindowTitle(KviKvsObjectFunctionCall * c); bool setIcon(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_wizard.h b/src/modules/objects/KvsObject_wizard.h index 976e25f93..b37b0aa8a 100644 --- a/src/modules/objects/KvsObject_wizard.h +++ b/src/modules/objects/KvsObject_wizard.h @@ -41,7 +41,7 @@ public: void backClicked(); protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool addPage(KviKvsObjectFunctionCall * c); bool insertPage(KviKvsObjectFunctionCall * c); @@ -68,7 +68,7 @@ public: KviKvsMdmWizard(QWidget * par, const char * name, KvsObject_wizard *); void accept(); void reject(); - virtual ~KviKvsMdmWizard(); + ~KviKvsMdmWizard(); protected: KvsObject_wizard * m_pParentScript; diff --git a/src/modules/objects/KvsObject_workspace.h b/src/modules/objects/KvsObject_workspace.h index 3a8aa1c0a..40d7bb5c8 100644 --- a/src/modules/objects/KvsObject_workspace.h +++ b/src/modules/objects/KvsObject_workspace.h @@ -36,7 +36,7 @@ public: QWidget * widget() { return (QWidget *)object(); }; protected: QHash<kvs_hobject_t, QMdiSubWindow *> * pWidgetDict; - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; bool addSubWindow(KviKvsObjectFunctionCall * c); bool removeSubWindow(KviKvsObjectFunctionCall * c); diff --git a/src/modules/objects/KvsObject_wrapper.cpp b/src/modules/objects/KvsObject_wrapper.cpp index 1131aa4c2..2c7763a1b 100644 --- a/src/modules/objects/KvsObject_wrapper.cpp +++ b/src/modules/objects/KvsObject_wrapper.cpp @@ -285,19 +285,16 @@ QWidget * KvsObject_wrapper::findTopLevelWidgetToWrap(const QString & szClass, c if(list.isEmpty()) return nullptr; - Q_FOREACH(QWidget * w, list) + for(QWidget * w : list) { - //qDebug("TLW: %s::%s (look for %s::%s)",w->metaObject()->className(),w->objectName().toUtf8().data(),szClass.toUtf8().data(),szName.toUtf8().data()); - if( - ( - szClass.isEmpty() || KviQString::equalCI(w->metaObject()->className(), szClass)) + if((szClass.isEmpty() || KviQString::equalCI(w->metaObject()->className(), szClass)) && (szName.isEmpty() || KviQString::equalCI(w->objectName(), szName))) return w; } if(bRecursive) { - Q_FOREACH(QWidget * w, list) + for(QWidget * w : list) { w = findWidgetToWrap(szClass, szName, w, bRecursive); if(w) @@ -314,22 +311,20 @@ QWidget * KvsObject_wrapper::findWidgetToWrap(const QString & szClass, const QSt if(list.isEmpty()) return nullptr; - Q_FOREACH(QObject * obj, list) + for(QObject * obj : list) { if(!obj->isWidgetType()) continue; QWidget * w = (QWidget *)obj; - if( - ( - szClass.isEmpty() || KviQString::equalCI(w->metaObject()->className(), szClass)) + if((szClass.isEmpty() || KviQString::equalCI(w->metaObject()->className(), szClass)) && (szName.isEmpty() || KviQString::equalCI(w->objectName(), szName))) return w; } if(bRecursive) { - Q_FOREACH(QObject * obj, list) + for(QObject * obj : list) { if(!obj->isWidgetType()) continue; diff --git a/src/modules/objects/KvsObject_wrapper.h b/src/modules/objects/KvsObject_wrapper.h index 523ffe6c6..0a79d2d3b 100644 --- a/src/modules/objects/KvsObject_wrapper.h +++ b/src/modules/objects/KvsObject_wrapper.h @@ -37,7 +37,7 @@ public: public: QWidget * widget() { return (QWidget *)object(); }; protected: - virtual bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams); + bool init(KviKvsRunTimeContext * pContext, KviKvsVariantList * pParams) override; QWidget * findTopLevelWidgetToWrap(const QString & szClass, const QString & szName, bool bRecursive); QWidget * findWidgetToWrap(const QString & szClass, const QString & szName, QWidget * pParent, bool bRecursive); }; diff --git a/src/modules/objects/libkviobjects.cpp b/src/modules/objects/libkviobjects.cpp index d44bc06f2..12d9e6c00 100644 --- a/src/modules/objects/libkviobjects.cpp +++ b/src/modules/objects/libkviobjects.cpp @@ -174,7 +174,7 @@ static bool objects_kvs_cmd_killClass(KviKvsModuleCommandCall * c) kills only all the instances of that class (derived class definitions and instances in this case are [b]not[/b] killed).[br] @seealso: - [cmd]class[/cmd], [cmd]objects.clear[/cmd], [fnc]$classDefined[/fnc](), + [cmd]class[/cmd], [cmd]objects.clearObjects[/cmd], [fnc]$classDefined[/fnc](), [doc:objects]Object scripting[/doc] */ @@ -202,15 +202,15 @@ static bool objects_kvs_cmd_killClass(KviKvsModuleCommandCall * c) static bool objects_kvs_cmd_clearObjects(KviKvsModuleCommandCall * c) { /* - @doc: objects.clear + @doc: objects.clearObjects @title: - objects.clear + objects.clearObjects @type: command @short: Removes all the user class definitions @syntax: - objects.clear [-i] + objects.clearObjects [-i] @description: Removes the definition of all the user classes and kill all the object instances (also instances of the builtin classes).[br] diff --git a/src/modules/objects/object_macros.h b/src/modules/objects/object_macros.h index f89318575..28525e7d0 100644 --- a/src/modules/objects/object_macros.h +++ b/src/modules/objects/object_macros.h @@ -58,7 +58,7 @@ g_pKvs##__className##Class->registerStandardFalseReturnFunctionHandler(__szName); #define KVSO_BEGIN_REGISTERCLASS(__className, __stringName, __baseClass) \ - static KviKvsObjectClass * g_pKvs##__className##Class = 0; \ + static KviKvsObjectClass * g_pKvs##__className##Class = nullptr; \ static KviKvsObject * kvs_##__className##_createInstance(KviKvsObjectClass * pClass, KviKvsObject * pParent, const QString & szName) \ { \ return new __className(pClass, pParent, szName); \ @@ -66,7 +66,7 @@ void __className::unregisterSelf() \ { \ delete g_pKvs##__className##Class; \ - g_pKvs##__className##Class = 0; \ + g_pKvs##__className##Class = nullptr; \ } \ void __className::registerSelf() \ { \ @@ -92,7 +92,7 @@ } #define KVSO_CLASS_FUNCTION(__className, __functionName) \ - bool KvsObject_##__className::__functionName(KviKvsObjectFunctionCall * c) + bool KvsObject_##__className::__functionName([[maybe_unused]] KviKvsObjectFunctionCall * c) #define CHECK_INTERNAL_POINTER(__pointer) \ if(!__pointer) \ diff --git a/src/modules/objects/qtftp/qftp.cpp b/src/modules/objects/qtftp/qftp.cpp index 565172619..935bdb8b0 100644 --- a/src/modules/objects/qtftp/qftp.cpp +++ b/src/modules/objects/qtftp/qftp.cpp @@ -43,6 +43,8 @@ //#define QFTPDTP_DEBUG #include "qftp.h" + +#include <utility> #include "qabstractsocket.h" #ifndef QT_NO_FTP @@ -90,14 +92,18 @@ public: QBasicAtomicInt QFtpCommand::idCounter = Q_BASIC_ATOMIC_INITIALIZER(1); QFtpCommand::QFtpCommand(QFtp::Command cmd, QStringList raw, const QByteArray & ba) - : command(cmd), rawCmds(raw), is_ba(true) + : command(cmd) + , rawCmds(std::move(raw)) + , is_ba(true) { id = idCounter.fetchAndAddRelaxed(1); data.ba = new QByteArray(ba); } QFtpCommand::QFtpCommand(QFtp::Command cmd, QStringList raw, QIODevice * dev) - : command(cmd), rawCmds(raw), is_ba(false) + : command(cmd) + , rawCmds(std::move(raw)) + , is_ba(false) { id = idCounter.fetchAndAddRelaxed(1); data.dev = dev; @@ -958,7 +964,7 @@ bool QFtpPI::processReply() // both examples where the parenthesis are used, and where // they are missing. We need to scan for the address and host // info. - QRegExp addrPortPattern(QLatin1String("(\\d+),(\\d+),(\\d+),(\\d+),(\\d+),(\\d+)")); + QRegExp addrPortPattern(QLatin1String(R"((\d+),(\d+),(\d+),(\d+),(\d+),(\d+))")); if(addrPortPattern.indexIn(replyText) == -1) { #if defined(QFTPPI_DEBUG) diff --git a/src/modules/objects/qtftp/qurlinfo.cpp b/src/modules/objects/qtftp/qurlinfo.cpp index 2df6adfdb..6e19960c5 100644 --- a/src/modules/objects/qtftp/qurlinfo.cpp +++ b/src/modules/objects/qtftp/qurlinfo.cpp @@ -43,38 +43,32 @@ #include "qurl.h" #include "qdir.h" -#include <limits.h> +#include <climits> QT_BEGIN_NAMESPACE class QUrlInfoPrivate { public: - QUrlInfoPrivate() : permissions(0), - size(0), - isDir(false), - isFile(true), - isSymLink(false), - isWritable(true), - isReadable(true), - isExecutable(false) + QUrlInfoPrivate() + { } QString name; - int permissions; + int permissions{ 0 }; QString owner; QString group; - qint64 size; + qint64 size{ 0 }; QDateTime lastModified; QDateTime lastRead; - bool isDir; - bool isFile; - bool isSymLink; - bool isWritable; - bool isReadable; - bool isExecutable; + bool isDir{ false }; + bool isFile{ true }; + bool isSymLink{ false }; + bool isWritable{ true }; + bool isReadable{ true }; + bool isExecutable{ false }; }; /*! diff --git a/src/modules/objects/qthttp/qhttp.cpp b/src/modules/objects/qthttp/qhttp.cpp index dbecaa42e..84e5e28e5 100644 --- a/src/modules/objects/qthttp/qhttp.cpp +++ b/src/modules/objects/qthttp/qhttp.cpp @@ -42,6 +42,8 @@ //#define QHTTP_DEBUG #include <qplatformdefs.h> + +#include <utility> #include "qhttp.h" #ifndef QT_NO_HTTP @@ -71,7 +73,7 @@ class QHttpNormalRequest; class QHttpRequest { public: - QHttpRequest() : finished(false) + QHttpRequest() { id = idCounter.fetchAndAddRelaxed(1); } @@ -86,7 +88,7 @@ public: virtual QIODevice * destinationDevice() = 0; int id; - bool finished; + bool finished{ false }; private: static QBasicAtomicInt idCounter; @@ -98,11 +100,20 @@ public: Q_DECLARE_PUBLIC(QHttp) inline QHttpPrivate(QHttp * parent) - : socket(nullptr), reconnectAttempts(2), - deleteSocket(0), state(QHttp::Unconnected), - error(QHttp::NoError), port(0), mode(QHttp::ConnectionModeHttp), - toDevice(nullptr), postDevice(nullptr), bytesDone(0), chunkedSize(-1), - repost(false), pendingPost(false), q_ptr(parent) + : socket(nullptr) + , reconnectAttempts(2) + , deleteSocket(false) + , state(QHttp::Unconnected) + , error(QHttp::NoError) + , port(0) + , mode(QHttp::ConnectionModeHttp) + , toDevice(nullptr) + , postDevice(nullptr) + , bytesDone(0) + , chunkedSize(-1) + , repost(false) + , pendingPost(false) + , q_ptr(parent) { } @@ -346,8 +357,10 @@ void QHttpPGHRequest::start(QHttp * http) class QHttpSetHostRequest : public QHttpRequest { public: - QHttpSetHostRequest(const QString & h, quint16 p, QHttp::ConnectionMode m) - : hostName(h), port(p), mode(m) + QHttpSetHostRequest(QString h, quint16 p, QHttp::ConnectionMode m) + : hostName(std::move(h)) + , port(p) + , mode(m) { } @@ -396,7 +409,9 @@ void QHttpSetHostRequest::start(QHttp * http) class QHttpSetUserRequest : public QHttpRequest { public: - QHttpSetUserRequest(const QString & userName, const QString & password) : user(userName), pass(password) + QHttpSetUserRequest(QString userName, QString password) + : user(std::move(userName)) + , pass(std::move(password)) { } @@ -510,8 +525,7 @@ class QHttpCloseRequest : public QHttpRequest { public: QHttpCloseRequest() - { - } + = default; void start(QHttp *) override; QIODevice * sourceDevice() override diff --git a/src/modules/objects/qthttp/qhttpauthenticator.cpp b/src/modules/objects/qthttp/qhttpauthenticator.cpp index c6063c6c4..194fe856d 100644 --- a/src/modules/objects/qthttp/qhttpauthenticator.cpp +++ b/src/modules/objects/qthttp/qhttpauthenticator.cpp @@ -860,10 +860,10 @@ const quint8 hirespversion = 1; class QNtlmBuffer { public: - QNtlmBuffer() : len(0), maxLen(0), offset(0) {} - quint16 len; - quint16 maxLen; - quint32 offset; + QNtlmBuffer() {} + quint16 len{ 0 }; + quint16 maxLen{ 0 }; + quint32 offset{ 0 }; enum { Size = 8 diff --git a/src/modules/options/OptionsDialog.cpp b/src/modules/options/OptionsDialog.cpp index 4249e2f54..6883337aa 100644 --- a/src/modules/options/OptionsDialog.cpp +++ b/src/modules/options/OptionsDialog.cpp @@ -191,7 +191,7 @@ OptionsDialog::OptionsDialog(QWidget * par, const QString & szGroup, bool bModal hbox->setMargin(3); m_pSearchLineEdit = new QLineEdit(hbox); - connect(m_pSearchLineEdit, SIGNAL(returnPressed()), this, SLOT(searchClicked())); + connect(m_pSearchLineEdit, SIGNAL(textEdited(const QString &)), this, SLOT(searchClicked())); m_pSearchButton = new QToolButton(hbox); m_pSearchButton->setIconSize(QSize(16, 16)); m_pSearchButton->setIcon(*(g_pIconManager->getSmallIcon(KviIconManager::Search))); @@ -322,6 +322,7 @@ void OptionsDialog::searchLineEditTextChanged(const QString &) bool OptionsDialog::searchInSelectors(KviOptionsWidget * pOptionsWidget, const QStringList & lKeywords) { KviPointerList<KviSelectorInterface> * selectors = pOptionsWidget->selectors(); + bool bCleaningUp = lKeywords.isEmpty(); bool bFoundSomethingHere = false; if(selectors->count() > 0) { @@ -331,28 +332,38 @@ bool OptionsDialog::searchInSelectors(KviOptionsWidget * pOptionsWidget, const Q QWidget * pWidget = selectors->at(i)->widgetToHighlight(); if(!pWidget) continue; - QString szTmp = pWidget->toolTip(); - szTmp = szTmp.replace(QRegExp("<[^<>]+>"), ""); - szText.append(szTmp); - if(!szText.isEmpty()) + if(bCleaningUp) { - bool bOk = true; - for(int j = 0; j < lKeywords.count(); j++) + QFont font = pWidget->font(); + font.setBold(false); + font.setUnderline(false); + pWidget->setFont(font); + } + else + { + QString szTmp = pWidget->toolTip(); + szTmp = szTmp.replace(QRegExp("<[^<>]+>"), ""); + szText.append(szTmp); + if(!szText.isEmpty()) { - if(szText.indexOf(lKeywords.at(j), 0, Qt::CaseInsensitive) == -1) + bool bOk = true; + for(int j = 0; j < lKeywords.count(); j++) { - bOk = false; - break; + if(szText.indexOf(lKeywords.at(j), 0, Qt::CaseInsensitive) == -1) + { + bOk = false; + break; + } } + if(bOk) + { + bFoundSomethingHere = true; + } + QFont font = pWidget->font(); + font.setBold(bOk); + font.setUnderline(bOk); + pWidget->setFont(font); } - if(bOk) - { - bFoundSomethingHere = true; - } - QFont font = pWidget->font(); - font.setBold(bOk); - font.setUnderline(bOk); - pWidget->setFont(font); } } } @@ -369,6 +380,7 @@ bool OptionsDialog::recursiveSearch(OptionsDialogTreeWidgetItem * pItem, const Q m_pWidgetStack->addWidget(pItem->m_pOptionsWidget); } + bool bCleaningUp = lKeywords.isEmpty(); bool bFoundSomethingHere = false; KviOptionsWidget * pOptionsWidget = pItem->m_pOptionsWidget; QTabWidget * pTab = pOptionsWidget->tabWidget(); @@ -377,12 +389,12 @@ bool OptionsDialog::recursiveSearch(OptionsDialogTreeWidgetItem * pItem, const Q for(int i = 0; i < pTab->count(); i++) { QString szTxt = pTab->tabText(i); - if(KviQString::equalCIN(szTxt, ">>> ", 4)) + if(bCleaningUp || KviQString::equalCIN(szTxt, ">>> ", 4)) { szTxt.replace(">>> ", ""); szTxt.replace(" <<<", ""); } - if(searchInSelectors((KviOptionsWidget *)pTab->widget(i), lKeywords)) + if(searchInSelectors((KviOptionsWidget *)pTab->widget(i), lKeywords) && !bCleaningUp) { bFoundSomethingHere = true; szTxt.insert(0, ">>> "); @@ -393,18 +405,21 @@ bool OptionsDialog::recursiveSearch(OptionsDialogTreeWidgetItem * pItem, const Q } else { - if(searchInSelectors(pOptionsWidget, lKeywords)) + if(searchInSelectors(pOptionsWidget, lKeywords) && !bCleaningUp) bFoundSomethingHere = true; } - QStringList szInstanceKeywords = pItem->m_pInstanceEntry->szKeywords.split(QChar(',')); - // debug all the "search keywords" for each entry in the options tree - // qDebug("OPT %s",pItem->m_pInstanceEntry->szKeywords.toUtf8().data()); + if (!bCleaningUp) + { + QStringList szInstanceKeywords = pItem->m_pInstanceEntry->szKeywords.split(QChar(',')); + // debug all the "search keywords" for each entry in the options tree + // qDebug("OPT %s",pItem->m_pInstanceEntry->szKeywords.toUtf8().data()); - for(int i = 0; i < szInstanceKeywords.count() && !bFoundSomethingHere; i++) - for(int j = 0; j < lKeywords.count() && !bFoundSomethingHere; j++) - if(szInstanceKeywords.at(i).contains(lKeywords.at(j), Qt::CaseInsensitive)) - bFoundSomethingHere = true; + for(int i = 0; i < szInstanceKeywords.count() && !bFoundSomethingHere; i++) + for(int j = 0; j < lKeywords.count() && !bFoundSomethingHere; j++) + if(szInstanceKeywords.at(i).contains(lKeywords.at(j), Qt::CaseInsensitive)) + bFoundSomethingHere = true; + } if(bFoundSomethingHere) { @@ -424,7 +439,7 @@ bool OptionsDialog::recursiveSearch(OptionsDialogTreeWidgetItem * pItem, const Q for(int j = 0; j < ccount; j++) { OptionsDialogTreeWidgetItem * pChild = (OptionsDialogTreeWidgetItem *)pItem->child(j); - bool bRet = recursiveSearch(pChild, lKeywords); + bool bRet = recursiveSearch(pChild, lKeywords) && !bCleaningUp; if(bRet) bFoundSomethingInside = true; } @@ -455,11 +470,27 @@ void OptionsDialog::search(const QString & szKeywords) search(lKeywords); } +void OptionsDialog::clearSearch() +{ + m_pTreeWidget->setUpdatesEnabled(false); + + QTreeWidgetItemIterator it(m_pTreeWidget); + while (*it) { + recursiveSearch(((OptionsDialogTreeWidgetItem *)* it), QStringList()); + ++it; + } + + m_pTreeWidget->setUpdatesEnabled(true); + m_pTreeWidget->update(); +} + void OptionsDialog::searchClicked() { QString szTxt = m_pSearchLineEdit->text().trimmed(); - if(!szTxt.isEmpty()) + if(szTxt.length() > 1) search(szTxt); + else + clearSearch(); } void OptionsDialog::fillTreeWidget(QTreeWidgetItem * p, KviPointerList<OptionsWidgetInstanceEntry> * l, const QString & szGroup, bool bNotContainedOnly) diff --git a/src/modules/options/OptionsDialog.h b/src/modules/options/OptionsDialog.h index 1d2cc912b..8af5e1048 100644 --- a/src/modules/options/OptionsDialog.h +++ b/src/modules/options/OptionsDialog.h @@ -93,10 +93,11 @@ private slots: protected: void apply(bool bDialogAboutToClose); - virtual void closeEvent(QCloseEvent * e); - virtual void keyPressEvent(QKeyEvent * e); - virtual void showEvent(QShowEvent * e); + void closeEvent(QCloseEvent * e) override; + void keyPressEvent(QKeyEvent * e) override; + void showEvent(QShowEvent * e) override; bool recursiveSearch(OptionsDialogTreeWidgetItem * pItem, const QStringList & lKeywords); + void clearSearch(); bool searchInSelectors(KviOptionsWidget * pWidget, const QStringList & lKeywords); public: diff --git a/src/modules/options/OptionsInstanceManager.cpp b/src/modules/options/OptionsInstanceManager.cpp index 41ed5ae04..36291b24a 100644 --- a/src/modules/options/OptionsInstanceManager.cpp +++ b/src/modules/options/OptionsInstanceManager.cpp @@ -3712,7 +3712,7 @@ KviOptionsWidget * OptionsInstanceManager::getInstance(OptionsWidgetInstanceEntr QWidget * pOldPar = (QWidget *)pEntry->pWidget->parent(); pEntry->pWidget->setParent(pPar); pOldPar->deleteLater(); - pEntry->pWidget = 0; + pEntry->pWidget = nullptr; } } #endif diff --git a/src/modules/options/OptionsInstanceManager.h b/src/modules/options/OptionsInstanceManager.h index 6f52d928d..0abe1d811 100644 --- a/src/modules/options/OptionsInstanceManager.h +++ b/src/modules/options/OptionsInstanceManager.h @@ -39,9 +39,7 @@ #include "KviQString.h" #include "KviIconManager.h" -typedef struct _OptionsWidgetInstanceEntry OptionsWidgetInstanceEntry; - -typedef struct _OptionsWidgetInstanceEntry +struct OptionsWidgetInstanceEntry { KviOptionsWidget * (*createProc)(QWidget *); KviOptionsWidget * pWidget; // singleton @@ -57,7 +55,7 @@ typedef struct _OptionsWidgetInstanceEntry bool bIsNotContained; KviPointerList<OptionsWidgetInstanceEntry> * pChildList; bool bDoInsert; // a helper for OptionsDialog::fillListView() -} OptionsWidgetInstanceEntry; +}; class OptionsInstanceManager : public QObject { diff --git a/src/modules/options/OptionsWidgetContainer.cpp b/src/modules/options/OptionsWidgetContainer.cpp index 2fa75fb7d..6ff3e5e31 100644 --- a/src/modules/options/OptionsWidgetContainer.cpp +++ b/src/modules/options/OptionsWidgetContainer.cpp @@ -48,8 +48,6 @@ OptionsWidgetContainer::OptionsWidgetContainer(QWidget * par, bool bModal) setObjectName("container"); - m_pOptionsWidget = nullptr; - if(bModal) setWindowModality(par ? Qt::WindowModal : Qt::ApplicationModal); } diff --git a/src/modules/options/OptionsWidgetContainer.h b/src/modules/options/OptionsWidgetContainer.h index 5f26c2f5d..17328c12d 100644 --- a/src/modules/options/OptionsWidgetContainer.h +++ b/src/modules/options/OptionsWidgetContainer.h @@ -28,8 +28,8 @@ #include <QDialog> -class QPushButton; class QGridLayout; +class QPushButton; class OptionsWidgetContainer : public QDialog { @@ -39,9 +39,9 @@ public: ~OptionsWidgetContainer(); protected: - KviOptionsWidget * m_pOptionsWidget; - QPushButton * m_pCancel; - QGridLayout * m_pLayout; + KviOptionsWidget * m_pOptionsWidget = nullptr; + QPushButton * m_pCancel = nullptr; + QGridLayout * m_pLayout = nullptr; public: void setup(KviOptionsWidget * w); @@ -49,10 +49,10 @@ public: void setNextToLeft(QWidget * pWidget); protected: - virtual void closeEvent(QCloseEvent * e); - virtual void showEvent(QShowEvent * e); - virtual void childEvent(QChildEvent * e); - virtual void reject(); + void closeEvent(QCloseEvent * e) override; + void showEvent(QShowEvent * e) override; + void childEvent(QChildEvent * e) override; + void reject() override; protected slots: void okClicked(); void cancelClicked(); diff --git a/src/modules/options/OptionsWidget_connection.cpp b/src/modules/options/OptionsWidget_connection.cpp index bed814aa0..60fdce129 100644 --- a/src/modules/options/OptionsWidget_connection.cpp +++ b/src/modules/options/OptionsWidget_connection.cpp @@ -182,7 +182,10 @@ OptionsWidget_connectionSocket::OptionsWidget_connectionSocket(QWidget * parent) "you want to rely on the DNS server to provide the best choice.", "options")); - addRowSpacer(0, 5, 0, 5); + b = addBoolSelector(0, 5, 0, 5, __tr2qs_ctx("Drop connection on SASL authentication failure", "options"), KviOption_boolDropConnectionOnSaslFailure); + mergeTip(b, __tr2qs_ctx("This option will close the socket if no SASL authentication or any SASL fallback had succeeded.", "options")); + + addRowSpacer(0, 6, 0, 6); } OptionsWidget_connectionSocket::~OptionsWidget_connectionSocket() diff --git a/src/modules/options/OptionsWidget_identity.cpp b/src/modules/options/OptionsWidget_identity.cpp index 6efc60b7a..5d7c5bf76 100644 --- a/src/modules/options/OptionsWidget_identity.cpp +++ b/src/modules/options/OptionsWidget_identity.cpp @@ -515,7 +515,7 @@ OptionsWidget_identityAvatar::~OptionsWidget_identityAvatar() delete m_pLocalAvatar; } -void OptionsWidget_identityAvatar::commit(void) +void OptionsWidget_identityAvatar::commit() { KviOptionsWidget::commit(); diff --git a/src/modules/options/OptionsWidget_identity.h b/src/modules/options/OptionsWidget_identity.h index 6193ad09a..f06a02db0 100644 --- a/src/modules/options/OptionsWidget_identity.h +++ b/src/modules/options/OptionsWidget_identity.h @@ -70,7 +70,7 @@ protected: QString m_szAvatarName; protected: - virtual void closeEvent(QCloseEvent * e); + void closeEvent(QCloseEvent * e) override; const QString & avatarName() { return m_szAvatarName; }; protected slots: void okClicked(); @@ -94,7 +94,7 @@ protected: QString m_szUrl; protected: - virtual void closeEvent(QCloseEvent * e); + void closeEvent(QCloseEvent * e) override; const QString & localFileName() { return m_szLocalFileName; }; const QString & errorMessage() { return m_szErrorMessage; }; protected slots: @@ -161,7 +161,7 @@ protected slots: void setNickAlternatives(); protected: - virtual void commit(); + void commit() override; }; #define KVI_OPTIONS_WIDGET_ICON_OptionsWidget_identityAvatar KviIconManager::Avatar @@ -186,7 +186,7 @@ protected slots: void chooseAvatar(); protected: - virtual void commit(); + void commit() override; }; #define KVI_OPTIONS_WIDGET_ICON_OptionsWidget_identityAdvanced KviIconManager::Gui diff --git a/src/modules/options/OptionsWidget_input.cpp b/src/modules/options/OptionsWidget_input.cpp index 870e23ab3..e56881b12 100644 --- a/src/modules/options/OptionsWidget_input.cpp +++ b/src/modules/options/OptionsWidget_input.cpp @@ -148,21 +148,24 @@ OptionsWidget_inputFeatures::OptionsWidget_inputFeatures(QWidget * parent) u->setSuffix(__tr2qs_ctx(" spaces", "options")); KviTalGroupBox * g = addGroupBox(0, 6, 0, 6, Qt::Horizontal, __tr2qs_ctx("Nick Completion", "options")); - KviBoolSelector *b, *c; + KviBoolSelector *b, *c, *d; b = addBoolSelector(g, __tr2qs_ctx("Use bash-like nick completion", "options"), KviOption_boolBashLikeNickCompletion, !KVI_OPTION_BOOL(KviOption_boolZshLikeNickCompletion)); c = addBoolSelector(g, __tr2qs_ctx("Use zsh-like nick completion", "options"), KviOption_boolZshLikeNickCompletion, !KVI_OPTION_BOOL(KviOption_boolBashLikeNickCompletion)); + d = addBoolSelector(g, __tr2qs_ctx("Prioritize nick completion by last action time", "options"), KviOption_boolPrioritizeLastActionTime); connect(b, SIGNAL(toggled(bool)), c, SLOT(setDisabled(bool))); + connect(b, SIGNAL(toggled(bool)), d, SLOT(setDisabled(bool))); connect(c, SIGNAL(toggled(bool)), b, SLOT(setDisabled(bool))); + connect(c, SIGNAL(toggled(bool)), d, SLOT(setDisabled(bool))); addStringSelector(g, __tr2qs_ctx("Nick completion postfix string:", "options"), KviOption_stringNickCompletionPostfix); addBoolSelector(g, __tr2qs_ctx("Use the completion postfix string for the first word only", "options"), KviOption_boolUseNickCompletionPostfixForFirstWordOnly); addBoolSelector(g, __tr2qs_ctx("Ignore special characters in nick completion", "options"), KviOption_boolIgnoreSpecialCharactersInNickCompletion); - KviBoolSelector * d = addBoolSelector(0, 7, 0, 7, __tr2qs_ctx("Use a custom cursor width", "options"), KviOption_boolEnableCustomCursorWidth); + KviBoolSelector * e = addBoolSelector(0, 7, 0, 7, __tr2qs_ctx("Use a custom cursor width", "options"), KviOption_boolEnableCustomCursorWidth); KviUIntSelector * f = addUIntSelector(0, 8, 0, 8, __tr2qs_ctx("Custom cursor width:", "options"), KviOption_uintCustomCursorWidth, 1, 24, 8, KVI_OPTION_BOOL(KviOption_boolEnableCustomCursorWidth)); f->setSuffix(__tr2qs_ctx(" pixels", "options")); - connect(d, SIGNAL(toggled(bool)), f, SLOT(setEnabled(bool))); + connect(e, SIGNAL(toggled(bool)), f, SLOT(setEnabled(bool))); addRowSpacer(0, 9, 0, 9); } diff --git a/src/modules/options/OptionsWidget_interfaceFeatures.cpp b/src/modules/options/OptionsWidget_interfaceFeatures.cpp index aff19dc3b..27e04300b 100644 --- a/src/modules/options/OptionsWidget_interfaceFeatures.cpp +++ b/src/modules/options/OptionsWidget_interfaceFeatures.cpp @@ -32,7 +32,7 @@ #include <QLayout> #include <QLabel> -#include <string.h> +#include <cstring> OptionsWidget_interfaceFeatures::OptionsWidget_interfaceFeatures(QWidget * parent) : KviOptionsWidget(parent) @@ -40,8 +40,6 @@ OptionsWidget_interfaceFeatures::OptionsWidget_interfaceFeatures(QWidget * paren setObjectName("interfacefeatures_options_widget"); createLayout(); - KviTalGroupBox * g; - addBoolSelector(0, 0, 0, 0, __tr2qs_ctx("Minimize application on startup", "options"), KviOption_boolStartupMinimized); addBoolSelector(0, 1, 0, 1, __tr2qs_ctx("Confirm quit with active connections", "options"), KviOption_boolConfirmCloseWhenThereAreConnections); addBoolSelector(0, 2, 0, 2, __tr2qs_ctx("Remember window properties", "options"), KviOption_boolWindowsRememberProperties); diff --git a/src/modules/options/OptionsWidget_message.cpp b/src/modules/options/OptionsWidget_message.cpp index d9fa9cd85..2755bedfe 100644 --- a/src/modules/options/OptionsWidget_message.cpp +++ b/src/modules/options/OptionsWidget_message.cpp @@ -73,14 +73,21 @@ OptionsWidget_privmsg::OptionsWidget_privmsg(QWidget * parent) m_pUseSmartColorSelector = addBoolSelector(g, __tr2qs_ctx("Smart nickname colors", "options"), KviOption_boolColorNicks); + connect(m_pUseSmartColorSelector, SIGNAL(toggled(bool)), this, SLOT(enableDisableSmartColorSelector(bool))); + + m_pUseSmartColorWithBackgroundSelector = addBoolSelector(g, __tr2qs_ctx("Use a background color for smart nickname colors", "options"), KviOption_boolColorNicksWithBackground, KVI_OPTION_BOOL(KviOption_boolColorNicks)); + KviTalHBox * hb = new KviTalHBox(g); hb->setSpacing(4); - m_pSpecialSmartColorSelector = addBoolSelector(hb, __tr2qs_ctx("Use specified colors for own nick:", "options"), KviOption_boolUseSpecifiedSmartColorForOwnNick, KVI_OPTION_BOOL(KviOption_boolColorNicks)); + m_pSpecialSmartColorSelector = addBoolSelector(hb, __tr2qs_ctx("Use specified smart colors for own nick:", "options"), KviOption_boolUseSpecifiedSmartColorForOwnNick, KVI_OPTION_BOOL(KviOption_boolColorNicks)); m_pSmartColorSelector = addMircTextColorSelector(hb, "", KviOption_uintUserIrcViewOwnForeground, KviOption_uintUserIrcViewOwnBackground, KVI_OPTION_BOOL(KviOption_boolColorNicks) && KVI_OPTION_BOOL(KviOption_boolUseSpecifiedSmartColorForOwnNick)); connect(m_pSpecialSmartColorSelector, SIGNAL(toggled(bool)), this, SLOT(enableDisableSmartColorSelector(bool))); connect(m_pUseSmartColorSelector, SIGNAL(toggled(bool)), m_pSpecialSmartColorSelector, SLOT(setEnabled(bool))); + connect(m_pUseSmartColorSelector, SIGNAL(toggled(bool)), m_pUseSmartColorWithBackgroundSelector, SLOT(setEnabled(bool))); + + enableDisableSmartColorSelector(true); KviBoolSelector * b2 = addBoolSelector(g, __tr2qs_ctx("Use same colors as in the userlist", "options"), KviOption_boolUseUserListColorsAsNickColors, !KVI_OPTION_BOOL(KviOption_boolColorNicks)); connect(m_pUseSmartColorSelector, SIGNAL(toggled(bool)), b2, SLOT(setNotEnabled(bool))); @@ -116,7 +123,7 @@ OptionsWidget_privmsg::OptionsWidget_privmsg(QWidget * parent) void OptionsWidget_privmsg::enableDisableSmartColorSelector(bool) { - m_pSmartColorSelector->setEnabled(m_pUseSmartColorSelector->isChecked() && m_pUseSmartColorSelector->isChecked()); + m_pSmartColorSelector->setEnabled(m_pSpecialSmartColorSelector->isChecked() && m_pUseSmartColorSelector->isChecked()); } OptionsWidget_privmsg::~OptionsWidget_privmsg() @@ -272,15 +279,15 @@ void MessageListWidgetItemDelegate::paint(QPainter * p, const QStyleOptionViewIt p->drawPixmap(pt, *(g_pIconManager->getSmallIcon(it->msgType()->pixId()))); pt.setX(pt.x() + 18); // draw the background - if(it->msgType()->back() < 16) + if(it->msgType()->back() <= KVI_EXTCOLOR_MAX) { - QColor bColor = KVI_OPTION_MIRCCOLOR(it->msgType()->back()); + QColor bColor = getMircColor(it->msgType()->back()); p->fillRect(pt.x(), pt.y(), opt.rect.width() - pt.x(), opt.rect.height(), bColor); } unsigned char ucFore = it->msgType()->fore(); - if(ucFore > 15) + if(ucFore > KVI_EXTCOLOR_MAX) ucFore = 0; - p->setPen(QPen(KVI_OPTION_MIRCCOLOR(ucFore))); + p->setPen(QPen(getMircColor(ucFore))); pt.setX(pt.x() + 2); p->drawText(pt.x(), pt.y(), opt.rect.width() - pt.x(), opt.rect.height(), Qt::AlignLeft | Qt::AlignVCenter, szText); @@ -305,14 +312,14 @@ MessageColorListWidgetItem::MessageColorListWidgetItem(KviTalListWidget * b, int { m_iClrIdx = idx; - if((idx < 0) || (idx > 15)) + if((idx < 0) || (idx > KVI_EXTCOLOR_MAX)) { setText(__tr2qs_ctx("Transparent", "options")); setBackground(listWidget()->isEnabled() ? Qt::transparent : Qt::gray); } else { - setBackground(QColor(KVI_OPTION_MIRCCOLOR(m_iClrIdx))); + setBackground(QColor(getMircColor(m_iClrIdx))); setText(" "); } } @@ -329,9 +336,9 @@ void MessageColorListWidgetItemDelegate::paint(QPainter * p, const QStyleOptionV const KviTalListWidget * lb = (const KviTalListWidget *)parent(); MessageColorListWidgetItem * it = static_cast<MessageColorListWidgetItem *>(index.internalPointer()); - if((it->clrIdx() >= 0) && (it->clrIdx() <= 15)) + if((it->clrIdx() >= 0) && (it->clrIdx() <= KVI_EXTCOLOR_MAX)) { - clr = KVI_OPTION_MIRCCOLOR(it->clrIdx()); + clr = getMircColor(it->clrIdx()); } else { @@ -630,9 +637,7 @@ void OptionsWidget_messageColors::load() //qDebug("SYMLINKING %s to %s",szGlobal.ptr(),szLocal.ptr()); //qDebug("SYMLINK RETURNS %d (%d)",::symlink(szGlobal.ptr(),szLocal.ptr())); //qDebug("ERRNO (%d)",errno); - int dummy; // make gcc happy - dummy = symlink(szGlobal.toLocal8Bit().data(), szLocal.toLocal8Bit().data()); - Q_UNUSED(dummy); + (void)symlink(szGlobal.toLocal8Bit().data(), szLocal.toLocal8Bit().data()); // FIXME: Do it also on windows... #endif diff --git a/src/modules/options/OptionsWidget_message.h b/src/modules/options/OptionsWidget_message.h index b080edc79..9652a7b0c 100644 --- a/src/modules/options/OptionsWidget_message.h +++ b/src/modules/options/OptionsWidget_message.h @@ -66,6 +66,7 @@ public: public: KviBoolSelector * m_pUseSmartColorSelector; KviBoolSelector * m_pSpecialSmartColorSelector; + KviBoolSelector * m_pUseSmartColorWithBackgroundSelector; KviMircTextColorSelector * m_pSmartColorSelector; protected slots: void enableDisableSmartColorSelector(bool); @@ -112,7 +113,7 @@ class MessageListWidgetItemDelegate : public QItemDelegate { Q_OBJECT public: - MessageListWidgetItemDelegate(QAbstractItemView * pWidget = 0) + MessageListWidgetItemDelegate(QAbstractItemView * pWidget = nullptr) : QItemDelegate(pWidget){}; ~MessageListWidgetItemDelegate(){}; void paint(QPainter * p, const QStyleOptionViewItem & opt, const QModelIndex & index) const; @@ -129,8 +130,8 @@ private: KviMessageTypeSettings * m_pMsgType; public: - inline int optionId() { return m_iOptId; }; - inline KviMessageTypeSettings * msgType() { return m_pMsgType; }; + int optionId() const { return m_iOptId; } + KviMessageTypeSettings * msgType() const { return m_pMsgType; } }; class MessageColorListWidgetItem : public KviTalListWidgetText @@ -143,14 +144,14 @@ public: int m_iClrIdx; public: - inline int clrIdx() { return m_iClrIdx; }; + int clrIdx() const { return m_iClrIdx; } }; class MessageColorListWidgetItemDelegate : public QItemDelegate { Q_OBJECT public: - MessageColorListWidgetItemDelegate(QAbstractItemView * pWidget = 0) + MessageColorListWidgetItemDelegate(QAbstractItemView * pWidget = nullptr) : QItemDelegate(pWidget){}; ~MessageColorListWidgetItemDelegate(){}; void paint(QPainter * p, const QStyleOptionViewItem & opt, const QModelIndex & index) const; diff --git a/src/modules/options/OptionsWidget_servers.cpp b/src/modules/options/OptionsWidget_servers.cpp index af11bb343..3e93b93c3 100644 --- a/src/modules/options/OptionsWidget_servers.cpp +++ b/src/modules/options/OptionsWidget_servers.cpp @@ -55,6 +55,7 @@ #include "KviPointerHashTable.h" #include "KviTalToolTip.h" #include "KviIrcNetwork.h" +#include "KviSASL.h" #include <QLineEdit> #include <QCursor> @@ -901,19 +902,33 @@ IrcServerDetailsWidget::IrcServerDetailsWidget(QWidget * par, KviIrcServer * s) m_pEnableSASLCheck->setChecked(s->enabledSASL()); - l = new QLabel(__tr2qs_ctx("SASL nickname:", "options"), pSASLGroup); + l = new QLabel(__tr2qs_ctx("SASL method:", "options"), pSASLGroup); pSASLLayout->addWidget(l, 1, 0); + m_pSaslMethodComboBox = new QComboBox(pSASLGroup); + m_pSaslMethodComboBox->setDuplicatesEnabled(false); + for(auto&& method : KviSASL::supportedMethods()) + m_pSaslMethodComboBox->addItem(method); + KviTalToolTip::add(m_pSaslMethodComboBox, __tr2qs_ctx("Select which SASL method you want to use to authenticate with.<br><br>" + "EXTERNAL will fallback to PLAIN if a non-SSL connection is used or no .pem file is loaded.", "options")); + pSASLLayout->addWidget(m_pSaslMethodComboBox, 1, 1); + + int index = m_pSaslMethodComboBox->findText(s->saslMethod()); + if(index != -1) + m_pSaslMethodComboBox->setCurrentIndex(index); + + l = new QLabel(__tr2qs_ctx("SASL nickname:", "options"), pSASLGroup); + pSASLLayout->addWidget(l, 2, 0); m_pSaslNickEditor = new QLineEdit(pSASLGroup); m_pSaslNickEditor->setText(s->saslNick()); - KviTalToolTip::add(m_pSaslNickEditor, __tr2qs_ctx("If you want to enable SASL authentication, insert your nickname here.", "options")); - pSASLLayout->addWidget(m_pSaslNickEditor, 1, 1); + KviTalToolTip::add(m_pSaslNickEditor, __tr2qs_ctx("If you want to enable SASL authentication, insert your nickname here. (Not required for EXTERNAL)", "options")); + pSASLLayout->addWidget(m_pSaslNickEditor, 2, 1); l = new QLabel(__tr2qs_ctx("SASL password:", "options"), pSASLGroup); - pSASLLayout->addWidget(l, 2, 0); - m_pSaslPassEditor = new KviPasswordLineEdit(pSASLGroup); // <---- ????? + pSASLLayout->addWidget(l, 3, 0); + m_pSaslPassEditor = new KviPasswordLineEdit(pSASLGroup); m_pSaslPassEditor->setText(s->saslPass()); - KviTalToolTip::add(m_pSaslPassEditor, __tr2qs_ctx("If you want to enable SASL authentication, insert your password here.", "options")); - pSASLLayout->addWidget(m_pSaslPassEditor, 2, 1); + KviTalToolTip::add(m_pSaslPassEditor, __tr2qs_ctx("If you want to enable SASL authentication, insert your password here. (Not required for EXTERNAL)", "options")); + pSASLLayout->addWidget(m_pSaslPassEditor, 3, 1); pSASLGroup->setEnabled(s->enabledCAP()); connect(m_pEnableCAPCheck, SIGNAL(toggled(bool)), pSASLGroup, SLOT(setEnabled(bool))); @@ -1115,10 +1130,11 @@ void IrcServerDetailsWidget::fillData(KviIrcServer * s) if(m_pEnableSTARTTLSCheck) s->setEnabledSTARTTLS(m_pEnableSTARTTLSCheck->isChecked()); + s->setSaslMethod(m_pSaslMethodComboBox->currentText()); s->setSaslNick(m_pSaslNickEditor->text()); s->setSaslPass(m_pSaslPassEditor->text()); if(m_pEnableSASLCheck) - s->setEnabledSASL(m_pEnableSASLCheck->isChecked() && !m_pSaslNickEditor->text().isEmpty() && !m_pSaslPassEditor->text().isEmpty()); + s->setEnabledSASL(m_pEnableSASLCheck->isChecked() && ((!m_pSaslNickEditor->text().isEmpty() && !m_pSaslPassEditor->text().isEmpty()) || (m_pSaslMethodComboBox->currentText() == QStringLiteral("EXTERNAL")))); if(m_pIdEditor) s->setId(m_pIdEditor->text()); if(s->id().isEmpty()) @@ -2069,7 +2085,7 @@ void OptionsWidget_servers::updateFavoritesFilter(bool bSet) { m_bShowingFavoritesOnly = bSet; IrcServerOptionsTreeWidgetItem * network; - for(unsigned i = 0; i < m_pTreeWidget->topLevelItemCount(); i++) + for(int i = 0; i < m_pTreeWidget->topLevelItemCount(); i++) { network = static_cast<IrcServerOptionsTreeWidgetItem *>(m_pTreeWidget->topLevelItem(i)); uint uServers = 0; diff --git a/src/modules/options/OptionsWidget_servers.h b/src/modules/options/OptionsWidget_servers.h index b6a2fdb68..483a01777 100644 --- a/src/modules/options/OptionsWidget_servers.h +++ b/src/modules/options/OptionsWidget_servers.h @@ -154,6 +154,7 @@ protected: QLineEdit * m_pPortEditor; QStringList m_lstChannels; KviChannelListSelector * m_pChannelListSelector; + QComboBox * m_pSaslMethodComboBox; QComboBox * m_pProxyEditor; protected slots: @@ -193,18 +194,15 @@ protected: QMenu * m_pImportPopup; KviIrcServer * m_pClipboard; QPushButton * m_pConnectCurrent; - QPushButton * m_pConnectNew; IrcServerOptionsTreeWidgetItem * m_pLastEditedItem; IrcServerDetailsWidget * m_pServerDetailsDialog; IrcNetworkDetailsWidget * m_pNetworkDetailsDialog; KviMexServerImport * m_pImportFilter; KviBoolSelector * m_pShowThisDialogAtStartupSelector; - KviBoolSelector * m_pShowFavoritesOnly; QToolButton * m_pNewServerButton; QToolButton * m_pNewNetworkButton; QToolButton * m_pRemoveButton; - QToolButton * m_pFavoriteServer; QToolButton * m_pCopyServerButton; QToolButton * m_pPasteServerButton; QToolButton * m_pImportButton; diff --git a/src/modules/options/OptionsWidget_sound.cpp b/src/modules/options/OptionsWidget_sound.cpp index e5c72ef1f..4b84b3e41 100644 --- a/src/modules/options/OptionsWidget_sound.cpp +++ b/src/modules/options/OptionsWidget_sound.cpp @@ -218,25 +218,18 @@ void OptionsWidget_soundGeneral::mediaAutoDetect() void OptionsWidget_soundGeneral::soundFillBox() { QStringList l; - QStringList::Iterator it; - int cnt; - int i; + unsigned int cnt, i; KviModule * m = g_pModuleManager->getModule("snd"); - if(!m) - goto disable; - - if(!m->ctrl("getAvailableSoundSystems", &l)) + if(!m || !m->ctrl("getAvailableSoundSystems", &l)) goto disable; m_pSoundSystemBox->clear(); - for(it = l.begin(); it != l.end(); ++it) - { - m_pSoundSystemBox->addItem(*it); - } - cnt = m_pSoundSystemBox->count(); + for(const auto& it : l) + m_pSoundSystemBox->addItem(it); + cnt = m_pSoundSystemBox->count(); for(i = 0; i < cnt; i++) { QString t = m_pSoundSystemBox->itemText(i); @@ -258,22 +251,18 @@ disable: void OptionsWidget_soundGeneral::mediaFillBox() { QStringList l; - QStringList::Iterator it; - int cnt; - int i; + unsigned int cnt, i; KviModule * m = g_pModuleManager->getModule("mediaplayer"); - if(!m) - goto disable; - if(!m->ctrl("getAvailableMediaPlayers", &l)) + if(!m || !m->ctrl("getAvailableMediaPlayers", &l)) goto disable; + m_pMediaPlayerBox->clear(); - for(it = l.begin(); it != l.end(); ++it) - { - m_pMediaPlayerBox->addItem(*it); - } - cnt = m_pMediaPlayerBox->count(); + for(const auto& it : l) + m_pMediaPlayerBox->addItem(it); + + cnt = m_pMediaPlayerBox->count(); for(i = 0; i < cnt; i++) { QString t = m_pMediaPlayerBox->itemText(i); diff --git a/src/modules/options/OptionsWidget_sound.h b/src/modules/options/OptionsWidget_sound.h index 06f7c2920..82e1abb8e 100644 --- a/src/modules/options/OptionsWidget_sound.h +++ b/src/modules/options/OptionsWidget_sound.h @@ -72,8 +72,8 @@ protected: protected: void soundFillBox(); void mediaFillBox(); - virtual void commit(); - virtual void showEvent(QShowEvent * e); + void commit() override; + void showEvent(QShowEvent * e) override; protected slots: void soundTest(); void soundAutoDetect(); diff --git a/src/modules/options/OptionsWidget_textIcons.h b/src/modules/options/OptionsWidget_textIcons.h index e1b78f2ba..bcfcfc80b 100644 --- a/src/modules/options/OptionsWidget_textIcons.h +++ b/src/modules/options/OptionsWidget_textIcons.h @@ -67,7 +67,7 @@ public: protected: QTableWidget * m_pTable; int m_iLastEditedRow; - TextIconTableItem * m_pCurrentItem; + TextIconTableItem * m_pCurrentItem = nullptr; QPushButton * m_pAdd; QPushButton * m_pDel; QPushButton * m_pRestore; diff --git a/src/modules/options/OptionsWidget_userList.cpp b/src/modules/options/OptionsWidget_userList.cpp index a1d0e2aa0..c43becd72 100644 --- a/src/modules/options/OptionsWidget_userList.cpp +++ b/src/modules/options/OptionsWidget_userList.cpp @@ -223,7 +223,7 @@ OptionsWidget_userListFeatures::OptionsWidget_userListFeatures(QWidget * parent) KviUIntSelector * u; - u = addUIntSelector(0, 0, 0, 0, __tr2qs_ctx("Minimum width:", "options"), KviOption_uintUserListMinimumWidth, 100, 1024, 150); + u = addUIntSelector(0, 0, 0, 0, __tr2qs_ctx("Minimum width:", "options"), KviOption_uintUserListMinimumWidth, 50, 1024, 150); u->setSuffix(__tr2qs_ctx(" pixels", "options")); mergeTip(u, __tr2qs_ctx("Here you can select a desired minimum width for the userlist when visible. " "Suggested values range between 120 and 170 pixels. " diff --git a/src/modules/options/OptionsWidget_windowList.cpp b/src/modules/options/OptionsWidget_windowList.cpp index 3367b569c..9842e7ac5 100644 --- a/src/modules/options/OptionsWidget_windowList.cpp +++ b/src/modules/options/OptionsWidget_windowList.cpp @@ -26,6 +26,7 @@ #include "kvi_settings.h" #include "KviLocale.h" +#define _WANT_OPTION_FLAGS_ #include "KviOptions.h" OptionsWidget_windowList::OptionsWidget_windowList(QWidget * parent) @@ -34,7 +35,14 @@ OptionsWidget_windowList::OptionsWidget_windowList(QWidget * parent) setObjectName("windowlist_options_widget"); createLayout(); - addBoolSelector(0, 0, 0, 0, __tr2qs_ctx("Show tree window list", "options"), KviOption_boolUseTreeWindowList); + KviTalHBox * hbox = new KviTalHBox(this); + (void)new QLabel(__tr2qs_ctx("Window list type:", "options"), hbox); + m_pWindowListType = new QComboBox(hbox); + m_pWindowListType->addItem(__tr2qs_ctx("Tree", "options")); + m_pWindowListType->addItem(__tr2qs_ctx("Classic", "options")); + m_pWindowListType->setCurrentIndex(KVI_OPTION_BOOL(KviOption_boolUseTreeWindowList) ? 0 : 1); + addWidgetToLayout(hbox, 0, 0, 0, 0); + addBoolSelector(0, 1, 0, 1, __tr2qs_ctx("Sort windows by name", "options"), KviOption_boolSortWindowListItemsByName); addBoolSelector(0, 2, 0, 2, __tr2qs_ctx("Show window icons in window list", "options"), KviOption_boolUseWindowListIcons); KviBoolSelector * b = addBoolSelector(0, 3, 0, 3, __tr2qs_ctx("Show activity meter in window list", "options"), KviOption_boolUseWindowListActivityMeter); @@ -47,17 +55,26 @@ OptionsWidget_windowList::OptionsWidget_windowList(QWidget * parent) "activity causes the indicator to be shaded blue.", "options")); addBoolSelector(0, 4, 0, 4, __tr2qs_ctx("Show IRC context indicator in window list", "options"), KviOption_boolUseWindowListIrcContextIndicator); - addBoolSelector(0, 5, 0, 5, __tr2qs_ctx("Show close button on window list items", "options"), KviOption_boolUseWindowListCloseButton); - addBoolSelector(0, 6, 0, 6, __tr2qs_ctx("Enable window tooltips", "options"), KviOption_boolShowWindowListToolTips); - addBoolSelector(0, 7, 0, 7, __tr2qs_ctx("Allow the window list to be moved", "options"), KviOption_boolShowTreeWindowListHandle); - addBoolSelector(0, 8, 0, 8, __tr2qs_ctx("Show user flag for channels", "options"), KviOption_boolShowUserFlagForChannelsInWindowList); + addBoolSelector(0, 5, 0, 5, __tr2qs_ctx("Enable window tooltips", "options"), KviOption_boolShowWindowListToolTips); + addBoolSelector(0, 6, 0, 6, __tr2qs_ctx("Allow the window list to be moved", "options"), KviOption_boolShowTreeWindowListHandle); + addBoolSelector(0, 7, 0, 7, __tr2qs_ctx("Show user flag for channels", "options"), KviOption_boolShowUserFlagForChannelsInWindowList); - addRowSpacer(0, 9, 0, 9); + addRowSpacer(0, 8, 0, 8); } OptionsWidget_windowList::~OptionsWidget_windowList() = default; +void OptionsWidget_windowList::commit() +{ + // we need to add this flag manually to the reset list because there's no other + // option in this options widget that uses it. + mergeResetFlag(KviOption_resetUpdateWindowList); + KVI_OPTION_BOOL(KviOption_boolUseTreeWindowList) = (m_pWindowListType->currentIndex() == 0); + + KviOptionsWidget::commit(); +} + OptionsWidget_windowListTree::OptionsWidget_windowListTree(QWidget * parent) : KviOptionsWidget(parent) { @@ -235,8 +252,9 @@ OptionsWidget_windowListClassic::OptionsWidget_windowListClassic(QWidget * paren u = addUIntSelector(0, 5, 0, 5, __tr2qs_ctx("Maximum width of buttons:", "options"), KviOption_uintClassicWindowListMaximumButtonWidth, 24, 9999, 100); u->setSuffix(__tr2qs_ctx(" pixels", "options")); addBoolSelector(0, 6, 0, 6, __tr2qs_ctx("Use flat buttons", "options"), KviOption_boolUseFlatClassicWindowListButtons); + addBoolSelector(0, 7, 0, 7, __tr2qs_ctx("Show close button on window list items", "options"), KviOption_boolUseWindowListCloseButton); - addRowSpacer(0, 7, 0, 7); + addRowSpacer(0, 8, 0, 8); } OptionsWidget_windowListClassic::~OptionsWidget_windowListClassic() diff --git a/src/modules/options/OptionsWidget_windowList.h b/src/modules/options/OptionsWidget_windowList.h index c666f8a62..a7fcbe88e 100644 --- a/src/modules/options/OptionsWidget_windowList.h +++ b/src/modules/options/OptionsWidget_windowList.h @@ -40,6 +40,12 @@ class OptionsWidget_windowList : public KviOptionsWidget public: OptionsWidget_windowList(QWidget * parent); ~OptionsWidget_windowList(); + +protected: + void commit() override; + +private: + QComboBox * m_pWindowListType; }; #define KVI_OPTIONS_WIDGET_ICON_OptionsWidget_windowListTree KviIconManager::TreeWindowList diff --git a/src/modules/options/mkcreateinstanceproc.sh b/src/modules/options/mkcreateinstanceproc.sh index 1bd42fb2e..d1c33c518 100755 --- a/src/modules/options/mkcreateinstanceproc.sh +++ b/src/modules/options/mkcreateinstanceproc.sh @@ -54,10 +54,8 @@ cat >> OptionsInstanceManager.h <<EOF #include "KviQString.h" #include "KviIconManager.h" -typedef struct _OptionsWidgetInstanceEntry OptionsWidgetInstanceEntry; - -typedef struct _OptionsWidgetInstanceEntry +struct OptionsWidgetInstanceEntry { KviOptionsWidget * (*createProc)(QWidget *); KviOptionsWidget * pWidget; // singleton @@ -73,7 +71,7 @@ typedef struct _OptionsWidgetInstanceEntry bool bIsNotContained; KviPointerList<OptionsWidgetInstanceEntry> * pChildList; bool bDoInsert; // a helper for OptionsDialog::fillListView() -} OptionsWidgetInstanceEntry; +}; class OptionsInstanceManager : public QObject @@ -231,7 +229,7 @@ printclass() echo "$3 e$1 = new OptionsWidgetInstanceEntry;" >> $TARGET echo -n "$3 e$1->createProc = &class$2" >> $TARGET echo "_createInstanceProc;" >> $TARGET - echo "$3 e$1->pWidget = 0;" >> $TARGET + echo "$3 e$1->pWidget = nullptr;" >> $TARGET echo "$3 e$1->szClassName = g_szClassName_$2;" >> $TARGET echo "$3 e$1->eIcon = KVI_OPTIONS_WIDGET_ICON_$2;" >> $TARGET @@ -290,7 +288,7 @@ addchildren() NEXTLEVEL=`expr $1 + 1` addchildren $NEXTLEVEL $achild "$3 " else - echo "$3 e$1->pChildList = 0;" >> $TARGET + echo "$3 e$1->pChildList = nullptr;" >> $TARGET fi done fi @@ -318,7 +316,7 @@ void OptionsInstanceManager::deleteInstanceTree(KviPointerList<OptionsWidgetInst { disconnect(pEntry->pWidget,SIGNAL(destroyed()),this,SLOT(widgetDestroyed())); delete pEntry->pWidget->parent(); - pEntry->pWidget = 0; + pEntry->pWidget = nullptr; } else { qDebug("Ops...i have deleted the options dialog ?"); } @@ -339,14 +337,14 @@ OptionsInstanceManager::~OptionsInstanceManager() void OptionsInstanceManager::cleanup(KviModule *) { deleteInstanceTree(m_pInstanceTree); - m_pInstanceTree = 0; + m_pInstanceTree = nullptr; } void OptionsInstanceManager::widgetDestroyed() { OptionsWidgetInstanceEntry * pEntry = findInstanceEntry(sender(),m_pInstanceTree); if(pEntry) - pEntry->pWidget = 0; + pEntry->pWidget = nullptr; if(g_iOptionWidgetInstances > 0) g_iOptionWidgetInstances--; @@ -355,7 +353,7 @@ void OptionsInstanceManager::widgetDestroyed() KviOptionsWidget * OptionsInstanceManager::getInstance(OptionsWidgetInstanceEntry * pEntry, QWidget * pPar) { if(!pEntry) - return NULL; + return nullptr; #if 0 if(pEntry->pWidget) @@ -365,7 +363,7 @@ KviOptionsWidget * OptionsInstanceManager::getInstance(OptionsWidgetInstanceEntr QWidget * pOldPar = (QWidget *)pEntry->pWidget->parent(); pEntry->pWidget->setParent(pPar); pOldPar->deleteLater(); - pEntry->pWidget = 0; + pEntry->pWidget = nullptr; } } #endif diff --git a/src/modules/package/libkvipackage.cpp b/src/modules/package/libkvipackage.cpp index 678df3230..9a390bf90 100644 --- a/src/modules/package/libkvipackage.cpp +++ b/src/modules/package/libkvipackage.cpp @@ -37,7 +37,7 @@ #include <QFile> #include <QFileInfo> -#include <stdlib.h> +#include <cstdlib> static QString createRandomDir() { @@ -154,7 +154,7 @@ static bool package_kvs_fnc_info(KviKvsModuleFunctionCall * c) QStringList sl = KviFileUtils::getFileListing(szUnpackPath); - Q_FOREACH(QString fn, sl) + for(const auto & fn : sl) pFilesArray->append(new KviKvsVariant(fn)); // delete the random tmp dir diff --git a/src/modules/perlcore/libkviperlcore.cpp b/src/modules/perlcore/libkviperlcore.cpp index fcd66152b..3fdd42def 100644 --- a/src/modules/perlcore/libkviperlcore.cpp +++ b/src/modules/perlcore/libkviperlcore.cpp @@ -270,13 +270,10 @@ bool KviPerlInterpreter::execute( int idx = 0; for(auto tmp : args) { - const char * val = tmp.toUtf8().data(); - if(val) - { - pArg = newSVpv(val, tmp.length()); - if(!av_store(pArgs, idx, pArg)) - SvREFCNT_dec(pArg); - } + QByteArray szVal = tmp.toUtf8(); + pArg = newSVpv(szVal.data(), tmp.length()); + if(!av_store(pArgs, idx, pArg)) + SvREFCNT_dec(pArg); idx++; } } diff --git a/src/modules/perlcore/perlcoreinterface.h b/src/modules/perlcore/perlcoreinterface.h index 3f904345a..bfaf089f9 100644 --- a/src/modules/perlcore/perlcoreinterface.h +++ b/src/modules/perlcore/perlcoreinterface.h @@ -32,7 +32,7 @@ #define KVI_PERLCORECTRLCOMMAND_EXECUTE "execute" -typedef struct _KviPerlCoreCtrlCommand_execute +struct KviPerlCoreCtrlCommand_execute { unsigned int uSize; KviKvsRunTimeContext * pKvsContext; @@ -44,14 +44,14 @@ typedef struct _KviPerlCoreCtrlCommand_execute QStringList lWarnings; QStringList lArgs; bool bQuiet; -} KviPerlCoreCtrlCommand_execute; +}; #define KVI_PERLCORECTRLCOMMAND_DESTROY "destroy" -typedef struct _KviPerlCoreCtrlCommand_destroy +struct KviPerlCoreCtrlCommand_destroy { unsigned int uSize; QString szContext; -} KviPerlCoreCtrlCommand_destroy; +}; #endif // !_PERLCOREINTERFACE_H_ diff --git a/src/modules/perlcore/ppport.h b/src/modules/perlcore/ppport.h index 3a17f47d6..00c15fdbd 100644 --- a/src/modules/perlcore/ppport.h +++ b/src/modules/perlcore/ppport.h @@ -4,9 +4,9 @@ /* ---------------------------------------------------------------------- - ppport.h -- Perl/Pollution/Portability Version 3.36 + ppport.h -- Perl/Pollution/Portability Version 3.42 - Automatically created by Devel::PPPort running under perl 5.026000. + Automatically created by Devel::PPPort running under perl 5.028000. Version 3.x, Copyright (c) 2004-2013, Marcus Holland-Moritz. @@ -23,8 +23,8 @@ SKIP if (@ARGV && $ARGV[0] eq '--unstrip') { eval { require Devel::PPPort }; $@ and die "Cannot require Devel::PPPort, please install.\n"; - if (eval $Devel::PPPort::VERSION < 3.36) { - die "ppport.h was originally generated with Devel::PPPort 3.36.\n" + if (eval $Devel::PPPort::VERSION < 3.42) { + die "ppport.h was originally generated with Devel::PPPort 3.42.\n" . "Your Devel::PPPort is only version $Devel::PPPort::VERSION.\n" . "Please install a newer version, or --unstrip will not work.\n"; } @@ -63,8 +63,8 @@ __DATA__*/ #define PERL_SUBVERSION SUBVERSION #endif #endif -#define _dpppDEC2BCD(dec) ((((dec)/100)<<8)|((((dec)%100)/10)<<4)|((dec)%10)) -#define PERL_BCDVERSION ((_dpppDEC2BCD(PERL_REVISION)<<24)|(_dpppDEC2BCD(PERL_VERSION)<<12)|_dpppDEC2BCD(PERL_SUBVERSION)) +#define D_PPP_DEC2BCD(dec) ((((dec)/100)<<8)|((((dec)%100)/10)<<4)|((dec)%10)) +#define PERL_BCDVERSION ((D_PPP_DEC2BCD(PERL_REVISION)<<24)|(D_PPP_DEC2BCD(PERL_VERSION)<<12)|D_PPP_DEC2BCD(PERL_SUBVERSION)) #if PERL_REVISION != 5 #error ppport.h only works with Perl version 5 #endif @@ -503,9 +503,123 @@ sv_setnv(sv, (double)TeMpUv); \ #ifndef Newxz #define Newxz(v,n,t) Newz(0,v,n,t) #endif +#ifndef PERL_MAGIC_sv +#define PERL_MAGIC_sv '\0' +#endif +#ifndef PERL_MAGIC_overload +#define PERL_MAGIC_overload 'A' +#endif +#ifndef PERL_MAGIC_overload_elem +#define PERL_MAGIC_overload_elem 'a' +#endif +#ifndef PERL_MAGIC_overload_table +#define PERL_MAGIC_overload_table 'c' +#endif +#ifndef PERL_MAGIC_bm +#define PERL_MAGIC_bm 'B' +#endif +#ifndef PERL_MAGIC_regdata +#define PERL_MAGIC_regdata 'D' +#endif +#ifndef PERL_MAGIC_regdatum +#define PERL_MAGIC_regdatum 'd' +#endif +#ifndef PERL_MAGIC_env +#define PERL_MAGIC_env 'E' +#endif +#ifndef PERL_MAGIC_envelem +#define PERL_MAGIC_envelem 'e' +#endif +#ifndef PERL_MAGIC_fm +#define PERL_MAGIC_fm 'f' +#endif +#ifndef PERL_MAGIC_regex_global +#define PERL_MAGIC_regex_global 'g' +#endif +#ifndef PERL_MAGIC_isa +#define PERL_MAGIC_isa 'I' +#endif +#ifndef PERL_MAGIC_isaelem +#define PERL_MAGIC_isaelem 'i' +#endif +#ifndef PERL_MAGIC_nkeys +#define PERL_MAGIC_nkeys 'k' +#endif +#ifndef PERL_MAGIC_dbfile +#define PERL_MAGIC_dbfile 'L' +#endif +#ifndef PERL_MAGIC_dbline +#define PERL_MAGIC_dbline 'l' +#endif +#ifndef PERL_MAGIC_mutex +#define PERL_MAGIC_mutex 'm' +#endif +#ifndef PERL_MAGIC_shared +#define PERL_MAGIC_shared 'N' +#endif +#ifndef PERL_MAGIC_shared_scalar +#define PERL_MAGIC_shared_scalar 'n' +#endif +#ifndef PERL_MAGIC_collxfrm +#define PERL_MAGIC_collxfrm 'o' +#endif +#ifndef PERL_MAGIC_tied +#define PERL_MAGIC_tied 'P' +#endif +#ifndef PERL_MAGIC_tiedelem +#define PERL_MAGIC_tiedelem 'p' +#endif +#ifndef PERL_MAGIC_tiedscalar +#define PERL_MAGIC_tiedscalar 'q' +#endif #ifndef PERL_MAGIC_qr #define PERL_MAGIC_qr 'r' #endif +#ifndef PERL_MAGIC_sig +#define PERL_MAGIC_sig 'S' +#endif +#ifndef PERL_MAGIC_sigelem +#define PERL_MAGIC_sigelem 's' +#endif +#ifndef PERL_MAGIC_taint +#define PERL_MAGIC_taint 't' +#endif +#ifndef PERL_MAGIC_uvar +#define PERL_MAGIC_uvar 'U' +#endif +#ifndef PERL_MAGIC_uvar_elem +#define PERL_MAGIC_uvar_elem 'u' +#endif +#ifndef PERL_MAGIC_vstring +#define PERL_MAGIC_vstring 'V' +#endif +#ifndef PERL_MAGIC_vec +#define PERL_MAGIC_vec 'v' +#endif +#ifndef PERL_MAGIC_utf8 +#define PERL_MAGIC_utf8 'w' +#endif +#ifndef PERL_MAGIC_substr +#define PERL_MAGIC_substr 'x' +#endif +#ifndef PERL_MAGIC_defelem +#define PERL_MAGIC_defelem 'y' +#endif +#ifndef PERL_MAGIC_glob +#define PERL_MAGIC_glob '*' +#endif +#ifndef PERL_MAGIC_arylen +#define PERL_MAGIC_arylen '#' +#endif +#ifndef PERL_MAGIC_pos +#define PERL_MAGIC_pos '.' +#endif +#ifndef PERL_MAGIC_backref +#define PERL_MAGIC_backref '<' +#endif +#ifndef PERL_MAGIC_ext +#define PERL_MAGIC_ext '~' +#endif #ifndef cBOOL #define cBOOL(cbool) ((cbool) ? (bool)1 : (bool)0) #endif @@ -524,6 +638,9 @@ sv_setnv(sv, (double)TeMpUv); \ #ifndef OpMAYBESIB_set #define OpMAYBESIB_set(o, sib, parent) ((o)->op_sibling = (sib)) #endif +#ifndef HEf_SVKEY +#define HEf_SVKEY -2 +#endif #ifndef SvRX #if defined(NEED_SvRX) static void * DPPP_(my_SvRX)(pTHX_ SV *rv); @@ -531,11 +648,11 @@ static #else extern void * DPPP_(my_SvRX)(pTHX_ SV *rv); #endif +#if defined(NEED_SvRX) || defined(NEED_SvRX_GLOBAL) #ifdef SvRX #undef SvRX #endif #define SvRX(a) DPPP_(my_SvRX)(aTHX_ a) -#if defined(NEED_SvRX) || defined(NEED_SvRX_GLOBAL) void * DPPP_(my_SvRX)(pTHX_ SV *rv) { @@ -820,7 +937,8 @@ typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*); #if (PERL_BCDVERSION < 0x5010000) #undef isPRINT #endif -#ifdef HAS_QUAD +#ifndef WIDEST_UTYPE +#ifdef QUADKIND #ifdef U64TYPE #define WIDEST_UTYPE U64TYPE #else @@ -829,6 +947,7 @@ typedef OP* (CPERLscope(*Perl_check_t)) (pTHX_ OP*); #else #define WIDEST_UTYPE U32 #endif +#endif #ifndef isALNUMC #define isALNUMC(c) (isALPHA(c) || isDIGIT(c)) #endif @@ -864,6 +983,240 @@ SvUTF8(HeKEY_sv(he)) : \ #ifndef C_ARRAY_END #define C_ARRAY_END(a) ((a) + C_ARRAY_LENGTH(a)) #endif +#ifndef MUTABLE_PTR +#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) +#define MUTABLE_PTR(p) ({ void *_p = (p); _p; }) +#else +#define MUTABLE_PTR(p) ((void *) (p)) +#endif +#endif +#ifndef MUTABLE_SV +#define MUTABLE_SV(p) ((SV *)MUTABLE_PTR(p)) +#endif +#ifdef NEED_mess_sv +#define NEED_mess +#endif +#ifdef NEED_mess +#define NEED_mess_nocontext +#define NEED_vmess +#endif +#ifndef croak_sv +#if (PERL_BCDVERSION >= 0x5007003) || ( (PERL_BCDVERSION >= 0x5006001) && (PERL_BCDVERSION < 0x5007000) ) +#if ( (PERL_BCDVERSION >= 0x5008000) && (PERL_BCDVERSION < 0x5008009) ) || ( (PERL_BCDVERSION >= 0x5009000) && (PERL_BCDVERSION < 0x5010001) ) +#define D_PPP_FIX_UTF8_ERRSV(errsv, sv) \ +STMT_START { \ +if (sv != ERRSV) \ +SvFLAGS(ERRSV) = (SvFLAGS(ERRSV) & ~SVf_UTF8) | \ +(SvFLAGS(sv) & SVf_UTF8); \ +} STMT_END +#else +#define D_PPP_FIX_UTF8_ERRSV(errsv, sv) STMT_START {} STMT_END +#endif +#define croak_sv(sv) \ +STMT_START { \ +if (SvROK(sv)) { \ +sv_setsv(ERRSV, sv); \ +croak(NULL); \ +} else { \ +D_PPP_FIX_UTF8_ERRSV(ERRSV, sv); \ +croak("%" SVf, SVfARG(sv)); \ +} \ +} STMT_END +#elif (PERL_BCDVERSION >= 0x5004000) +#define croak_sv(sv) croak("%" SVf, SVfARG(sv)) +#else +#define croak_sv(sv) croak("%s", SvPV_nolen(sv)) +#endif +#endif +#ifndef die_sv +#if defined(NEED_die_sv) +static OP * DPPP_(my_die_sv)(pTHX_ SV *sv); +static +#else +extern OP * DPPP_(my_die_sv)(pTHX_ SV *sv); +#endif +#if defined(NEED_die_sv) || defined(NEED_die_sv_GLOBAL) +#ifdef die_sv +#undef die_sv +#endif +#define die_sv(a) DPPP_(my_die_sv)(aTHX_ a) +#define Perl_die_sv DPPP_(my_die_sv) +OP * +DPPP_(my_die_sv)(pTHX_ SV *sv) +{ +croak_sv(sv); +return (OP *)NULL; +} +#endif +#endif +#ifndef warn_sv +#if (PERL_BCDVERSION >= 0x5004000) +#define warn_sv(sv) warn("%" SVf, SVfARG(sv)) +#else +#define warn_sv(sv) warn("%s", SvPV_nolen(sv)) +#endif +#endif +#ifndef vmess +#if defined(NEED_vmess) +static SV * DPPP_(my_vmess)(pTHX_ const char * pat, va_list * args); +static +#else +extern SV * DPPP_(my_vmess)(pTHX_ const char * pat, va_list * args); +#endif +#if defined(NEED_vmess) || defined(NEED_vmess_GLOBAL) +#ifdef vmess +#undef vmess +#endif +#define vmess(a,b) DPPP_(my_vmess)(aTHX_ a,b) +#define Perl_vmess DPPP_(my_vmess) +SV* +DPPP_(my_vmess)(pTHX_ const char* pat, va_list* args) +{ +mess(pat, args); +return PL_mess_sv; +} +#endif +#endif +#if (PERL_BCDVERSION < 0x5006000) +#undef mess +#endif +#if !defined(mess_nocontext) && !defined(Perl_mess_nocontext) +#if defined(NEED_mess_nocontext) +static SV * DPPP_(my_mess_nocontext)(const char * pat, ...); +static +#else +extern SV * DPPP_(my_mess_nocontext)(const char * pat, ...); +#endif +#if defined(NEED_mess_nocontext) || defined(NEED_mess_nocontext_GLOBAL) +#define mess_nocontext DPPP_(my_mess_nocontext) +#define Perl_mess_nocontext DPPP_(my_mess_nocontext) +SV* +DPPP_(my_mess_nocontext)(const char* pat, ...) +{ +dTHX; +SV *sv; +va_list args; +va_start(args, pat); +sv = vmess(pat, &args); +va_end(args); +return sv; +} +#endif +#endif +#ifndef mess +#if defined(NEED_mess) +static SV * DPPP_(my_mess)(pTHX_ const char * pat, ...); +static +#else +extern SV * DPPP_(my_mess)(pTHX_ const char * pat, ...); +#endif +#if defined(NEED_mess) || defined(NEED_mess_GLOBAL) +#define Perl_mess DPPP_(my_mess) +SV* +DPPP_(my_mess)(pTHX_ const char* pat, ...) +{ +SV *sv; +va_list args; +va_start(args, pat); +sv = vmess(pat, &args); +va_end(args); +return sv; +} +#ifdef mess_nocontext +#define mess mess_nocontext +#else +#define mess Perl_mess_nocontext +#endif +#endif +#endif +#ifndef mess_sv +#if defined(NEED_mess_sv) +static SV * DPPP_(my_mess_sv)(pTHX_ SV * basemsg, bool consume); +static +#else +extern SV * DPPP_(my_mess_sv)(pTHX_ SV * basemsg, bool consume); +#endif +#if defined(NEED_mess_sv) || defined(NEED_mess_sv_GLOBAL) +#ifdef mess_sv +#undef mess_sv +#endif +#define mess_sv(a,b) DPPP_(my_mess_sv)(aTHX_ a,b) +#define Perl_mess_sv DPPP_(my_mess_sv) +SV * +DPPP_(my_mess_sv)(pTHX_ SV *basemsg, bool consume) +{ +SV *tmp; +SV *ret; +if (SvPOK(basemsg) && SvCUR(basemsg) && *(SvEND(basemsg)-1) == '\n') { +if (consume) +return basemsg; +ret = mess(""); +SvSetSV_nosteal(ret, basemsg); +return ret; +} +if (consume) { +sv_catsv(basemsg, mess("")); +return basemsg; +} +ret = mess(""); +tmp = newSVsv(ret); +SvSetSV_nosteal(ret, basemsg); +sv_catsv(ret, tmp); +sv_dec(tmp); +return ret; +} +#endif +#endif +#ifndef warn_nocontext +#define warn_nocontext warn +#endif +#ifndef croak_nocontext +#define croak_nocontext croak +#endif +#ifndef croak_no_modify +#define croak_no_modify() croak_nocontext("%s", PL_no_modify) +#define Perl_croak_no_modify() croak_no_modify() +#endif +#ifndef croak_memory_wrap +#if (PERL_BCDVERSION >= 0x5009002) || ( (PERL_BCDVERSION >= 0x5008006) && (PERL_BCDVERSION < 0x5009000) ) +#define croak_memory_wrap() croak_nocontext("%s", PL_memory_wrap) +#else +#define croak_memory_wrap() croak_nocontext("panic: memory wrap") +#endif +#endif +#ifndef croak_xs_usage +#if defined(NEED_croak_xs_usage) +static void DPPP_(my_croak_xs_usage)(const CV * const cv, const char * const params); +static +#else +extern void DPPP_(my_croak_xs_usage)(const CV * const cv, const char * const params); +#endif +#if defined(NEED_croak_xs_usage) || defined(NEED_croak_xs_usage_GLOBAL) +#define croak_xs_usage DPPP_(my_croak_xs_usage) +#define Perl_croak_xs_usage DPPP_(my_croak_xs_usage) +#ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE +#define PERL_ARGS_ASSERT_CROAK_XS_USAGE assert(cv); assert(params) +#endif +void +DPPP_(my_croak_xs_usage)(const CV *const cv, const char *const params) +{ +dTHX; +const GV *const gv = CvGV(cv); +PERL_ARGS_ASSERT_CROAK_XS_USAGE; +if (gv) { +const char *const gvname = GvNAME(gv); +const HV *const stash = GvSTASH(gv); +const char *const hvname = stash ? HvNAME(stash) : NULL; +if (hvname) +croak("Usage: %s::%s(%s)", hvname, gvname, params); +else +croak("Usage: %s(%s)", gvname, params); +} else { +croak("Usage: CODE(0x%" UVxf ")(%s)", PTR2UV(cv), params); +} +} +#endif +#endif #ifndef PERL_SIGNALS_UNSAFE_FLAG #define PERL_SIGNALS_UNSAFE_FLAG 0x0001 #if (PERL_BCDVERSION < 0x5008000) @@ -1046,12 +1399,12 @@ static #else extern SV* DPPP_(my_eval_pv)(char *p, I32 croak_on_error); #endif +#if defined(NEED_eval_pv) || defined(NEED_eval_pv_GLOBAL) #ifdef eval_pv #undef eval_pv #endif #define eval_pv(a,b) DPPP_(my_eval_pv)(aTHX_ a,b) #define Perl_eval_pv DPPP_(my_eval_pv) -#if defined(NEED_eval_pv) || defined(NEED_eval_pv_GLOBAL) SV* DPPP_(my_eval_pv)(char *p, I32 croak_on_error) { @@ -1063,8 +1416,8 @@ SvREFCNT_dec(sv); SPAGAIN; sv = POPs; PUTBACK; -if (croak_on_error && SvTRUE(GvSV(errgv))) -croak(SvPVx(GvSV(errgv), na)); +if (croak_on_error && SvTRUEx(ERRSV)) +croak_sv(ERRSV); return sv; } #endif @@ -1076,12 +1429,12 @@ static #else extern void DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args); #endif +#if defined(NEED_vload_module) || defined(NEED_vload_module_GLOBAL) #ifdef vload_module #undef vload_module #endif #define vload_module(a,b,c,d) DPPP_(my_vload_module)(aTHX_ a,b,c,d) #define Perl_vload_module DPPP_(my_vload_module) -#if defined(NEED_vload_module) || defined(NEED_vload_module_GLOBAL) void DPPP_(my_vload_module)(U32 flags, SV *name, SV *ver, va_list *args) { @@ -1139,12 +1492,12 @@ static #else extern void DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...); #endif +#if defined(NEED_load_module) || defined(NEED_load_module_GLOBAL) #ifdef load_module #undef load_module #endif #define load_module DPPP_(my_load_module) #define Perl_load_module DPPP_(my_load_module) -#if defined(NEED_load_module) || defined(NEED_load_module_GLOBAL) void DPPP_(my_load_module)(U32 flags, SV *name, SV *ver, ...) { @@ -1165,12 +1518,12 @@ static #else extern SV * DPPP_(my_newRV_noinc)(SV *sv); #endif +#if defined(NEED_newRV_noinc) || defined(NEED_newRV_noinc_GLOBAL) #ifdef newRV_noinc #undef newRV_noinc #endif #define newRV_noinc(a) DPPP_(my_newRV_noinc)(aTHX_ a) #define Perl_newRV_noinc DPPP_(my_newRV_noinc) -#if defined(NEED_newRV_noinc) || defined(NEED_newRV_noinc_GLOBAL) SV * DPPP_(my_newRV_noinc)(SV *sv) { @@ -1187,12 +1540,12 @@ static #else extern void DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv); #endif +#if defined(NEED_newCONSTSUB) || defined(NEED_newCONSTSUB_GLOBAL) #ifdef newCONSTSUB #undef newCONSTSUB #endif #define newCONSTSUB(a,b,c) DPPP_(my_newCONSTSUB)(aTHX_ a,b,c) #define Perl_newCONSTSUB DPPP_(my_newCONSTSUB) -#if defined(NEED_newCONSTSUB) || defined(NEED_newCONSTSUB_GLOBAL) #define D_PPP_PL_copline PL_copline void DPPP_(my_newCONSTSUB)(HV *stash, const char *name, SV *sv) @@ -1379,12 +1732,12 @@ static #else extern SV* DPPP_(my_newSV_type)(pTHX_ svtype const t); #endif +#if defined(NEED_newSV_type) || defined(NEED_newSV_type_GLOBAL) #ifdef newSV_type #undef newSV_type #endif #define newSV_type(a) DPPP_(my_newSV_type)(aTHX_ a) #define Perl_newSV_type DPPP_(my_newSV_type) -#if defined(NEED_newSV_type) || defined(NEED_newSV_type_GLOBAL) SV* DPPP_(my_newSV_type)(pTHX_ svtype const t) { @@ -1417,12 +1770,12 @@ static #else extern SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags); #endif +#if defined(NEED_newSVpvn_flags) || defined(NEED_newSVpvn_flags_GLOBAL) #ifdef newSVpvn_flags #undef newSVpvn_flags #endif #define newSVpvn_flags(a,b,c) DPPP_(my_newSVpvn_flags)(aTHX_ a,b,c) #define Perl_newSVpvn_flags DPPP_(my_newSVpvn_flags) -#if defined(NEED_newSVpvn_flags) || defined(NEED_newSVpvn_flags_GLOBAL) SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags) { @@ -1449,12 +1802,12 @@ static #else extern char * DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp); #endif +#if defined(NEED_sv_2pvbyte) || defined(NEED_sv_2pvbyte_GLOBAL) #ifdef sv_2pvbyte #undef sv_2pvbyte #endif #define sv_2pvbyte(a,b) DPPP_(my_sv_2pvbyte)(aTHX_ a,b) #define Perl_sv_2pvbyte DPPP_(my_sv_2pvbyte) -#if defined(NEED_sv_2pvbyte) || defined(NEED_sv_2pvbyte_GLOBAL) char * DPPP_(my_sv_2pvbyte)(pTHX_ SV *sv, STRLEN *lp) { @@ -1511,12 +1864,12 @@ static #else extern char * DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); #endif +#if defined(NEED_sv_2pv_flags) || defined(NEED_sv_2pv_flags_GLOBAL) #ifdef sv_2pv_flags #undef sv_2pv_flags #endif #define sv_2pv_flags(a,b,c) DPPP_(my_sv_2pv_flags)(aTHX_ a,b,c) #define Perl_sv_2pv_flags DPPP_(my_sv_2pv_flags) -#if defined(NEED_sv_2pv_flags) || defined(NEED_sv_2pv_flags_GLOBAL) char * DPPP_(my_sv_2pv_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags) { @@ -1530,12 +1883,12 @@ static #else extern char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags); #endif +#if defined(NEED_sv_pvn_force_flags) || defined(NEED_sv_pvn_force_flags_GLOBAL) #ifdef sv_pvn_force_flags #undef sv_pvn_force_flags #endif #define sv_pvn_force_flags(a,b,c) DPPP_(my_sv_pvn_force_flags)(aTHX_ a,b,c) #define Perl_sv_pvn_force_flags DPPP_(my_sv_pvn_force_flags) -#if defined(NEED_sv_pvn_force_flags) || defined(NEED_sv_pvn_force_flags_GLOBAL) char * DPPP_(my_sv_pvn_force_flags)(pTHX_ SV *sv, STRLEN *lp, I32 flags) { @@ -1545,9 +1898,9 @@ return sv_pvn_force(sv, lp ? lp : &n_a); #endif #endif #if (PERL_BCDVERSION < 0x5008008) || ( (PERL_BCDVERSION >= 0x5009000) && (PERL_BCDVERSION < 0x5009003) ) -#define DPPP_SVPV_NOLEN_LP_ARG &PL_na +#define D_PPP_SVPV_NOLEN_LP_ARG &PL_na #else -#define DPPP_SVPV_NOLEN_LP_ARG 0 +#define D_PPP_SVPV_NOLEN_LP_ARG 0 #endif #ifndef SvPV_const #define SvPV_const(sv, lp) SvPV_flags_const(sv, lp, SV_GMAGIC) @@ -1570,7 +1923,7 @@ return sv_pvn_force(sv, lp ? lp : &n_a); #define SvPV_flags_const_nolen(sv, flags) \ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ ? SvPVX_const(sv) : \ -(const char*) sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, flags|SV_CONST_RETURN)) +(const char*) sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, flags|SV_CONST_RETURN)) #endif #ifndef SvPV_flags_mutable #define SvPV_flags_mutable(sv, lp, flags) \ @@ -1601,7 +1954,7 @@ sv_2pv_flags(sv, &lp, flags|SV_MUTABLE_RETURN)) #ifndef SvPV_force_flags_nolen #define SvPV_force_flags_nolen(sv, flags) \ ((SvFLAGS(sv) & (SVf_POK|SVf_THINKFIRST)) == SVf_POK \ -? SvPVX(sv) : sv_pvn_force_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, flags)) +? SvPVX(sv) : sv_pvn_force_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, flags)) #endif #ifndef SvPV_force_flags_mutable #define SvPV_force_flags_mutable(sv, lp, flags) \ @@ -1612,12 +1965,12 @@ sv_2pv_flags(sv, &lp, flags|SV_MUTABLE_RETURN)) #ifndef SvPV_nolen #define SvPV_nolen(sv) \ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ -? SvPVX(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC)) +? SvPVX(sv) : sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC)) #endif #ifndef SvPV_nolen_const #define SvPV_nolen_const(sv) \ ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ -? SvPVX_const(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC|SV_CONST_RETURN)) +? SvPVX_const(sv) : sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, SV_GMAGIC|SV_CONST_RETURN)) #endif #ifndef SvPV_nomg #define SvPV_nomg(sv, lp) SvPV_flags(sv, lp, 0) @@ -1630,7 +1983,7 @@ sv_2pv_flags(sv, &lp, flags|SV_MUTABLE_RETURN)) #endif #ifndef SvPV_nomg_nolen #define SvPV_nomg_nolen(sv) ((SvFLAGS(sv) & (SVf_POK)) == SVf_POK \ -? SvPVX(sv) : sv_2pv_flags(sv, DPPP_SVPV_NOLEN_LP_ARG, 0)) +? SvPVX(sv) : sv_2pv_flags(sv, D_PPP_SVPV_NOLEN_LP_ARG, 0)) #endif #ifndef SvPV_renew #define SvPV_renew(sv,n) STMT_START { SvLEN_set(sv, n); \ @@ -1693,12 +2046,12 @@ static #else extern SV * DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args); #endif +#if defined(NEED_vnewSVpvf) || defined(NEED_vnewSVpvf_GLOBAL) #ifdef vnewSVpvf #undef vnewSVpvf #endif #define vnewSVpvf(a,b) DPPP_(my_vnewSVpvf)(aTHX_ a,b) #define Perl_vnewSVpvf DPPP_(my_vnewSVpvf) -#if defined(NEED_vnewSVpvf) || defined(NEED_vnewSVpvf_GLOBAL) SV * DPPP_(my_vnewSVpvf)(pTHX_ const char *pat, va_list *args) { @@ -1721,8 +2074,8 @@ static #else extern void DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...); #endif -#define Perl_sv_catpvf_mg DPPP_(my_sv_catpvf_mg) #if defined(NEED_sv_catpvf_mg) || defined(NEED_sv_catpvf_mg_GLOBAL) +#define Perl_sv_catpvf_mg DPPP_(my_sv_catpvf_mg) void DPPP_(my_sv_catpvf_mg)(pTHX_ SV *sv, const char *pat, ...) { @@ -1742,9 +2095,9 @@ static #else extern void DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...); #endif +#if defined(NEED_sv_catpvf_mg_nocontext) || defined(NEED_sv_catpvf_mg_nocontext_GLOBAL) #define sv_catpvf_mg_nocontext DPPP_(my_sv_catpvf_mg_nocontext) #define Perl_sv_catpvf_mg_nocontext DPPP_(my_sv_catpvf_mg_nocontext) -#if defined(NEED_sv_catpvf_mg_nocontext) || defined(NEED_sv_catpvf_mg_nocontext_GLOBAL) void DPPP_(my_sv_catpvf_mg_nocontext)(SV *sv, const char *pat, ...) { @@ -1779,8 +2132,8 @@ static #else extern void DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...); #endif -#define Perl_sv_setpvf_mg DPPP_(my_sv_setpvf_mg) #if defined(NEED_sv_setpvf_mg) || defined(NEED_sv_setpvf_mg_GLOBAL) +#define Perl_sv_setpvf_mg DPPP_(my_sv_setpvf_mg) void DPPP_(my_sv_setpvf_mg)(pTHX_ SV *sv, const char *pat, ...) { @@ -1800,9 +2153,9 @@ static #else extern void DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...); #endif +#if defined(NEED_sv_setpvf_mg_nocontext) || defined(NEED_sv_setpvf_mg_nocontext_GLOBAL) #define sv_setpvf_mg_nocontext DPPP_(my_sv_setpvf_mg_nocontext) #define Perl_sv_setpvf_mg_nocontext DPPP_(my_sv_setpvf_mg_nocontext) -#if defined(NEED_sv_setpvf_mg_nocontext) || defined(NEED_sv_setpvf_mg_nocontext_GLOBAL) void DPPP_(my_sv_setpvf_mg_nocontext)(SV *sv, const char *pat, ...) { @@ -1837,12 +2190,12 @@ static #else extern SV * DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash); #endif +#if defined(NEED_newSVpvn_share) || defined(NEED_newSVpvn_share_GLOBAL) #ifdef newSVpvn_share #undef newSVpvn_share #endif #define newSVpvn_share(a,b,c) DPPP_(my_newSVpvn_share)(aTHX_ a,b,c) #define Perl_newSVpvn_share DPPP_(my_newSVpvn_share) -#if defined(NEED_newSVpvn_share) || defined(NEED_newSVpvn_share_GLOBAL) SV * DPPP_(my_newSVpvn_share)(pTHX_ const char *src, I32 len, U32 hash) { @@ -1876,12 +2229,12 @@ static #else extern GV* DPPP_(my_gv_fetchpvn_flags)(pTHX_ const char* name, STRLEN len, int flags, int types); #endif +#if defined(NEED_gv_fetchpvn_flags) || defined(NEED_gv_fetchpvn_flags_GLOBAL) #ifdef gv_fetchpvn_flags #undef gv_fetchpvn_flags #endif #define gv_fetchpvn_flags(a,b,c,d) DPPP_(my_gv_fetchpvn_flags)(aTHX_ a,b,c,d) #define Perl_gv_fetchpvn_flags DPPP_(my_gv_fetchpvn_flags) -#if defined(NEED_gv_fetchpvn_flags) || defined(NEED_gv_fetchpvn_flags_GLOBAL) GV* DPPP_(my_gv_fetchpvn_flags)(pTHX_ const char* name, STRLEN len, int flags, int types) { char *namepv = savepvn(name, len); @@ -2064,8 +2417,8 @@ static #else extern void DPPP_(my_warner)(U32 err, const char *pat, ...); #endif -#define Perl_warner DPPP_(my_warner) #if defined(NEED_warner) || defined(NEED_warner_GLOBAL) +#define Perl_warner DPPP_(my_warner) void DPPP_(my_warner)(U32 err, const char *pat, ...) { @@ -2118,136 +2471,6 @@ warn("%s", SvPV_nolen(sv)); #ifndef SvGETMAGIC #define SvGETMAGIC(x) STMT_START { if (SvGMAGICAL(x)) mg_get(x); } STMT_END #endif -#ifndef HEf_SVKEY -#define HEf_SVKEY -2 -#endif -#ifndef MUTABLE_PTR -#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) -#define MUTABLE_PTR(p) ({ void *_p = (p); _p; }) -#else -#define MUTABLE_PTR(p) ((void *) (p)) -#endif -#endif -#ifndef MUTABLE_SV -#define MUTABLE_SV(p) ((SV *)MUTABLE_PTR(p)) -#endif -#ifndef PERL_MAGIC_sv -#define PERL_MAGIC_sv '\0' -#endif -#ifndef PERL_MAGIC_overload -#define PERL_MAGIC_overload 'A' -#endif -#ifndef PERL_MAGIC_overload_elem -#define PERL_MAGIC_overload_elem 'a' -#endif -#ifndef PERL_MAGIC_overload_table -#define PERL_MAGIC_overload_table 'c' -#endif -#ifndef PERL_MAGIC_bm -#define PERL_MAGIC_bm 'B' -#endif -#ifndef PERL_MAGIC_regdata -#define PERL_MAGIC_regdata 'D' -#endif -#ifndef PERL_MAGIC_regdatum -#define PERL_MAGIC_regdatum 'd' -#endif -#ifndef PERL_MAGIC_env -#define PERL_MAGIC_env 'E' -#endif -#ifndef PERL_MAGIC_envelem -#define PERL_MAGIC_envelem 'e' -#endif -#ifndef PERL_MAGIC_fm -#define PERL_MAGIC_fm 'f' -#endif -#ifndef PERL_MAGIC_regex_global -#define PERL_MAGIC_regex_global 'g' -#endif -#ifndef PERL_MAGIC_isa -#define PERL_MAGIC_isa 'I' -#endif -#ifndef PERL_MAGIC_isaelem -#define PERL_MAGIC_isaelem 'i' -#endif -#ifndef PERL_MAGIC_nkeys -#define PERL_MAGIC_nkeys 'k' -#endif -#ifndef PERL_MAGIC_dbfile -#define PERL_MAGIC_dbfile 'L' -#endif -#ifndef PERL_MAGIC_dbline -#define PERL_MAGIC_dbline 'l' -#endif -#ifndef PERL_MAGIC_mutex -#define PERL_MAGIC_mutex 'm' -#endif -#ifndef PERL_MAGIC_shared -#define PERL_MAGIC_shared 'N' -#endif -#ifndef PERL_MAGIC_shared_scalar -#define PERL_MAGIC_shared_scalar 'n' -#endif -#ifndef PERL_MAGIC_collxfrm -#define PERL_MAGIC_collxfrm 'o' -#endif -#ifndef PERL_MAGIC_tied -#define PERL_MAGIC_tied 'P' -#endif -#ifndef PERL_MAGIC_tiedelem -#define PERL_MAGIC_tiedelem 'p' -#endif -#ifndef PERL_MAGIC_tiedscalar -#define PERL_MAGIC_tiedscalar 'q' -#endif -#ifndef PERL_MAGIC_qr -#define PERL_MAGIC_qr 'r' -#endif -#ifndef PERL_MAGIC_sig -#define PERL_MAGIC_sig 'S' -#endif -#ifndef PERL_MAGIC_sigelem -#define PERL_MAGIC_sigelem 's' -#endif -#ifndef PERL_MAGIC_taint -#define PERL_MAGIC_taint 't' -#endif -#ifndef PERL_MAGIC_uvar -#define PERL_MAGIC_uvar 'U' -#endif -#ifndef PERL_MAGIC_uvar_elem -#define PERL_MAGIC_uvar_elem 'u' -#endif -#ifndef PERL_MAGIC_vstring -#define PERL_MAGIC_vstring 'V' -#endif -#ifndef PERL_MAGIC_vec -#define PERL_MAGIC_vec 'v' -#endif -#ifndef PERL_MAGIC_utf8 -#define PERL_MAGIC_utf8 'w' -#endif -#ifndef PERL_MAGIC_substr -#define PERL_MAGIC_substr 'x' -#endif -#ifndef PERL_MAGIC_defelem -#define PERL_MAGIC_defelem 'y' -#endif -#ifndef PERL_MAGIC_glob -#define PERL_MAGIC_glob '*' -#endif -#ifndef PERL_MAGIC_arylen -#define PERL_MAGIC_arylen '#' -#endif -#ifndef PERL_MAGIC_pos -#define PERL_MAGIC_pos '.' -#endif -#ifndef PERL_MAGIC_backref -#define PERL_MAGIC_backref '<' -#endif -#ifndef PERL_MAGIC_ext -#define PERL_MAGIC_ext '~' -#endif #ifndef sv_catpvn_nomg #define sv_catpvn_nomg sv_catpvn #endif @@ -2379,9 +2602,9 @@ static #else extern MAGIC * DPPP_(my_mg_findext)(SV * sv, int type, const MGVTBL *vtbl); #endif +#if defined(NEED_mg_findext) || defined(NEED_mg_findext_GLOBAL) #define mg_findext DPPP_(my_mg_findext) #define Perl_mg_findext DPPP_(my_mg_findext) -#if defined(NEED_mg_findext) || defined(NEED_mg_findext_GLOBAL) MAGIC * DPPP_(my_mg_findext)(SV * sv, int type, const MGVTBL *vtbl) { if (sv) { @@ -2405,12 +2628,12 @@ static #else extern int DPPP_(my_sv_unmagicext)(pTHX_ SV * const sv, const int type, MGVTBL * vtbl); #endif +#if defined(NEED_sv_unmagicext) || defined(NEED_sv_unmagicext_GLOBAL) #ifdef sv_unmagicext #undef sv_unmagicext #endif #define sv_unmagicext(a,b,c) DPPP_(my_sv_unmagicext)(aTHX_ a,b,c) #define Perl_sv_unmagicext DPPP_(my_sv_unmagicext) -#if defined(NEED_sv_unmagicext) || defined(NEED_sv_unmagicext_GLOBAL) int DPPP_(my_sv_unmagicext)(pTHX_ SV *const sv, const int type, MGVTBL *vtbl) { @@ -2547,12 +2770,12 @@ static #else extern const PERL_CONTEXT * DPPP_(my_caller_cx)(pTHX_ I32 count, const PERL_CONTEXT **dbcxp); #endif +#if defined(NEED_caller_cx) || defined(NEED_caller_cx_GLOBAL) #ifdef caller_cx #undef caller_cx #endif #define caller_cx(a,b) DPPP_(my_caller_cx)(aTHX_ a,b) #define Perl_caller_cx DPPP_(my_caller_cx) -#if defined(NEED_caller_cx) || defined(NEED_caller_cx_GLOBAL) const PERL_CONTEXT * DPPP_(my_caller_cx)(pTHX_ I32 count, const PERL_CONTEXT **dbcxp) { @@ -2639,12 +2862,12 @@ static #else extern bool DPPP_(my_grok_numeric_radix)(pTHX_ const char ** sp, const char * send); #endif +#if defined(NEED_grok_numeric_radix) || defined(NEED_grok_numeric_radix_GLOBAL) #ifdef grok_numeric_radix #undef grok_numeric_radix #endif #define grok_numeric_radix(a,b) DPPP_(my_grok_numeric_radix)(aTHX_ a,b) #define Perl_grok_numeric_radix DPPP_(my_grok_numeric_radix) -#if defined(NEED_grok_numeric_radix) || defined(NEED_grok_numeric_radix_GLOBAL) bool DPPP_(my_grok_numeric_radix)(pTHX_ const char **sp, const char *send) { @@ -2687,12 +2910,12 @@ static #else extern int DPPP_(my_grok_number)(pTHX_ const char * pv, STRLEN len, UV * valuep); #endif +#if defined(NEED_grok_number) || defined(NEED_grok_number_GLOBAL) #ifdef grok_number #undef grok_number #endif #define grok_number(a,b,c) DPPP_(my_grok_number)(aTHX_ a,b,c) #define Perl_grok_number DPPP_(my_grok_number) -#if defined(NEED_grok_number) || defined(NEED_grok_number_GLOBAL) int DPPP_(my_grok_number)(pTHX_ const char *pv, STRLEN len, UV *valuep) { @@ -2869,12 +3092,12 @@ static #else extern UV DPPP_(my_grok_bin)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result); #endif +#if defined(NEED_grok_bin) || defined(NEED_grok_bin_GLOBAL) #ifdef grok_bin #undef grok_bin #endif #define grok_bin(a,b,c,d) DPPP_(my_grok_bin)(aTHX_ a,b,c,d) #define Perl_grok_bin DPPP_(my_grok_bin) -#if defined(NEED_grok_bin) || defined(NEED_grok_bin_GLOBAL) UV DPPP_(my_grok_bin)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result) { @@ -2951,12 +3174,12 @@ static #else extern UV DPPP_(my_grok_hex)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result); #endif +#if defined(NEED_grok_hex) || defined(NEED_grok_hex_GLOBAL) #ifdef grok_hex #undef grok_hex #endif #define grok_hex(a,b,c,d) DPPP_(my_grok_hex)(aTHX_ a,b,c,d) #define Perl_grok_hex DPPP_(my_grok_hex) -#if defined(NEED_grok_hex) || defined(NEED_grok_hex_GLOBAL) UV DPPP_(my_grok_hex)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result) { @@ -3034,12 +3257,12 @@ static #else extern UV DPPP_(my_grok_oct)(pTHX_ const char * start, STRLEN * len_p, I32 * flags, NV * result); #endif +#if defined(NEED_grok_oct) || defined(NEED_grok_oct_GLOBAL) #ifdef grok_oct #undef grok_oct #endif #define grok_oct(a,b,c,d) DPPP_(my_grok_oct)(aTHX_ a,b,c,d) #define Perl_grok_oct DPPP_(my_grok_oct) -#if defined(NEED_grok_oct) || defined(NEED_grok_oct_GLOBAL) UV DPPP_(my_grok_oct)(pTHX_ const char *start, STRLEN *len_p, I32 *flags, NV *result) { @@ -3106,9 +3329,9 @@ static #else extern int DPPP_(my_my_snprintf)(char * buffer, const Size_t len, const char * format, ...); #endif +#if defined(NEED_my_snprintf) || defined(NEED_my_snprintf_GLOBAL) #define my_snprintf DPPP_(my_my_snprintf) #define Perl_my_snprintf DPPP_(my_my_snprintf) -#if defined(NEED_my_snprintf) || defined(NEED_my_snprintf_GLOBAL) int DPPP_(my_my_snprintf)(char *buffer, const Size_t len, const char *format, ...) { @@ -3135,9 +3358,9 @@ static #else extern int DPPP_(my_my_sprintf)(char * buffer, const char * pat, ...); #endif +#if defined(NEED_my_sprintf) || defined(NEED_my_sprintf_GLOBAL) #define my_sprintf DPPP_(my_my_sprintf) #define Perl_my_sprintf DPPP_(my_my_sprintf) -#if defined(NEED_my_sprintf) || defined(NEED_my_sprintf_GLOBAL) int DPPP_(my_my_sprintf)(char *buffer, const char* pat, ...) { @@ -3171,9 +3394,9 @@ static #else extern Size_t DPPP_(my_my_strlcat)(char * dst, const char * src, Size_t size); #endif +#if defined(NEED_my_strlcat) || defined(NEED_my_strlcat_GLOBAL) #define my_strlcat DPPP_(my_my_strlcat) #define Perl_my_strlcat DPPP_(my_my_strlcat) -#if defined(NEED_my_strlcat) || defined(NEED_my_strlcat_GLOBAL) Size_t DPPP_(my_my_strlcat)(char *dst, const char *src, Size_t size) { @@ -3196,9 +3419,9 @@ static #else extern Size_t DPPP_(my_my_strlcpy)(char * dst, const char * src, Size_t size); #endif +#if defined(NEED_my_strlcpy) || defined(NEED_my_strlcpy_GLOBAL) #define my_strlcpy DPPP_(my_my_strlcpy) #define Perl_my_strlcpy DPPP_(my_my_strlcpy) -#if defined(NEED_my_strlcpy) || defined(NEED_my_strlcpy_GLOBAL) Size_t DPPP_(my_my_strlcpy)(char *dst, const char *src, Size_t size) { @@ -3262,12 +3485,12 @@ static #else extern char * DPPP_(my_pv_escape)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags); #endif +#if defined(NEED_pv_escape) || defined(NEED_pv_escape_GLOBAL) #ifdef pv_escape #undef pv_escape #endif #define pv_escape(a,b,c,d,e,f) DPPP_(my_pv_escape)(aTHX_ a,b,c,d,e,f) #define Perl_pv_escape DPPP_(my_pv_escape) -#if defined(NEED_pv_escape) || defined(NEED_pv_escape_GLOBAL) char * DPPP_(my_pv_escape)(pTHX_ SV *dsv, char const * const str, const STRLEN count, const STRLEN max, @@ -3362,12 +3585,12 @@ static #else extern char * DPPP_(my_pv_pretty)(pTHX_ SV * dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags); #endif +#if defined(NEED_pv_pretty) || defined(NEED_pv_pretty_GLOBAL) #ifdef pv_pretty #undef pv_pretty #endif #define pv_pretty(a,b,c,d,e,f,g) DPPP_(my_pv_pretty)(aTHX_ a,b,c,d,e,f,g) #define Perl_pv_pretty DPPP_(my_pv_pretty) -#if defined(NEED_pv_pretty) || defined(NEED_pv_pretty_GLOBAL) char * DPPP_(my_pv_pretty)(pTHX_ SV *dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, @@ -3403,12 +3626,12 @@ static #else extern char * DPPP_(my_pv_display)(pTHX_ SV * dsv, const char * pv, STRLEN cur, STRLEN len, STRLEN pvlim); #endif +#if defined(NEED_pv_display) || defined(NEED_pv_display_GLOBAL) #ifdef pv_display #undef pv_display #endif #define pv_display(a,b,c,d,e) DPPP_(my_pv_display)(aTHX_ a,b,c,d,e) #define Perl_pv_display DPPP_(my_pv_display) -#if defined(NEED_pv_display) || defined(NEED_pv_display_GLOBAL) char * DPPP_(my_pv_display)(pTHX_ SV *dsv, const char *pv, STRLEN cur, STRLEN len, STRLEN pvlim) { diff --git a/src/modules/perlcore/typemap b/src/modules/perlcore/typemap index 4bfba95e9..68863a329 100644 --- a/src/modules/perlcore/typemap +++ b/src/modules/perlcore/typemap @@ -1,447 +1,36 @@ -# basic C types -int T_IV -unsigned T_UV -unsigned int T_UV -long T_IV -unsigned long T_UV -short T_IV -unsigned short T_UV -char T_CHAR -unsigned char T_U_CHAR -char * T_PV -unsigned char * T_PV -const char * T_PV -caddr_t T_PV -wchar_t * T_PV -wchar_t T_IV -# bool_t is defined in <rpc/rpc.h> -bool_t T_IV -size_t T_UV -ssize_t T_IV -time_t T_NV -unsigned long * T_OPAQUEPTR -char ** T_PACKEDARRAY -void * T_PTR -Time_t * T_PV -SV * T_SV +################################################################################ +# +# typemap -- XS type mappings not present in early perls +# +################################################################################ +# +# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz. +# Version 2.x, Copyright (C) 2001, Paul Marquess. +# Version 1.x, Copyright (C) 1999, Kenneth Albanowski. +# +# This program is free software; you can redistribute it and/or +# modify it under the same terms as Perl itself. +# +################################################################################ -# These are the backwards-compatibility AV*/HV* typemaps that -# do not decrement refcounts. Locally override with -# "AV* T_AVREF_REFCOUNT_FIXED", "HV* T_HVREF_REFCOUNT_FIXED", -# "CV* T_CVREF_REFCOUNT_FIXED", "SVREF T_SVREF_REFCOUNT_FIXED", -# to get the fixed versions. -SVREF T_SVREF -CV * T_CVREF -AV * T_AVREF -HV * T_HVREF - -IV T_IV -UV T_UV +UV T_UV NV T_NV -I32 T_IV -I16 T_IV -I8 T_IV -STRLEN T_UV -U32 T_U_LONG -U16 T_U_SHORT -U8 T_UV -Result T_U_CHAR -Boolean T_BOOL -float T_FLOAT -double T_DOUBLE -SysRet T_SYSRET -SysRetLong T_SYSRET -FILE * T_STDIO -PerlIO * T_INOUT -FileHandle T_PTROBJ -InputStream T_IN -InOutStream T_INOUT -OutputStream T_OUT -bool T_BOOL +HV * T_HVREF +STRLEN T_UV -############################################################################# INPUT -T_SV - $var = $arg -T_SVREF - STMT_START { - SV* const xsub_tmp_sv = $arg; - SvGETMAGIC(xsub_tmp_sv); - if (SvROK(xsub_tmp_sv)){ - $var = SvRV(xsub_tmp_sv); - } - else{ - Perl_croak_nocontext(\"%s: %s is not a reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); - } - } STMT_END -T_SVREF_REFCOUNT_FIXED - STMT_START { - SV* const xsub_tmp_sv = $arg; - SvGETMAGIC(xsub_tmp_sv); - if (SvROK(xsub_tmp_sv)){ - $var = SvRV(xsub_tmp_sv); - } - else{ - Perl_croak_nocontext(\"%s: %s is not a reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); - } - } STMT_END -T_AVREF - STMT_START { - SV* const xsub_tmp_sv = $arg; - SvGETMAGIC(xsub_tmp_sv); - if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVAV){ - $var = (AV*)SvRV(xsub_tmp_sv); - } - else{ - Perl_croak_nocontext(\"%s: %s is not an ARRAY reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); - } - } STMT_END -T_AVREF_REFCOUNT_FIXED - STMT_START { - SV* const xsub_tmp_sv = $arg; - SvGETMAGIC(xsub_tmp_sv); - if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVAV){ - $var = (AV*)SvRV(xsub_tmp_sv); - } - else{ - Perl_croak_nocontext(\"%s: %s is not an ARRAY reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); - } - } STMT_END -T_HVREF - STMT_START { - SV* const xsub_tmp_sv = $arg; - SvGETMAGIC(xsub_tmp_sv); - if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ - $var = (HV*)SvRV(xsub_tmp_sv); - } - else{ - Perl_croak_nocontext(\"%s: %s is not a HASH reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); - } - } STMT_END -T_HVREF_REFCOUNT_FIXED - STMT_START { - SV* const xsub_tmp_sv = $arg; - SvGETMAGIC(xsub_tmp_sv); - if (SvROK(xsub_tmp_sv) && SvTYPE(SvRV(xsub_tmp_sv)) == SVt_PVHV){ - $var = (HV*)SvRV(xsub_tmp_sv); - } - else{ - Perl_croak_nocontext(\"%s: %s is not a HASH reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); - } - } STMT_END -T_CVREF - STMT_START { - HV *st; - GV *gvp; - SV * const xsub_tmp_sv = $arg; - SvGETMAGIC(xsub_tmp_sv); - $var = sv_2cv(xsub_tmp_sv, &st, &gvp, 0); - if (!$var) { - Perl_croak_nocontext(\"%s: %s is not a CODE reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); - } - } STMT_END -T_CVREF_REFCOUNT_FIXED - STMT_START { - HV *st; - GV *gvp; - SV * const xsub_tmp_sv = $arg; - SvGETMAGIC(xsub_tmp_sv); - $var = sv_2cv(xsub_tmp_sv, &st, &gvp, 0); - if (!$var) { - Perl_croak_nocontext(\"%s: %s is not a CODE reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); - } - } STMT_END -T_SYSRET - $var NOT IMPLEMENTED T_UV - $var = ($type)SvUV($arg) -T_IV - $var = ($type)SvIV($arg) -T_INT - $var = (int)SvIV($arg) -T_ENUM - $var = ($type)SvIV($arg) -T_BOOL - $var = (bool)SvTRUE($arg) -T_U_INT - $var = (unsigned int)SvUV($arg) -T_SHORT - $var = (short)SvIV($arg) -T_U_SHORT - $var = (unsigned short)SvUV($arg) -T_LONG - $var = (long)SvIV($arg) -T_U_LONG - $var = (unsigned long)SvUV($arg) -T_CHAR - $var = (char)*SvPV_nolen($arg) -T_U_CHAR - $var = (unsigned char)SvUV($arg) -T_FLOAT - $var = (float)SvNV($arg) + $var = ($type)SvUV($arg) T_NV - $var = ($type)SvNV($arg) -T_DOUBLE - $var = (double)SvNV($arg) -T_PV - $var = ($type)SvPV_nolen($arg) -T_PTR - $var = INT2PTR($type,SvIV($arg)) -T_PTRREF - if (SvROK($arg)) { - IV tmp = SvIV((SV*)SvRV($arg)); - $var = INT2PTR($type,tmp); - } - else - Perl_croak_nocontext(\"%s: %s is not a reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\") -T_REF_IV_REF - if (sv_isa($arg, \"${ntype}\")) { - IV tmp = SvIV((SV*)SvRV($arg)); - $var = *INT2PTR($type *, tmp); - } - else - Perl_croak_nocontext(\"%s: %s is not of type %s\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\", \"$ntype\") -T_REF_IV_PTR - if (sv_isa($arg, \"${ntype}\")) { - IV tmp = SvIV((SV*)SvRV($arg)); - $var = INT2PTR($type, tmp); - } - else - Perl_croak_nocontext(\"%s: %s is not of type %s\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\", \"$ntype\") -T_PTROBJ - if (SvROK($arg) && sv_derived_from($arg, \"${ntype}\")) { - IV tmp = SvIV((SV*)SvRV($arg)); - $var = INT2PTR($type,tmp); - } - else - Perl_croak_nocontext(\"%s: %s is not of type %s\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\", \"$ntype\") -T_PTRDESC - if (sv_isa($arg, \"${ntype}\")) { - IV tmp = SvIV((SV*)SvRV($arg)); - ${type}_desc = (\U${type}_DESC\E*) tmp; - $var = ${type}_desc->ptr; - } - else - Perl_croak_nocontext(\"%s: %s is not of type %s\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\", \"$ntype\") -T_REFREF - if (SvROK($arg)) { - IV tmp = SvIV((SV*)SvRV($arg)); - $var = *INT2PTR($type,tmp); - } - else - Perl_croak_nocontext(\"%s: %s is not a reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\") -T_REFOBJ - if (sv_isa($arg, \"${ntype}\")) { - IV tmp = SvIV((SV*)SvRV($arg)); - $var = *INT2PTR($type,tmp); - } - else - Perl_croak_nocontext(\"%s: %s is not of type %s\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\", \"$ntype\") -T_OPAQUE - $var = *($type *)SvPV_nolen($arg) -T_OPAQUEPTR - $var = ($type)SvPV_nolen($arg) -T_PACKED - $var = XS_unpack_$ntype($arg) -T_PACKEDARRAY - $var = XS_unpack_$ntype($arg) -T_ARRAY - U32 ix_$var = $argoff; - $var = $ntype(items -= $argoff); - while (items--) { - DO_ARRAY_ELEM; - ix_$var++; - } - /* this is the number of elements in the array */ - ix_$var -= $argoff -T_STDIO - $var = PerlIO_findFILE(IoIFP(sv_2io($arg))) -T_IN - $var = IoIFP(sv_2io($arg)) -T_INOUT - $var = IoIFP(sv_2io($arg)) -T_OUT - $var = IoOFP(sv_2io($arg)) -############################################################################# -OUTPUT -T_SV - $arg = $var; -T_SVREF - $arg = newRV((SV*)$var); -T_SVREF_REFCOUNT_FIXED - $arg = newRV_noinc((SV*)$var); -T_AVREF - $arg = newRV((SV*)$var); -T_AVREF_REFCOUNT_FIXED - $arg = newRV_noinc((SV*)$var); + $var = ($type)SvNV($arg) T_HVREF - $arg = newRV((SV*)$var); -T_HVREF_REFCOUNT_FIXED - $arg = newRV_noinc((SV*)$var); -T_CVREF - $arg = newRV((SV*)$var); -T_CVREF_REFCOUNT_FIXED - $arg = newRV_noinc((SV*)$var); -T_IV - sv_setiv($arg, (IV)$var); + if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVHV) + $var = (HV*)SvRV($arg); + else + Perl_croak(aTHX_ \"$var is not a hash reference\") + +OUTPUT T_UV - sv_setuv($arg, (UV)$var); -T_INT - sv_setiv($arg, (IV)$var); -T_SYSRET - if ($var != -1) { - if ($var == 0) - sv_setpvn($arg, "0 but true", 10); - else - sv_setiv($arg, (IV)$var); - } -T_ENUM - sv_setiv($arg, (IV)$var); -T_BOOL - ${"$var" eq "RETVAL" ? \"$arg = boolSV($var);" : \"sv_setsv($arg, boolSV($var));"} -T_U_INT - sv_setuv($arg, (UV)$var); -T_SHORT - sv_setiv($arg, (IV)$var); -T_U_SHORT - sv_setuv($arg, (UV)$var); -T_LONG - sv_setiv($arg, (IV)$var); -T_U_LONG - sv_setuv($arg, (UV)$var); -T_CHAR - sv_setpvn($arg, (char *)&$var, 1); -T_U_CHAR - sv_setuv($arg, (UV)$var); -T_FLOAT - sv_setnv($arg, (double)$var); + sv_setuv($arg, (UV)$var); T_NV - sv_setnv($arg, (NV)$var); -T_DOUBLE - sv_setnv($arg, (double)$var); -T_PV - sv_setpv((SV*)$arg, $var); -T_PTR - sv_setiv($arg, PTR2IV($var)); -T_PTRREF - sv_setref_pv($arg, Nullch, (void*)$var); -T_REF_IV_REF - sv_setref_pv($arg, \"${ntype}\", (void*)new $ntype($var)); -T_REF_IV_PTR - sv_setref_pv($arg, \"${ntype}\", (void*)$var); -T_PTROBJ - sv_setref_pv($arg, \"${ntype}\", (void*)$var); -T_PTRDESC - sv_setref_pv($arg, \"${ntype}\", (void*)new\U${type}_DESC\E($var)); -T_REFREF - NOT_IMPLEMENTED -T_REFOBJ - NOT IMPLEMENTED -T_OPAQUE - sv_setpvn($arg, (char *)&$var, sizeof($var)); -T_OPAQUEPTR - sv_setpvn($arg, (char *)$var, sizeof(*$var)); -T_PACKED - XS_pack_$ntype($arg, $var); -T_PACKEDARRAY - XS_pack_$ntype($arg, $var, count_$ntype); -T_ARRAY - { - U32 ix_$var; - SSize_t extend_size = - /* The weird way this is written is because g++ is dumb - * enough to warn "comparison is always false" on something - * like: - * - * sizeof(a) > sizeof(b) && a > B_t_MAX - * - * (where the LH condition is false) - */ - (size_$var > (sizeof(size_$var) > sizeof(SSize_t) - ? SSize_t_MAX : size_$var)) - ? -1 : (SSize_t)size_$var; - EXTEND(SP, extend_size); - for (ix_$var = 0; ix_$var < size_$var; ix_$var++) { - ST(ix_$var) = sv_newmortal(); - DO_ARRAY_ELEM - } - } -T_STDIO - { - GV *gv = newGVgen("$Package"); - PerlIO *fp = PerlIO_importFILE($var,0); - if ( fp && do_open(gv, "+<&", 3, FALSE, 0, 0, fp) ) { - SV *rv = newRV_inc((SV*)gv); - rv = sv_bless(rv, GvSTASH(gv)); - ${"$var" eq "RETVAL" ? \"$arg = sv_2mortal(rv);" - : \"sv_setsv($arg, rv);\n\t\tSvREFCNT_dec_NN(rv);"} - }${"$var" ne "RETVAL" ? \" - else - sv_setsv($arg, &PL_sv_undef);\n" : \""} - } -T_IN - { - GV *gv = newGVgen("$Package"); - if ( do_open(gv, "<&", 2, FALSE, 0, 0, $var) ) { - SV *rv = newRV_inc((SV*)gv); - rv = sv_bless(rv, GvSTASH(gv)); - ${"$var" eq "RETVAL" ? \"$arg = sv_2mortal(rv);" - : \"sv_setsv($arg, rv);\n\t\tSvREFCNT_dec_NN(rv);"} - }${"$var" ne "RETVAL" ? \" - else - sv_setsv($arg, &PL_sv_undef);\n" : \""} - } -T_INOUT - { - GV *gv = newGVgen("$Package"); - if ( do_open(gv, "+<&", 3, FALSE, 0, 0, $var) ) { - SV *rv = newRV_inc((SV*)gv); - rv = sv_bless(rv, GvSTASH(gv)); - ${"$var" eq "RETVAL" ? \"$arg = sv_2mortal(rv);" - : \"sv_setsv($arg, rv);\n\t\tSvREFCNT_dec_NN(rv);"} - }${"$var" ne "RETVAL" ? \" - else - sv_setsv($arg, &PL_sv_undef);\n" : \""} - } -T_OUT - { - GV *gv = newGVgen("$Package"); - if ( do_open(gv, "+>&", 3, FALSE, 0, 0, $var) ) { - SV *rv = newRV_inc((SV*)gv); - rv = sv_bless(rv, GvSTASH(gv)); - ${"$var" eq "RETVAL" ? \"$arg = sv_2mortal(rv);" - : \"sv_setsv($arg, rv);\n\t\tSvREFCNT_dec_NN(rv);"} - }${"$var" ne "RETVAL" ? \" - else - sv_setsv($arg, &PL_sv_undef);\n" : \""} - } + sv_setnv($arg, (NV)$var); diff --git a/src/modules/perlcore/xs.inc b/src/modules/perlcore/xs.inc index 125ff0f55..5c99d114a 100644 --- a/src/modules/perlcore/xs.inc +++ b/src/modules/perlcore/xs.inc @@ -1,5 +1,5 @@ /* - * This file was generated automatically by ExtUtils::ParseXS version 3.34 from the + * This file was generated automatically by ExtUtils::ParseXS version 3.39 from the * contents of KVIrc.xs. Do not edit this file, edit KVIrc.xs instead. * * ANY CHANGES MADE HERE WILL BE LOST! diff --git a/src/modules/popupeditor/PopupEditorWindow.cpp b/src/modules/popupeditor/PopupEditorWindow.cpp index 60b7741f6..572a8e7bd 100644 --- a/src/modules/popupeditor/PopupEditorWindow.cpp +++ b/src/modules/popupeditor/PopupEditorWindow.cpp @@ -450,15 +450,10 @@ void SinglePopupEditor::customContextMenuRequested(const QPoint & pos) __tr2qs_ctx("Paste Inside", "editor"), this, SLOT(contextPasteInside())) ->setEnabled(it && bIsMenu && m_pClipboard); - bool bSeparatorInserted = false; - m_pContextPopup->addSeparator(); - bSeparatorInserted = true; m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Prologue)), __tr2qs_ctx("New Menu Prologue", "editor"), this, SLOT(contextNewPrologue())); - if(!bSeparatorInserted) - m_pContextPopup->addSeparator(); m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Epilogue)), __tr2qs_ctx("New Menu Epilogue", "editor"), this, SLOT(contextNewEpilogue())); diff --git a/src/modules/popupeditor/PopupEditorWindow.h b/src/modules/popupeditor/PopupEditorWindow.h index 127ed1994..62228bdec 100644 --- a/src/modules/popupeditor/PopupEditorWindow.h +++ b/src/modules/popupeditor/PopupEditorWindow.h @@ -104,7 +104,7 @@ public: protected: // theItem is the item above the first item that has to be inserted - void populateMenu(KviKvsPopupMenu * pop, PopupTreeWidgetItem * par, PopupTreeWidgetItem * theItem = 0); + void populateMenu(KviKvsPopupMenu * pop, PopupTreeWidgetItem * par, PopupTreeWidgetItem * theItem = nullptr); void saveLastSelectedItem(); void addItemToMenu(KviKvsPopupMenu * pop, PopupTreeWidgetItem * par); PopupTreeWidgetItem * newItem(PopupTreeWidgetItem * par, PopupTreeWidgetItem * after, PopupTreeWidgetItem::Type t); @@ -189,7 +189,7 @@ protected slots: void popupRefresh(const QString & szName); protected: - void showEvent(QShowEvent * e); + void showEvent(QShowEvent * e) override; void getExportPopupBuffer(QString & buffer, MenuTreeWidgetItem * it); private: diff --git a/src/modules/pythoncore/kvircmodule.cpp b/src/modules/pythoncore/kvircmodule.cpp index 659345d7e..8f7d15958 100644 --- a/src/modules/pythoncore/kvircmodule.cpp +++ b/src/modules/pythoncore/kvircmodule.cpp @@ -66,9 +66,8 @@ extern KviCString g_szLastReturnValue; extern QStringList g_lWarningList; extern QString g_lError; -static PyObject * PyKVIrc_echo(PyObject * pSelf, PyObject * pArgs) +static PyObject * PyKVIrc_echo(PyObject * /* pSelf */, PyObject * pArgs) { - Q_UNUSED(pSelf); const char *pcText = nullptr, *pcWinId = nullptr; KviWindow * pWnd = nullptr; int iColorSet = 0; @@ -104,9 +103,8 @@ static PyObject * PyKVIrc_echo(PyObject * pSelf, PyObject * pArgs) return Py_BuildValue("i", 1); } -static PyObject * PyKVIrc_say(PyObject * pSelf, PyObject * pArgs) +static PyObject * PyKVIrc_say(PyObject * /* pSelf */, PyObject * pArgs) { - Q_UNUSED(pSelf); const char *pcText = nullptr, *pcWinId = nullptr; KviWindow * pWnd = nullptr; @@ -143,9 +141,8 @@ static PyObject * PyKVIrc_say(PyObject * pSelf, PyObject * pArgs) return Py_BuildValue("i", 1); } -static PyObject * PyKVIrc_warning(PyObject * pSelf, PyObject * pArgs) +static PyObject * PyKVIrc_warning(PyObject * /* pSelf */, PyObject * pArgs) { - Q_UNUSED(pSelf); const char * pcText = nullptr; if(QThread::currentThread() != g_pApp->thread()) @@ -166,9 +163,8 @@ static PyObject * PyKVIrc_warning(PyObject * pSelf, PyObject * pArgs) return Py_BuildValue("i", 1); } -static PyObject * PyKVIrc_getLocal(PyObject * pSelf, PyObject * pArgs) +static PyObject * PyKVIrc_getLocal(PyObject * /* pSelf */, PyObject * pArgs) { - Q_UNUSED(pSelf); const char * szVarName = nullptr; QString tmp; @@ -197,9 +193,8 @@ static PyObject * PyKVIrc_getLocal(PyObject * pSelf, PyObject * pArgs) return nullptr; } -static PyObject * PyKVIrc_setLocal(PyObject * pSelf, PyObject * pArgs) +static PyObject * PyKVIrc_setLocal(PyObject * /* pSelf */, PyObject * pArgs) { - Q_UNUSED(pSelf); const char *szVarName = nullptr, *szVarValue = nullptr; QString tmp; @@ -228,9 +223,8 @@ static PyObject * PyKVIrc_setLocal(PyObject * pSelf, PyObject * pArgs) return nullptr; } -static PyObject * PyKVIrc_getGlobal(PyObject * pSelf, PyObject * pArgs) +static PyObject * PyKVIrc_getGlobal(PyObject * /* pSelf */, PyObject * pArgs) { - Q_UNUSED(pSelf); const char * szVarName = nullptr; QString tmp; @@ -259,9 +253,8 @@ static PyObject * PyKVIrc_getGlobal(PyObject * pSelf, PyObject * pArgs) return nullptr; } -static PyObject * PyKVIrc_setGlobal(PyObject * pSelf, PyObject * pArgs) +static PyObject * PyKVIrc_setGlobal(PyObject * /* pSelf */, PyObject * pArgs) { - Q_UNUSED(pSelf); const char *szVarName = nullptr, *szVarValue = nullptr; QString tmp; @@ -290,9 +283,8 @@ static PyObject * PyKVIrc_setGlobal(PyObject * pSelf, PyObject * pArgs) return nullptr; } -static PyObject * PyKVIrc_eval(PyObject * pSelf, PyObject * pArgs) +static PyObject * PyKVIrc_eval(PyObject * /* pSelf */, PyObject * pArgs) { - Q_UNUSED(pSelf); const char * pcCode = nullptr; KviWindow * pWnd = nullptr; char * pcRetVal = nullptr; @@ -330,9 +322,8 @@ static PyObject * PyKVIrc_eval(PyObject * pSelf, PyObject * pArgs) return Py_BuildValue("s", pcRetVal); } -static PyObject * PyKVIrc_internalWarning(PyObject * pSelf, PyObject * pArgs) +static PyObject * PyKVIrc_internalWarning(PyObject * /* pSelf */, PyObject * pArgs) { - Q_UNUSED(pSelf); const char * pcText = nullptr; if(QThread::currentThread() != g_pApp->thread()) @@ -350,9 +341,8 @@ static PyObject * PyKVIrc_internalWarning(PyObject * pSelf, PyObject * pArgs) return Py_BuildValue("i", 1); } -static PyObject * PyKVIrc_error(PyObject * pSelf, PyObject * pArgs) +static PyObject * PyKVIrc_error(PyObject * /* pSelf */, PyObject * pArgs) { - Q_UNUSED(pSelf); const char * pcText = nullptr; if(QThread::currentThread() != g_pApp->thread()) diff --git a/src/modules/pythoncore/pythoncoreinterface.h b/src/modules/pythoncore/pythoncoreinterface.h index 26b42aa1a..5dae39698 100644 --- a/src/modules/pythoncore/pythoncoreinterface.h +++ b/src/modules/pythoncore/pythoncoreinterface.h @@ -32,7 +32,7 @@ #define KVI_PYTHONCORECTRLCOMMAND_EXECUTE "execute" -typedef struct _KviPythonCoreCtrlCommand_execute +struct KviPythonCoreCtrlCommand_execute { unsigned int uSize; KviKvsRunTimeContext * pKvsContext; @@ -44,14 +44,14 @@ typedef struct _KviPythonCoreCtrlCommand_execute QStringList lWarnings; QStringList lArgs; bool bQuiet; -} KviPythonCoreCtrlCommand_execute; +}; #define KVI_PYTHONCORECTRLCOMMAND_DESTROY "destroy" -typedef struct _KviPythonCoreCtrlCommand_destroy +struct KviPythonCoreCtrlCommand_destroy { unsigned int uSize; QString szContext; -} KviPythonCoreCtrlCommand_destroy; +}; #endif // !_PYTHONCOREINTERFACE_H_ diff --git a/src/modules/raweditor/RawEditorWindow.cpp b/src/modules/raweditor/RawEditorWindow.cpp index 53364371a..c9aedb643 100644 --- a/src/modules/raweditor/RawEditorWindow.cpp +++ b/src/modules/raweditor/RawEditorWindow.cpp @@ -153,11 +153,11 @@ void RawEditorWidget::customContextMenuRequested(const QPoint & pos) m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::HandlerDisabled)), __tr2qs_ctx("&Disable Handler", "editor"), this, SLOT(toggleCurrentHandlerEnabled())); - m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Discard)), - __tr2qs_ctx("Re&move Handler", "editor"), this, SLOT(removeCurrentHandler())); + m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Discard)), + __tr2qs_ctx("Re&move Handler", "editor"), this, SLOT(removeCurrentHandler())); - m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Save)), - __tr2qs_ctx("&Export Handler to...", "editor"), this, SLOT(exportCurrentHandler())); + m_pContextPopup->addAction(*(g_pIconManager->getSmallIcon(KviIconManager::Save)), + __tr2qs_ctx("&Export Handler to...", "editor"), this, SLOT(exportCurrentHandler())); } else { diff --git a/src/modules/raweditor/RawEditorWindow.h b/src/modules/raweditor/RawEditorWindow.h index 903c76c94..dc8c42b8e 100644 --- a/src/modules/raweditor/RawEditorWindow.h +++ b/src/modules/raweditor/RawEditorWindow.h @@ -123,7 +123,7 @@ protected slots: void exportCurrentHandler(); protected: - void showEvent(QShowEvent * e); + void showEvent(QShowEvent * e) override; private: void oneTimeSetup(); @@ -140,11 +140,11 @@ protected: RawEditorWidget * m_pEditor; protected: - virtual QPixmap * myIconPtr(); - virtual void fillCaptionBuffers(); - virtual void getConfigGroupName(QString & szName); - virtual void saveProperties(KviConfigurationFile *); - virtual void loadProperties(KviConfigurationFile *); + QPixmap * myIconPtr() override; + void fillCaptionBuffers() override; + void getConfigGroupName(QString & szName) override; + void saveProperties(KviConfigurationFile *) override; + void loadProperties(KviConfigurationFile *) override; protected slots: void cancelClicked(); void okClicked(); diff --git a/src/modules/reguser/RegisteredUserEntryDialog.cpp b/src/modules/reguser/RegisteredUserEntryDialog.cpp index ef08d3b67..87b97cfeb 100644 --- a/src/modules/reguser/RegisteredUserEntryDialog.cpp +++ b/src/modules/reguser/RegisteredUserEntryDialog.cpp @@ -415,7 +415,7 @@ RegisteredUserEntryDialog::RegisteredUserEntryDialog(QWidget * p, KviRegisteredU m_pCustomColorCheck->setChecked(r->getBoolProperty("useCustomColor")); g->addWidget(m_pCustomColorCheck, 5, 0, 1, 2); - m_pCustomColorSelector = new KviColorSelector(p2, QString(), m_pCustomColor, 1); + m_pCustomColorSelector = new KviColorSelector(p2, QString(), m_pCustomColor, true); g->addWidget(m_pCustomColorSelector, 5, 2); QPushButton * pb = new QPushButton(__tr2qs_ctx("All Properties...", "register"), p2); diff --git a/src/modules/reguser/RegisteredUserEntryDialog.h b/src/modules/reguser/RegisteredUserEntryDialog.h index 36dd0d640..8bb40f72e 100644 --- a/src/modules/reguser/RegisteredUserEntryDialog.h +++ b/src/modules/reguser/RegisteredUserEntryDialog.h @@ -61,7 +61,7 @@ protected: protected: void fillData(); - virtual void closeEvent(QCloseEvent *); + void closeEvent(QCloseEvent *) override; protected slots: void okClicked(); void addClicked(); @@ -82,7 +82,7 @@ protected: QLineEdit * m_pUserEdit; QLineEdit * m_pHostEdit; - virtual void closeEvent(QCloseEvent *); + void closeEvent(QCloseEvent *) override; protected slots: void okClicked(); }; @@ -92,7 +92,7 @@ class RegisteredUserEntryDialog : public KviTalTabDialog Q_OBJECT public: RegisteredUserEntryDialog(QWidget * p, KviRegisteredUser * r, bool bModal = true); - virtual ~RegisteredUserEntryDialog(); + ~RegisteredUserEntryDialog(); protected: KviRegisteredUser * m_pUser; @@ -129,7 +129,7 @@ protected: QCheckBox * m_pIgnoreDcc; QCheckBox * m_pIgnoreHighlight; - virtual void closeEvent(QCloseEvent *); + void closeEvent(QCloseEvent *) override; protected slots: void okClicked(); void addMaskClicked(); diff --git a/src/modules/reguser/RegisteredUsersDialog.cpp b/src/modules/reguser/RegisteredUsersDialog.cpp index 907119896..5f51decd6 100644 --- a/src/modules/reguser/RegisteredUsersDialog.cpp +++ b/src/modules/reguser/RegisteredUsersDialog.cpp @@ -219,7 +219,7 @@ QSize RegisteredUsersDialogItemDelegate::sizeHint(const QStyleOptionViewItem & o //users // RegisteredUsersDialogItem *it=(RegisteredUsersDialogItem*)item; - return QSize(300, LVI_ICON_SIZE + 2 * LVI_BORDER); + return { 300, LVI_ICON_SIZE + 2 * LVI_BORDER }; } } @@ -445,9 +445,9 @@ void RegisteredUsersDialog::editGroup(KviRegisteredUserGroup * group) if(ok && !text.isEmpty()) { QString szOldGroup = group->name(); - g_pLocalRegisteredUserDataBase->groupDict()->setAutoDelete(0); + g_pLocalRegisteredUserDataBase->groupDict()->setAutoDelete(false); g_pLocalRegisteredUserDataBase->groupDict()->remove(szOldGroup); - g_pLocalRegisteredUserDataBase->groupDict()->setAutoDelete(1); + g_pLocalRegisteredUserDataBase->groupDict()->setAutoDelete(true); group->setName(text); g_pLocalRegisteredUserDataBase->groupDict()->insert(text, group); @@ -697,12 +697,12 @@ void RegisteredUsersDialog::selectionChanged() #define KVI_REGUSER_DB_FILE_MAGIC 0x5334DBDB #define KVI_REGUSER_DB_FILE_VERSION 1 -typedef struct _KviReguserDbFileHeader +struct KviReguserDbFileHeader { kvi_u32_t magic; kvi_u32_t version; kvi_u32_t nentries; -} KviReguserDbFileHeader; +}; void RegisteredUsersDialog::exportClicked() { diff --git a/src/modules/reguser/RegisteredUsersDialog.h b/src/modules/reguser/RegisteredUsersDialog.h index 5a049dc20..f6cd209ae 100644 --- a/src/modules/reguser/RegisteredUsersDialog.h +++ b/src/modules/reguser/RegisteredUsersDialog.h @@ -46,7 +46,7 @@ public: ~KviRegisteredUsersListView(){}; protected: - void mousePressEvent(QMouseEvent * e); + void mousePressEvent(QMouseEvent * e) override; signals: void rightButtonPressed(QTreeWidgetItem *, QPoint); }; @@ -54,11 +54,11 @@ signals: class RegisteredUsersDialogItemDelegate : public QStyledItemDelegate { public: - RegisteredUsersDialogItemDelegate(KviRegisteredUsersListView * pWidget = 0) + RegisteredUsersDialogItemDelegate(KviRegisteredUsersListView * pWidget = nullptr) : QStyledItemDelegate(pWidget){}; ~RegisteredUsersDialogItemDelegate(){}; - QSize sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const; - void paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const; + QSize sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const override; + void paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const override; }; class RegisteredUsersDialogItemBase : public QTreeWidgetItem @@ -123,7 +123,7 @@ class RegisteredUsersDialog : public QWidget { Q_OBJECT public: - RegisteredUsersDialog(QWidget * par = 0); + RegisteredUsersDialog(QWidget * par = nullptr); ~RegisteredUsersDialog(); public: @@ -141,7 +141,7 @@ protected: void fillList(); void editItem(RegisteredUsersDialogItem * i); void editGroup(KviRegisteredUserGroup * group); - virtual void closeEvent(QCloseEvent *); + void closeEvent(QCloseEvent *) override; protected slots: void cancelClicked(); void okClicked(); diff --git a/src/modules/reguser/RegistrationWizard.h b/src/modules/reguser/RegistrationWizard.h index b41ac6a06..a3cd710ed 100644 --- a/src/modules/reguser/RegistrationWizard.h +++ b/src/modules/reguser/RegistrationWizard.h @@ -43,7 +43,7 @@ class RegistrationWizard : public KviTalWizard { Q_OBJECT public: - RegistrationWizard(const QString & startMask, KviRegisteredUserDataBase * db = 0, QWidget * par = 0, bool bModal = false); + RegistrationWizard(const QString & startMask, KviRegisteredUserDataBase * db = nullptr, QWidget * par = nullptr, bool bModal = false); ~RegistrationWizard(); KviRegisteredUserDataBase * m_pDb; @@ -80,9 +80,9 @@ public: KviPixmap * m_pAvatar; protected: - virtual void showEvent(QShowEvent * e); - virtual void accept(); - virtual void reject(); + void showEvent(QShowEvent * e) override; + void accept() override; + void reject() override; protected slots: void realNameChanged(const QString & str); void maskChanged(const QString & str); diff --git a/src/modules/reguser/libkvireguser.cpp b/src/modules/reguser/libkvireguser.cpp index ebb9d6abb..a695cac9b 100644 --- a/src/modules/reguser/libkvireguser.cpp +++ b/src/modules/reguser/libkvireguser.cpp @@ -223,7 +223,7 @@ static bool reguser_kvs_cmd_add(KviKvsModuleCommandCall * c) { KviIrcMask * m = new KviIrcMask(szMask); u = g_pRegisteredUserDataBase->addMask(u, m); - if(!u) + if(u) { if(!c->hasSwitch('q', "quiet")) c->warning(__tr2qs_ctx("Mask %Q is already used to identify user %s", "register"), &szMask, u->name().toUtf8().data()); diff --git a/src/modules/rijndael/BlowFish.cpp b/src/modules/rijndael/BlowFish.cpp index e56178276..1d16a1d43 100644 --- a/src/modules/rijndael/BlowFish.cpp +++ b/src/modules/rijndael/BlowFish.cpp @@ -436,7 +436,7 @@ void BlowFish::Decrypt(SBlock & block) } //Semi-Portable Byte Shuffling -inline void BytesToBlock(unsigned char const * p, SBlock & b) +void BytesToBlock(unsigned char const * p, SBlock & b) { unsigned int y; //Left @@ -467,7 +467,7 @@ inline void BytesToBlock(unsigned char const * p, SBlock & b) b.m_uir |= y; } -inline void BlockToBytes(SBlock const & b, unsigned char * p) +void BlockToBytes(SBlock const & b, unsigned char * p) { unsigned int y; //Right diff --git a/src/modules/rijndael/InitVectorEngine.cpp b/src/modules/rijndael/InitVectorEngine.cpp index 776308260..e0ba47b36 100644 --- a/src/modules/rijndael/InitVectorEngine.cpp +++ b/src/modules/rijndael/InitVectorEngine.cpp @@ -24,7 +24,7 @@ #include "InitVectorEngine.h" -#include <stdlib.h> +#include <cstdlib> #include "KviTimeUtils.h" namespace InitVectorEngine diff --git a/src/modules/rijndael/Rijndael.h b/src/modules/rijndael/Rijndael.h index 6905397e9..95331c07a 100644 --- a/src/modules/rijndael/Rijndael.h +++ b/src/modules/rijndael/Rijndael.h @@ -145,31 +145,31 @@ protected: public: // Initializes the crypt session // Returns RIJNDAEL_SUCCESS or an error code - int init(Mode mode, Direction dir, const UINT8 * key, KeyLength keyLen, UINT8 * initVector = 0); + int init(Mode mode, Direction dir, const UINT8 * key, KeyLength keyLen, UINT8 * initVector = nullptr); // Input len is in BITS! // Encrypts inputLen / 128 blocks of input and puts it in outBuffer // outBuffer must be at least inputLen / 8 bytes long. // Returns the encrypted buffer length in BITS or an error code < 0 in case of error - int blockEncrypt(const UINT8 * input, int inputLen, UINT8 * outBuffer, UINT8 * initVector = 0); + int blockEncrypt(const UINT8 * input, int inputLen, UINT8 * outBuffer, UINT8 * initVector = nullptr); // Input len is in BYTES! // outBuffer must be at least inputLen + 16 bytes long // Returns the encrypted buffer length in BYTES or an error code < 0 in case of error - int padEncrypt(const UINT8 * input, int inputOctets, UINT8 * outBuffer, UINT8 * initVector = 0); + int padEncrypt(const UINT8 * input, int inputOctets, UINT8 * outBuffer, UINT8 * initVector = nullptr); // Input len is in BITS! // outBuffer must be at least inputLen / 8 bytes long // Returns the decrypted buffer length in BITS and an error code < 0 in case of error - int blockDecrypt(const UINT8 * input, int inputLen, UINT8 * outBuffer, UINT8 * initVector = 0); + int blockDecrypt(const UINT8 * input, int inputLen, UINT8 * outBuffer, UINT8 * initVector = nullptr); // Input len is in BYTES! // outBuffer must be at least inputLen bytes long // Returns the decrypted buffer length in BYTES and an error code < 0 in case of error - int padDecrypt(const UINT8 * input, int inputOctets, UINT8 * outBuffer, UINT8 * initVector = 0); + int padDecrypt(const UINT8 * input, int inputOctets, UINT8 * outBuffer, UINT8 * initVector = nullptr); protected: void keySched(UINT8 key[_MAX_KEY_COLUMNS][4]); void keyEncToDec(); void encrypt(const UINT8 a[16], UINT8 b[16]); void decrypt(const UINT8 a[16], UINT8 b[16]); - void updateInitVector(UINT8 * initVector = 0); + void updateInitVector(UINT8 * initVector = nullptr); }; #endif // COMPILE_CRYPT_SUPPORT diff --git a/src/modules/rijndael/libkvirijndael.h b/src/modules/rijndael/libkvirijndael.h index ef54e7ec6..eb9a371d3 100644 --- a/src/modules/rijndael/libkvirijndael.h +++ b/src/modules/rijndael/libkvirijndael.h @@ -38,7 +38,7 @@ class KviRijndaelEngine : public KviCryptEngine Q_OBJECT public: KviRijndaelEngine(); - virtual ~KviRijndaelEngine(); + ~KviRijndaelEngine(); private: enum OperationalMode @@ -71,7 +71,7 @@ class KviRijndaelHexEngine : public KviRijndaelEngine Q_OBJECT public: KviRijndaelHexEngine() : KviRijndaelEngine(){} - virtual ~KviRijndaelHexEngine(){} + ~KviRijndaelHexEngine() = default; protected: bool binaryToAscii(const char * inBuffer, int len, KviCString & outBuffer) override; @@ -83,7 +83,7 @@ class KviRijndael128HexEngine : public KviRijndaelHexEngine Q_OBJECT public: KviRijndael128HexEngine() : KviRijndaelHexEngine(){} - virtual ~KviRijndael128HexEngine(){} + ~KviRijndael128HexEngine() = default; protected: int getKeyLen() const override { return 16; } @@ -95,7 +95,7 @@ class KviRijndael192HexEngine : public KviRijndaelHexEngine Q_OBJECT public: KviRijndael192HexEngine() : KviRijndaelHexEngine(){} - virtual ~KviRijndael192HexEngine(){} + ~KviRijndael192HexEngine() = default; protected: int getKeyLen() const override { return 24; } @@ -107,7 +107,7 @@ class KviRijndael256HexEngine : public KviRijndaelHexEngine Q_OBJECT public: KviRijndael256HexEngine() : KviRijndaelHexEngine(){} - virtual ~KviRijndael256HexEngine(){} + ~KviRijndael256HexEngine() = default; protected: int getKeyLen() const override { return 32; } @@ -118,7 +118,7 @@ class KviRijndaelBase64Engine : public KviRijndaelEngine Q_OBJECT public: KviRijndaelBase64Engine() : KviRijndaelEngine(){} - virtual ~KviRijndaelBase64Engine(){} + ~KviRijndaelBase64Engine() = default; protected: bool binaryToAscii(const char * inBuffer, int len, KviCString & outBuffer) override; @@ -130,7 +130,7 @@ class KviRijndael128Base64Engine : public KviRijndaelBase64Engine Q_OBJECT public: KviRijndael128Base64Engine() : KviRijndaelBase64Engine(){} - virtual ~KviRijndael128Base64Engine(){} + ~KviRijndael128Base64Engine() = default; protected: int getKeyLen() const override { return 16; } @@ -142,7 +142,7 @@ class KviRijndael192Base64Engine : public KviRijndaelBase64Engine Q_OBJECT public: KviRijndael192Base64Engine() : KviRijndaelBase64Engine(){} - virtual ~KviRijndael192Base64Engine(){} + ~KviRijndael192Base64Engine() = default; protected: int getKeyLen() const override { return 24; } @@ -154,7 +154,7 @@ class KviRijndael256Base64Engine : public KviRijndaelBase64Engine Q_OBJECT public: KviRijndael256Base64Engine() : KviRijndaelBase64Engine(){} - virtual ~KviRijndael256Base64Engine(){} + ~KviRijndael256Base64Engine() = default; protected: int getKeyLen() const override { return 32; } @@ -169,7 +169,7 @@ class KviMircryptionEngine : public KviCryptEngine Q_OBJECT public: KviMircryptionEngine(); - virtual ~KviMircryptionEngine(); + ~KviMircryptionEngine(); protected: KviCString m_szEncryptKey; diff --git a/src/modules/setup/SetupWizard.cpp b/src/modules/setup/SetupWizard.cpp index 8ae48632f..8cef633e1 100644 --- a/src/modules/setup/SetupWizard.cpp +++ b/src/modules/setup/SetupWizard.cpp @@ -192,7 +192,7 @@ SetupWizard::SetupWizard() ed->setWordWrapMode(QTextOption::NoWrap); QString szLicense; QString szLicensePath; - g_pApp->getGlobalKvircDirectory(szLicensePath, KviApplication::License, "COPYING"); + g_pApp->getGlobalKvircDirectory(szLicensePath, KviApplication::License, "ABOUT-LICENSE"); if(!KviFileUtils::loadFile(szLicensePath, szLicense)) { szLicense = __tr("Oops! Can't find the license file.\n" @@ -806,7 +806,7 @@ void SetupWizard::makeLink() 0, KEY_QUERY_VALUE, &hCU) == ERROR_SUCCESS) { - RegQueryValueEx(hCU, TEXT("Desktop"), NULL, &lpType, + RegQueryValueEx(hCU, TEXT("Desktop"), nullptr, &lpType, (unsigned char *)&szLink, &ulSize); RegCloseKey(hCU); } @@ -819,13 +819,13 @@ void SetupWizard::makeLink() szKvircExec.append("\\kvirc.exe"); // Trigger a horrible machinery - CoInitialize(NULL); // we need COM+OLE + CoInitialize(nullptr); // we need COM+OLE // Fiddle with an obscure shell interface IShellLink * psl; // Get a pointer to the IShellLink interface: this is kinda ugly :) - if(CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, + if(CoCreateInstance(CLSID_ShellLink, nullptr, CLSCTX_INPROC_SERVER, IID_IShellLink, (void **)&psl) == S_OK) { @@ -1019,9 +1019,7 @@ void SetupWizard::accept() // Make local->global link QString localPath = QString("%1/global").arg(g_pApp->m_szLocalKvircDir); unlink(QTextCodec::codecForLocale()->fromUnicode(localPath).data()); - int dummy; // make gcc happy - dummy = symlink(QTextCodec::codecForLocale()->fromUnicode(g_pApp->m_szGlobalKvircDir).data(), QTextCodec::codecForLocale()->fromUnicode(localPath).data()); - Q_UNUSED(dummy); + (void)symlink(QTextCodec::codecForLocale()->fromUnicode(g_pApp->m_szGlobalKvircDir).data(), QTextCodec::codecForLocale()->fromUnicode(localPath).data()); #endif #ifdef COMPILE_KDE_SUPPORT diff --git a/src/modules/setup/SetupWizard.h b/src/modules/setup/SetupWizard.h index 9cec49c09..be71335a7 100644 --- a/src/modules/setup/SetupWizard.h +++ b/src/modules/setup/SetupWizard.h @@ -137,14 +137,14 @@ public: protected: void makeLink(); void setUrlHandlers(); - virtual void showEvent(QShowEvent * e); + void showEvent(QShowEvent * e) override; void enableOrDisableIdentityPageNextButton(); public slots: void chooseOldDataPath(); void chooseDataPath(); void chooseIncomingPath(); - virtual void accept(); - virtual void reject(); + void accept() override; + void reject() override; void oldDirClicked(); void newDirClicked(); diff --git a/src/modules/setup/libkvisetup.cpp b/src/modules/setup/libkvisetup.cpp index 606ca9ac6..4c576e3a8 100644 --- a/src/modules/setup/libkvisetup.cpp +++ b/src/modules/setup/libkvisetup.cpp @@ -33,10 +33,13 @@ #include "KviWindow.h" #include "KviTheme.h" #include "KviIrcServerDataBase.h" +#include "KviModuleManager.h" #include <QString> #include <QFile> +extern KVIRC_API KviModuleManager * g_pModuleManager; + // this will be chosen during the setup process QString g_szChoosenIncomingDirectory; int g_iThemeToApply = THEME_APPLY_NONE; @@ -117,6 +120,11 @@ KVIMODULEEXPORTFUNC void setup_finish() delete pParams; KVI_OPTION_BOOL(KviOption_boolShowServersConnectDialogOnStart) = true; } + + // detect the most appropriate sound system + KviModule * m = g_pModuleManager->getModule("snd"); + if(m) + m->ctrl("detectSoundSystem", nullptr); } } diff --git a/src/modules/sharedfile/libkvisharedfile.cpp b/src/modules/sharedfile/libkvisharedfile.cpp index 199c25fce..fd9cb880e 100644 --- a/src/modules/sharedfile/libkvisharedfile.cpp +++ b/src/modules/sharedfile/libkvisharedfile.cpp @@ -33,7 +33,7 @@ #include "KviMainWindow.h" #include "KviPointerHashTable.h" -#include <time.h> +#include <ctime> extern KVIRC_API KviSharedFilesManager * g_pSharedFilesManager; diff --git a/src/modules/sharedfileswindow/SharedFilesWindow.h b/src/modules/sharedfileswindow/SharedFilesWindow.h index fd9fd6dee..96de53ef3 100644 --- a/src/modules/sharedfileswindow/SharedFilesWindow.h +++ b/src/modules/sharedfileswindow/SharedFilesWindow.h @@ -57,7 +57,7 @@ class SharedFileEditDialog : public QDialog { Q_OBJECT public: - SharedFileEditDialog(QWidget * par, KviSharedFile * f = 0); + SharedFileEditDialog(QWidget * par, KviSharedFile * f = nullptr); virtual ~SharedFileEditDialog(); QDateTimeEdit * m_pExpireDateTimeEdit; diff --git a/src/modules/snd/libkvisnd.cpp b/src/modules/snd/libkvisnd.cpp index a324b91a9..4c56ab380 100644 --- a/src/modules/snd/libkvisnd.cpp +++ b/src/modules/snd/libkvisnd.cpp @@ -49,7 +49,7 @@ #include <QFile> #include <unistd.h> -#include <errno.h> +#include <cerrno> #ifdef COMPILE_ESD_SUPPORT #include <esd.h> @@ -210,22 +210,12 @@ bool KviSoundPlayer::event(QEvent * e) void KviSoundPlayer::detectSoundSystem() { -#ifdef COMPILE_PHONON_SUPPORT - // FIXME: Phonon seems to freeze on windows sometimes.. maybe it's better to auto-detect winmm ? - if(!m_pPhononPlayer) - m_pPhononPlayer = Phonon::createPlayer(Phonon::MusicCategory); - if(m_pPhononPlayer->state() != Phonon::ErrorState) - { - KVI_OPTION_STRING(KviOption_stringSoundSystem) = "phonon"; - return; - } -#endif #if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW) KVI_OPTION_STRING(KviOption_stringSoundSystem) = "winmm"; #else #ifdef COMPILE_ESD_SUPPORT esd_format_t format = ESD_BITS16 | ESD_STREAM | ESD_PLAY | ESD_MONO; - int esd_fd = esd_play_stream(format, 8012, NULL, "kvirc"); + int esd_fd = esd_play_stream(format, 8012, nullptr, "kvirc"); if(esd_fd >= 0) { KVI_OPTION_STRING(KviOption_stringSoundSystem) = "esd"; @@ -655,7 +645,7 @@ KviEsdSoundThread::~KviEsdSoundThread() void KviEsdSoundThread::play() { // ESD has a really nice API - if(!esd_play_file(NULL, m_szFileName.toUtf8().data(), 1)) // this is sync.. FIXME: it can't be stopped! + if(!esd_play_file(nullptr, m_szFileName.toUtf8().data(), 1)) // this is sync.. FIXME: it can't be stopped! qDebug("Could not play sound %s! [ESD]", m_szFileName.toUtf8().data()); } diff --git a/src/modules/snd/libkvisnd.h b/src/modules/snd/libkvisnd.h index 47f8ce119..38e2e03a2 100644 --- a/src/modules/snd/libkvisnd.h +++ b/src/modules/snd/libkvisnd.h @@ -170,7 +170,7 @@ protected: protected: void registerSoundThread(KviSoundThread * t); void unregisterSoundThread(KviSoundThread * t); - virtual bool event(QEvent * e); + bool event(QEvent * e) override; protected: void stopAllSoundThreads(); diff --git a/src/modules/spaste/SlowPasteController.cpp b/src/modules/spaste/SlowPasteController.cpp index 726d0cc85..8d724e766 100644 --- a/src/modules/spaste/SlowPasteController.cpp +++ b/src/modules/spaste/SlowPasteController.cpp @@ -81,7 +81,7 @@ bool SlowPasteController::pasteFileInit(QString & fileName) return true; } -bool SlowPasteController::pasteClipboardInit(void) +bool SlowPasteController::pasteClipboardInit() { if(m_pFile) return false; // can't paste clipboard while pasting a file @@ -103,7 +103,7 @@ bool SlowPasteController::pasteClipboardInit(void) return true; } -void SlowPasteController::pasteFile(void) +void SlowPasteController::pasteFile() { QString line; char data[1024]; @@ -132,7 +132,7 @@ void SlowPasteController::pasteFile(void) } } -void SlowPasteController::pasteClipboard(void) +void SlowPasteController::pasteClipboard() { if(m_pClipBuff->isEmpty() || !g_pApp->windowExists(m_pWindow)) { diff --git a/src/modules/spaste/libkvispaste.h b/src/modules/spaste/libkvispaste.h index bdd9da8a2..ab2309524 100644 --- a/src/modules/spaste/libkvispaste.h +++ b/src/modules/spaste/libkvispaste.h @@ -27,10 +27,10 @@ #include "KviWindow.h" -typedef struct _SPasteThreadData +struct SPasteThreadData { QString * strData; KviWindow * win; -} SPasteThreadData; +}; #endif diff --git a/src/modules/spellchecker/libkvispellchecker.cpp b/src/modules/spellchecker/libkvispellchecker.cpp index 8d1f218e8..abb6a52f2 100644 --- a/src/modules/spellchecker/libkvispellchecker.cpp +++ b/src/modules/spellchecker/libkvispellchecker.cpp @@ -142,8 +142,7 @@ static bool spellchecker_kvs_suggestions(KviKvsModuleFunctionCall * c) KviKvsArray * pArray = new KviKvsArray(); - QList<QString> lSuggestions = hAllSuggestions.keys(); - Q_FOREACH(QString szSuggestion, lSuggestions) + for(const auto & szSuggestion : hAllSuggestions.keys()) pArray->append(new KviKvsVariant(szSuggestion)); c->returnValue()->setArray(pArray); @@ -158,6 +157,9 @@ static void spellchecker_reload_dicts() const QStringList & wantedDictionaries = KVI_OPTION_STRINGLIST(KviOption_stringlistSpellCheckerDictionaries); foreach(QString szLang, wantedDictionaries) { + if(szLang.isEmpty()) + continue; + EnchantDict * pDict = enchant_broker_request_dict(g_pEnchantBroker, szLang.toUtf8().data()); if(pDict) { diff --git a/src/modules/str/libkvistr.cpp b/src/modules/str/libkvistr.cpp index c695be123..bd836d4a0 100644 --- a/src/modules/str/libkvistr.cpp +++ b/src/modules/str/libkvistr.cpp @@ -43,6 +43,12 @@ #include "KviSSL.h" #include <openssl/evp.h> #include <openssl/pem.h> + +#if OPENSSL_VERSION_NUMBER < 0x10100005L +#define EVP_MD_CTX_new EVP_MD_CTX_create +#define EVP_MD_CTX_free EVP_MD_CTX_destroy +#endif + #else // The fallback we can always use, but with very limited set of // functionality. @@ -1138,9 +1144,9 @@ static bool str_kvs_fnc_match(KviKvsModuleFunctionCall * c) KVSM_PARAMETER("flags", KVS_PT_STRING, KVS_PF_OPTIONAL, szFlags) KVSM_PARAMETER("case", KVS_PT_BOOL, KVS_PF_OPTIONAL, bCase) KVSM_PARAMETERS_END(c) - bool bRegExp = szFlags.indexOf('r', 0, Qt::CaseInsensitive) != -1; - bool bExact = szFlags.indexOf('e', 0, Qt::CaseInsensitive) != -1; - bool bIs = KviQString::matchString(szWildcard, szString, bRegExp, bExact, bCase ? true : false); + bool bRegExp = szFlags.contains('r', Qt::CaseInsensitive); + bool bExact = szFlags.contains('e', Qt::CaseInsensitive); + bool bIs = KviQString::matchString(szWildcard, szString, bRegExp, bExact, bCase); c->returnValue()->setBoolean(bIs); return true; } @@ -1383,7 +1389,7 @@ static bool str_kvs_fnc_digest(KviKvsModuleFunctionCall * c) if(szType.isEmpty()) szType = "md5"; - EVP_MD_CTX mdctx; + EVP_MD_CTX *mdctx; const EVP_MD * md; unsigned char md_value[EVP_MAX_MD_SIZE]; unsigned int md_len, i; @@ -1397,11 +1403,11 @@ static bool str_kvs_fnc_digest(KviKvsModuleFunctionCall * c) return true; } - EVP_MD_CTX_init(&mdctx); - EVP_DigestInit_ex(&mdctx, md, nullptr); - EVP_DigestUpdate(&mdctx, szString.toUtf8().data(), szString.toUtf8().length()); - EVP_DigestFinal_ex(&mdctx, md_value, &md_len); - EVP_MD_CTX_cleanup(&mdctx); + mdctx = EVP_MD_CTX_new(); + EVP_DigestInit_ex(mdctx, md, nullptr); + EVP_DigestUpdate(mdctx, szString.toUtf8().data(), szString.toUtf8().length()); + EVP_DigestFinal_ex(mdctx, md_value, &md_len); + EVP_MD_CTX_free(mdctx); for(i = 0; i < md_len; i++) { @@ -1470,7 +1476,7 @@ static bool str_kvs_fnc_join(KviKvsModuleFunctionCall * c) KVSM_PARAMETERS_END(c) QString szRet; - bool bSkipEmpty = szFlags.indexOf('n', 0, Qt::CaseInsensitive) != -1; + bool bSkipEmpty = szFlags.contains('n', Qt::CaseInsensitive); bool bFirst = true; @@ -1572,15 +1578,15 @@ static bool str_kvs_fnc_grep(KviKvsModuleFunctionCall * c) KviKvsArray * a = ac.array(); - bool bCaseSensitive = szFlags.indexOf('s', 0, Qt::CaseInsensitive) != -1; - bool bRegexp = szFlags.indexOf('r', 0, Qt::CaseInsensitive) != -1; - bool bWild = szFlags.indexOf('w', 0, Qt::CaseInsensitive) != -1; + bool bCaseSensitive = szFlags.contains('s', Qt::CaseInsensitive); + bool bRegexp = szFlags.contains('r', Qt::CaseInsensitive); + bool bWild = szFlags.contains('w', Qt::CaseInsensitive); // FIXME: The sub pattern matching does not belong to grep. // FIXME: DO NOT DOCUMENT FLAGS p and x (they should be removed) // 2015.08.24: Left for compatibility: remove in some years :) - bool bSubPatterns = szFlags.indexOf('p', 0, Qt::CaseInsensitive) != -1; - bool bExcludeCompleteMatch = szFlags.indexOf('x', 0, Qt::CaseInsensitive) != -1; + bool bSubPatterns = szFlags.contains('p', Qt::CaseInsensitive); + bool bExcludeCompleteMatch = szFlags.contains('x', Qt::CaseInsensitive); // 2015.08.24: End of "left for compatibility": remove in some years :) int idx = 0; @@ -1589,7 +1595,7 @@ static bool str_kvs_fnc_grep(KviKvsModuleFunctionCall * c) int i = 0; if(bRegexp || bWild) { - QRegExp re(szMatch, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive, bRegexp ? QRegExp::RegExp : QRegExp::Wildcard); + QRegExp re(szMatch, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive, bRegexp ? QRegExp::RegExp2 : QRegExp::Wildcard); while(idx < cnt) { KviKvsVariant * v = a->at(idx); @@ -1642,7 +1648,7 @@ static bool str_kvs_fnc_grep(KviKvsModuleFunctionCall * c) { QString sz; v->asString(sz); - if(sz.indexOf(szMatch, 0, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive) != -1) + if(sz.contains(szMatch, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive)) { n->set(i, new KviKvsVariant(sz)); i++; @@ -1737,7 +1743,7 @@ static bool str_kvs_fnc_split(KviKvsModuleFunctionCall * c) QVector<QStringRef> list; if(bWild || bContainsR) - list = szStr.splitRef(QRegExp{szSep, sensitivity, bWild ? QRegExp::Wildcard : QRegExp::RegExp}, splitBehavior); + list = szStr.splitRef(QRegExp{szSep, sensitivity, bWild ? QRegExp::Wildcard : QRegExp::RegExp2}, splitBehavior); else list = szStr.splitRef(szSep, splitBehavior, sensitivity); @@ -1768,10 +1774,10 @@ static bool str_kvs_fnc_split(KviKvsModuleFunctionCall * c) if(iMaxItems == 0) return true; - bool bWild = szFla.indexOf('w', 0, Qt::CaseInsensitive) != -1; - bool bContainsR = szFla.indexOf('r', 0, Qt::CaseInsensitive) != -1; - bool bCaseSensitive = szFla.indexOf('s', 0, Qt::CaseInsensitive) != -1; - bool bNoEmpty = szFla.indexOf('n', 0, Qt::CaseInsensitive) != -1; + bool bWild = szFla.contains('w', Qt::CaseInsensitive); + bool bContainsR = szFla.contains('r', Qt::CaseInsensitive); + bool bCaseSensitive = szFla.contains('s', Qt::CaseInsensitive); + bool bNoEmpty = szFla.contains('n', Qt::CaseInsensitive); int id = 0; @@ -1781,7 +1787,7 @@ static bool str_kvs_fnc_split(KviKvsModuleFunctionCall * c) if(bContainsR || bWild) { - QRegExp re(szSep, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive, bWild ? QRegExp::Wildcard : QRegExp::RegExp); + QRegExp re(szSep, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive, bWild ? QRegExp::Wildcard : QRegExp::RegExp2); while((iMatch != -1) && (iMatch < iStrLen) && ((id < (iMaxItems - 1)) || (iMaxItems < 0))) { @@ -2314,10 +2320,11 @@ static bool str_kvs_fnc_evpSign(KviKvsModuleFunctionCall * c) #if defined(COMPILE_SSL_SUPPORT) KviSSL::globalSSLInit(); - EVP_MD_CTX md_ctx; + EVP_MD_CTX *md_ctx; EVP_PKEY * pKey = nullptr; unsigned int len = 0; unsigned char * sig = nullptr; + int err; if(szCert.isEmpty()) { @@ -2368,9 +2375,12 @@ static bool str_kvs_fnc_evpSign(KviKvsModuleFunctionCall * c) len = EVP_PKEY_size(pKey); sig = (unsigned char *)KviMemory::allocate(len * sizeof(char)); - EVP_SignInit(&md_ctx, EVP_sha1()); - EVP_SignUpdate(&md_ctx, (unsigned char *)szMessage.data(), szMessage.length()); - if(EVP_SignFinal(&md_ctx, sig, &len, pKey)) + md_ctx = EVP_MD_CTX_new(); + EVP_SignInit(md_ctx, EVP_sha1()); + EVP_SignUpdate(md_ctx, (unsigned char *)szMessage.data(), szMessage.length()); + err = EVP_SignFinal(md_ctx, sig, &len, pKey); + EVP_MD_CTX_free(md_ctx); + if(err) { QByteArray szSign((const char *)sig, len); OPENSSL_free(sig); @@ -2451,7 +2461,7 @@ static bool str_kvs_fnc_evpVerify(KviKvsModuleFunctionCall * c) szSign = QByteArray::fromBase64(szSignB64); const char * message = szMessage.data(); - EVP_MD_CTX md_ctx; + EVP_MD_CTX* md_ctx; EVP_PKEY * pKey = nullptr; X509 * cert = nullptr; int err = -1; @@ -2518,10 +2528,11 @@ static bool str_kvs_fnc_evpVerify(KviKvsModuleFunctionCall * c) } } - EVP_VerifyInit(&md_ctx, EVP_sha1()); - EVP_VerifyUpdate(&md_ctx, message, strlen(message)); - err = EVP_VerifyFinal(&md_ctx, (unsigned char *)szSign.data(), szSign.size(), pKey); - EVP_MD_CTX_cleanup(&md_ctx); + md_ctx = EVP_MD_CTX_new(); + EVP_VerifyInit(md_ctx, EVP_sha1()); + EVP_VerifyUpdate(md_ctx, message, strlen(message)); + err = EVP_VerifyFinal(md_ctx, (unsigned char *)szSign.data(), szSign.size(), pKey); + EVP_MD_CTX_free(md_ctx); EVP_PKEY_free(pKey); switch(err) { diff --git a/src/modules/system/libkvisystem.cpp b/src/modules/system/libkvisystem.cpp index 42adb10b1..2abab2c10 100644 --- a/src/modules/system/libkvisystem.cpp +++ b/src/modules/system/libkvisystem.cpp @@ -41,7 +41,7 @@ #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW) #include <sys/utsname.h> -#include <stdlib.h> +#include <cstdlib> #include <unistd.h> #endif diff --git a/src/modules/term/TermWidget.cpp b/src/modules/term/TermWidget.cpp index 57ff5b65b..304daea00 100644 --- a/src/modules/term/TermWidget.cpp +++ b/src/modules/term/TermWidget.cpp @@ -55,8 +55,8 @@ TermWidget::TermWidget(QWidget * par, bool bIsStandalone) g_pTermWidgetList.insert(this); m_bIsStandalone = bIsStandalone; - m_pKonsolePart = 0; - m_pKonsoleWidget = 0; + m_pKonsolePart = nullptr; + m_pKonsoleWidget = nullptr; if(bIsStandalone) { @@ -71,9 +71,9 @@ TermWidget::TermWidget(QWidget * par, bool bIsStandalone) } else { - m_pHBox = 0; - m_pTitleLabel = 0; - m_pCloseButton = 0; + m_pHBox = nullptr; + m_pTitleLabel = nullptr; + m_pCloseButton = nullptr; } setFrameStyle(QFrame::Sunken | QFrame::Panel); @@ -138,8 +138,8 @@ void TermWidget::closeClicked() void TermWidget::konsoleDestroyed() { - m_pKonsoleWidget = 0; - m_pKonsolePart = 0; + m_pKonsoleWidget = nullptr; + m_pKonsolePart = nullptr; hide(); QTimer::singleShot(0, this, SLOT(autoClose())); } diff --git a/src/modules/term/TermWidget.h b/src/modules/term/TermWidget.h index 78d1b89c4..d9e41fae0 100644 --- a/src/modules/term/TermWidget.h +++ b/src/modules/term/TermWidget.h @@ -53,7 +53,7 @@ private: QWidget * m_pKonsoleWidget; protected: - virtual void resizeEvent(QResizeEvent * e); + void resizeEvent(QResizeEvent * e) override; protected slots: void closeClicked(); void changeTitle(int i, const QString & str); @@ -62,7 +62,7 @@ protected slots: public: QWidget * konsoleWidget() { return m_pKonsoleWidget ? m_pKonsoleWidget : this; }; - virtual QSize sizeHint() const; + QSize sizeHint() const override; int dummy() const { return 0; }; protected slots: void konsoleDestroyed(); diff --git a/src/modules/term/TermWindow.cpp b/src/modules/term/TermWindow.cpp index 93f17852d..9ee745226 100644 --- a/src/modules/term/TermWindow.cpp +++ b/src/modules/term/TermWindow.cpp @@ -42,7 +42,7 @@ TermWindow::TermWindow(const char * name) : KviWindow(KviWindow::Terminal, name) { g_pTermWindowList.insert(this); - m_pTermWidget = 0; + m_pTermWidget = nullptr; m_pTermWidget = new TermWidget(this); } diff --git a/src/modules/term/TermWindow.h b/src/modules/term/TermWindow.h index 954d9dc6f..2fc4a87ec 100644 --- a/src/modules/term/TermWindow.h +++ b/src/modules/term/TermWindow.h @@ -43,12 +43,12 @@ protected: TermWidget * m_pTermWidget; protected: - virtual QPixmap * myIconPtr(); - virtual void fillCaptionBuffers(); - virtual void resizeEvent(QResizeEvent * e); + QPixmap * myIconPtr() override; + void fillCaptionBuffers() override; + void resizeEvent(QResizeEvent * e) override; public: - virtual QSize sizeHint() const; + QSize sizeHint() const override; }; #else #include <QObject> diff --git a/src/modules/theme/PackThemeDialog.h b/src/modules/theme/PackThemeDialog.h index 0fc4fe98e..aabdb9f90 100644 --- a/src/modules/theme/PackThemeDialog.h +++ b/src/modules/theme/PackThemeDialog.h @@ -66,7 +66,7 @@ protected: //QWidget * m_pImageSelectionPage; protected: - virtual void accept(); + void accept() override; bool packTheme(); }; @@ -95,7 +95,7 @@ public: QLineEdit * m_pPackageAuthorEdit; protected: - virtual void initializePage(); + void initializePage() override; }; class PackThemeImageWidget : public QWizardPage @@ -125,7 +125,7 @@ protected: QString m_szPackagePath; protected: - virtual void initializePage(); + void initializePage() override; }; #endif //!_PACKTHEMEDIALOG_H_ diff --git a/src/modules/theme/SaveThemeDialog.cpp b/src/modules/theme/SaveThemeDialog.cpp index eda0f371e..d625a9b72 100644 --- a/src/modules/theme/SaveThemeDialog.cpp +++ b/src/modules/theme/SaveThemeDialog.cpp @@ -113,7 +113,7 @@ SaveThemeDialog::SaveThemeDialog(QWidget * pParent) m_pThemeVersionEdit = new QLineEdit(pPage); m_pThemeVersionEdit->setText(info.version()); - QRegExp rx("\\d{1,2}\\.\\d{1,2}(\\.\\d{1,2})?"); + QRegExp rx(R"(\d{1,2}\.\d{1,2}(\.\d{1,2})?)"); QValidator * validator = new QRegExpValidator(rx, this); m_pThemeVersionEdit->setValidator(validator); diff --git a/src/modules/theme/SaveThemeDialog.h b/src/modules/theme/SaveThemeDialog.h index 2f852615c..903f30784 100644 --- a/src/modules/theme/SaveThemeDialog.h +++ b/src/modules/theme/SaveThemeDialog.h @@ -54,16 +54,14 @@ protected: QLineEdit * m_pThemeVersionEdit; QLineEdit * m_pAuthorNameEdit; QWidget * m_pImageSelectionPage; - QPushButton * m_pOkButton; QCheckBox * m_pSaveIconsCheckBox; protected: - virtual void accept(); + void accept() override; bool saveTheme(); protected slots: void makeScreenshot(); void imageSelectionChanged(const QString & szImagePath); - //void themeNameChanged(const QString &txt); }; #endif //!_SAVETHEMEDIALOG_H_ diff --git a/src/modules/theme/ThemeFunctions.h b/src/modules/theme/ThemeFunctions.h index f4b68fdf9..af6ef10de 100644 --- a/src/modules/theme/ThemeFunctions.h +++ b/src/modules/theme/ThemeFunctions.h @@ -35,7 +35,7 @@ namespace ThemeFunctions { - bool installThemePackage(const QString & szThemePackageFileName, QString & szError, QWidget * pDialogParent = 0); + bool installThemePackage(const QString & szThemePackageFileName, QString & szError, QWidget * pDialogParent = nullptr); void getThemeHtmlDescription( QString & szBuffer, @@ -49,7 +49,7 @@ namespace ThemeFunctions const QString & szThemeThemeEngineVersion, const QPixmap & pixScreenshot, int iUniqueIndexInDocument = 0, - KviHtmlDialogData * hd = 0); + KviHtmlDialogData * hd = nullptr); bool makeKVIrcScreenshot(const QString & szSavePngFilePath, bool bMaximizeFrame = false); diff --git a/src/modules/theme/ThemeManagementDialog.h b/src/modules/theme/ThemeManagementDialog.h index b09b4b2c8..5ce7dfa41 100644 --- a/src/modules/theme/ThemeManagementDialog.h +++ b/src/modules/theme/ThemeManagementDialog.h @@ -52,7 +52,7 @@ class ThemeListWidgetItem : public KviTalListWidgetItem { public: ThemeListWidgetItem(KviTalListWidget * pBox, KviThemeInfo * pInfo); - virtual ~ThemeListWidgetItem(); + ~ThemeListWidgetItem(); public: KviThemeInfo * m_pThemeInfo; @@ -66,7 +66,7 @@ class ThemeManagementDialog : public QWidget Q_OBJECT public: ThemeManagementDialog(QWidget * parent); - virtual ~ThemeManagementDialog(); + ~ThemeManagementDialog(); protected: static ThemeManagementDialog * m_pInstance; @@ -86,7 +86,7 @@ public: protected: void fillThemeBox(bool bBuiltin); - virtual void closeEvent(QCloseEvent * e); + void closeEvent(QCloseEvent * e) override; protected slots: void saveCurrentTheme(); void getMoreThemes(); diff --git a/src/modules/theme/WebThemeInterfaceDialog.h b/src/modules/theme/WebThemeInterfaceDialog.h index cc517027c..3e840daee 100644 --- a/src/modules/theme/WebThemeInterfaceDialog.h +++ b/src/modules/theme/WebThemeInterfaceDialog.h @@ -34,7 +34,7 @@ class WebThemeInterfaceDialog : public KviWebPackageManagementDialog { Q_OBJECT public: - WebThemeInterfaceDialog(QWidget * par = 0); + WebThemeInterfaceDialog(QWidget * par = nullptr); ~WebThemeInterfaceDialog(); private: @@ -42,8 +42,8 @@ private: QString m_szGlobalThemesPath; protected: - virtual bool packageIsInstalled(const QString & szId, const QString & szVersion); - virtual bool installPackage(const QString & szPath, QString & szError); + bool packageIsInstalled(const QString & szId, const QString & szVersion) override; + bool installPackage(const QString & szPath, QString & szError) override; }; #endif //COMPILE_WEBKIT_SUPPORT diff --git a/src/modules/theme/libkvitheme.cpp b/src/modules/theme/libkvitheme.cpp index c2ea476f0..4f500a4e6 100644 --- a/src/modules/theme/libkvitheme.cpp +++ b/src/modules/theme/libkvitheme.cpp @@ -322,7 +322,7 @@ static bool theme_kvs_cmd_pack(KviKvsModuleCommandCall * c) KviPointerList<KviThemeInfo> lThemeInfoList; lThemeInfoList.setAutoDelete(true); - Q_FOREACH(QString szTheme, lThemeList) + for(const auto & szTheme : lThemeList) { KviThemeInfo * pInfo = new KviThemeInfo(); if(!pInfo->load(szTheme, KviThemeInfo::External)) diff --git a/src/modules/tip/libkvitip.h b/src/modules/tip/libkvitip.h index 09f06a120..89880864b 100644 --- a/src/modules/tip/libkvitip.h +++ b/src/modules/tip/libkvitip.h @@ -60,7 +60,7 @@ protected: KviConfigurationFile * m_pConfig; QString m_szConfigFileName; // no path! protected: - virtual void showEvent(QShowEvent * e); + void showEvent(QShowEvent * e) override; public: bool openConfig(QString filename, bool bEnsureExists = true); diff --git a/src/modules/tip/libkvitip_fi.kvc b/src/modules/tip/libkvitip_fi.kvc index 86698f0f5..79b83ee43 100644 --- a/src/modules/tip/libkvitip_fi.kvc +++ b/src/modules/tip/libkvitip_fi.kvc @@ -1,26 +1,26 @@ -[KVIrc]
-uNextTip=0
-uNumTips=22
-TranslatorHint=This-file-MUST-be-encoded-in-UTF8
-0=Voit avata yhteyden moeen palvelimeen yhdellä KVIrc-ikkuna, valitse vain "Uusi IRC-konteksti" KVIrc-valikosta.
-1=IPv6 on nyt täysin tuettu, jopa DCC-tiedonsiirtoihin.<br><b>/server -i <palvelimen nimi></b> komentoa käyttäen :)
-2=KVIrcillä on tuki SSL-salaukseen.<br>SSL-salattuja yhteyksiä voidaan luoda käyttämällä komentoa <b>/server -s</b> ja DCC-yhteyksiä käyttämällä komentoa <b>/dcc.chat -s</b><br>Se toimii myös IPv6:n kautta.
-3=<b>IRC-konteksti</b> on sarja resursseja, jotka kommunikoivat palvelimen yhteyden kanssa. Se on yhdistetty <b>konsoli</b>-ikkunaan, joka näyttää järjestelmä- ja palvelinviestit.
-4=KVIrc on modulaarinen sovellus. Moodulit ladataan ja puretaan näkymättömästi käyttäjälle (ja skripterille!) Voit myös kirjoittaa omia moduulejasi, jotka laajentavat skriptauskieltä, tai lisäävät uusia ominaisuuksia.
-5=KVIrcillä on tuki monelle käsittelijäskriptille yhdelle tapahtumalle. Tämä sallii monien skriptien asentaminen samaan aikaan, vältetään käsittelijöiden törmäykset ja auttaa lisäämään/poistamaan ja akvoimaan/deaktivoimaan skriptiosioita.
-6=KVIrcillä tukee <b>irc://</b> Uniform Resource Locatoria (URL:ää). Aja komento: <br><b>kvirc irc://irc.palvelimesi.org:6667/kanava</b><br> yhdistääksesi palvelimeen.<br>Yleinen syntaksi on:<br><b>irc[6]://<palvelimennimi>[:<port>][/[<kanava>[?<salasana>]]]</b>
-7=KVIrc-suoritettava käyttäytyy kuin "netscape -ohjaus" komento, jos jokin KVIrcin osa on jo käynnissä, komentorivin parametrit siihen osaan suoritetaan IPC:n kautta. Voit ylikirjoittaa tämän ominaisuuden <b>-f</b> kytkimellä.
-8=KVIrc voi olla selaimesi käsittelijä <b>irc://</b> URL:lle. Jos KVIrcillä on käännetty KDE-tuen kanssa, sinun pitäisi pystyä ajamaan se yksinkertaisesti kirjoittamalla <b>irc://</b> URL Konqueror:in sijaintipalkkiin.<br>Kokeile <b>irc://irc.freenode.net/kvirc</b> :)
-9=URL-osoitteita voi tehdä myös IPv6-palvelimilli seuraavalla syntaksilla:<br><b>irc6://<ipv6-palvelimennimi>[:<portti>][/[<kanava>[?<salasana>]]]</b>
-10=Voit vaihtaa ikkunoiden välillä painamalla <b>Alt+ylös/alas</b>. <b>Vaihto+ylös/alas</b> vaihtaa ikkunoita vain nykyisessä kontekstissa.
-11=Nopea tapa yhdistää palvelimeen uudessa IRC-kontekstissa on <b>/server -n <palvelimennimi></b>
-12=KVIrc on siirrettävä Windowsin, Mac OSX:n, Linuxin ja muiden Unix-koneiden kanssa. Jos olet hyvä skripteri, sinunkin skriptisi ovat siirrettäviä!
-13=Haluatko automaattisesti liittyä kanavalla yhdistettäessä?<br>Helppoa!<br>Klikkaa vain "Edistynyt (Advanced)" palvelimen asetuksissa ja lisää kanava "Liity kanaville (Join Channels)" välilehdellä. Tämä toimii kaikille palvelimille: <b>/event(OnIrc,autojoin){ join #kanavasi; }</b>
-14=Tiedätkö mikä avatar on? Saa se selville komennolla <b>/help The AVATAR idea</b>
-15=DCC-asetussivulla on paljon valintoja, jotka voivat ratkaista monia yleisiä DCC-yhteysongelmia. Ihmiset palomuurin takana voivat lähettää myös dataa. Se on vain parin asetuksen takana. :)
-16=KVIrc tukee monia 8-bittisiä kirjainsalauksia. Voit "puhua" KOI8-R:ään perustuvaa venäjää toisella kanavalla ja japania toisella, samassa yhteydessä (asianmukaisilla fonteilla). Me suoittelemme käyttämään <b>Unicode</b>-merkistöä (UTF-8), mikä tukee melkein kaikkia kieliä maailmassa.
-17=Välttääksesi liiallisia DCC-siirtoja, on suositeltavaa, että teet avatarisi niin, että ne ovat saatavissa verkosta. Voit myös käyttää jo verkossa olevaa kuvaa avatarina.<br><b>/avatar #kanavasi http://hauskapalvelin.fi/hauskaa/hauskakuva.png</b> toimii!
-18=KVIrc sisältää sisäänrakennetun HTTP-asiakkaan, ja voit ladata tiedostoja verkosta käyttämällä komentoa <b>/http.get</b>.
-19=Etkö pidä ikkunoiden puutehtäväpalkkitilasta? Voit käyttää perinteistä tehtäväpalkkia (samanlainen kuin mIRCissä) tehtäväpalkin asetussivulla.
-20=Voit kopioida tekstiä teksti-ikkunasta leikepöydälle yksinkertaisesti "maalaamalla" (valitsemalla) sen hiirellä. Jos pidät vaihtonäppäintä samaan aikaan pohjassa, silloin myös värikoodit kopioituvat.
-21=Tämä on viimeinen vinkki. Voit lisätä omia vinkkejäsi - käytä komentoa <b>/help tip.open</b> saadaksesi lisätietoja. Voit myös lähettää uudet vinkkisi (millä tahansa kielellä) sähköpostilla osoitteeseen <b>trisk-kvirc(at)quasarnet.org</b>.
+[KVIrc] +uNextTip=0 +uNumTips=22 +TranslatorHint=This-file-MUST-be-encoded-in-UTF8 +0=Voit avata yhteyden moeen palvelimeen yhdellä KVIrc-ikkuna, valitse vain "Uusi IRC-konteksti" KVIrc-valikosta. +1=IPv6 on nyt täysin tuettu, jopa DCC-tiedonsiirtoihin.<br><b>/server -i <palvelimen nimi></b> komentoa käyttäen :) +2=KVIrcillä on tuki SSL-salaukseen.<br>SSL-salattuja yhteyksiä voidaan luoda käyttämällä komentoa <b>/server -s</b> ja DCC-yhteyksiä käyttämällä komentoa <b>/dcc.chat -s</b><br>Se toimii myös IPv6:n kautta. +3=<b>IRC-konteksti</b> on sarja resursseja, jotka kommunikoivat palvelimen yhteyden kanssa. Se on yhdistetty <b>konsoli</b>-ikkunaan, joka näyttää järjestelmä- ja palvelinviestit. +4=KVIrc on modulaarinen sovellus. Moodulit ladataan ja puretaan näkymättömästi käyttäjälle (ja skripterille!) Voit myös kirjoittaa omia moduulejasi, jotka laajentavat skriptauskieltä, tai lisäävät uusia ominaisuuksia. +5=KVIrcillä on tuki monelle käsittelijäskriptille yhdelle tapahtumalle. Tämä sallii monien skriptien asentaminen samaan aikaan, vältetään käsittelijöiden törmäykset ja auttaa lisäämään/poistamaan ja akvoimaan/deaktivoimaan skriptiosioita. +6=KVIrcillä tukee <b>irc://</b> Uniform Resource Locatoria (URL:ää). Aja komento: <br><b>kvirc irc://irc.palvelimesi.org:6667/kanava</b><br> yhdistääksesi palvelimeen.<br>Yleinen syntaksi on:<br><b>irc[6]://<palvelimennimi>[:<port>][/[<kanava>[?<salasana>]]]</b> +7=KVIrc-suoritettava käyttäytyy kuin "netscape -ohjaus" komento, jos jokin KVIrcin osa on jo käynnissä, komentorivin parametrit siihen osaan suoritetaan IPC:n kautta. Voit ylikirjoittaa tämän ominaisuuden <b>-f</b> kytkimellä. +8=KVIrc voi olla selaimesi käsittelijä <b>irc://</b> URL:lle. Jos KVIrcillä on käännetty KDE-tuen kanssa, sinun pitäisi pystyä ajamaan se yksinkertaisesti kirjoittamalla <b>irc://</b> URL Konqueror:in sijaintipalkkiin.<br>Kokeile <b>irc://irc.freenode.net/kvirc</b> :) +9=URL-osoitteita voi tehdä myös IPv6-palvelimilli seuraavalla syntaksilla:<br><b>irc6://<ipv6-palvelimennimi>[:<portti>][/[<kanava>[?<salasana>]]]</b> +10=Voit vaihtaa ikkunoiden välillä painamalla <b>Alt+ylös/alas</b>. <b>Vaihto+ylös/alas</b> vaihtaa ikkunoita vain nykyisessä kontekstissa. +11=Nopea tapa yhdistää palvelimeen uudessa IRC-kontekstissa on <b>/server -n <palvelimennimi></b> +12=KVIrc on siirrettävä Windowsin, Mac OSX:n, Linuxin ja muiden Unix-koneiden kanssa. Jos olet hyvä skripteri, sinunkin skriptisi ovat siirrettäviä! +13=Haluatko automaattisesti liittyä kanavalla yhdistettäessä?<br>Helppoa!<br>Klikkaa vain "Edistynyt (Advanced)" palvelimen asetuksissa ja lisää kanava "Liity kanaville (Join Channels)" välilehdellä. Tämä toimii kaikille palvelimille: <b>/event(OnIrc,autojoin){ join #kanavasi; }</b> +14=Tiedätkö mikä avatar on? Saa se selville komennolla <b>/help The AVATAR idea</b> +15=DCC-asetussivulla on paljon valintoja, jotka voivat ratkaista monia yleisiä DCC-yhteysongelmia. Ihmiset palomuurin takana voivat lähettää myös dataa. Se on vain parin asetuksen takana. :) +16=KVIrc tukee monia 8-bittisiä kirjainsalauksia. Voit "puhua" KOI8-R:ään perustuvaa venäjää toisella kanavalla ja japania toisella, samassa yhteydessä (asianmukaisilla fonteilla). Me suoittelemme käyttämään <b>Unicode</b>-merkistöä (UTF-8), mikä tukee melkein kaikkia kieliä maailmassa. +17=Välttääksesi liiallisia DCC-siirtoja, on suositeltavaa, että teet avatarisi niin, että ne ovat saatavissa verkosta. Voit myös käyttää jo verkossa olevaa kuvaa avatarina.<br><b>/avatar #kanavasi http://hauskapalvelin.fi/hauskaa/hauskakuva.png</b> toimii! +18=KVIrc sisältää sisäänrakennetun HTTP-asiakkaan, ja voit ladata tiedostoja verkosta käyttämällä komentoa <b>/http.get</b>. +19=Etkö pidä ikkunoiden puutehtäväpalkkitilasta? Voit käyttää perinteistä tehtäväpalkkia (samanlainen kuin mIRCissä) tehtäväpalkin asetussivulla. +20=Voit kopioida tekstiä teksti-ikkunasta leikepöydälle yksinkertaisesti "maalaamalla" (valitsemalla) sen hiirellä. Jos pidät vaihtonäppäintä samaan aikaan pohjassa, silloin myös värikoodit kopioituvat. +21=Tämä on viimeinen vinkki. Voit lisätä omia vinkkejäsi - käytä komentoa <b>/help tip.open</b> saadaksesi lisätietoja. Voit myös lähettää uudet vinkkisi (millä tahansa kielellä) sähköpostilla osoitteeseen <b>trisk-kvirc(at)quasarnet.org</b>. diff --git a/src/modules/tip/libkvitip_uk.kvc b/src/modules/tip/libkvitip_uk.kvc index 3936b028e..9368d6921 100644 --- a/src/modules/tip/libkvitip_uk.kvc +++ b/src/modules/tip/libkvitip_uk.kvc @@ -1,26 +1,26 @@ -[KVIrc]
-uNextTip=0
-uNumTips=22
-TranslatorHint=This-file-MUST-be-encoded-in-UTF8
-0=Ви можете відкрити з'єднання для кількох серверів в одному вікні KVIrc, просто виберіть "Новий Контекст IRC" в меню KVIrc.
-1=Тепер IPv6 повністю підтримується, навіть для DCC.<br><b>/сервер -i <назва-сервера></b> потрібна вам команда. :)
-2=KVIrc підтримує SSL-шифрування.<br>Зашифрувати IRC-з'єднання через SSL можна командою <b>/server -s</b>, а DCC-з'єднання командою <b>/dcc.chat -s</b><br>SSL також працює через IPv6.
-3=<b>Контекст IRC</b> це набір ресурсів, що відносяться до одного з'єднання з сервером. Він має відповідне вікно <b>Консолі</b> що відображає системні повідомлення та повідомлення сервера.
-4=KVIrc є високомодульною програмою. Модулі завантажуються та вивантажуються прозоро для користувача (і навіть для розробника скриптів!). Ви можете написати власні модулі, що розширюють мову сценаріїв, або додають можливості.
-5=KVIrc підтримує скрипти з кількома ручками для одної події. Це дозволяє одночасно встановити кілька скриптів, запобігає конфліктам ручок і допомагає в додаванні/усуненні та ввімкненні/вимкненні секцій скриптів.
-6=KVIrc підтримує <b>irc://</b> Uniform Resource Locator (URL). Виконайте команду: <br><b>kvirc irc://irc.сервер.org:6667/канал</b><br> для при'єднання до серверу.<br>Загальний синтаксис:<br><b>irc[6]://<назва-сервера>[:<порт>][/[<канал>[?<пароль>]]]</b>
-7=Виконавчий файл KVIrc працює як команда "netscape -remote", якщо вже запущена одна копія KVIrc, параметри команди надсилаються до цієї копії через IPC. Ви можете перевизначити цю поведінку перемикачем <b>-f</b>.
-8=KVIrc може виконувати роль браузера для URL типу <b>irc://</b>. Якщо KVIrc має підтримку KDE, ви зможете запустити його набравши <b>irc://</b> URL в рядок розміщення Konqueror.<br>Спробуйте <b>irc://irc.freenode.net/kvirc</b> :)
-9=Також можна створити URL для IPv6 IRC серверів, скориставшись наступним синтаксисом:<br><b>irc6://<назва-сервера-ipv6>[:<порт>][/[<канал>[?<пароль>]]]</b>
-10=Ви можете змінити вікно натиснувши <b>Alt+Вверх/Вниз</b>. <b>Shift+Alt+Вверх/Вниз</b> переходить лише між вікнами поточного контексту.
-11=Швидким методом приєднатись до сервера в новому IRC-контексті є <b>/server -n <назва_сервера></b>
-12=KVIrc є переносним між Windows, Mac OSX, Linux та багатьма іншими ОС типу Unix. Якщо ви вмієте писати скрипти, ваші скрипти теж будуть переносними!
-13=Хочете автоматично зайти на канал при з'єднанні?<br>Легко!<br>Натисніть "Розширені" в параметрах сервера і додайте канал в закладці "Зайти на канали". Якщо хочете зробити це для всіх серверів, спробуйте <b>/event(OnIrc,autojoin){ join #ваш_канал; }</b>
-14=Ви знаєте що таке аватар? Гляньте <b>/help The AVATAR idea</b>
-15=Сторінка параметрів DCC має багато опцій, які допоможуть вирішити поширені проблеми з з'єднанням через DCC. Люди за фаєрволом також можуть відсилати дані. Просто все залежить від налаштувань. :)
-16=KVIrc підтримує багато 8-бітних кодувань символів. Ви можете "розмовляти" базованою на KOI8-R Російською на одному каналі і Японською на іншому через те ж з'єднання (якщо наявні потрібні шрифти). Ви радимо вам використовувати <b>Юнікод</b> (UTF-8), який підтримує майже всі мови світу.
-17=Щоб уникнути надмірних передач в DCC, краще зробити ваших аватарів доступними в Веб. Ви також можете використати будь-яке доступне в Веб зображення в якості аватара.<br><b>/avatar #ваш_канал http://funnyhost.com/funny/funny.png</b> спрацює!
-18=KVIrc має вбудований HTTP-клієнт, і ви можете завантажити файли з Веб використавши команду <b>/http.get</b>.
-19=Не подобається режим дерева вікон на панелі завдань? Ви можете перейти до традиційної панелі (як в mIRC) на сторінці параметрів панелі завдань в налаштуваннях.
-20=Ви можете скопіювати текст з текстового вікна в буфер вибравши його мишкою. Якщо ж ви ще й затиснете кнопку Shift, то скопіюється також колір.
-21=Це остання порада. Ви можете додати власні - Дивіться <b>/help tip.open</b>. Надсилайте поради (на будь-якій мові) на адресу <b>trisk-kvirc(at)quasarnet.org</b>.
+[KVIrc] +uNextTip=0 +uNumTips=22 +TranslatorHint=This-file-MUST-be-encoded-in-UTF8 +0=Ви можете відкрити з'єднання для кількох серверів в одному вікні KVIrc, просто виберіть "Новий Контекст IRC" в меню KVIrc. +1=Тепер IPv6 повністю підтримується, навіть для DCC.<br><b>/сервер -i <назва-сервера></b> потрібна вам команда. :) +2=KVIrc підтримує SSL-шифрування.<br>Зашифрувати IRC-з'єднання через SSL можна командою <b>/server -s</b>, а DCC-з'єднання командою <b>/dcc.chat -s</b><br>SSL також працює через IPv6. +3=<b>Контекст IRC</b> це набір ресурсів, що відносяться до одного з'єднання з сервером. Він має відповідне вікно <b>Консолі</b> що відображає системні повідомлення та повідомлення сервера. +4=KVIrc є високомодульною програмою. Модулі завантажуються та вивантажуються прозоро для користувача (і навіть для розробника скриптів!). Ви можете написати власні модулі, що розширюють мову сценаріїв, або додають можливості. +5=KVIrc підтримує скрипти з кількома ручками для одної події. Це дозволяє одночасно встановити кілька скриптів, запобігає конфліктам ручок і допомагає в додаванні/усуненні та ввімкненні/вимкненні секцій скриптів. +6=KVIrc підтримує <b>irc://</b> Uniform Resource Locator (URL). Виконайте команду: <br><b>kvirc irc://irc.сервер.org:6667/канал</b><br> для при'єднання до серверу.<br>Загальний синтаксис:<br><b>irc[6]://<назва-сервера>[:<порт>][/[<канал>[?<пароль>]]]</b> +7=Виконавчий файл KVIrc працює як команда "netscape -remote", якщо вже запущена одна копія KVIrc, параметри команди надсилаються до цієї копії через IPC. Ви можете перевизначити цю поведінку перемикачем <b>-f</b>. +8=KVIrc може виконувати роль браузера для URL типу <b>irc://</b>. Якщо KVIrc має підтримку KDE, ви зможете запустити його набравши <b>irc://</b> URL в рядок розміщення Konqueror.<br>Спробуйте <b>irc://irc.freenode.net/kvirc</b> :) +9=Також можна створити URL для IPv6 IRC серверів, скориставшись наступним синтаксисом:<br><b>irc6://<назва-сервера-ipv6>[:<порт>][/[<канал>[?<пароль>]]]</b> +10=Ви можете змінити вікно натиснувши <b>Alt+Вверх/Вниз</b>. <b>Shift+Alt+Вверх/Вниз</b> переходить лише між вікнами поточного контексту. +11=Швидким методом приєднатись до сервера в новому IRC-контексті є <b>/server -n <назва_сервера></b> +12=KVIrc є переносним між Windows, Mac OSX, Linux та багатьма іншими ОС типу Unix. Якщо ви вмієте писати скрипти, ваші скрипти теж будуть переносними! +13=Хочете автоматично зайти на канал при з'єднанні?<br>Легко!<br>Натисніть "Розширені" в параметрах сервера і додайте канал в закладці "Зайти на канали". Якщо хочете зробити це для всіх серверів, спробуйте <b>/event(OnIrc,autojoin){ join #ваш_канал; }</b> +14=Ви знаєте що таке аватар? Гляньте <b>/help The AVATAR idea</b> +15=Сторінка параметрів DCC має багато опцій, які допоможуть вирішити поширені проблеми з з'єднанням через DCC. Люди за фаєрволом також можуть відсилати дані. Просто все залежить від налаштувань. :) +16=KVIrc підтримує багато 8-бітних кодувань символів. Ви можете "розмовляти" базованою на KOI8-R Російською на одному каналі і Японською на іншому через те ж з'єднання (якщо наявні потрібні шрифти). Ви радимо вам використовувати <b>Юнікод</b> (UTF-8), який підтримує майже всі мови світу. +17=Щоб уникнути надмірних передач в DCC, краще зробити ваших аватарів доступними в Веб. Ви також можете використати будь-яке доступне в Веб зображення в якості аватара.<br><b>/avatar #ваш_канал http://funnyhost.com/funny/funny.png</b> спрацює! +18=KVIrc має вбудований HTTP-клієнт, і ви можете завантажити файли з Веб використавши команду <b>/http.get</b>. +19=Не подобається режим дерева вікон на панелі завдань? Ви можете перейти до традиційної панелі (як в mIRC) на сторінці параметрів панелі завдань в налаштуваннях. +20=Ви можете скопіювати текст з текстового вікна в буфер вибравши його мишкою. Якщо ж ви ще й затиснете кнопку Shift, то скопіюється також колір. +21=Це остання порада. Ви можете додати власні - Дивіться <b>/help tip.open</b>. Надсилайте поради (на будь-якій мові) на адресу <b>trisk-kvirc(at)quasarnet.org</b>. diff --git a/src/modules/toolbareditor/CustomizeToolBarsDialog.h b/src/modules/toolbareditor/CustomizeToolBarsDialog.h index 937c5c72e..4077f5c15 100644 --- a/src/modules/toolbareditor/CustomizeToolBarsDialog.h +++ b/src/modules/toolbareditor/CustomizeToolBarsDialog.h @@ -61,8 +61,8 @@ public: static void cleanup(); protected: - virtual void showEvent(QShowEvent * e); - virtual void closeEvent(QCloseEvent * e); + void showEvent(QShowEvent * e) override; + void closeEvent(QCloseEvent * e) override; protected slots: void closeClicked(); void newToolBar(); @@ -112,7 +112,7 @@ class TrashcanLabel : public QLabel Q_OBJECT public: TrashcanLabel(QWidget * p); - virtual ~TrashcanLabel(); + ~TrashcanLabel(); protected: unsigned int m_uFlashCount; @@ -120,8 +120,8 @@ protected: QColor m_clrOriginal; protected: - virtual void dragEnterEvent(QDragEnterEvent * e); - virtual void dropEvent(QDropEvent * e); + void dragEnterEvent(QDragEnterEvent * e) override; + void dropEvent(QDropEvent * e) override; public slots: void flash(); protected slots: diff --git a/src/modules/torrent/KTorrentDbusInterface.cpp b/src/modules/torrent/KTorrentDbusInterface.cpp index 5341ddc8f..4f63f91ee 100644 --- a/src/modules/torrent/KTorrentDbusInterface.cpp +++ b/src/modules/torrent/KTorrentDbusInterface.cpp @@ -50,8 +50,7 @@ KTorrentDbusInterface::KTorrentDbusInterface() } KTorrentDbusInterface::~KTorrentDbusInterface() -{ -} + = default; bool KTorrentDbusInterface::findRunningApp() { diff --git a/src/modules/torrent/KTorrentDbusInterface.h b/src/modules/torrent/KTorrentDbusInterface.h index 0aadd8396..5cbcc51b6 100644 --- a/src/modules/torrent/KTorrentDbusInterface.h +++ b/src/modules/torrent/KTorrentDbusInterface.h @@ -38,35 +38,35 @@ class KTorrentDbusInterface : public TorrentInterface public: KTorrentDbusInterface(); - virtual ~KTorrentDbusInterface(); + ~KTorrentDbusInterface(); - virtual int detect(); + int detect() override; - virtual bool startAll(); - virtual bool stopAll(); + bool startAll() override; + bool stopAll() override; - virtual int count(); - virtual bool start(int i); - virtual bool stop(int i); - virtual bool announce(int i); - virtual QString state(int i); - virtual QString name(int i); - virtual int fileCount(int i); - virtual QString fileName(int i, int file); - virtual QString filePriority(int i, int file); - virtual bool setFilePriority(int i, int file, const QString & prio); + int count() override; + bool start(int i) override; + bool stop(int i) override; + bool announce(int i) override; + QString state(int i) override; + QString name(int i) override; + int fileCount(int i) override; + QString fileName(int i, int file) override; + QString filePriority(int i, int file) override; + bool setFilePriority(int i, int file, const QString & prio) override; - virtual int maxUploadSpeed(); - virtual int maxDownloadSpeed(); + int maxUploadSpeed() override; + int maxDownloadSpeed() override; - virtual bool setMaxUploadSpeed(int kbytes_per_sec); - virtual bool setMaxDownloadSpeed(int kbytes_per_sec); + bool setMaxUploadSpeed(int kbytes_per_sec) override; + bool setMaxDownloadSpeed(int kbytes_per_sec) override; - virtual float speedUp(); - virtual float speedDown(); + float speedUp() override; + float speedDown() override; - virtual float trafficUp(); - virtual float trafficDown(); + float trafficUp() override; + float trafficDown() override; /* private slots: // polls client and extracts information. diff --git a/src/modules/torrent/StatusBarApplet.h b/src/modules/torrent/StatusBarApplet.h index 26d3358c9..53c013262 100644 --- a/src/modules/torrent/StatusBarApplet.h +++ b/src/modules/torrent/StatusBarApplet.h @@ -36,7 +36,7 @@ class StatusBarApplet : public KviStatusBarApplet Q_OBJECT public: StatusBarApplet(KviStatusBar * parent, KviStatusBarAppletDescriptor * desc); - virtual ~StatusBarApplet(); + ~StatusBarApplet() override; static void selfRegister(KviStatusBar * bar); private slots: void update(); diff --git a/src/modules/torrent/TorrentInterface.h b/src/modules/torrent/TorrentInterface.h index efae2a708..31329b0b0 100644 --- a/src/modules/torrent/TorrentInterface.h +++ b/src/modules/torrent/TorrentInterface.h @@ -35,7 +35,7 @@ class TorrentInterface : public QObject { public: TorrentInterface() {} - virtual ~TorrentInterface() {} + ~TorrentInterface() {} virtual int detect() = 0; @@ -119,7 +119,7 @@ public: { \ public: \ _interfaceclass##Descriptor(); \ - virtual ~_interfaceclass##Descriptor(); \ + ~_interfaceclass##Descriptor(); \ \ protected: \ _interfaceclass * m_pInstance; \ @@ -127,16 +127,16 @@ public: QString m_szDescription; \ \ public: \ - virtual const QString & name(); \ - virtual const QString & description(); \ - virtual TorrentInterface * instance(); \ + const QString & name() override; \ + const QString & description() override; \ + TorrentInterface * instance() override; \ }; #define TORR_IMPLEMENT_DESCRIPTOR(_interfaceclass, _name, _description) \ _interfaceclass##Descriptor::_interfaceclass##Descriptor() \ : TorrentInterfaceDescriptor() \ { \ - m_pInstance = 0; \ + m_pInstance = nullptr; \ m_szName = _name; \ m_szDescription = _description; \ } \ diff --git a/src/modules/trayicon/libkvitrayicon.cpp b/src/modules/trayicon/libkvitrayicon.cpp index 787e1d3ef..b2dceb40d 100644 --- a/src/modules/trayicon/libkvitrayicon.cpp +++ b/src/modules/trayicon/libkvitrayicon.cpp @@ -688,7 +688,7 @@ static bool trayicon_kvs_cmd_hide(KviKvsModuleCommandCall *) Hides the window, associated with trayicon @syntax: trayicon.hidewindow - @description + @description: Hides the window, associated with trayicon @seealso: [cmd]trayicon.show[/cmd], [cmd]trayicon.hide[/cmd] diff --git a/src/modules/upnp/Manager.h b/src/modules/upnp/Manager.h index 69fd14ed5..4ee83d435 100644 --- a/src/modules/upnp/Manager.h +++ b/src/modules/upnp/Manager.h @@ -59,7 +59,7 @@ namespace UPnP public: // public methods // The destructor - virtual ~Manager(); + ~Manager(); // Return the external IP address QString getExternalIpAddress() const; diff --git a/src/modules/upnp/RootService.h b/src/modules/upnp/RootService.h index 971e86be2..97d319fa0 100644 --- a/src/modules/upnp/RootService.h +++ b/src/modules/upnp/RootService.h @@ -55,7 +55,7 @@ namespace UPnP // The constructor RootService(const QString & hostname, int port, const QString & rootUrl); // The destructor - virtual ~RootService(); + ~RootService(); // Return the device type QString getDeviceType() const; @@ -74,7 +74,7 @@ namespace UPnP protected: // Protected methods // The control point received a response to callInformationUrl() - virtual void gotInformationResponse(const QDomNode & response); + void gotInformationResponse(const QDomNode & response) override; private: // Private methods // Recursively add all devices and embedded devices to the deviceServices_ map diff --git a/src/modules/upnp/Service.cpp b/src/modules/upnp/Service.cpp index f7e7f4baa..cc337f972 100644 --- a/src/modules/upnp/Service.cpp +++ b/src/modules/upnp/Service.cpp @@ -36,6 +36,7 @@ #include <QDebug> #include <QByteArray> +#include <utility> #include "KviNetworkAccessManager.h" @@ -49,8 +50,11 @@ namespace UPnP { // The constructor for information services - Service::Service(const QString & hostname, int port, const QString & informationUrl) - : m_iPendingRequests(0), m_szBaseXmlPrefix("s"), m_szHostname(hostname), m_iPort(port) + Service::Service(QString hostname, int port, const QString & informationUrl) + : m_iPendingRequests(0) + , m_szBaseXmlPrefix("s") + , m_szHostname(std::move(hostname)) + , m_iPort(port) { m_szInformationUrl = informationUrl; qDebug() << "UPnP::Service: created information service url='" << m_szInformationUrl << "'." << endl; diff --git a/src/modules/upnp/Service.h b/src/modules/upnp/Service.h index de81a5ee6..c65c132c6 100644 --- a/src/modules/upnp/Service.h +++ b/src/modules/upnp/Service.h @@ -71,11 +71,11 @@ namespace UPnP public: // public methods // The constructor for the root service - Service(const QString & hostname, int port, const QString & informationUrl); + Service(QString hostname, int port, const QString & informationUrl); // The constructor for action services Service(const ServiceParameters & params); // The destructor - virtual ~Service(); + ~Service(); // Get the number of pending requests int getPendingRequests() const; diff --git a/src/modules/upnp/SsdpConnection.h b/src/modules/upnp/SsdpConnection.h index 0068f2f25..8be9cdc3c 100644 --- a/src/modules/upnp/SsdpConnection.h +++ b/src/modules/upnp/SsdpConnection.h @@ -58,7 +58,7 @@ namespace UPnP public: SsdpConnection(); - virtual ~SsdpConnection(); + ~SsdpConnection(); void queryDevices(int bindPort = 1500); diff --git a/src/modules/upnp/WanConnectionService.h b/src/modules/upnp/WanConnectionService.h index 24e306dff..6e950dd5b 100644 --- a/src/modules/upnp/WanConnectionService.h +++ b/src/modules/upnp/WanConnectionService.h @@ -68,7 +68,7 @@ namespace UPnP // The constructor WanConnectionService(const ServiceParameters & params); // The destructor - virtual ~WanConnectionService(); + ~WanConnectionService(); // Add a port mapping void addPortMapping(const QString & protocol, const QString & remoteHost, int externalPort, @@ -93,7 +93,7 @@ namespace UPnP protected: // protected methods // The control point received a response to callAction() - virtual void gotActionResponse(const QString & responseType, const QMap<QString, QString> & resultValues); + void gotActionResponse(const QString & responseType, const QMap<QString, QString> & resultValues) override; private: // private attributes // The external IP address diff --git a/src/modules/upnp/igdcontrolpoint.h b/src/modules/upnp/igdcontrolpoint.h index e292c0e72..209b28ee7 100644 --- a/src/modules/upnp/igdcontrolpoint.h +++ b/src/modules/upnp/igdcontrolpoint.h @@ -61,7 +61,7 @@ namespace UPnP // The constructor IgdControlPoint(const QString & hostname, int port, const QString & rootUrl); // The destructor - virtual ~IgdControlPoint(); + ~IgdControlPoint(); // Return the external IP address QString getExternalIpAddress() const; diff --git a/src/modules/url/libkviurl.cpp b/src/modules/url/libkviurl.cpp index 279c414cd..a10d5171c 100644 --- a/src/modules/url/libkviurl.cpp +++ b/src/modules/url/libkviurl.cpp @@ -54,11 +54,11 @@ extern KVIRC_API QPixmap * g_pShadedChildGlobalDesktopBackground; #endif -typedef struct _UrlDlgList +struct UrlDlgList { UrlDialog * dlg; int menu_id; -} UrlDlgList; +}; const char * g_pUrlListFilename = "/list.kviurl"; const char * g_pBanListFilename = "/list.kviban"; @@ -288,10 +288,10 @@ void UrlDialog::addUrl(QString url, QString window, QString count, QString times UrlItem->setText(2, count); UrlItem->setText(3, timestamp); - UrlItem->setForeground(0, KVI_OPTION_MIRCCOLOR(KVI_OPTION_MSGTYPE(KVI_OUT_URL).fore())); - UrlItem->setForeground(1, KVI_OPTION_MIRCCOLOR(KVI_OPTION_MSGTYPE(KVI_OUT_NONE).fore())); - UrlItem->setForeground(2, KVI_OPTION_MIRCCOLOR(KVI_OPTION_MSGTYPE(KVI_OUT_NONE).fore())); - UrlItem->setForeground(3, KVI_OPTION_MIRCCOLOR(KVI_OPTION_MSGTYPE(KVI_OUT_NONE).fore())); + UrlItem->setForeground(0, getMircColor(KVI_OPTION_MSGTYPE(KVI_OUT_URL).fore())); + UrlItem->setForeground(1, getMircColor(KVI_OPTION_MSGTYPE(KVI_OUT_NONE).fore())); + UrlItem->setForeground(2, getMircColor(KVI_OPTION_MSGTYPE(KVI_OUT_NONE).fore())); + UrlItem->setForeground(3, getMircColor(KVI_OPTION_MSGTYPE(KVI_OUT_NONE).fore())); m_pUrlList->resizeColumnToContents(0); m_pUrlList->resizeColumnToContents(3); diff --git a/src/modules/url/libkviurl.h b/src/modules/url/libkviurl.h index 623d11b5a..cb14edac7 100644 --- a/src/modules/url/libkviurl.h +++ b/src/modules/url/libkviurl.h @@ -48,13 +48,13 @@ #include <unordered_set> #include <vector> -typedef struct _KviUrl +struct KviUrl { QString url; QString window; int count; QString timestamp; -} KviUrl; +}; class UrlDialogTreeWidget : public QTreeWidget { @@ -64,8 +64,8 @@ public: ~UrlDialogTreeWidget(){}; protected: - void mousePressEvent(QMouseEvent * e); - void paintEvent(QPaintEvent * event); + void mousePressEvent(QMouseEvent * e) override; + void paintEvent(QPaintEvent * event) override; signals: void rightButtonPressed(QTreeWidgetItem *, QPoint); void contextMenuRequested(QPoint); @@ -80,11 +80,11 @@ public: private: KviTalMenuBar * m_pMenuBar; - QMenu * m_pListPopup; // dynamic popup menu + QMenu * m_pListPopup = nullptr; // dynamic popup menu QString m_szUrl; // used to pass URLs to sayToWin slot protected: - QPixmap * myIconPtr(); - void resizeEvent(QResizeEvent *); + QPixmap * myIconPtr() override; + void resizeEvent(QResizeEvent *) override; public: UrlDialogTreeWidget * m_pUrlList; @@ -109,7 +109,7 @@ class BanFrame : public QFrame { Q_OBJECT public: - BanFrame(QWidget * parent = 0, const char * name = 0, bool banEnable = false); + BanFrame(QWidget * parent = nullptr, const char * name = nullptr, bool banEnable = false); ~BanFrame(); void saveBans(KviConfigurationFile * cfg); @@ -136,7 +136,7 @@ public: private: QCheckBox * cb[cbnum]; BanFrame * m_pBanFrame; - void closeEvent(QCloseEvent *); + void closeEvent(QCloseEvent *) override; protected slots: void acceptbtn(); void discardbtn(); diff --git a/src/modules/window/UserWindow.h b/src/modules/window/UserWindow.h index 43df1af47..a7a8cd597 100644 --- a/src/modules/window/UserWindow.h +++ b/src/modules/window/UserWindow.h @@ -37,16 +37,16 @@ public: }; public: - UserWindow(const char * pcName, QString & szIcon, KviConsoleWindow * pConsole = 0, int iCreationFlags = 0); + UserWindow(const char * pcName, QString & szIcon, KviConsoleWindow * pConsole = nullptr, int iCreationFlags = 0); ~UserWindow(); protected: QString m_szIcon; protected: - virtual void resizeEvent(QResizeEvent *); - virtual QPixmap * myIconPtr(); - virtual void fillCaptionBuffers(); + void resizeEvent(QResizeEvent *) override; + QPixmap * myIconPtr() override; + void fillCaptionBuffers() override; public: void setWindowTitleStrings(const QString & szPlainText); diff --git a/src/modules/zzz_afterlastmodule/CMakeLists.txt b/src/modules/zzz_afterlastmodule/CMakeLists.txt index 317ed1402..e209fe082 100644 --- a/src/modules/zzz_afterlastmodule/CMakeLists.txt +++ b/src/modules/zzz_afterlastmodule/CMakeLists.txt @@ -1,5 +1,9 @@ # CMakeLists.txt for src/modules/zzz_afterlastmodule if(APPLE) + set(QT_LIBRARY_DIR "${Qt5Widgets_DIR}/../../") + get_filename_component(QT_LIBRARY_DIR ${QT_LIBRARY_DIR} PATH) + get_filename_component(QT_LIBRARY_DIR "${QT_LIBRARY_DIR}/.." ABSOLUTE) + install(CODE " file(GLOB_RECURSE KVIRC_INSTALLED_MODULES \"${KVIRC_MOD_PATH}/*.so\") |
