diff options
| author | 2008-09-06 15:07:02 +0000 | |
|---|---|---|
| committer | 2008-09-06 15:07:02 +0000 | |
| commit | 60f59dc1ff072481e78b428fd2caeb5d4d4b1c61 (patch) | |
| tree | 851977b6fa83447fe9d593b5eb9d8e4c68fe9ee8 /src/modules/eventeditor | |
| parent | updated po{,t} files (diff) | |
| download | KVIrc-60f59dc1ff072481e78b428fd2caeb5d4d4b1c61.tar.gz KVIrc-60f59dc1ff072481e78b428fd2caeb5d4d4b1c61.tar.bz2 KVIrc-60f59dc1ff072481e78b428fd2caeb5d4d4b1c61.zip | |
completed the porting of eventeditor module
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@2414 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/eventeditor')
| -rw-r--r-- | src/modules/eventeditor/eventeditor.cpp | 106 | ||||
| -rw-r--r-- | src/modules/eventeditor/eventeditor.h | 33 |
2 files changed, 104 insertions, 35 deletions
diff --git a/src/modules/eventeditor/eventeditor.cpp b/src/modules/eventeditor/eventeditor.cpp index eca6ee3b1..aac97b28f 100644 --- a/src/modules/eventeditor/eventeditor.cpp +++ b/src/modules/eventeditor/eventeditor.cpp @@ -45,21 +45,40 @@ #include <QLayout> #include <QToolTip> #include <QPushButton> -#include <QEvent> +#include <QMouseEvent> extern KviEventEditorWindow * g_pEventEditorWindow; +KviEventListViewItem::KviEventListViewItem(QTreeWidget * par,unsigned int uEvIdx,const QString &name,const QString ¶ms) +: QTreeWidgetItem(par), m_uEventIdx(uEvIdx), m_szParams(params) +{ + setName(name); +} -const QPixmap * KviEventListViewItem::pixmap(int col) const +void KviEventListViewItem::setName(const QString &szName) { - return g_pIconManager->getSmallIcon(childCount() ? KVI_SMALLICON_EVENT : KVI_SMALLICON_EVENTNOHANDLERS); + m_szName = szName; + setText(0,m_szName); } -const QPixmap * KviEventHandlerListViewItem::pixmap(int col) const +KviEventHandlerListViewItem::KviEventHandlerListViewItem(QTreeWidgetItem * par,const QString &name,const QString &buffer,bool bEnabled) +: QTreeWidgetItem(par), m_szBuffer(buffer) { - return g_pIconManager->getSmallIcon(m_bEnabled ? KVI_SMALLICON_HANDLER : KVI_SMALLICON_HANDLERDISABLED); + setEnabled(bEnabled); //this updates the icon too + setName(name); } +void KviEventHandlerListViewItem::setName(const QString &szName) +{ + m_szName = szName; + setText(0,m_szName); +} + +void KviEventHandlerListViewItem::setEnabled(const bool bEnabled) +{ + m_bEnabled = bEnabled; + setIcon(0,QIcon(*(g_pIconManager->getSmallIcon(m_bEnabled ? KVI_SMALLICON_HANDLER : KVI_SMALLICON_HANDLERDISABLED)))); +} KviEventEditor::KviEventEditor(QWidget * par) : QWidget(par) @@ -74,19 +93,18 @@ KviEventEditor::KviEventEditor(QWidget * par) l->addWidget(spl,0,0); KviTalVBox * boxi = new KviTalVBox(spl); - m_pListView = new QTreeWidget(boxi); + boxi->setSpacing(0); + boxi->setMargin(0); - m_pListView->setColumnCount(1); - m_pListView->setHeaderLabel(__tr2qs("Event")); - m_pListView->setSelectionMode(QAbstractItemView::ExtendedSelection); - m_pListView->setSortingEnabled(true); - m_pListView->setRootIsDecorated(true); - m_pListView->setAnimated(true); + m_pListView = new KviEventEditorListView(boxi); QPushButton * pb = new QPushButton(__tr2qs("&Export All To..."),boxi); connect(pb,SIGNAL(clicked()),this,SLOT(exportAllEvents())); KviTalVBox * box = new KviTalVBox(spl); + box->setSpacing(0); + box->setMargin(0); + m_pNameEditor = new QLineEdit(box); m_pNameEditor->setToolTip(__tr2qs("Edit the event handler name.")); @@ -126,17 +144,39 @@ void KviEventEditor::oneTimeSetup() } it->setExpanded(true); } + 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)), + this,SLOT(itemPressed(QTreeWidgetItem *,QPoint))); m_pContextPopup = new KviTalPopupMenu(this); + m_pListView->sortItems(0,Qt::AscendingOrder); +} + +KviEventEditorListView::KviEventEditorListView(QWidget * par) +: QTreeWidget(par) +{ + setColumnCount (1); + setHeaderLabel(__tr2qs("Event")); + setSelectionMode(QAbstractItemView::ExtendedSelection); + setSortingEnabled(true); + setRootIsDecorated(true); + setAnimated(true); +} - connect(m_pListView,SIGNAL(selectionChanged(QTreeWidgetItem *)),this,SLOT(selectionChanged(QTreeWidgetItem *))); - connect(m_pListView,SIGNAL(rightButtonPressed(QTreeWidgetItem *,const QPoint &,int)), - this,SLOT(itemPressed(QTreeWidgetItem *,const QPoint &,int))); +void KviEventEditorListView::mousePressEvent (QMouseEvent *e) +{ + if (e->button() == Qt::RightButton) + { + QTreeWidgetItem *i=itemAt(e->pos()); + if (i) emit rightButtonPressed(i,QCursor::pos()); + } + QTreeWidget::mousePressEvent(e); } -void KviEventEditor::itemPressed(QTreeWidgetItem *it,const QPoint &pnt,int col) +void KviEventEditor::itemPressed(QTreeWidgetItem *it,const QPoint &pnt) { __range_valid(m_bOneTimeSetupDone); @@ -155,8 +195,6 @@ void KviEventEditor::itemPressed(QTreeWidgetItem *it,const QPoint &pnt,int col) *(g_pIconManager->getSmallIcon(KVI_SMALLICON_HANDLERDISABLED)), __tr2qs("&Disable Handler"),this,SLOT(toggleCurrentHandlerEnabled())); - //m_pContextPopup->setItemChecked(id,((KviEventHandlerListViewItem *)it)->m_bEnabled); - m_pContextPopup->insertItem( *(g_pIconManager->getSmallIcon(KVI_SMALLICON_QUIT)), __tr2qs("Re&move Handler"), @@ -216,6 +254,9 @@ void KviEventEditor::addHandlerForCurrentEvent() if(it->parent() == 0) { + if(it->childCount()==0) + 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); @@ -231,8 +272,16 @@ void KviEventEditor::removeCurrentHandler() if(m_pLastEditedItem) { QTreeWidgetItem * it = m_pLastEditedItem; + QTreeWidgetItem * parent = m_pLastEditedItem->parent(); m_pLastEditedItem = 0; delete it; + + if(parent) + { + if(parent->childCount()==0) + parent->setIcon(0,QIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_EVENTNOHANDLERS)))); + } + m_pEditor->setEnabled(false); m_pNameEditor->setEnabled(false); } @@ -243,9 +292,9 @@ void KviEventEditor::toggleCurrentHandlerEnabled() __range_valid(m_pOneTimeSetupDone); if(m_pLastEditedItem) { - m_pLastEditedItem->m_bEnabled = !(m_pLastEditedItem->m_bEnabled); + m_pLastEditedItem->setEnabled(!(m_pLastEditedItem->m_bEnabled)); m_pListView->repaint(m_pListView->visualItemRect(m_pLastEditedItem)); - selectionChanged(m_pLastEditedItem); + currentItemChanged(m_pLastEditedItem,0); } } @@ -301,24 +350,33 @@ void KviEventEditor::saveLastEditedItem() getUniqueHandlerName((KviEventListViewItem *)(m_pLastEditedItem->parent()),buffer); } - m_pLastEditedItem->m_szName = buffer; + m_pLastEditedItem->setName(buffer); QString tmp; m_pEditor->getText(tmp); m_pLastEditedItem->m_szBuffer = tmp; } -void KviEventEditor::selectionChanged(QTreeWidgetItem * it) +void KviEventEditor::currentItemChanged(QTreeWidgetItem * it,QTreeWidgetItem *prev) { __range_valid(m_bOneTimeSetupDone); saveLastEditedItem(); + + if(!it) + { + m_pNameEditor->setText(__tr2qs("No item selected")); + m_pEditor->setText(""); + m_pEditor->setEnabled(false); + return; + } + if(it->parent()) { m_pLastEditedItem = (KviEventHandlerListViewItem *)it; m_pNameEditor->setEnabled(true); - m_pNameEditor->setText(it->text(0)); + m_pNameEditor->setText(m_pLastEditedItem->name()); m_pEditor->setEnabled(true); - m_pEditor->setText(((KviEventHandlerListViewItem *)it)->m_szBuffer); + m_pEditor->setText(m_pLastEditedItem->m_szBuffer); } else { m_pLastEditedItem = 0; m_pNameEditor->setEnabled(false); diff --git a/src/modules/eventeditor/eventeditor.h b/src/modules/eventeditor/eventeditor.h index 9afdd22f1..0f5f9b269 100644 --- a/src/modules/eventeditor/eventeditor.h +++ b/src/modules/eventeditor/eventeditor.h @@ -40,12 +40,11 @@ public: QString m_szName; QString m_szParams; public: - KviEventListViewItem(QTreeWidget * par,unsigned int uEvIdx,const QString &name,const QString ¶ms) - : QTreeWidgetItem(par), m_uEventIdx(uEvIdx), m_szName(name), m_szParams(params) {}; + KviEventListViewItem(QTreeWidget * par,unsigned int uEvIdx,const QString &name,const QString ¶ms); ~KviEventListViewItem() {}; public: - virtual QString text(int col) const { return m_szName; }; - virtual const QPixmap * pixmap(int col) const; + void setName(const QString &szName); + QString name() const { return m_szName; }; }; class KviEventHandlerListViewItem : public QTreeWidgetItem @@ -55,12 +54,24 @@ public: QString m_szBuffer; bool m_bEnabled; public: - KviEventHandlerListViewItem(QTreeWidgetItem * par,const QString &name,const QString &buffer,bool bEnabled) - : QTreeWidgetItem(par), m_szName(name) , m_szBuffer(buffer) , m_bEnabled(bEnabled) {}; + KviEventHandlerListViewItem(QTreeWidgetItem * par,const QString &name,const QString &buffer,bool bEnabled); ~KviEventHandlerListViewItem() {}; public: - virtual QString text(int col) const { return m_szName; }; - virtual const QPixmap * pixmap(int col) const; + void setName(const QString &szName); + QString name() const { return m_szName; }; + void setEnabled(const bool bEnabled); +}; + +class KviEventEditorListView : public QTreeWidget +{ + Q_OBJECT +public: + KviEventEditorListView(QWidget*); + ~KviEventEditorListView(){}; +protected: + void mousePressEvent (QMouseEvent *e); +signals: + void rightButtonPressed(QTreeWidgetItem *,QPoint); }; class KviEventEditor : public QWidget @@ -71,7 +82,7 @@ public: ~KviEventEditor(); public: KviScriptEditor * m_pEditor; - QTreeWidget * m_pListView; + KviEventEditorListView * m_pListView; QLineEdit * m_pNameEditor; KviTalPopupMenu * m_pContextPopup; KviEventHandlerListViewItem * m_pLastEditedItem; @@ -82,8 +93,8 @@ public: void getUniqueHandlerName(KviEventListViewItem *it,QString &buffer); void getExportEventBuffer(QString &szBuffer,KviEventHandlerListViewItem * it); protected slots: - void selectionChanged(QTreeWidgetItem *it); - void itemPressed(QTreeWidgetItem *it,const QPoint &pnt,int col); + void currentItemChanged(QTreeWidgetItem *it,QTreeWidgetItem *); + void itemPressed(QTreeWidgetItem *it,const QPoint &pnt); void toggleCurrentHandlerEnabled(); void removeCurrentHandler(); void addHandlerForCurrentEvent(); |
