Improvements to structure and behavior of AdvSettingsDlg.
[irwi] / src / settingstable.cpp
1 #include <QResizeEvent>
2 #include <QHeaderView>
3 #include "settingstable.h"
4
5 SettingsTable::SettingsTable(QWidget *parent)
6     : QTableWidget(0, 2, parent) // Always two columns. Key and value.
7 {
8     verticalHeader()->setVisible(false);
9     horizontalHeader()->setVisible(false);
10 }
11
12 SettingsTable::~SettingsTable()
13 {
14 }
15
16 void SettingsTable::appendRow(const QString &key, const QString &value)
17 {
18     QTableWidgetItem *k = new QTableWidgetItem(key);
19     QTableWidgetItem *v = new QTableWidgetItem(value);
20     k->setFlags(Qt::NoItemFlags | Qt::ItemIsEnabled);
21     v->setFlags(Qt::ItemIsEnabled | Qt::ItemIsEditable);
22     insertRow(rowCount());
23     setItem(rowCount() - 1, 0, k);
24     setItem(rowCount() - 1, 1, v);
25 }
26
27 void SettingsTable::removeAllRows()
28 {
29     clear();
30     setRowCount(0);
31 }
32
33 void SettingsTable::resizeEvent(QResizeEvent *e)
34 {
35     setColumnWidth(0, (e->size().width() / 3) - 10);
36     setColumnWidth(1, (2 * e->size().width() / 3) - 10);
37 }
38
39 QString SettingsTable::key(unsigned int row) const
40 {
41     return item(row, 0)->text();
42 }
43
44 QString SettingsTable::value(unsigned int row) const
45 {
46     return item(row, 1)->text();
47 }
48