#ifndef OPENDATABASE_H #define OPENDATABASE_H #include #include "ConnectionConfig.h" #include "Expected.h" #include class PgDatabaseCatalogue; class TypeSelectionItemModel; /** Instances of this class represent a single database on which atleast one * window is opened. This class is used to track details about that database. */ class OpenDatabase : public QObject { Q_OBJECT public: static Expected createOpenDatabase(const ConnectionConfig &cfg); OpenDatabase(const OpenDatabase &) = delete; OpenDatabase& operator=(const OpenDatabase &) = delete; ~OpenDatabase(); std::shared_ptr catalogue(); TypeSelectionItemModel* typeSelectionModel(); signals: public slots: private: ConnectionConfig m_config; std::shared_ptr m_catalogue; TypeSelectionItemModel *m_typeSelectionModel = nullptr; OpenDatabase(const ConnectionConfig& cfg, QObject *parent = 0); bool Init(); }; #endif // OPENDATABASE_H