List of databases shows owner name instead of oid.

This commit is contained in:
eelke 2017-02-19 17:41:05 +01:00
parent 874ca664b8
commit afa80a1125
4 changed files with 29 additions and 5 deletions

View file

@ -1,15 +1,18 @@
#include "DatabasesTableModel.h" #include "DatabasesTableModel.h"
#include "PgsqlDatabaseCatalogue.h"
#include "PgDatabaseContainer.h" #include "PgDatabaseContainer.h"
#include "PgAuthIdContainer.h"
DatabasesTableModel::DatabasesTableModel(QObject *parent) DatabasesTableModel::DatabasesTableModel(QObject *parent)
: QAbstractTableModel(parent) : QAbstractTableModel(parent)
{ {
} }
void DatabasesTableModel::setDatabaseList(const PgDatabaseContainer* databases) void DatabasesTableModel::setDatabaseList(const PgsqlDatabaseCatalogue* cat)
{ {
beginResetModel(); beginResetModel();
m_databases = databases; m_catalog = cat;
m_databases = cat->databases();
endResetModel(); endResetModel();
} }
@ -87,7 +90,10 @@ QVariant DatabasesTableModel::data(const QModelIndex &index, int role) const
break; break;
case DbaCol: case DbaCol:
// todo lookup role name // todo lookup role name
v = db.dba; {
const auto& roles = m_catalog->authIds();
v = QString("%1 (%2)").arg(roles->getByOid(db.dba).name).arg(db.dba);
}
break; break;
case EncodingCol: case EncodingCol:
// todo lookup encoding name // todo lookup encoding name

View file

@ -4,6 +4,7 @@
#include <QAbstractTableModel> #include <QAbstractTableModel>
class PgDatabaseContainer; class PgDatabaseContainer;
class PgsqlDatabaseCatalogue;
/** Class for displaying the list of databases of a server in a QTableView /** Class for displaying the list of databases of a server in a QTableView
* *
@ -21,7 +22,7 @@ public:
explicit DatabasesTableModel(QObject *parent); explicit DatabasesTableModel(QObject *parent);
void setDatabaseList(const PgDatabaseContainer* databases); void setDatabaseList(const PgsqlDatabaseCatalogue* cat);
// Header: // Header:
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
@ -33,6 +34,7 @@ public:
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
private: private:
const PgsqlDatabaseCatalogue *m_catalog = nullptr;
const PgDatabaseContainer *m_databases = nullptr; const PgDatabaseContainer *m_databases = nullptr;
}; };

View file

@ -183,6 +183,22 @@ void MainWindow::closeEvent(QCloseEvent *event)
} }
} }
} }
QString s;
for (const auto& e : files_to_save) {
s += e + "\n";
}
QMessageBox msgBox;
msgBox.setIcon(QMessageBox::Warning);
msgBox.setText("The following documents need to be saved");
msgBox.setInformativeText(s);
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
msgBox.setDefaultButton(QMessageBox::Cancel);
//int ret =
msgBox.exec();
// if (!m_queryTextChanged || continueWithoutSaving()) { // if (!m_queryTextChanged || continueWithoutSaving()) {
// event->accept(); // event->accept();
// } // }

View file

@ -32,7 +32,7 @@ void ServerWindow::setConfig(const ConnectionConfig &config)
m_database = res.get(); m_database = res.get();
auto cat = m_database->catalogue(); auto cat = m_database->catalogue();
if (cat) { if (cat) {
m_databasesModel->setDatabaseList(cat->databases()); m_databasesModel->setDatabaseList(cat);
m_rolesModel->setRoleList(cat->authIds()); m_rolesModel->setRoleList(cat->authIds());
} }
} }