ui: Added sorting feature to error table columns (issue #559)

This commit is contained in:
Eberhard Graether
2018-03-16 20:19:25 +01:00
parent 6acfe0688f
commit 1450f3cd94
7 changed files with 26 additions and 16 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

+8 -2
View File
@@ -8,8 +8,6 @@ QTabBar::tab {
padding: 12px 75px 5px 12px;
border: 0px;
border-bottom: 4px solid <color:tab/background>;
/*font-size: <setting:font_size>px;*/
/*font-weight: bold;*/
}
QTabBar::tab:hover {
@@ -60,6 +58,14 @@ QHeaderView {
background-color: transparent;
}
QHeaderView::up-arrow {
image: url(<setting:gui_path>tabbed_view/arrow_up.png);
}
QHeaderView::down-arrow {
image: url(<setting:gui_path>tabbed_view/arrow_down.png);
}
QHeaderView::section:horizontal {
background-color: transparent;
border: none;
+1 -1
View File
@@ -45,7 +45,7 @@ QtTable::QtTable(QWidget* parent)
setShowGrid(false);
setMouseTracking(true);
this->setItemDelegate(new SelectableCellDelegate(this));
setItemDelegate(new SelectableCellDelegate(this));
verticalHeader()->sectionResizeMode(QHeaderView::Fixed);
verticalHeader()->setDefaultAlignment(Qt::AlignRight);
-1
View File
@@ -13,7 +13,6 @@ public:
virtual ~QtTable();
void updateRows();
void setTableModel(QAbstractItemModel* model);
int getFilledRowCount();
void showFirstRow();
+10 -5
View File
@@ -80,19 +80,20 @@ void QtErrorView::initView()
m_table = new QtTable(this);
m_model = new QStandardItemModel(this);
m_table->setSortingEnabled(true);
m_table->setModel(m_model);
m_table->setItemDelegate(new SelectableDelegate(m_table));
// Setup Table Headers
m_model->setColumnCount(COLUMN_MAX + 1);
m_table->setColumnWidth(COLUMN::ID, 40);
m_table->setColumnWidth(COLUMN::TYPE, 80);
m_table->setColumnWidth(COLUMN::MESSAGE, 450);
m_table->setColumnWidth(COLUMN::FILE, 300);
m_table->setColumnWidth(COLUMN::LINE, 50);
m_table->setColumnHidden(COLUMN::ID, true);
QStringList headers;
headers << "Type" << "Message" << "File" << "Line" << "Indexed";
headers << "ID" << "Type" << "Message" << "File" << "Line" << "Indexed";
m_model->setHorizontalHeaderLabels(headers);
connect(m_table->selectionModel(), &QItemSelectionModel::currentRowChanged,
@@ -323,6 +324,10 @@ void QtErrorView::addErrorToTable(const ErrorInfo& error)
m_model->insertRow(rowNumber);
}
QStandardItem *item = new QStandardItem();
item->setData(QVariant(qlonglong(error.id)), Qt::DisplayRole);
m_model->setItem(rowNumber, COLUMN::ID, item);
m_model->setItem(rowNumber, COLUMN::TYPE, new QStandardItem(error.fatal ? "FATAL" : "ERROR"));
if (error.fatal)
{
@@ -335,11 +340,11 @@ void QtErrorView::addErrorToTable(const ErrorInfo& error)
m_model->setItem(rowNumber, COLUMN::FILE, new QStandardItem(QString::fromStdWString(error.filePath)));
m_model->item(rowNumber, COLUMN::FILE)->setToolTip(QString::fromStdWString(error.filePath));
m_model->setItem(rowNumber, COLUMN::LINE, new QStandardItem(QString::number(error.lineNumber)));
item = new QStandardItem();
item->setData(QVariant(error.lineNumber), Qt::DisplayRole);
m_model->setItem(rowNumber, COLUMN::LINE, item);
m_model->setItem(rowNumber, COLUMN::INDEXED, new QStandardItem(error.indexed ? "yes" : "no"));
m_model->setItem(rowNumber, COLUMN::ID, new QStandardItem(QString::number(error.id)));
}
QCheckBox* QtErrorView::createFilterCheckbox(const QString& name, bool checked, QBoxLayout* layout)
+7 -7
View File
@@ -46,13 +46,13 @@ private slots:
private:
enum COLUMN {
TYPE = 0,
MESSAGE = 1,
FILE = 2,
LINE = 3,
INDEXED = 4,
ID = 5,
COLUMN_MAX = ID
ID = 0,
TYPE = 1,
MESSAGE = 2,
FILE = 3,
LINE = 4,
INDEXED = 5,
COLUMN_MAX = INDEXED
};
void setStyleSheet() const;