aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Noldor2010-02-16 12:08:25 +0000
committerGravatar Noldor2010-02-16 12:08:25 +0000
commitdb978639019eed335cf0d8632dd649eb064adb74 (patch)
treef98325cb8e6bc08a455c28b90cd75f922cc3a73a /src
parentRewrited Aliaseditor code (diff)
downloadKVIrc-db978639019eed335cf0d8632dd649eb064adb74.tar.gz
KVIrc-db978639019eed335cf0d8632dd649eb064adb74.tar.bz2
KVIrc-db978639019eed335cf0d8632dd649eb064adb74.zip
More work on aliaseditor
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@3975 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src')
-rw-r--r--src/modules/aliaseditor/aliaseditor.cpp147
-rw-r--r--src/modules/aliaseditor/aliaseditor.h32
2 files changed, 46 insertions, 133 deletions
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<KviAliasEditorTreeWidgetItem *>(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<KviAliasEditorT
}
}
-/*
-void KviAliasEditor::appendNamespaceItems(KviPointerList<KviAliasTreeWidgetItem> * l,bool bSelectedOnly)
-{
- for (int i=0;i<m_pTreeWidget->topLevelItemCount();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<KviAliasTreeWidgetItem> * l,QTreeWidgetItem * pStartFrom,bool bSelectedOnly)
-{
- for (int i=0;i<pStartFrom->childCount();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<KviAliasEditorTreeWidgetItem> * l,QTreeWidgetItem *it)
-
-{
- for (int i=0;i<it->childCount();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<KviAliasEditorTreeWidgetItem> * l)
-{
- for (int i=0;i<m_pTreeWidget->topLevelItemCount();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<KviAliasEditorTreeWidgetItem> 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 <QPushButton>
#include <QLabel>
#include <QTreeWidget>
+#include <QStyledItemDelegate>
+#include <QAbstractItemView>
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<KviAliasEditorTreeWidgetItem> * l);
void appendSelectedAliasItems(KviPointerList<KviAliasEditorTreeWidgetItem> * l);
void appendSelectedAliasItemsRecursive(KviPointerList<KviAliasEditorTreeWidgetItem> * l,QTreeWidgetItem * pStartFrom);
void appendAllAliasItems(KviPointerList<KviAliasEditorTreeWidgetItem> * l);
void appendAllAliasItemsRecursive(KviPointerList<KviAliasEditorTreeWidgetItem> * l,QTreeWidgetItem * pStartFrom);
- void appendSelectedItemsRecursive(KviPointerList<KviAliasEditorTreeWidgetItem> * l,QTreeWidgetItem *it);
-/*
- void appendNamespaceItemsRecursive(KviPointerList<KviAliasTreeWidgetItem> * l,QTreeWidgetItem * pStartFrom,bool bSelectedOnly);
- void appendNamespaceItems(KviPointerList<KviAliasTreeWidgetItem> * l,bool bSelectedOnly);
-
- //void appendNamespaceItems(KviPointerList<KviAliasTreeWidgetItem> * l,KviAliasEditorTreeWidgetItem * pStartFrom,bool bSelectedOnly);
-*/
void openParentItems(QTreeWidgetItem * it);
void activateItem(QTreeWidgetItem * it);
@@ -173,14 +181,6 @@ protected:
void appendAllItems(KviPointerList<KviAliasEditorTreeWidgetItem> * l,KviAliasEditorTreeWidgetItem::Type);
void appendAllItemsRecursive(KviPointerList<KviAliasEditorTreeWidgetItem> * 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);