2019-02-09 09:49:27 +01:00
|
|
|
|
#include "CatalogIndexPage.h"
|
|
|
|
|
|
#include "CustomFilterSortModel.h"
|
|
|
|
|
|
#include "IndexModel.h"
|
|
|
|
|
|
#include "PgLabTableView.h"
|
|
|
|
|
|
#include "SqlCodePreview.h"
|
2021-06-12 07:36:24 +02:00
|
|
|
|
#include <QHeaderView>
|
2019-02-09 09:49:27 +01:00
|
|
|
|
#include <QStringBuilder>
|
|
|
|
|
|
#include "IconColumnDelegate.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CatalogIndexPage::CatalogIndexPage(QWidget *parent)
|
|
|
|
|
|
: CatalogPageBase(parent)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_indexModel = new IndexModel(this);
|
|
|
|
|
|
m_sortFilterProxy->setSourceModel(m_indexModel);
|
|
|
|
|
|
m_tableView->setItemDelegateForColumn(0, new IconColumnDelegate(this));
|
2021-06-12 07:36:24 +02:00
|
|
|
|
m_tableView->horizontalHeader()->setSortIndicator(IndexModel::NameCol, Qt::AscendingOrder);
|
|
|
|
|
|
m_tableView->setSortingEnabled(true);
|
2019-02-09 09:49:27 +01:00
|
|
|
|
|
|
|
|
|
|
connect(m_tableView->selectionModel(), &QItemSelectionModel::selectionChanged,
|
|
|
|
|
|
this, &CatalogIndexPage::tableView_selectionChanged);
|
2019-10-06 14:03:46 +02:00
|
|
|
|
connect(m_indexModel, &IndexModel::modelReset, m_definitionView, &SqlCodePreview::clear);
|
2019-02-09 09:49:27 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CatalogIndexPage::catalogSet()
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CatalogIndexPage::setFilter(const std::optional<PgClass> &cls)
|
|
|
|
|
|
{
|
|
|
|
|
|
m_indexModel->setData(m_catalog, cls);
|
|
|
|
|
|
m_tableView->resizeColumnsToContents();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void CatalogIndexPage::tableView_selectionChanged(const QItemSelection &/*selected*/, const QItemSelection &/*deselected*/)
|
|
|
|
|
|
{
|
|
|
|
|
|
auto rijen = selectedRows();
|
|
|
|
|
|
QString drops;
|
|
|
|
|
|
QString creates;
|
|
|
|
|
|
for (auto rij : rijen) {
|
|
|
|
|
|
const PgIndex index = m_indexModel->getIndex(rij);
|
|
|
|
|
|
drops += index.dropSql() % "\n";
|
|
|
|
|
|
creates += index.createSql() % "\n";
|
|
|
|
|
|
}
|
|
|
|
|
|
m_definitionView->setPlainText(drops % "\n" % creates);
|
|
|
|
|
|
}
|