aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/dbobjectdialogs.h
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/dbobjectdialogs.h')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/dbobjectdialogs.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/dbobjectdialogs.h b/SQLiteStudio3/guiSQLiteStudio/dbobjectdialogs.h
new file mode 100644
index 0000000..bedbab8
--- /dev/null
+++ b/SQLiteStudio3/guiSQLiteStudio/dbobjectdialogs.h
@@ -0,0 +1,67 @@
+#ifndef DBOBJECTDIALOGS_H
+#define DBOBJECTDIALOGS_H
+
+#include "db/db.h"
+#include "guiSQLiteStudio_global.h"
+#include <QString>
+#include <QStringList>
+
+class QWidget;
+class MainWindow;
+class MdiArea;
+class TableWindow;
+class ViewWindow;
+
+class GUI_API_EXPORT DbObjectDialogs : public QObject
+{
+ public:
+ explicit DbObjectDialogs(Db* db);
+ DbObjectDialogs(Db* db, QWidget* parentWidget);
+
+ TableWindow* addTable();
+ TableWindow* editTable(const QString& database, const QString& table);
+ TableWindow* addTableSimilarTo(const QString& database, const QString& table);
+
+ void addIndex(const QString& table);
+ void editIndex(const QString& index);
+
+ void addTriggerOnTable(const QString& table);
+ void addTriggerOnView(const QString& view);
+ void addTrigger(const QString& table, const QString& view);
+ void editTrigger(const QString& trigger);
+
+ ViewWindow* addView(const QString& initialSelect = QString());
+ ViewWindow* editView(const QString& database, const QString& view);
+
+ void editObject(const QString& name);
+ void editObject(const QString& database, const QString& name);
+ bool dropObject(const QString& name);
+ bool dropObject(const QString& database, const QString& name);
+
+ bool getNoConfirmation() const;
+ void setNoConfirmation(bool value);
+
+ bool getNoSchemaRefreshing() const;
+ void setNoSchemaRefreshing(bool value);
+
+ private:
+ enum class Type
+ {
+ TABLE = 0,
+ INDEX = 1,
+ TRIGGER = 2,
+ VIEW = 3,
+ UNKNOWN = -1
+ };
+
+ Type getObjectType(const QString& database, const QString& name);
+
+ Db* db = nullptr;
+ QWidget* parentWidget = nullptr;
+ MainWindow* mainWindow = nullptr;
+ MdiArea* mdiArea = nullptr;
+ bool noConfirmation = false;
+ bool noSchemaRefreshing = false;
+};
+
+#endif // DBOBJECTDIALOGS_H