diff options
| author | 2008-09-25 16:06:36 +0000 | |
|---|---|---|
| committer | 2008-09-25 16:06:36 +0000 | |
| commit | 7c244abf0f785b6abada4f6fccab52dbf96efcac (patch) | |
| tree | a1e8726e39489a3f1284b339c690ab1d09e8a7f4 /src/modules/eventeditor | |
| parent | finished porting of theme module to qt4 (diff) | |
| download | KVIrc-7c244abf0f785b6abada4f6fccab52dbf96efcac.tar.gz KVIrc-7c244abf0f785b6abada4f6fccab52dbf96efcac.tar.bz2 KVIrc-7c244abf0f785b6abada4f6fccab52dbf96efcac.zip | |
some fixes/improvements and code cleaning.
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@2567 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/eventeditor')
| -rw-r--r-- | src/modules/eventeditor/eventeditor.cpp | 108 | ||||
| -rw-r--r-- | src/modules/eventeditor/eventeditor.h | 31 |
2 files changed, 73 insertions, 66 deletions
diff --git a/src/modules/eventeditor/eventeditor.cpp b/src/modules/eventeditor/eventeditor.cpp index 2f179eac8..081a3b4f3 100644 --- a/src/modules/eventeditor/eventeditor.cpp +++ b/src/modules/eventeditor/eventeditor.cpp @@ -52,32 +52,33 @@ extern KviEventEditorWindow * g_pEventEditorWindow; -KviEventListViewItem::KviEventListViewItem(QTreeWidget * par,unsigned int uEvIdx,const QString &name,const QString ¶ms) +KviEventTreeWidgetItem::KviEventTreeWidgetItem(QTreeWidget * par,unsigned int uEvIdx,const QString &name,const QString ¶ms) : QTreeWidgetItem(par), m_uEventIdx(uEvIdx), m_szParams(params) { setName(name); } -void KviEventListViewItem::setName(const QString &szName) +void KviEventTreeWidgetItem::setName(const QString &szName) { m_szName = szName; setText(0,m_szName); } -KviEventHandlerListViewItem::KviEventHandlerListViewItem(QTreeWidgetItem * par,const QString &name,const QString &buffer,bool bEnabled) +KviEventHandlerTreeWidgetItem::KviEventHandlerTreeWidgetItem(QTreeWidgetItem * par,const QString &name,const QString &buffer,bool bEnabled) : QTreeWidgetItem(par), m_szBuffer(buffer) { + m_cPos=0; setEnabled(bEnabled); //this updates the icon too setName(name); } -void KviEventHandlerListViewItem::setName(const QString &szName) +void KviEventHandlerTreeWidgetItem::setName(const QString &szName) { m_szName = szName; setText(0,m_szName); } -void KviEventHandlerListViewItem::setEnabled(const bool bEnabled) +void KviEventHandlerTreeWidgetItem::setEnabled(const bool bEnabled) { m_bEnabled = bEnabled; setIcon(0,QIcon(*(g_pIconManager->getSmallIcon(m_bEnabled ? KVI_SMALLICON_HANDLER : KVI_SMALLICON_HANDLERDISABLED)))); @@ -95,16 +96,19 @@ KviEventEditor::KviEventEditor(QWidget * par) l->addWidget(spl,0,0); - KviTalVBox * boxi = new KviTalVBox(spl); - boxi->setSpacing(0); - boxi->setMargin(0); + KviTalVBox * vbox = new KviTalVBox(spl); + vbox->setSpacing(0); + vbox->setMargin(0); - m_pListView = new KviEventEditorListView(boxi); + m_pTreeWidget = new KviEventEditorTreeWidget(vbox); - QPushButton * pb = new QPushButton(__tr2qs("&Export All To..."),boxi); + QPushButton * pb = new QPushButton(__tr2qs("&Export All To..."),vbox); connect(pb,SIGNAL(clicked()),this,SLOT(exportAllEvents())); KviTalVBox * box = new KviTalVBox(spl); + spl->setStretchFactor (0,20); + spl->setStretchFactor (1,80); + box->setSpacing(0); box->setMargin(0); @@ -113,7 +117,6 @@ KviEventEditor::KviEventEditor(QWidget * par) m_pEditor = KviScriptEditor::createInstance(box); m_pEditor->setFocus(); - m_bOneTimeSetupDone = false; m_pLastEditedItem = 0; } @@ -128,21 +131,21 @@ void KviEventEditor::oneTimeSetup() if(m_bOneTimeSetupDone)return; m_bOneTimeSetupDone = true; - KviEventListViewItem * it; - KviEventHandlerListViewItem * ch; + KviEventTreeWidgetItem * it; + KviEventHandlerTreeWidgetItem * ch; for(unsigned int i = 0;i < KVI_KVS_NUM_APP_EVENTS;i++) { KviKvsEvent * e = KviKvsEventManager::instance()->appEvent(i); - it = new KviEventListViewItem(m_pListView,i,e->name(),e->parameterDescription()); + it = new KviEventTreeWidgetItem(m_pTreeWidget,i,e->name(),e->parameterDescription()); if(KviPointerList<KviKvsEventHandler> * l = e->handlers()) { for(KviKvsEventHandler * s = l->first();s;s = l->next()) { if(s->type() == KviKvsEventHandler::Script) { - ch = new KviEventHandlerListViewItem(it,((KviKvsScriptEventHandler *)s)->name(), + ch = new KviEventHandlerTreeWidgetItem(it,((KviKvsScriptEventHandler *)s)->name(), ((KviKvsScriptEventHandler *)s)->code(),((KviKvsScriptEventHandler *)s)->isEnabled()); } } @@ -150,15 +153,15 @@ void KviEventEditor::oneTimeSetup() it->setIcon(0,QIcon(*(g_pIconManager->getSmallIcon(it->childCount() ? KVI_SMALLICON_EVENT : KVI_SMALLICON_EVENTNOHANDLERS)))); } - connect(m_pListView,SIGNAL(currentItemChanged(QTreeWidgetItem *,QTreeWidgetItem *)),this,SLOT(currentItemChanged(QTreeWidgetItem *,QTreeWidgetItem *))); - connect(m_pListView,SIGNAL(rightButtonPressed(QTreeWidgetItem *,QPoint)), + connect(m_pTreeWidget,SIGNAL(currentItemChanged(QTreeWidgetItem *,QTreeWidgetItem *)),this,SLOT(currentItemChanged(QTreeWidgetItem *,QTreeWidgetItem *))); + connect(m_pTreeWidget,SIGNAL(rightButtonPressed(QTreeWidgetItem *,QPoint)), this,SLOT(itemPressed(QTreeWidgetItem *,QPoint))); m_pContextPopup = new KviTalPopupMenu(this); - m_pListView->sortItems(0,Qt::AscendingOrder); + m_pTreeWidget->sortItems(0,Qt::AscendingOrder); } -KviEventEditorListView::KviEventEditorListView(QWidget * par) +KviEventEditorTreeWidget::KviEventEditorTreeWidget(QWidget * par) : QTreeWidget(par) { setColumnCount (1); @@ -169,7 +172,7 @@ KviEventEditorListView::KviEventEditorListView(QWidget * par) setAnimated(true); } -void KviEventEditorListView::mousePressEvent (QMouseEvent *e) +void KviEventEditorTreeWidget::mousePressEvent (QMouseEvent *e) { if (e->button() == Qt::RightButton) { @@ -189,7 +192,7 @@ void KviEventEditor::itemPressed(QTreeWidgetItem *it,const QPoint &pnt) if(it->parent()) { QString tmp; - if(!(((KviEventHandlerListViewItem *)it)->m_bEnabled)) + if(!(((KviEventHandlerTreeWidgetItem *)it)->m_bEnabled)) m_pContextPopup->insertItem( *(g_pIconManager->getSmallIcon(KVI_SMALLICON_HANDLER)), __tr2qs("&Enable Handler"),this,SLOT(toggleCurrentHandlerEnabled())); @@ -217,7 +220,7 @@ void KviEventEditor::itemPressed(QTreeWidgetItem *it,const QPoint &pnt) } } -void KviEventEditor::getUniqueHandlerName(KviEventListViewItem *it,QString &buffer) +void KviEventEditor::getUniqueHandlerName(KviEventTreeWidgetItem *it,QString &buffer) { __range_valid(m_bOneTimeSetupDone); @@ -232,9 +235,9 @@ void KviEventEditor::getUniqueHandlerName(KviEventListViewItem *it,QString &buff bFound = false; for(int i=0;i<it->childCount();i++) - //for(KviEventHandlerListViewItem * ch = (KviEventHandlerListViewItem *)(it->firstChild());ch;ch = (KviEventHandlerListViewItem *)ch->nextSibling()) + //for(KviEventHandlerTreeWidgetItem * ch = (KviEventHandlerTreeWidgetItem *)(it->firstChild());ch;ch = (KviEventHandlerTreeWidgetItem *)ch->nextSibling()) { - if(KviQString::equalCI(newName,((KviEventHandlerListViewItem *)it->child(i))->m_szName)) + if(KviQString::equalCI(newName,((KviEventHandlerTreeWidgetItem *)it->child(i))->m_szName)) { bFound = true; KviQString::sprintf(newName,"%Q_%d",&buffer,idx); @@ -251,9 +254,9 @@ void KviEventEditor::addHandlerForCurrentEvent() { __range_valid(m_pOneTimeSetupDone); - if(!m_pListView->selectedItems().isEmpty()) + if(!m_pTreeWidget->selectedItems().isEmpty()) { - QTreeWidgetItem * it = m_pListView->selectedItems().first(); + QTreeWidgetItem * it = m_pTreeWidget->selectedItems().first(); if(it->parent() == 0) { @@ -261,8 +264,8 @@ void KviEventEditor::addHandlerForCurrentEvent() it->setIcon(0,QIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_EVENT)))); QString buffer = __tr2qs("default"); - getUniqueHandlerName((KviEventListViewItem *)it,buffer); - QTreeWidgetItem * ch = new KviEventHandlerListViewItem(it,buffer,"",true); + getUniqueHandlerName((KviEventTreeWidgetItem *)it,buffer); + QTreeWidgetItem * ch = new KviEventHandlerTreeWidgetItem(it,buffer,"",true); it->setExpanded(true); ch->setSelected(true); } @@ -296,7 +299,7 @@ void KviEventEditor::toggleCurrentHandlerEnabled() if(m_pLastEditedItem) { m_pLastEditedItem->setEnabled(!(m_pLastEditedItem->m_bEnabled)); - m_pListView->repaint(m_pListView->visualItemRect(m_pLastEditedItem)); + m_pTreeWidget->repaint(m_pTreeWidget->visualItemRect(m_pLastEditedItem)); currentItemChanged(m_pLastEditedItem,0); } } @@ -308,31 +311,27 @@ void KviEventEditor::commit() saveLastEditedItem(); KviKvsEventManager::instance()->removeAllScriptAppHandlers(); - int count=m_pListView->topLevelItemCount(); + int count=m_pTreeWidget->topLevelItemCount(); for (int i=0;i<count;i++) - //for(QTreeWidgetItem * it = m_pListView->firstChild();it;it = it->nextSibling()) { - QTreeWidgetItem * it = m_pListView->topLevelItem(i); + QTreeWidgetItem * it = m_pTreeWidget->topLevelItem(i); int ccount = it->childCount(); if(ccount > 0) { QString szContext; for(int j=0;j<ccount;j++) - //for(QTreeWidgetItem * ch = it->firstChild();ch;ch = ch->nextSibling()) { QTreeWidgetItem * ch = it->child(j); - - KviQString::sprintf(szContext,"%Q::%Q",&(((KviEventListViewItem *)it)->m_szName),&(((KviEventHandlerListViewItem *)ch)->m_szName)); - + KviQString::sprintf(szContext,"%Q::%Q",&(((KviEventTreeWidgetItem *)it)->m_szName),&(((KviEventHandlerTreeWidgetItem *)ch)->m_szName)); KviKvsScriptEventHandler * s = KviKvsScriptEventHandler::createInstance( // msvc workaround - ((KviEventHandlerListViewItem *)ch)->m_szName, + ((KviEventHandlerTreeWidgetItem *)ch)->m_szName, szContext, - ((KviEventHandlerListViewItem *)ch)->m_szBuffer, - ((KviEventHandlerListViewItem *)ch)->m_bEnabled + ((KviEventHandlerTreeWidgetItem *)ch)->m_szBuffer, + ((KviEventHandlerTreeWidgetItem *)ch)->m_bEnabled ); - KviKvsEventManager::instance()->addAppHandler(((KviEventListViewItem *)it)->m_uEventIdx,s); + KviKvsEventManager::instance()->addAppHandler(((KviEventTreeWidgetItem *)it)->m_uEventIdx,s); } } } @@ -344,13 +343,13 @@ void KviEventEditor::saveLastEditedItem() { __range_valid(m_bOneTimeSetupDone); if(!m_pLastEditedItem)return; - + ((KviEventHandlerTreeWidgetItem *)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_]"), ""); if(!KviQString::equalCI(buffer,m_pLastEditedItem->m_szName)) { - getUniqueHandlerName((KviEventListViewItem *)(m_pLastEditedItem->parent()),buffer); + getUniqueHandlerName((KviEventTreeWidgetItem *)(m_pLastEditedItem->parent()),buffer); } m_pLastEditedItem->setName(buffer); @@ -372,27 +371,30 @@ void KviEventEditor::currentItemChanged(QTreeWidgetItem * it,QTreeWidgetItem *pr m_pEditor->setEnabled(false); return; } - + if(it->parent()) { - m_pLastEditedItem = (KviEventHandlerListViewItem *)it; + m_pLastEditedItem = (KviEventHandlerTreeWidgetItem *)it; m_pNameEditor->setEnabled(true); m_pNameEditor->setText(m_pLastEditedItem->name()); m_pEditor->setEnabled(true); + m_pEditor->setFocus(); m_pEditor->setText(m_pLastEditedItem->m_szBuffer); + m_pEditor->setCursorPosition(((KviEventHandlerTreeWidgetItem *)it)->cursorPosition()); } else { m_pLastEditedItem = 0; m_pNameEditor->setEnabled(false); m_pNameEditor->setText(""); m_pEditor->setEnabled(false); - QString parms = ((KviEventListViewItem *)it)->m_szParams; + QString parms = ((KviEventTreeWidgetItem *)it)->m_szParams; if(parms.isEmpty())parms = __tr2qs("none"); KviCommandFormatter::indent(parms); KviCommandFormatter::indent(parms); QString tmp; KviQString::sprintf(tmp,__tr2qs("\n\n Event:\n %s\n\n Parameters:\n%s"), - ((KviEventListViewItem *)it)->m_szName.toUtf8().data(),parms.toUtf8().data()); + ((KviEventTreeWidgetItem *)it)->m_szName.toUtf8().data(),parms.toUtf8().data()); m_pEditor->setText(tmp); + } } @@ -402,7 +404,7 @@ void KviEventEditor::showEvent(QShowEvent *e) QWidget::showEvent(e); } -void KviEventEditor::getExportEventBuffer(QString &buffer,KviEventHandlerListViewItem * it) +void KviEventEditor::getExportEventBuffer(QString &buffer,KviEventHandlerTreeWidgetItem * it) { if(!it->parent())return; @@ -411,7 +413,7 @@ void KviEventEditor::getExportEventBuffer(QString &buffer,KviEventHandlerListVie KviCommandFormatter::blockFromBuffer(szBuf); buffer = "event("; - buffer += ((KviEventListViewItem *)(it->parent()))->m_szName; + buffer += ((KviEventTreeWidgetItem *)(it->parent()))->m_szName; buffer += ","; buffer += it->m_szName; buffer += ")\n"; @@ -422,7 +424,7 @@ void KviEventEditor::getExportEventBuffer(QString &buffer,KviEventHandlerListVie { buffer += "\n"; buffer += "eventctl -d "; - buffer += ((KviEventListViewItem *)(it->parent()))->m_szName; + buffer += ((KviEventTreeWidgetItem *)(it->parent()))->m_szName; buffer += " "; buffer += it->m_szName; } @@ -436,7 +438,7 @@ void KviEventEditor::exportCurrentHandler() QString szName = QDir::homePath(); if(!szName.endsWith(QString(KVI_PATH_SEPARATOR)))szName += KVI_PATH_SEPARATOR; - szName += ((KviEventListViewItem *)(m_pLastEditedItem->parent()))->m_szName; + szName += ((KviEventTreeWidgetItem *)(m_pLastEditedItem->parent()))->m_szName; szName += "."; szName += m_pLastEditedItem->m_szName; szName += ".kvs"; @@ -460,16 +462,16 @@ void KviEventEditor::exportAllEvents() QString out; - int count=m_pListView->topLevelItemCount(); + int count=m_pTreeWidget->topLevelItemCount(); for (int i=0;i<count;i++) { - KviEventListViewItem * it = (KviEventListViewItem *)m_pListView->topLevelItem(i); + KviEventTreeWidgetItem * it = (KviEventTreeWidgetItem *)m_pTreeWidget->topLevelItem(i); int ccount = it->childCount(); for(int j=0;j<ccount;j++) { - KviEventHandlerListViewItem * item = (KviEventHandlerListViewItem *) it->child(j); + KviEventHandlerTreeWidgetItem * item = (KviEventHandlerTreeWidgetItem *) it->child(j); QString tmp; getExportEventBuffer(tmp,item); diff --git a/src/modules/eventeditor/eventeditor.h b/src/modules/eventeditor/eventeditor.h index ff23b0d10..51c0b77fb 100644 --- a/src/modules/eventeditor/eventeditor.h +++ b/src/modules/eventeditor/eventeditor.h @@ -34,42 +34,47 @@ class KviScriptEditor; -class KviEventListViewItem : public QTreeWidgetItem +class KviEventTreeWidgetItem : public QTreeWidgetItem { public: unsigned int m_uEventIdx; QString m_szName; QString m_szParams; public: - KviEventListViewItem(QTreeWidget * par,unsigned int uEvIdx,const QString &name,const QString ¶ms); - ~KviEventListViewItem() {}; + KviEventTreeWidgetItem(QTreeWidget * par,unsigned int uEvIdx,const QString &name,const QString ¶ms); + ~KviEventTreeWidgetItem() {}; public: void setName(const QString &szName); QString name() const { return m_szName; }; }; -class KviEventHandlerListViewItem : public QTreeWidgetItem +class KviEventHandlerTreeWidgetItem : public QTreeWidgetItem { public: QString m_szName; QString m_szBuffer; bool m_bEnabled; + int m_cPos; public: - KviEventHandlerListViewItem(QTreeWidgetItem * par,const QString &name,const QString &buffer,bool bEnabled); - ~KviEventHandlerListViewItem() {}; + KviEventHandlerTreeWidgetItem(QTreeWidgetItem * par,const QString &name,const QString &buffer,bool bEnabled); + ~KviEventHandlerTreeWidgetItem() {}; public: + const int & cursorPosition(){return m_cPos; }; + void setCursorPosition(const int &cPos){debug ("set cursor to %d",cPos); m_cPos = cPos; }; + void setName(const QString &szName); QString name() const { return m_szName; }; void setEnabled(const bool bEnabled); }; -class KviEventEditorListView : public QTreeWidget +class KviEventEditorTreeWidget : public QTreeWidget { Q_OBJECT public: - KviEventEditorListView(QWidget*); - ~KviEventEditorListView(){}; + KviEventEditorTreeWidget(QWidget*); + ~KviEventEditorTreeWidget(){}; protected: + void mousePressEvent (QMouseEvent *e); signals: void rightButtonPressed(QTreeWidgetItem *,QPoint); @@ -83,16 +88,16 @@ public: ~KviEventEditor(); public: KviScriptEditor * m_pEditor; - KviEventEditorListView * m_pListView; + KviEventEditorTreeWidget * m_pTreeWidget; QLineEdit * m_pNameEditor; KviTalPopupMenu * m_pContextPopup; - KviEventHandlerListViewItem * m_pLastEditedItem; + KviEventHandlerTreeWidgetItem * m_pLastEditedItem; bool m_bOneTimeSetupDone; public: void commit(); void saveLastEditedItem(); - void getUniqueHandlerName(KviEventListViewItem *it,QString &buffer); - void getExportEventBuffer(QString &szBuffer,KviEventHandlerListViewItem * it); + void getUniqueHandlerName(KviEventTreeWidgetItem *it,QString &buffer); + void getExportEventBuffer(QString &szBuffer,KviEventHandlerTreeWidgetItem * it); protected slots: void currentItemChanged(QTreeWidgetItem *it,QTreeWidgetItem *); void itemPressed(QTreeWidgetItem *it,const QPoint &pnt); |
