summaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreeview.h
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2014-12-06 17:33:25 -0500
committerLibravatarUnit 193 <unit193@ubuntu.com>2014-12-06 17:33:25 -0500
commit7167ce41b61d2ba2cdb526777a4233eb84a3b66a (patch)
treea35c14143716e1f2c98f808c81f89426045a946f /SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreeview.h
Imported Upstream version 2.99.6upstream/2.99.6
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreeview.h')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreeview.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreeview.h b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreeview.h
new file mode 100644
index 0000000..3ec33b4
--- /dev/null
+++ b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtreeview.h
@@ -0,0 +1,57 @@
+#ifndef DBTREEVIEW_H
+#define DBTREEVIEW_H
+
+#include "dbtree.h"
+#include "guiSQLiteStudio_global.h"
+#include <QTreeView>
+#include <QList>
+#include <QUrl>
+
+class QMenu;
+class QStandardItemModel;
+class DbTreeItemDelegate;
+
+class GUI_API_EXPORT DbTreeView : public QTreeView
+{
+ Q_OBJECT
+ public:
+ explicit DbTreeView(QWidget *parent = 0);
+ ~DbTreeView();
+
+ void setDbTree(DbTree* dbTree);
+ DbTree* getDbTree() const;
+
+ DbTreeItem *currentItem();
+ DbTreeItem *itemAt(const QPoint& pos);
+ QList<DbTreeItem *> selectionItems();
+ DbTreeModel *model() const;
+ DbTreeItem *getItemForAction(bool onlySelected = false) const;
+ QPoint getLastDropPosition() const;
+ QModelIndexList getSelectedIndexes() const;
+
+ protected:
+ void dragEnterEvent(QDragEnterEvent* e);
+ void dragMoveEvent(QDragMoveEvent *event);
+ void mouseDoubleClickEvent(QMouseEvent* event);
+ void dropEvent(QDropEvent*e);
+
+ private:
+ bool handleDoubleClick(DbTreeItem* item);
+ bool handleDbDoubleClick(DbTreeItem* item);
+ bool handleTableDoubleClick(DbTreeItem* item);
+ bool handleIndexDoubleClick(DbTreeItem* item);
+ bool handleTriggerDoubleClick(DbTreeItem* item);
+ bool handleViewDoubleClick(DbTreeItem* item);
+ bool handleColumnDoubleClick(DbTreeItem* item);
+
+ QMenu* contextMenu = nullptr;
+ DbTree* dbTree = nullptr;
+ DbTreeItemDelegate* itemDelegate = nullptr;
+ QPoint lastDropPosition;
+
+ private slots:
+ void showMenu(const QPoint &pos);
+ void updateItemHidden(DbTreeItem* item);
+};
+
+#endif // DBTREEVIEW_H