summaryrefslogtreecommitdiffstats
path: root/quanta/treeviews/tagattributetree.h
diff options
context:
space:
mode:
Diffstat (limited to 'quanta/treeviews/tagattributetree.h')
-rw-r--r--quanta/treeviews/tagattributetree.h143
1 files changed, 143 insertions, 0 deletions
diff --git a/quanta/treeviews/tagattributetree.h b/quanta/treeviews/tagattributetree.h
new file mode 100644
index 00000000..bae0f3ff
--- /dev/null
+++ b/quanta/treeviews/tagattributetree.h
@@ -0,0 +1,143 @@
+/***************************************************************************
+ tagattributetree.h
+ -------------------
+ copyright : (C) 2003 by Andras Mantia <amantia@kde.org>
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; version 2 of the License. *
+ * *
+ ***************************************************************************/
+
+#ifndef TAGATTRIBUTETREE_H
+#define TAGATTRIBUTETREE_H
+
+//qt includes
+#include <qwidget.h>
+
+//kde includes
+#include <klistview.h>
+
+//app includes
+
+class KListView;
+class QListViewItem;
+class ParentItem;
+class Node;
+class QLabel;
+class KPushButton;
+class QGridLayout;
+
+class EditableTree : public KListView {
+Q_OBJECT
+
+public:
+ EditableTree(QWidget *parent = 0, const char *name = 0);
+ virtual ~EditableTree();
+
+ virtual void setCurrentItem( QListViewItem *i);
+ void setEditable(bool b) {m_editable = b;}
+ bool isEditable() {return m_editable;}
+
+public slots:
+ virtual void editorContentChanged();
+ virtual void focusInEvent(QFocusEvent *);
+ virtual void focusOutEvent(QFocusEvent *);
+
+protected:
+ bool m_editable;
+
+};
+
+class DualEditableTree : public EditableTree
+{
+ Q_OBJECT
+public:
+ DualEditableTree(QWidget *parent = 0, const char *name = 0);
+ virtual ~DualEditableTree();
+
+ virtual void setCurrentItem ( QListViewItem *i);
+ int currentColumn() {return curCol;}
+
+protected:
+ virtual bool eventFilter(QObject *object, QEvent *event);
+ virtual void resizeEvent(QResizeEvent *);
+
+signals:
+ void itemModified( QListViewItem *);
+
+public slots:
+ virtual void editorContentChanged();
+
+private slots:
+ void itemClicked(QListViewItem *i, const QPoint &point, int col);
+
+private:
+ int curCol;
+};
+
+class TagAttributeTree : public EditableTree {
+ Q_OBJECT
+
+public:
+ TagAttributeTree(QWidget *parent=0, const char *name=0);
+ virtual ~TagAttributeTree();
+
+ void setCurrentNode(Node *node);
+ //virtual void setCurrentItem( QListViewItem *i );
+ Node *node() const {return m_node;}
+
+public slots:
+ void slotDelayedSetCurrentNode();
+ void slotParentSelected(int index);
+ virtual void editorContentChanged();
+
+private slots:
+ void slotCollapsed(QListViewItem *item);
+ void slotExpanded(QListViewItem *item);
+
+signals:
+ void newNodeSelected(Node *node);
+
+private:
+ Node *m_node;
+ Node *m_newNode;
+ bool rebuildEnabled;
+ ParentItem *m_parentItem;
+};
+
+//An enhanced TagAttributeTree with the tag name and buttons to delete the tag.
+class EnhancedTagAttributeTree : public QWidget
+{
+Q_OBJECT
+public:
+ EnhancedTagAttributeTree(QWidget *parent = 0, const char *name = 0);
+ virtual ~EnhancedTagAttributeTree();
+
+ void setCurrentNode(Node *node);
+ Node *node() const {return attrTree->node();}
+
+signals:
+ void newNodeSelected(Node *node);
+
+private slots:
+ void NodeSelected(Node *node);
+ void deleteNode();
+ void deleteSubTree();
+
+private:
+ void showCaption();
+
+ QLabel *nodeName;
+ KPushButton* deleteAll;
+ KPushButton* deleteTag;
+ TagAttributeTree *attrTree;
+ QGridLayout *widgetLayout;
+ Node *curNode;
+};
+
+#endif
+