aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/eventeditor/EventEditorWindow.cpp
diff options
context:
space:
mode:
authorGravatar wodim2019-04-01 15:01:02 +0200
committerGravatar GitHub2019-04-01 15:01:02 +0200
commit1e89e2da2e3740e55642c8ce44c573cd4bbe6ea9 (patch)
tree94cfdd5000b6b0d6af1272e89f8b234fd8c484d4 /src/modules/eventeditor/EventEditorWindow.cpp
parentAdd support for Python 3 (diff)
parentuintUserListMinimumWidth: Reduce minimum due to account for certain combinati... (diff)
downloadKVIrc-1e89e2da2e3740e55642c8ce44c573cd4bbe6ea9.tar.gz
KVIrc-1e89e2da2e3740e55642c8ce44c573cd4bbe6ea9.tar.bz2
KVIrc-1e89e2da2e3740e55642c8ce44c573cd4bbe6ea9.zip
Merge branch 'master' into python3
Diffstat (limited to 'src/modules/eventeditor/EventEditorWindow.cpp')
-rw-r--r--src/modules/eventeditor/EventEditorWindow.cpp50
1 files changed, 42 insertions, 8 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())