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 "PgsqlDatabaseCatalogue.h"
#include "PgDatabaseContainer.h"
#include "PgAuthIdContainer.h"
DatabasesTableModel::DatabasesTableModel(QObject *parent)
: QAbstractTableModel(parent)
{
}
void DatabasesTableModel::setDatabaseList(const PgDatabaseContainer* databases)
void DatabasesTableModel::setDatabaseList(const PgsqlDatabaseCatalogue* cat)
{
beginResetModel();
m_databases = databases;
m_catalog = cat;
m_databases = cat->databases();
endResetModel();
}
@ -87,7 +90,10 @@ QVariant DatabasesTableModel::data(const QModelIndex &index, int role) const
break;
case DbaCol:
// 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;
case EncodingCol:
// todo lookup encoding name

View file

@ -4,6 +4,7 @@
#include <QAbstractTableModel>
class PgDatabaseContainer;
class PgsqlDatabaseCatalogue;
/** Class for displaying the list of databases of a server in a QTableView
*
@ -21,7 +22,7 @@ public:
explicit DatabasesTableModel(QObject *parent);
void setDatabaseList(const PgDatabaseContainer* databases);
void setDatabaseList(const PgsqlDatabaseCatalogue* cat);
// Header:
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;
private:
const PgsqlDatabaseCatalogue *m_catalog = 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()) {
// event->accept();
// }

View file

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