Collection of small fixes and improvements

- Selections stay clearly visible when focus changes to other widget
- Autoresize columns
- Table properties view now correctly allows selection in both columns and draws selection correctly
- Tables can be sorted again and now by any column
This commit is contained in:
eelke 2019-02-09 14:59:33 +01:00
parent 3fb88edab2
commit 3fdd42ffb2
13 changed files with 56 additions and 41 deletions

View file

@ -1,16 +1,18 @@
#include "ColumnPage.h"
#include "ResultTableModelUtil.h"
#include "UserConfiguration.h"
#include "PgLabTableView.h"
#include "catalog/PgClass.h"
#include "SqlCodePreview.h"
#include "ColumnTableModel.h"
#include "CustomFilterSortModel.h"
#include "CustomDataRole.h"
#include "PgLabItemDelegate.h"
#include "PgLabTableView.h"
#include "ResultTableModelUtil.h"
#include "SqlCodePreview.h"
//#include "PgLabItemDelegate.h"
#include "SqlFormattingUtils.h"
#include "UserConfiguration.h"
#include "catalog/PgClass.h"
#include <QSortFilterProxyModel>
#include <QStringBuilder>
#include <unordered_set>
#include "SqlFormattingUtils.h"
ColumnPage::ColumnPage(QWidget *parent)
: QSplitter(Qt::Vertical, parent)
@ -21,7 +23,7 @@ ColumnPage::ColumnPage(QWidget *parent)
addWidget(m_definitionView);
m_columnModel = new ColumnTableModel(this);
m_sortFilterProxy = new CustomFilterSortModel(this);
m_sortFilterProxy = new QSortFilterProxyModel(this);
m_sortFilterProxy->setSourceModel(m_columnModel);
m_tableView->setModel(m_sortFilterProxy);
m_tableView->setSortingEnabled(true);
@ -39,13 +41,9 @@ void ColumnPage::setData(std::shared_ptr<const PgDatabaseCatalog> cat, const std
m_columnModel->setData(cat, cls);
m_Class = cls;
m_tableView->resizeColumnsToContents();
m_definitionView->setPlainText("");
}
//void ColumnPage::setFilter(const std::optional<PgClass> &cls)
//{
// m_sortFilterProxy->setOidFilterTable(cls ? cls->oid() : InvalidOid, FirstHiddenValue);
//}
void ColumnPage::tableView_selectionChanged(const QItemSelection &/*selected*/, const QItemSelection &/*deselected*/)
{
auto&& indexes = m_tableView->selectionModel()->selectedIndexes();