pgLab/mainwindow.h

60 lines
1 KiB
C
Raw Normal View History

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QSocketNotifier>
#include <memory>
2016-12-27 21:22:49 +01:00
#include <future>
#include "PgsqlConn.h"
class QueryResultModel;
class SqlHighlighter;
namespace Ui {
class MainWindow;
}
namespace Pgsql {
class Connection;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
std::unique_ptr<Ui::MainWindow> ui;
std::unique_ptr<SqlHighlighter> highlighter;
std::unique_ptr<Pgsql::Connection> connection;
std::unique_ptr<QueryResultModel> resultModel;
2016-12-27 21:22:49 +01:00
std::future<Pgsql::Result> queryFuture;
struct {
std::unique_ptr<QSocketNotifier> notifier;
PostgresPollingStatusType poll_state;
} connectingState;
2016-12-27 21:22:49 +01:00
// struct {
// std::unique_ptr<QSocketNotifier> notifierRead;
// std::unique_ptr<QSocketNotifier> notifierWrite;
// } queryState;
private slots:
void startConnect();
void performQuery();
void socket_activate_connect(int socket);
2016-12-27 21:22:49 +01:00
void query_ready();
};
#endif // MAINWINDOW_H