aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.h
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.h')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.h23
1 files changed, 21 insertions, 2 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.h b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.h
index 2f5583e..ea415a4 100644
--- a/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.h
+++ b/SQLiteStudio3/guiSQLiteStudio/dbtree/dbtree.h
@@ -7,6 +7,7 @@
#include "dbtree/dbtreeitem.h"
#include "guiSQLiteStudio_global.h"
#include <QDockWidget>
+#include <QSet>
class WidgetCover;
class QAction;
@@ -85,6 +86,10 @@ class GUI_API_EXPORT DbTree : public QDockWidget, public ExtActionContainer
CREATE_SIMILAR_TABLE,
RESET_AUTOINCREMENT,
ERASE_TABLE_DATA,
+ GENERATE_SELECT,
+ GENERATE_UPDATE,
+ GENERATE_INSERT,
+ GENERATE_DELETE,
_separator // Never use it directly, it's just for menu setup
};
@@ -111,6 +116,7 @@ class GUI_API_EXPORT DbTree : public QDockWidget, public ExtActionContainer
QToolBar* getToolBar(int toolbar) const;
Db* getSelectedDb();
Db* getSelectedOpenDb();
+ QSet<Db*> getSelectedDatabases();
static bool isItemDraggable(const DbTreeItem* item);
@@ -120,6 +126,8 @@ class GUI_API_EXPORT DbTree : public QDockWidget, public ExtActionContainer
void closeEvent(QCloseEvent* e);
private:
+ typedef std::function<bool(DbTreeItem*)> ItemFilterFunc;
+
void setActionEnabled(int action, bool enabled);
TableWindow* openTable(DbTreeItem* item);
TableWindow* openTable(Db* db, const QString& database, const QString& table);
@@ -133,9 +141,16 @@ class GUI_API_EXPORT DbTree : public QDockWidget, public ExtActionContainer
void filterUndeletableItems(QList<DbTreeItem*>& items);
void filterItemsWithParentInList(QList<DbTreeItem*>& items);
void deleteItem(DbTreeItem* item);
+ void deleteSelected(DbTreeItem::Type itemType);
+ QHash<Db*, QList<DbTreeItem*>> groupByDb(const QList<DbTreeItem*> items);
+ QStringList itemsToNames(const QList<DbTreeItem*>& items);
+ QString getSelectedTableName() const;
+ QString getSelectedIndexName() const;
+ QString getSelectedTriggerName() const;
+ QString getSelectedViewName() const;
+
static bool areDbTreeItemsValidForItem(QList<DbTreeItem*> srcItems, const DbTreeItem* dstItem);
static bool areUrlsValidForItem(const QList<QUrl>& srcUrls, const DbTreeItem* dstItem);
-
static void initDndTypes();
Ui::DbTree *ui = nullptr;
@@ -194,13 +209,17 @@ class GUI_API_EXPORT DbTree : public QDockWidget, public ExtActionContainer
void editColumn(DbTreeItem* item);
void delColumn(DbTreeItem* item);
void currentChanged(const QModelIndex & current, const QModelIndex & previous);
- void deleteSelected();
+ void deleteSelected(ItemFilterFunc filterFunc = nullptr);
void deleteItems(const QList<DbTreeItem*>& itemsToDelete);
void refreshSchema();
void dbConnected(Db* db);
void dbDisconnected(Db* db);
void updateDbIcon(Db* db);
void refreshFont();
+ void generateSelectForTable();
+ void generateInsertForTable();
+ void generateUpdateForTable();
+ void generateDeleteForTable();
};
int qHash(DbTree::Action action);