From db978639019eed335cf0d8632dd649eb064adb74 Mon Sep 17 00:00:00 2001 From: Noldor Date: Tue, 16 Feb 2010 12:08:25 +0000 Subject: More work on aliaseditor git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@3975 17fca916-40b9-46aa-a4ea-0a15b648b75c --- src/modules/aliaseditor/aliaseditor.cpp | 147 +++++++------------------------- src/modules/aliaseditor/aliaseditor.h | 32 +++---- 2 files changed, 46 insertions(+), 133 deletions(-) (limited to 'src/modules') diff --git a/src/modules/aliaseditor/aliaseditor.cpp b/src/modules/aliaseditor/aliaseditor.cpp index 733940f63..946615598 100644 --- a/src/modules/aliaseditor/aliaseditor.cpp +++ b/src/modules/aliaseditor/aliaseditor.cpp @@ -61,13 +61,24 @@ extern KviAliasEditorWindow * g_pAliasEditorWindow; extern KviModule * g_pAliasEditorModule; +void KviAliasEditorTreeWidgetItemDelegate::paint(QPainter * p, const QStyleOptionViewItem & option, const QModelIndex & index) const +{ + QString szText=index.data(Qt::DisplayRole).toString(); + KviAliasEditorTreeWidgetItem *item=static_cast(index.internalPointer()); + int im = option.rect.left(); + int yPixmap = (option.rect.top() + (option.rect.height() / 2 - 8)); + QPixmap *pixmap; + if (item->type()==KviAliasEditorTreeWidgetItem::Alias) pixmap=g_pIconManager->getSmallIcon(KVI_SMALLICON_ALIAS); + else pixmap=g_pIconManager->getSmallIcon(KVI_SMALLICON_NAMESPACE); + QRect cRect(im + 3+pixmap->width()+2,option.rect.top(),option.rect.width(),option.rect.height()); + p->drawPixmap(im,yPixmap,*(pixmap)); + p->drawText(cRect,Qt::AlignLeft | Qt::AlignVCenter,szText); +} KviAliasEditorTreeWidgetItem::KviAliasEditorTreeWidgetItem(QTreeWidget * pTreeWidget,Type eType,const QString &szName) : QTreeWidgetItem(pTreeWidget), KviHeapObject(), m_eType(eType), m_pParentItem(0) { setName(szName); m_cPos=0; - if(eType==KviAliasEditorTreeWidgetItem::Namespace) setIcon(0,QIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_NAMESPACE)))); - else setIcon(0,QIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_ALIAS)))); } KviAliasEditorTreeWidgetItem::KviAliasEditorTreeWidgetItem(KviAliasEditorTreeWidgetItem * pParentItem,Type eType,const QString &szName) @@ -76,8 +87,6 @@ KviAliasEditorTreeWidgetItem::KviAliasEditorTreeWidgetItem(KviAliasEditorTreeWid setName(szName); m_cPos=0; setFlags(Qt::ItemIsEditable|Qt::ItemIsEnabled|Qt::ItemIsSelectable); - if(eType==KviAliasEditorTreeWidgetItem::Namespace) setIcon(0,QIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_NAMESPACE)))); - else setIcon(0,QIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_ALIAS)))); } void KviAliasEditorTreeWidgetItem::setName(const QString &szName) @@ -88,8 +97,6 @@ void KviAliasEditorTreeWidgetItem::setName(const QString &szName) void KviAliasEditorTreeWidgetItem::setType(Type t) { m_eType=t; - if(t==KviAliasEditorTreeWidgetItem::Namespace) setIcon(0,QIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_NAMESPACE)))); - else setIcon(0,QIcon(*(g_pIconManager->getSmallIcon(KVI_SMALLICON_ALIAS)))); } KviAliasEditorTreeWidget::KviAliasEditorTreeWidget(QWidget * par) @@ -111,12 +118,12 @@ KviAliasEditorTreeWidget::~KviAliasEditorTreeWidget() void KviAliasEditorTreeWidget::mousePressEvent (QMouseEvent *e) { - if (e->button() == Qt::RightButton) - { - QTreeWidgetItem *i=itemAt(e->pos()); - if (i) emit rightButtonPressed(i,QCursor::pos()); - } - QTreeWidget::mousePressEvent(e); + if (e->button() == Qt::RightButton) + { + QTreeWidgetItem *i=itemAt(e->pos()); + if (i) emit rightButtonPressed(i,QCursor::pos()); + } + QTreeWidget::mousePressEvent(e); } @@ -139,7 +146,8 @@ KviAliasEditor::KviAliasEditor(QWidget * par) box->setMargin(0); m_pTreeWidget = new KviAliasEditorTreeWidget(box); - + m_pItemDelegate=new KviAliasEditorTreeWidgetItemDelegate(m_pTreeWidget); + m_pTreeWidget->setItemDelegate( m_pItemDelegate); box = new KviTalVBox(m_pSplitter); KviTalHBox * hbox = new KviTalHBox(box); @@ -167,6 +175,7 @@ KviAliasEditor::KviAliasEditor(QWidget * par) KviAliasEditor::~KviAliasEditor() { KviScriptEditor::destroyInstance(m_pEditor); + delete m_pItemDelegate; } void KviAliasEditor::buildFullItemPath(KviAliasEditorTreeWidgetItem * it,QString &szBuffer) @@ -962,102 +971,6 @@ void KviAliasEditor::appendAllAliasItemsRecursive(KviPointerList * l,bool bSelectedOnly) -{ - for (int i=0;itopLevelItemCount();i++) - { - if (((KviAliasTreeWidgetItem *)m_pTreeWidget->topLevelItem(i))->isNamespace()) - { - if(bSelectedOnly) - { - if(m_pTreeWidget->topLevelItem(i)->isSelected()) - l->append(((KviAliasTreeWidgetItem *)m_pTreeWidget->topLevelItem(i))); - } - else - { - l->append(((KviAliasTreeWidgetItem *)m_pTreeWidget->topLevelItem(i))); - } - } - else - { - if(bSelectedOnly) - { - if(m_pTreeWidget->topLevelItem(i)->isSelected()) - appendNamespaceItemsRecursive(l,m_pTreeWidget->topLevelItem(i),false); - else - appendNamespaceItemsRecursive(l,m_pTreeWidget->topLevelItem(i),true); - } - else - appendNamespaceItemsRecursive(l,m_pTreeWidget->topLevelItem(i),false); - } - } - -} - -void KviAliasEditor::appendNamespaceItemsRecursive(KviPointerList * l,QTreeWidgetItem * pStartFrom,bool bSelectedOnly) -{ - for (int i=0;ichildCount();i++) - { - if (((KviAliasTreeWidgetItem *)pStartFrom->child(i))->isNamespace()) - { - if(bSelectedOnly) - { - if(pStartFrom->child(i)->isSelected()) - l->append((KviAliasTreeWidgetItem *)pStartFrom->child(i)); - } - else - { - l->append((KviAliasTreeWidgetItem *)pStartFrom->child(i)); - } - } - else - { - if(bSelectedOnly) - { - if(pStartFrom->isSelected()) - appendNamespaceItemsRecursive(l,pStartFrom->child(i),false); - else - appendNamespaceItemsRecursive(l,pStartFrom->child(i),true); - } - else - appendNamespaceItemsRecursive(l,pStartFrom->child(i),false); - } - } - -} -*/ -void KviAliasEditor::appendSelectedItemsRecursive(KviPointerList * l,QTreeWidgetItem *it) - -{ - for (int i=0;ichildCount();i++) - { - if (it->child(i)->isSelected()) - { - l->append((KviAliasEditorTreeWidgetItem *)it->child(i)); - } - else - { - if (it->child(i)->childCount()) - appendSelectedItemsRecursive(l,it->child(i)); - } - } -} -void KviAliasEditor::appendSelectedItems(KviPointerList * l) -{ - for (int i=0;itopLevelItemCount();i++) - { - if (m_pTreeWidget->topLevelItem(i)->isSelected()) - { - l->append((KviAliasEditorTreeWidgetItem *)m_pTreeWidget->topLevelItem(i)); - } - else - { - if (m_pTreeWidget->topLevelItem(i)->childCount()) - appendSelectedItemsRecursive(l,m_pTreeWidget->topLevelItem(i)); - } - } -} void KviAliasEditor::removeItemChildren(KviAliasEditorTreeWidgetItem *it) { @@ -1117,7 +1030,7 @@ void KviAliasEditor::removeSelectedItems() { KviPointerList l; l.setAutoDelete(false); - appendSelectedItems(&l); + appendSelectedAliasItems(&l); bool bYesToAll = false; @@ -1287,6 +1200,13 @@ void KviAliasEditor::newAlias() newItem(szNewName,KviAliasEditorTreeWidgetItem::Alias); } +void KviAliasEditor::newNamespace() +{ + QString szName = askForNamespaceName(__tr2qs_ctx("Add Namespace","editor"),__tr2qs_ctx("Please enter the name for the new namespace","editor"),"mynamespace"); + if(szName.isEmpty())return; + newItem(szName,KviAliasEditorTreeWidgetItem::Namespace); +} + void KviAliasEditor::newItem(QString &szName,KviAliasEditorTreeWidgetItem::Type eType) { if(m_pLastClickedItem) @@ -1308,13 +1228,6 @@ void KviAliasEditor::newItem(QString &szName,KviAliasEditorTreeWidgetItem::Type activateItem(it); } -void KviAliasEditor::newNamespace() -{ - QString szName = askForNamespaceName(__tr2qs_ctx("Add Namespace","editor"),__tr2qs_ctx("Please enter the name for the new namespace","editor"),"mynamespace"); - if(szName.isEmpty())return; - newItem(szName,KviAliasEditorTreeWidgetItem::Namespace); -} - void KviAliasEditor::recursiveCommit(KviAliasEditorTreeWidgetItem * it) { if(!it) diff --git a/src/modules/aliaseditor/aliaseditor.h b/src/modules/aliaseditor/aliaseditor.h index a2473fe40..d4860dcd2 100644 --- a/src/modules/aliaseditor/aliaseditor.h +++ b/src/modules/aliaseditor/aliaseditor.h @@ -36,10 +36,24 @@ #include #include #include +#include +#include class QSplitter; class KviScriptEditor; +class KVIRC_API KviAliasEditorTreeWidgetItemDelegate : public QStyledItemDelegate +{ + Q_OBJECT +public: + KviAliasEditorTreeWidgetItemDelegate(QAbstractItemView * pWidget=0) + : QStyledItemDelegate(pWidget) {}; + ~KviAliasEditorTreeWidgetItemDelegate(){}; + // QSize sizeHint(const QStyleOptionViewItem &option,const QModelIndex &index) const; + void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const; +}; + + class KviAliasEditorTreeWidgetItem : public QTreeWidgetItem, public KviHeapObject { public: @@ -113,6 +127,7 @@ public: void loadProperties(KviConfig *); static void splitFullAliasOrNamespaceName(const QString &szFullName,QStringList &lNamespaces,QString &szName); protected slots: + void currentItemChanged(QTreeWidgetItem *it,QTreeWidgetItem *); void renameItem(); void newAlias(); @@ -136,6 +151,7 @@ void newItem(QString &szName,KviAliasEditorTreeWidgetItem::Type eType); void aliasRefresh(const QString &szName); protected: + KviAliasEditorTreeWidgetItemDelegate *m_pItemDelegate; void recursiveCollapseNamespaces(KviAliasEditorTreeWidgetItem * it); void recursiveSearchReplace(const QString &szSearch,KviAliasEditorTreeWidgetItem * it,bool bReplace=false,const QString &szReplace="n"); @@ -144,19 +160,11 @@ protected: void oneTimeSetup(); void saveLastEditedItem(); void getUniqueItemName(KviAliasEditorTreeWidgetItem *item,QString &buffer,KviAliasEditorTreeWidgetItem::Type eType); - void appendSelectedItems(KviPointerList * l); void appendSelectedAliasItems(KviPointerList * l); void appendSelectedAliasItemsRecursive(KviPointerList * l,QTreeWidgetItem * pStartFrom); void appendAllAliasItems(KviPointerList * l); void appendAllAliasItemsRecursive(KviPointerList * l,QTreeWidgetItem * pStartFrom); - void appendSelectedItemsRecursive(KviPointerList * l,QTreeWidgetItem *it); -/* - void appendNamespaceItemsRecursive(KviPointerList * l,QTreeWidgetItem * pStartFrom,bool bSelectedOnly); - void appendNamespaceItems(KviPointerList * l,bool bSelectedOnly); - - //void appendNamespaceItems(KviPointerList * l,KviAliasEditorTreeWidgetItem * pStartFrom,bool bSelectedOnly); -*/ void openParentItems(QTreeWidgetItem * it); void activateItem(QTreeWidgetItem * it); @@ -173,14 +181,6 @@ protected: void appendAllItems(KviPointerList * l,KviAliasEditorTreeWidgetItem::Type); void appendAllItemsRecursive(KviPointerList * l,QTreeWidgetItem * pStartFrom,KviAliasEditorTreeWidgetItem::Type); bool hasSelectedItems(); - /*bool hasSelectedItemsRecursive(QTreeWidgetItem *); - KviAliasNamespaceTreeWidgetItem * findNamespaceItem(const QString &szName); - KviAliasNamespaceTreeWidgetItem * getNamespaceItem(const QString &szName); - KviAliasTreeWidgetItem * findAliasItem(const QString &szName); - KviAliasTreeWidgetItem * findAliasItemRecursive(KviAliasEditorTreeWidgetItem *it,const QString &szName); - KviAliasTreeWidgetItem * getAliasItem(const QString &szName); - KviAliasTreeWidgetItem * createFullAliasItem(const QString &szFullName);*/ - void buildFullItemPath(KviAliasEditorTreeWidgetItem * it,QString &szBuffer); KviAliasEditorTreeWidgetItem * findTopLevelItem(const QString &szName); KviAliasEditorTreeWidgetItem * createFullItem(const QString &szFullName); -- cgit v1.3.1-10-gc9f91