pgLab/src/pglab/MainWindow.h

87 lines
1.9 KiB
C++

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include "ASyncDBConnection.h"
#include "ConnectionConfig.h"
#include "tsqueue.h"
#include <QLabel>
#include "ASyncWindow.h"
#include <QSocketNotifier>
#include <memory>
#include <future>
#include "Pgsql_Connection.h"
#include <chrono>
#include <deque>
#include <mutex>
namespace Ui {
class MainWindow;
}
namespace Pgsql {
class Connection;
}
class QueryTab;
class MasterController;
class QCloseEvent;
class OpenDatabase;
class MainWindow : public ASyncWindow {
Q_OBJECT
public:
explicit MainWindow(MasterController *master, QWidget *parent);
~MainWindow();
void setConfig(const ConnectionConfig &config);
OpenDatabase* getDatabase() { return m_database; }
private:
Ui::MainWindow *ui;
ConnectionConfig m_config;
OpenDatabase *m_database = nullptr;
MasterController *m_masterController;
// class OpenDocumentController {
// public:
// private:
// QString path = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
// QDir dir(path);
// if (!dir.exists()) {
// dir.mkpath(".");
// }
// };
QueryTab *GetActiveQueryTab();
void closeEvent(QCloseEvent *event);
void showEvent(QShowEvent *event);
QueryTab *newSqlPage();
private slots:
void on_actionLoad_SQL_triggered();
void on_actionSave_SQL_triggered();
void on_actionExport_data_triggered();
void on_actionClose_triggered();
void on_actionAbout_triggered();
void on_actionExecute_SQL_triggered();
void on_actionExplain_Analyze_triggered();
void on_actionCancel_triggered();
void on_actionSave_SQL_as_triggered();
void on_actionSave_copy_of_SQL_as_triggered();
void on_actionNew_SQL_triggered();
void on_tabWidget_tabCloseRequested(int index);
void on_actionExplain_triggered();
void on_actionShow_connection_manager_triggered();
void on_actionCopy_triggered();
void on_actionCopy_as_C_string_triggered();
};
#endif // MAINWINDOW_H