mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-17 21:36:16 +00:00
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
3 changed files with 46 additions and 2 deletions
|
@ -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…
Add table
Reference in a new issue