• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

treeview.h

Go to the documentation of this file.
00001 #ifndef TREEVIEW_H
00002 #define TREEVIEW_H
00003 
00004 #include <QWidget>
00005 
00006 class TreeItem;
00007 class QSqlQueryModel;
00008 class QPushButton;
00009 class QComboBox;
00010 
00014 class TreeItemSelectionBox : public QWidget
00015 {
00016     Q_OBJECT
00017 public:
00018     TreeItemSelectionBox(TreeItem *treeItem, QWidget * parent = 0);
00019 
00020 private slots:
00021     void slot_commitButton_clicked();
00022     void setupModel(QSqlQueryModel *model);
00023 
00024 signals:
00025     void signal_commitSelection(int newItemId, QString columnName);
00026     void signal_commitSelection(QString newPath);
00027 
00028 private:
00029     QComboBox *selectionBox;
00030     QPushButton *commitSelection;
00031     TreeItem *treeItem;
00032     QString path;
00033 };
00034 
00035 #include <QWidgetAction>
00036 
00042 class TreeItemSetupAction : public QWidgetAction
00043 {
00044     Q_OBJECT
00045 public:
00046     TreeItemSetupAction(TreeItem *treeItem, QObject *parent = 0);
00047     TreeItemSelectionBox *defaultWidget();
00048 
00049 private slots:
00050     void slot_executeAction(QString newPath);
00051 
00052 private:
00053     TreeItem *m_treeItem;
00054 };
00055 
00056 #include <QMenu>
00057 
00058 class ProjectTreeModel;
00059 class QModelIndex;
00060 
00064 class TreeViewMenu : public QMenu
00065 {
00066     Q_OBJECT
00067 public:
00068     TreeViewMenu(const QModelIndex &index, QWidget *parent = 0);
00069 
00070 private:
00071     void AddSubMenu();
00072 
00073 private slots:
00074     void slot_actionTriggered(QAction *action);
00075     void removeSelected();
00076 
00077 private:
00078     ProjectTreeModel *m_model;
00079     TreeItem *m_treeItem;
00080     TreeItemSetupAction *m_action;
00081     const QModelIndex *index;
00082 };
00083 
00084 #include <QStyledItemDelegate>
00085 
00092 class TreeViewDelegate : public QStyledItemDelegate
00093 {
00094     Q_OBJECT
00095 public:
00096     TreeViewDelegate(QObject *parent = 0);
00097     QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
00098                           const QModelIndex &index) const;
00099     void setEditorData(QWidget *editor, const QModelIndex &index) const;
00100     void setModelData(QWidget *editor, QAbstractItemModel *model,
00101                       const QModelIndex &index) const;
00102     void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option,
00103                               const QModelIndex &index) const;
00104 };
00105 
00106 #include <QList>
00107 
00108 #include "treeitem.h"
00109 
00117 typedef QList<TreePath> TreePathList;
00118 
00119 Q_DECLARE_METATYPE(TreePathList);
00120 
00121 #include <QTreeView>
00122 
00126 class ProjectTreeView : public QTreeView
00127 {
00128     Q_OBJECT
00129 public:
00130     ProjectTreeView(QWidget *parent = 0);
00131     ~ProjectTreeView();
00132 
00133     virtual void setModel(QAbstractItemModel *model);
00134     ProjectTreeModel *model();
00135 
00136 protected:
00137     void contextMenuEvent(QContextMenuEvent *e);
00138 
00139 protected slots:
00140     virtual void onCollapse(const QModelIndex &index);
00141     virtual void onExpand(const QModelIndex &index);
00142 
00143 private slots:
00144     void restoreExpandedItems();
00145     void saveExpandedItems();
00146 
00147 private:
00148     TreePathList expandedTreePaths;
00149 };
00150 
00151 #endif // TREEVIEW_H

Generated on Tue Aug 24 2010 15:58:55 for Smartlet by  doxygen 1.7.1