#ifndef MAINFORM_H #define MAINFORM_H #include "sqltextedit.h" #include "sqlitedb.h" #include #include class QDragEnterEvent; class EditDialog; class SQLiteSyntaxHighlighter; class QStandardItemModel; class QIntValidator; class QLabel; class QModelIndex; class SqliteTableModel; class DbStructureModel; class QNetworkReply; class QNetworkAccessManager; class QTreeWidgetItem; class FilterTableHeader; namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget* parent = 0); ~MainWindow(); DBBrowserDB* getDb() { return &db; } 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; } pragmaValues; enum PlotColumns { PlotColumnField = 0, PlotColumnY = 1, PlotColumnX = 2 }; Ui::MainWindow* ui; SqliteTableModel* m_browseTableModel; SqliteTableModel* m_currentPlotModel; FilterTableHeader* m_tableHeader; QMenu *popupTableMenu; QMenu *recentFilesMenu; QLabel* statusEncodingLabel; SQLiteSyntaxHighlighter* sqliteHighlighterLogUser; SQLiteSyntaxHighlighter* sqliteHighlighterLogApp; DbStructureModel* dbStructureModel; enum { MaxRecentFiles = 5 }; QAction *recentFileActs[MaxRecentFiles]; QAction *recentSeparatorAct; int curBrowseOrderByIndex; Qt::SortOrder curBrowseOrderByMode; EditDialog* editWin; QIntValidator* gotoValidator; DBBrowserDB db; QStandardItemModel completerModelTables; SqlTextEdit::FieldCompleterModelMap completerModelsFields; QNetworkAccessManager* m_NetworkManager; void init(); void clearCompleterModelsFields(); void updateRecentFileActions(); void setCurrentFile(const QString& fileName); void activateFields(bool enable = true); void loadExtensionsFromSettings(); protected: void closeEvent(QCloseEvent *); void dragEnterEvent(QDragEnterEvent *event); void dropEvent(QDropEvent *event); void resizeEvent(QResizeEvent *event); public slots: virtual bool fileOpen(const QString& fileName); virtual void logSql(const QString &sql, int msgtype); virtual void dbState(bool dirty); virtual void browseRefresh(); private slots: virtual void createTreeContextMenu(const QPoint & qPoint); virtual void changeTreeSelection(); virtual void fileOpen(); virtual void fileNew(); virtual void populateStructure(); virtual void populateTable(const QString& tablename); virtual void resetBrowser(); virtual void fileClose(); virtual void addRecord(); virtual void deleteRecord(); virtual void selectTableLine( int lineToSelect ); virtual void navigatePrevious(); virtual void navigateNext(); virtual void navigateGoto(); virtual void setRecordsetLabel(); virtual void createTable(); virtual void createIndex(); virtual void compact(); virtual void deleteObject(); virtual void editTable(); virtual void helpWhatsThis(); virtual void helpAbout(); virtual void updateRecordText(int row, int col, const QByteArray& newtext); virtual void editWinAway(); virtual void editText(const QModelIndex& index); virtual void doubleClickTable(const QModelIndex& index); virtual void executeQuery(); virtual void importTableFromCSV(); virtual void exportTableToCSV(); virtual void fileSave(); virtual void fileRevert(); virtual void exportDatabaseToSQL(); virtual void importDatabaseFromSQL(); virtual void openPreferences(); virtual void openRecentFile(); virtual void loadPragmas(); virtual void updatePragmaUi(); virtual void savePragmas(); virtual void mainTabSelected( int tabindex ); virtual void browseTableHeaderClicked(int logicalindex); virtual void createSyntaxHighlighters(); virtual unsigned int openSqlTab(bool resetCounter = false); virtual void closeSqlTab(int index, bool force = false); virtual void openSqlFile(); virtual void saveSqlFile(); virtual void loadExtension(); virtual void reloadSettings(); virtual void httpresponse(QNetworkReply* reply); virtual void updatePlot(SqliteTableModel* model, bool update = true); void on_treePlotColumns_itemChanged(QTreeWidgetItem *item, int column); void on_butSavePlot_clicked(); }; #endif