diff options
| author | 2016-08-13 18:03:48 -0400 | |
|---|---|---|
| committer | 2016-08-13 18:17:10 -0400 | |
| commit | 7c4e1d798695139b9703db4532f44b58f7579166 (patch) | |
| tree | 8cd9554e4a2a0389ed44da9deed82265d8fb5bc6 /src/modules/editor | |
| parent | Add /away -d for GUI actions to override the boolUseAwayMessage option. Fixes... (diff) | |
| download | KVIrc-7c4e1d798695139b9703db4532f44b58f7579166.tar.gz KVIrc-7c4e1d798695139b9703db4532f44b58f7579166.tar.bz2 KVIrc-7c4e1d798695139b9703db4532f44b58f7579166.zip | |
ScriptEditor: Refactor a bit
Diffstat (limited to 'src/modules/editor')
| -rw-r--r-- | src/modules/editor/ScriptEditorImplementation.cpp | 31 | ||||
| -rw-r--r-- | src/modules/editor/ScriptEditorImplementation.h | 64 | ||||
| -rw-r--r-- | src/modules/editor/libkvieditor.cpp | 18 |
3 files changed, 45 insertions, 68 deletions
diff --git a/src/modules/editor/ScriptEditorImplementation.cpp b/src/modules/editor/ScriptEditorImplementation.cpp index 0d7d75d7d..1e9591e9b 100644 --- a/src/modules/editor/ScriptEditorImplementation.cpp +++ b/src/modules/editor/ScriptEditorImplementation.cpp @@ -64,7 +64,7 @@ #endif //COMPILE_ON_WINDOWS || COMPILE_ON_MINGW extern KVIRC_API KviModuleManager * g_pModuleManager; -extern KviPointerList<ScriptEditorImplementation> * g_pScriptEditorWindowList; +extern std::set<ScriptEditorImplementation *> g_pScriptEditorWindowList; extern KviModule * g_pEditorModulePointer; static QColor g_clrBackground(0, 0, 0); @@ -461,8 +461,6 @@ bool ScriptEditorWidget::contextSensitiveHelp() const ScriptEditorWidgetColorOptions::ScriptEditorWidgetColorOptions(QWidget * pParent) : QDialog(pParent) { - m_pSelectorInterfaceList = new KviPointerList<KviSelectorInterface>; - m_pSelectorInterfaceList->setAutoDelete(false); setWindowTitle(__tr2qs_ctx("Editor Configuration - KVIrc", "editor")); QGridLayout * g = new QGridLayout(this); @@ -473,7 +471,7 @@ ScriptEditorWidgetColorOptions::ScriptEditorWidgetColorOptions(QWidget * pParent box->setMinimumWidth(280); KviFontSelector * f = new KviFontSelector(box, __tr2qs_ctx("Font:", "editor"), &g_fntNormal, true); - m_pSelectorInterfaceList->append(f); + m_pSelectorInterfaceList.push_back(f); KviTalGroupBox * gbox = new KviTalGroupBox(Qt::Horizontal, __tr2qs_ctx("Colors", "editor"), box); gbox->setInsideSpacing(0); @@ -497,24 +495,18 @@ ScriptEditorWidgetColorOptions::ScriptEditorWidgetColorOptions(QWidget * pParent connect(b, SIGNAL(clicked()), this, SLOT(reject())); } -ScriptEditorWidgetColorOptions::~ScriptEditorWidgetColorOptions() -{ - delete m_pSelectorInterfaceList; -} - KviColorSelector * ScriptEditorWidgetColorOptions::addColorSelector(QWidget * pParent, const QString & txt, QColor * pOption, bool bEnabled) { KviColorSelector * s = new KviColorSelector(pParent, txt, pOption, bEnabled); - m_pSelectorInterfaceList->append(s); + m_pSelectorInterfaceList.push_back(s); return s; } void ScriptEditorWidgetColorOptions::okClicked() { - for(KviSelectorInterface * i = m_pSelectorInterfaceList->first(); i; i = m_pSelectorInterfaceList->next()) - { + for(const auto & i : m_pSelectorInterfaceList) i->commit(); - } + accept(); } @@ -718,9 +710,9 @@ ScriptEditorImplementation::ScriptEditorImplementation(QWidget * par) : KviScriptEditor(par) { m_pOptionsDialog = nullptr; - if(g_pScriptEditorWindowList->isEmpty()) + if(g_pScriptEditorWindowList.empty()) loadOptions(); - g_pScriptEditorWindowList->append(this); + g_pScriptEditorWindowList.insert(this); m_lastCursorPos = 0; QGridLayout * g = new QGridLayout(this); @@ -781,8 +773,8 @@ ScriptEditorImplementation::~ScriptEditorImplementation() m_pOptionsDialog->deleteLater(); m_pOptionsDialog = nullptr; } - g_pScriptEditorWindowList->removeRef(this); - if(g_pScriptEditorWindowList->isEmpty()) + g_pScriptEditorWindowList.erase(this); + if(g_pScriptEditorWindowList.empty()) saveOptions(); } @@ -937,7 +929,7 @@ void ScriptEditorImplementation::updateRowColLabel() { if(m_lastCursorPos == m_pEditor->textCursor().position()) return; - int iRow = m_pEditor->textCursor().blockNumber() + 1; + int iRow = m_pEditor->textCursor().blockNumber() + 1; int iCol = m_pEditor->textCursor().columnNumber() + 1; QString szTmp = QString(__tr2qs_ctx("Line: %1 Col: %2", "editor")).arg(iRow).arg(iCol); m_pRowColLabel->setText(szTmp); @@ -1054,9 +1046,6 @@ ScriptEditorReplaceDialog::ScriptEditorReplaceDialog(QWidget * pParent, const QS connect(m_pFindLineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(textChanged(const QString &))); } -ScriptEditorReplaceDialog::~ScriptEditorReplaceDialog() - = default; - void ScriptEditorReplaceDialog::textChanged(const QString & szText) { if(!szText.isEmpty()) diff --git a/src/modules/editor/ScriptEditorImplementation.h b/src/modules/editor/ScriptEditorImplementation.h index 06c023ad5..1a99aa490 100644 --- a/src/modules/editor/ScriptEditorImplementation.h +++ b/src/modules/editor/ScriptEditorImplementation.h @@ -25,7 +25,6 @@ //============================================================================= #include "KviScriptEditor.h" -#include "KviPointerList.h" #include "KviSelectors.h" #include <QCompleter> @@ -38,12 +37,13 @@ #include <QSyntaxHighlighter> #include <QByteArray> #include <QMenu> +#include <QTimer> -class QTimer; +#include <set> +#include <vector> -//typedef KviPointerList<int> ColumnList; class ScriptEditorSyntaxHighlighter; -class ScriptEditorWidget : public QTextEdit +class ScriptEditorWidget final : public QTextEdit { Q_OBJECT Q_PROPERTY(bool contextSensitiveHelp READ contextSensitiveHelp) @@ -75,7 +75,6 @@ public: QCompleter * completer() const { return m_pCompleter; }; QString textUnderCursor() const; void updateOptions(); - //void find1(); bool contextSensitiveHelp() const; public slots: void checkReadyCompleter(); @@ -88,30 +87,26 @@ protected slots: signals: void keyPressed(); -protected: - void contextMenuEvent(QContextMenuEvent * e); - virtual void keyPressEvent(QKeyEvent * e); - // void mouseReleaseEvent(QMouseEvent * e); +private: + void contextMenuEvent(QContextMenuEvent * e) override; + void keyPressEvent(QKeyEvent * e) override; }; -class ScriptEditorWidgetColorOptions : public QDialog +class ScriptEditorWidgetColorOptions final : public QDialog { Q_OBJECT public: ScriptEditorWidgetColorOptions(QWidget * pParent); - ~ScriptEditorWidgetColorOptions(); private: - KviPointerList<KviSelectorInterface> * m_pSelectorInterfaceList; - -protected: + std::vector<KviSelectorInterface *> m_pSelectorInterfaceList; KviColorSelector * addColorSelector(QWidget * pParent, const QString & txt, QColor * pOption, bool bEnabled); protected slots: void okClicked(); }; -class ScriptEditorSyntaxHighlighter : public QSyntaxHighlighter +class ScriptEditorSyntaxHighlighter final : public QSyntaxHighlighter { public: ScriptEditorSyntaxHighlighter(ScriptEditorWidget * pWidget); @@ -146,12 +141,12 @@ private: QTextCharFormat commentFormat; }; -class ScriptEditorImplementation : public KviScriptEditor +class ScriptEditorImplementation final : public KviScriptEditor { Q_OBJECT public: ScriptEditorImplementation(QWidget * par); - virtual ~ScriptEditorImplementation(); + ~ScriptEditorImplementation() override; public: QLineEdit * m_pFindLineEdit; @@ -163,26 +158,26 @@ protected: int m_lastCursorPos; public: - virtual void setText(const char * txt); - virtual void setText(const QString & szText); - virtual void setText(const QByteArray & szText); - virtual void getText(QString & szText); - virtual void getText(QByteArray & szText); - virtual void setFindText(const QString & szText); + void setText(const char * txt) override; + void setText(const QString & szText) override; + void setText(const QByteArray & szText) override; + void getText(QString & szText) override; + void getText(QByteArray & szText) override; + void setFindText(const QString & szText) override; virtual void setEnabled(bool bEnabled); - virtual void setReadOnly(bool bReadOnly); - void setUnHighlightedText(const QString & szText); + void setReadOnly(bool bReadOnly) override; + void setUnHighlightedText(const QString & szText) override; virtual void setFocus(); - virtual bool isModified(); - virtual void setModified(bool); + bool isModified() override; + void setModified(bool) override; - int getCursor() { return m_pEditor->textCursor().position(); }; - void setCursorPosition(int iPos); + int getCursor() override { return m_pEditor->textCursor().position(); }; + void setCursorPosition(int iPos) override; int cursor() { return m_lastCursorPos; }; QLineEdit * findLineEdit() { return m_pFindLineEdit; }; -protected: - virtual void focusInEvent(QFocusEvent * e); +private: + void focusInEvent(QFocusEvent * e) override; void loadOptions(); void saveOptions(); protected slots: @@ -202,22 +197,21 @@ signals: void nextFind(const QString & szText); }; -class ScriptEditorReplaceDialog : public QDialog +class ScriptEditorReplaceDialog final : public QDialog { Q_OBJECT public: ScriptEditorReplaceDialog(QWidget * parent = 0, const QString & szName = QString()); - ~ScriptEditorReplaceDialog(); public: QLineEdit * m_pFindLineEdit; QLineEdit * m_pReplaceLineEdit; -protected: +private: QPushButton * m_pReplaceButton; QCheckBox * m_pCheckReplaceAll; QWidget * m_pParent; -protected slots: +private slots: void textChanged(const QString &); void slotReplace(); void slotNextFind(); diff --git a/src/modules/editor/libkvieditor.cpp b/src/modules/editor/libkvieditor.cpp index 72fbf9403..39b2e8f8d 100644 --- a/src/modules/editor/libkvieditor.cpp +++ b/src/modules/editor/libkvieditor.cpp @@ -29,15 +29,11 @@ KviModule * g_pEditorModulePointer = nullptr; -KviPointerList<ScriptEditorImplementation> * g_pScriptEditorWindowList = nullptr; +std::set<ScriptEditorImplementation *> g_pScriptEditorWindowList; static bool editor_module_init(KviModule * m) { - g_pScriptEditorWindowList = new KviPointerList<ScriptEditorImplementation>; - g_pScriptEditorWindowList->setAutoDelete(false); - g_pEditorModulePointer = m; - return true; } @@ -50,9 +46,10 @@ static bool editor_module_cleanup(KviModule *) * So it's commented out by now.. */ - while(g_pScriptEditorWindowList->first()) + while(!g_pScriptEditorWindowList.empty()) { - QObject * w = g_pScriptEditorWindowList->first()->parent(); + auto & t = *g_pScriptEditorWindowList.begin(); + QObject * w = t->parent(); while(w) { //qDebug("%s %s %i %s",__FILE__,__FUNCTION__,__LINE__,w->className()); @@ -65,18 +62,15 @@ static bool editor_module_cleanup(KviModule *) } w = w->parent(); } - delete g_pScriptEditorWindowList->first(); + delete t; } - delete g_pScriptEditorWindowList; - g_pScriptEditorWindowList = nullptr; - return true; } static bool editor_module_can_unload(KviModule *) { - return ((g_pScriptEditorWindowList == nullptr) || (g_pScriptEditorWindowList->count() == 0)); + return g_pScriptEditorWindowList.empty(); } KVIRC_MODULE( |
