Make it possible to hide some columns on the Cylinders Equipment pane.
This patch makes it possible to hide some columns on the Cylinders Equipment pane. The 'remove' and 'type' are impossible to hide, since they are the most important ones for a non-tech diver. Fixes #281 Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
c1102a38f3
commit
3264255a7a
@ -20,6 +20,7 @@
|
||||
#include <QCompleter>
|
||||
#include <QDebug>
|
||||
#include <QSet>
|
||||
#include <QSettings>
|
||||
#include <QTableView>
|
||||
#include <QPalette>
|
||||
|
||||
@ -109,6 +110,48 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
|
||||
ui.scrollArea_3->viewport()->setPalette(p);
|
||||
ui.scrollArea_4->viewport()->setPalette(p);
|
||||
}
|
||||
ui.cylinders->view()->horizontalHeader()->setContextMenuPolicy(Qt::ActionsContextMenu);
|
||||
|
||||
QSettings s;
|
||||
s.beginGroup("cylinders_dialog");
|
||||
for(int i = 0; i < CylindersModel::COLUMNS; i++){
|
||||
if ((i == CylindersModel::REMOVE) || (i == CylindersModel::TYPE))
|
||||
continue;
|
||||
bool checked = s.value(QString("column%1_hidden").arg(i)).toBool();
|
||||
QAction *action = new QAction(cylindersModel->headerData(i, Qt::Horizontal, Qt::DisplayRole).toString(), ui.cylinders->view());
|
||||
action->setCheckable(true);
|
||||
action->setData(i);
|
||||
action->setChecked(!checked);
|
||||
connect(action, SIGNAL(triggered(bool)), this, SLOT(toggleTriggeredColumn()));
|
||||
ui.cylinders->view()->setColumnHidden(i, checked);
|
||||
ui.cylinders->view()->horizontalHeader()->addAction(action);
|
||||
}
|
||||
}
|
||||
|
||||
MainTab::~MainTab()
|
||||
{
|
||||
QSettings s;
|
||||
s.beginGroup("cylinders_dialog");
|
||||
for(int i = 0; i < CylindersModel::COLUMNS; i++){
|
||||
if ((i == CylindersModel::REMOVE) || (i == CylindersModel::TYPE))
|
||||
continue;
|
||||
s.setValue(QString("column%1_hidden").arg(i), ui.cylinders->view()->isColumnHidden(i));
|
||||
}
|
||||
}
|
||||
|
||||
void MainTab::toggleTriggeredColumn()
|
||||
{
|
||||
QAction *action = qobject_cast<QAction*>(sender());
|
||||
int col = action->data().toInt();
|
||||
QTableView *view = ui.cylinders->view();
|
||||
|
||||
if(action->isChecked()){
|
||||
view->showColumn(col);
|
||||
if(view->columnWidth(col) <= 15)
|
||||
view->setColumnWidth(col, 80);
|
||||
}
|
||||
else
|
||||
view->hideColumn(col);
|
||||
}
|
||||
|
||||
void MainTab::addDiveStarted()
|
||||
|
||||
@ -51,6 +51,7 @@ public:
|
||||
enum EditMode { NONE, DIVE, TRIP, ADD, MANUALLY_ADDED_DIVE };
|
||||
|
||||
MainTab(QWidget *parent);
|
||||
~MainTab();
|
||||
void clearStats();
|
||||
void clearInfo();
|
||||
void clearEquipment();
|
||||
@ -82,7 +83,7 @@ public slots:
|
||||
void editWeightWidget(const QModelIndex& index);
|
||||
void addDiveStarted();
|
||||
void enableEdition(EditMode newEditMode = NONE);
|
||||
|
||||
void toggleTriggeredColumn();
|
||||
private:
|
||||
Ui::MainTab ui;
|
||||
WeightModel *weightModel;
|
||||
|
||||
@ -80,7 +80,7 @@ private:
|
||||
class CylindersModel : public CleanerTableModel {
|
||||
Q_OBJECT
|
||||
public:
|
||||
enum Column {REMOVE, TYPE, SIZE, WORKINGPRESS, START, END, O2, HE, DEPTH};
|
||||
enum Column {REMOVE, TYPE, SIZE, WORKINGPRESS, START, END, O2, HE, DEPTH, COLUMNS};
|
||||
|
||||
explicit CylindersModel(QObject* parent = 0);
|
||||
static CylindersModel *instance();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user