diff options
| author | 2019-04-01 15:01:02 +0200 | |
|---|---|---|
| committer | 2019-04-01 15:01:02 +0200 | |
| commit | 1e89e2da2e3740e55642c8ce44c573cd4bbe6ea9 (patch) | |
| tree | 94cfdd5000b6b0d6af1272e89f8b234fd8c484d4 /src/modules/eventeditor | |
| parent | Add support for Python 3 (diff) | |
| parent | uintUserListMinimumWidth: Reduce minimum due to account for certain combinati... (diff) | |
| download | KVIrc-1e89e2da2e3740e55642c8ce44c573cd4bbe6ea9.tar.gz KVIrc-1e89e2da2e3740e55642c8ce44c573cd4bbe6ea9.tar.bz2 KVIrc-1e89e2da2e3740e55642c8ce44c573cd4bbe6ea9.zip | |
Merge branch 'master' into python3
Diffstat (limited to 'src/modules/eventeditor')
| -rw-r--r-- | src/modules/eventeditor/EventEditorWindow.cpp | 50 | ||||
| -rw-r--r-- | src/modules/eventeditor/EventEditorWindow.h | 24 |
2 files changed, 55 insertions, 19 deletions
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(); |
