forked from sqlitebrowser/sqlitebrowser
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMainWindow.h
More file actions
209 lines (181 loc) · 6.05 KB
/
MainWindow.h
File metadata and controls
209 lines (181 loc) · 6.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include "sqlitedb.h"
#include <memory>
#include <QMainWindow>
struct BrowseDataTableSettings;
class DbStructureModel;
class EditDialog;
class ExtendedTableWidget;
class FindReplaceDialog;
class PlotDock;
class RemoteDatabase;
class RemoteDock;
class RunSql;
class SqliteTableModel;
class QDragEnterEvent;
class QModelIndex;
class QLabel;
class QPersistentModelIndex;
class QToolButton;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget* parent = nullptr);
~MainWindow() override;
DBBrowserDB& getDb() { return db; }
RemoteDatabase& getRemote() { return *m_remoteDb; }
private:
struct PragmaValues
{
int autovacuum;
int automatic_index;
int checkpoint_fullsync;
int foreign_keys;
int fullfsync;
int ignore_check_constraints;
QString journal_mode;
int journal_size_limit;
QString locking_mode;
int max_page_count;
int page_size;
int recursive_triggers;
int secure_delete;
int synchronous;
int temp_store;
int user_version;
int wal_autocheckpoint;
int case_sensitive_like;
} pragmaValues;
Ui::MainWindow* ui;
DBBrowserDB db;
SqliteTableModel* m_currentTabTableModel;
QMenu* popupTableMenu;
QMenu* popupSchemaDockMenu;
QMenu* recentFilesMenu;
QMenu* popupOpenDbMenu;
QMenu* popupSaveSqlFileMenu;
QMenu* popupSaveSqlResultsMenu;
QLabel* statusEncodingLabel;
QLabel* statusEncryptionLabel;
QLabel* statusReadOnlyLabel;
QToolButton* statusStopButton;
QLabel* statusBusyLabel;
DbStructureModel* dbStructureModel;
static const int MaxRecentFiles = 5;
QAction *recentFileActs[MaxRecentFiles];
QAction *recentSeparatorAct;
RemoteDatabase* m_remoteDb;
EditDialog* editDock;
PlotDock* plotDock;
RemoteDock* remoteDock;
FindReplaceDialog* findReplaceDialog;
std::unique_ptr<RunSql> execute_sql_worker;
QString defaultOpenTabs;
QByteArray defaultWindowState;
QString currentProjectFilename;
bool isProjectModified;
void init();
void clearCompleterModelsFields();
void updateRecentFileActions();
void setCurrentFile(const QString& fileName);
void addToRecentFilesMenu(const QString& filename, bool read_only = false);
void activateFields(bool enable = true);
void saveAsView(QString query);
void attachPlot(ExtendedTableWidget* tableWidget, SqliteTableModel* model, BrowseDataTableSettings* settings = nullptr, bool keepOrResetSelection = true);
void toggleTabVisible(QWidget* tabWidget, bool show);
void restoreOpenTabs(QString tabs);
QString saveOpenTabs();
QString saveProject(const QString& currentFilename);
bool closeFiles();
bool closeProject();
bool askSaveSqlTab(int index, bool& ignoreUnattachedBuffers);
protected:
void closeEvent(QCloseEvent *) override;
void dragEnterEvent(QDragEnterEvent *event) override;
void dropEvent(QDropEvent *event) override;
void resizeEvent(QResizeEvent *event) override;
public slots:
bool fileOpen(const QString& fileName = QString(), bool openFromProject = false, bool readOnly = false);
void logSql(const QString &sql, int msgtype);
void dbState(bool dirty);
void refresh();
void switchToBrowseDataTab(sqlb::ObjectIdentifier tableToBrowse = sqlb::ObjectIdentifier());
void populateStructure(const QString& old_table = QString());
void reloadSettings();
private slots:
void createTreeContextMenu(const QPoint & qPoint);
void createSchemaDockContextMenu(const QPoint & qPoint);
void changeTreeSelection();
void fileNew();
void fileNewInMemoryDatabase();
void populateTable();
bool fileClose();
void createTable();
void createIndex();
void compact();
void deleteObject();
void editObject();
void helpWhatsThis();
void helpAbout();
void updateRecordText(const QPersistentModelIndex& idx, const QByteArray& text, bool isBlob);
void toggleEditDock(bool visible);
void dataTableSelectionChanged(const QModelIndex& index);
void doubleClickTable(const QModelIndex& index);
void executeQuery();
void importTableFromCSV();
void exportTableToCSV();
void exportTableToJson();
void fileSave();
void fileRevert();
void exportDatabaseToSQL();
void importDatabaseFromSQL();
void openRecentFile();
void loadPragmas();
void updatePragmaUi();
void savePragmas();
void mainTabSelected( int tabindex );
int openSqlTab(bool resetCounter = false);
void closeSqlTab(int index, bool force = false);
void changeSqlTab(int index);
void openSqlFile();
void saveSqlFile();
void saveSqlFileAs();
void saveSqlResultsAsCsv();
void saveSqlResultsAsView();
void loadExtension();
void checkNewVersion(const QString& versionstring, const QString& url);
void on_actionWiki_triggered();
void on_actionBug_report_triggered();
void on_actionFeature_Request_triggered();
void on_actionSqlCipherFaq_triggered();
void on_actionWebsite_triggered();
void on_actionDonatePatreon_triggered();
bool loadProject(QString filename = QString(), bool readOnly = false);
void saveProject();
void saveProjectAs();
void fileAttach(const QString& fileName = QString());
void editEncryption();
void copyCurrentCreateStatement();
void fileOpenReadOnly();
void requestCollation(const QString& name, int eTextRep);
void renameSqlTab(int index);
void setFindFrameVisibility(bool show);
void openFindReplaceDialog();
void toggleSqlBlockComment();
void openSqlPrintDialog();
void runSqlNewTab(const QString& query, const QString& title);
void printDbStructure();
void updateDatabaseBusyStatus(bool busy, const QString& user);
void openPreferences();
void closeTab(int index);
void showStatusMessage5s(QString message);
void saveSqlFile(int tabIndex);
void saveAll();
void showContextMenuSqlTabBar(const QPoint& pos);
};
#endif