aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar staticfox2016-08-13 18:03:48 -0400
committerGravatar staticfox2016-08-13 18:17:10 -0400
commit7c4e1d798695139b9703db4532f44b58f7579166 (patch)
tree8cd9554e4a2a0389ed44da9deed82265d8fb5bc6
parentAdd /away -d for GUI actions to override the boolUseAwayMessage option. Fixes... (diff)
downloadKVIrc-7c4e1d798695139b9703db4532f44b58f7579166.tar.gz
KVIrc-7c4e1d798695139b9703db4532f44b58f7579166.tar.bz2
KVIrc-7c4e1d798695139b9703db4532f44b58f7579166.zip
ScriptEditor: Refactor a bit
-rw-r--r--src/kvirc/ui/KviScriptEditor.cpp55
-rw-r--r--src/kvirc/ui/KviScriptEditor.h27
-rw-r--r--src/modules/editor/ScriptEditorImplementation.cpp31
-rw-r--r--src/modules/editor/ScriptEditorImplementation.h64
-rw-r--r--src/modules/editor/libkvieditor.cpp18
5 files changed, 58 insertions, 137 deletions
diff --git a/src/kvirc/ui/KviScriptEditor.cpp b/src/kvirc/ui/KviScriptEditor.cpp
index 68ee0a423..0c389fb4e 100644
--- a/src/kvirc/ui/KviScriptEditor.cpp
+++ b/src/kvirc/ui/KviScriptEditor.cpp
@@ -29,61 +29,11 @@
#include "KviScriptEditor.h"
#include "KviModuleManager.h"
-KviScriptEditor::KviScriptEditor(QWidget * par)
- : QWidget(par)
-{
-}
-
-KviScriptEditor::~KviScriptEditor()
- = default;
-
-void KviScriptEditor::setText(const char * txt)
-{
- setText(QByteArray(txt));
-}
-
-void KviScriptEditor::setText(const QByteArray &)
-{
-}
-
void KviScriptEditor::setText(const QString & txt)
{
setText(QByteArray(txt.toUtf8()));
}
-void KviScriptEditor::setFindText(const QString &)
-{
-}
-void KviScriptEditor::setInfoText(const QString &)
-{
-}
-
-void KviScriptEditor::setFindLineeditReadOnly(bool)
-{
-}
-void KviScriptEditor::setReadOnly(bool)
-{
-}
-void KviScriptEditor::setUnHighlightedText(const QString &)
-{
-}
-void KviScriptEditor::getText(QByteArray &)
-{
-}
-
-void KviScriptEditor::setCursorPosition(int)
-{
-}
-
-bool KviScriptEditor::isModified()
-{
- return false;
-}
-
-int KviScriptEditor::getCursor()
-{
- return 0;
-}
void KviScriptEditor::getText(QString & txt)
{
QByteArray tmp;
@@ -91,11 +41,6 @@ void KviScriptEditor::getText(QString & txt)
txt = QString::fromUtf8(tmp.data());
}
-KviScriptEditor * KviScriptEditor::getDummyEditor(QWidget * par)
-{
- return new KviScriptEditor(par);
-}
-
static KviScriptEditor * (*editorModuleCreateScriptEditor)(QWidget *);
static void (*editorModuleDestroyScriptEditor)(KviScriptEditor *);
diff --git a/src/kvirc/ui/KviScriptEditor.h b/src/kvirc/ui/KviScriptEditor.h
index 4dc459dba..74be0b29c 100644
--- a/src/kvirc/ui/KviScriptEditor.h
+++ b/src/kvirc/ui/KviScriptEditor.h
@@ -44,28 +44,27 @@ class KVIRC_API KviScriptEditor : public QWidget
{
Q_OBJECT
protected:
- KviScriptEditor(QWidget * par);
- ~KviScriptEditor();
+ KviScriptEditor(QWidget * par) : QWidget(par){};
protected:
QLineEdit * m_pFindLineedit;
public:
- virtual void setText(const char * txt);
- virtual void setText(const QByteArray & txt);
+ virtual void setText(const char * txt) { setText(QByteArray(txt)); };
+ virtual void setText(const QByteArray & txt){};
virtual void setText(const QString & txt);
- virtual void getText(QByteArray & txt);
+ virtual void getText(QByteArray & txt){};
virtual void getText(QString & txt);
- virtual void setInfoText(const QString & text);
- virtual void setFindText(const QString & text);
- virtual void setCursorPosition(int);
- virtual void setReadOnly(bool bReadonly);
- virtual int getCursor();
- virtual void setFindLineeditReadOnly(bool b);
- virtual bool isModified();
- virtual void setUnHighlightedText(const QString & szText);
+ virtual void setInfoText(const QString & text){};
+ virtual void setFindText(const QString & text){};
+ virtual void setCursorPosition(int){};
+ virtual void setReadOnly(bool bReadonly){};
+ virtual int getCursor() { return 0; };
+ virtual void setFindLineeditReadOnly(bool b){};
+ virtual bool isModified() { return false; };
+ virtual void setUnHighlightedText(const QString & szText){};
virtual void setModified(bool){};
- static KviScriptEditor * getDummyEditor(QWidget * par);
+ static KviScriptEditor * getDummyEditor(QWidget * par) { return new KviScriptEditor(par); };
static KviScriptEditor * createInstance(QWidget * par);
static void destroyInstance(KviScriptEditor * e);
};
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(