Opening of a window for a database is now done by the MasterController.

The ConnectionManager just passes on the action now.
This commit is contained in:
Eelke Klein 2017-02-01 19:59:07 +01:00
parent 6370050204
commit 343390ff38
4 changed files with 24 additions and 17 deletions

View file

@ -1,6 +1,7 @@
#include "MasterController.h" #include "MasterController.h"
#include "connectionmanagerwindow.h" #include "connectionmanagerwindow.h"
#include "connectionlistmodel.h" #include "connectionlistmodel.h"
#include "mainwindow.h"
MasterController::MasterController(QObject *parent) : QObject(parent) MasterController::MasterController(QObject *parent) : QObject(parent)
@ -25,3 +26,16 @@ void MasterController::showConnectionManager()
{ {
m_connectionManagerWindow->show(); m_connectionManagerWindow->show();
} }
void MasterController::openWindowForConnection(int connection_index)
{
auto cc = m_connectionListModel->get(connection_index);
m_connectionListModel->save(connection_index);
if (cc.valid()) {
auto w = new MainWindow(this, nullptr);
w->setAttribute( Qt::WA_DeleteOnClose );
w->setConfig(cc.get());
w->show();
}
}

View file

@ -8,6 +8,8 @@ class ConnectionConfig;
class ConnectionListModel; class ConnectionListModel;
class ConnectionManagerWindow; class ConnectionManagerWindow;
/** \brief Controller class responsible for all things global.
*/
class MasterController : public QObject class MasterController : public QObject
{ {
Q_OBJECT Q_OBJECT
@ -24,11 +26,14 @@ public:
void showConnectionManager(); void showConnectionManager();
void openWindowForConnection(int connection_index);
signals: signals:
public slots: public slots:
private: private:
ConnectionListModel *m_connectionListModel = nullptr; ConnectionListModel *m_connectionListModel = nullptr;
ConnectionManagerWindow *m_connectionManagerWindow = nullptr; ConnectionManagerWindow *m_connectionManagerWindow = nullptr;
}; };

View file

@ -1,6 +1,6 @@
#include "connectionmanagerwindow.h" #include "connectionmanagerwindow.h"
#include "ui_connectionmanagerwindow.h" #include "ui_connectionmanagerwindow.h"
#include "mainwindow.h" //#include "mainwindow.h"
#include "MasterController.h" #include "MasterController.h"
#include <QDataWidgetMapper> #include <QDataWidgetMapper>
#include <QMessageBox> #include <QMessageBox>
@ -85,23 +85,8 @@ void ConnectionManagerWindow::setupWidgetMappings()
void ConnectionManagerWindow::on_actionConnect_triggered() void ConnectionManagerWindow::on_actionConnect_triggered()
{ {
// maybe we should first check the connection?
// Have we loaded the catalogue?
// If not do so now
auto clm = m_masterController->getConnectionListModel();
// Open a window for this connection,
auto ci = ui->listView->selectionModel()->currentIndex(); auto ci = ui->listView->selectionModel()->currentIndex();
auto cc = clm->get(ci.row()); m_masterController->openWindowForConnection(ci.row());
clm->save(ci.row());
if (cc.valid()) {
auto w = new MainWindow(m_masterController, nullptr);
w->setAttribute( Qt::WA_DeleteOnClose );
w->setConfig(cc.get());
w->show();
}
} }
void ConnectionManagerWindow::on_actionQuit_application_triggered() void ConnectionManagerWindow::on_actionQuit_application_triggered()

View file

@ -12,6 +12,9 @@ class MasterController;
class QDataWidgetMapper; class QDataWidgetMapper;
class QStandardItemModel; class QStandardItemModel;
/** \brief Class that holds glue code for the ConnectionManager UI.
*
*/
class ConnectionManagerWindow : public QMainWindow class ConnectionManagerWindow : public QMainWindow
{ {
Q_OBJECT Q_OBJECT