Use PgLabItemDelegate for indexes tab.
This commit is contained in:
parent
07c1b63d44
commit
e1405d5370
3 changed files with 22 additions and 9 deletions
|
|
@ -15,17 +15,17 @@ void IndexModel::setData(std::shared_ptr<const PgDatabaseCatalog> cat, const PgC
|
||||||
m_indexes = cat->indexes()->getIndexesForTable(table.oid);
|
m_indexes = cat->indexes()->getIndexesForTable(table.oid);
|
||||||
}
|
}
|
||||||
|
|
||||||
int IndexModel::rowCount(const QModelIndex &parent) const
|
int IndexModel::rowCount(const QModelIndex &/*parent*/) const
|
||||||
{
|
{
|
||||||
return m_indexes.size();
|
return m_indexes.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
int IndexModel::columnCount(const QModelIndex &parent) const
|
int IndexModel::columnCount(const QModelIndex &/*parent*/) const
|
||||||
{
|
{
|
||||||
return colCount;
|
return colCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
Oid IndexModel::getType(int column) const
|
Oid IndexModel::getType(int /*column*/) const
|
||||||
{
|
{
|
||||||
return Pgsql::varchar_oid;
|
return Pgsql::varchar_oid;
|
||||||
}
|
}
|
||||||
|
|
@ -83,3 +83,13 @@ QVariant IndexModel::getData(const QModelIndex &index) const
|
||||||
}
|
}
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QVariant IndexModel::data(const QModelIndex &index, int role) const
|
||||||
|
{
|
||||||
|
QVariant v;
|
||||||
|
if (role == Qt::DisplayRole)
|
||||||
|
v = getData(index);
|
||||||
|
else if (role == Qt::UserRole)
|
||||||
|
v = getType(index.column());
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef INDEXMODEL_H
|
#ifndef INDEXMODEL_H
|
||||||
#define INDEXMODEL_H
|
#define INDEXMODEL_H
|
||||||
|
|
||||||
#include "BaseTableModel.h"
|
#include <QAbstractTableModel>
|
||||||
#include "PgClass.h"
|
#include "PgClass.h"
|
||||||
#include "PgIndex.h"
|
#include "PgIndex.h"
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
@ -10,10 +10,10 @@
|
||||||
|
|
||||||
class PgDatabaseCatalog;
|
class PgDatabaseCatalog;
|
||||||
|
|
||||||
class IndexModel: public BaseTableModel {
|
class IndexModel: public QAbstractTableModel {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
using BaseTableModel::BaseTableModel;
|
using QAbstractTableModel::QAbstractTableModel;
|
||||||
|
|
||||||
enum e_Columns : int {
|
enum e_Columns : int {
|
||||||
TypeCol, /// primary/unique/normal
|
TypeCol, /// primary/unique/normal
|
||||||
|
|
@ -30,9 +30,10 @@ public:
|
||||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||||
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
|
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||||
|
|
||||||
|
virtual QVariant data(const QModelIndex &index, int role) const override;
|
||||||
protected:
|
protected:
|
||||||
virtual Oid getType(int column) const override;
|
Oid getType(int column) const;
|
||||||
virtual QVariant getData(const QModelIndex &index) const override;
|
QVariant getData(const QModelIndex &index) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::shared_ptr<const PgDatabaseCatalog> m_catalog;
|
std::shared_ptr<const PgDatabaseCatalog> m_catalog;
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@
|
||||||
#include <QStringBuilder>
|
#include <QStringBuilder>
|
||||||
#include <boost/container/flat_set.hpp>
|
#include <boost/container/flat_set.hpp>
|
||||||
#include "MainWindow.h"
|
#include "MainWindow.h"
|
||||||
|
#include "PgLabItemDelegate.h"
|
||||||
|
|
||||||
TablesPage::TablesPage(MainWindow *parent)
|
TablesPage::TablesPage(MainWindow *parent)
|
||||||
: QWidget(parent)
|
: QWidget(parent)
|
||||||
|
|
@ -46,6 +47,7 @@ TablesPage::TablesPage(MainWindow *parent)
|
||||||
SetTableViewDefault(ui->indexesTable);
|
SetTableViewDefault(ui->indexesTable);
|
||||||
m_indexModel = new IndexModel(this);
|
m_indexModel = new IndexModel(this);
|
||||||
ui->indexesTable->setModel(m_indexModel);
|
ui->indexesTable->setModel(m_indexModel);
|
||||||
|
ui->indexesTable->setItemDelegate(new PgLabItemDelegate(ui->indexesTable));
|
||||||
ui->indexesTable->setItemDelegateForColumn(0, delegate);
|
ui->indexesTable->setItemDelegateForColumn(0, delegate);
|
||||||
|
|
||||||
m_namespaceFilterWidget = new NamespaceFilterWidget(this);
|
m_namespaceFilterWidget = new NamespaceFilterWidget(this);
|
||||||
|
|
@ -109,7 +111,7 @@ void TablesPage::constraintsTable_currentRowChanged(const QModelIndex ¤t,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TablesPage::constraintsTable_selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
|
void TablesPage::constraintsTable_selectionChanged(const QItemSelection &/*selected*/, const QItemSelection &/*deselected*/)
|
||||||
{
|
{
|
||||||
const auto indexes = ui->constraintsTable->selectionModel()->selectedIndexes();
|
const auto indexes = ui->constraintsTable->selectionModel()->selectedIndexes();
|
||||||
boost::container::flat_set<int> rijen;
|
boost::container::flat_set<int> rijen;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue