mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Disable specific tabs when dive trip selected
Disable tabs for equipment, info, pictures and extra info if a dive trip is selected. Remember specific tab selection for dives and dive trip to recover selection when browsing dive list. Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
This commit is contained in:
parent
ba83ce34e0
commit
0fc4bd8976
2 changed files with 28 additions and 1 deletions
|
@ -44,7 +44,9 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
|
||||||
cylindersModel(new CylindersModel(this)),
|
cylindersModel(new CylindersModel(this)),
|
||||||
editMode(NONE),
|
editMode(NONE),
|
||||||
copyPaste(false),
|
copyPaste(false),
|
||||||
currentTrip(0)
|
currentTrip(0),
|
||||||
|
lastTabSelectedDive(0),
|
||||||
|
lastTabSelectedDiveTrip(0)
|
||||||
{
|
{
|
||||||
ui.setupUi(this);
|
ui.setupUi(this);
|
||||||
|
|
||||||
|
@ -469,7 +471,18 @@ void MainTab::updateDiveInfo(bool clear)
|
||||||
ui.dateEdit->setDate(localTime.date());
|
ui.dateEdit->setDate(localTime.date());
|
||||||
ui.timeEdit->setTime(localTime.time());
|
ui.timeEdit->setTime(localTime.time());
|
||||||
if (MainWindow::instance() && MainWindow::instance()->dive_list()->selectedTrips().count() == 1) {
|
if (MainWindow::instance() && MainWindow::instance()->dive_list()->selectedTrips().count() == 1) {
|
||||||
|
// Remember the tab selected for last dive
|
||||||
|
if (lastSelectedDive)
|
||||||
|
lastTabSelectedDive = ui.tabWidget->currentIndex();
|
||||||
ui.tabWidget->setTabText(0, tr("Trip notes"));
|
ui.tabWidget->setTabText(0, tr("Trip notes"));
|
||||||
|
ui.tabWidget->setTabEnabled(1, false);
|
||||||
|
ui.tabWidget->setTabEnabled(2, false);
|
||||||
|
ui.tabWidget->setTabEnabled(4, false);
|
||||||
|
ui.tabWidget->setTabEnabled(5, false);
|
||||||
|
// Recover the tab selected for last dive trip
|
||||||
|
if (lastSelectedDive)
|
||||||
|
ui.tabWidget->setCurrentIndex(lastTabSelectedDiveTrip);
|
||||||
|
lastSelectedDive = false;
|
||||||
currentTrip = *MainWindow::instance()->dive_list()->selectedTrips().begin();
|
currentTrip = *MainWindow::instance()->dive_list()->selectedTrips().begin();
|
||||||
// only use trip relevant fields
|
// only use trip relevant fields
|
||||||
ui.divemaster->setVisible(false);
|
ui.divemaster->setVisible(false);
|
||||||
|
@ -511,7 +524,18 @@ void MainTab::updateDiveInfo(bool clear)
|
||||||
ui.duration->setVisible(false);
|
ui.duration->setVisible(false);
|
||||||
ui.durationLabel->setVisible(false);
|
ui.durationLabel->setVisible(false);
|
||||||
} else {
|
} else {
|
||||||
|
// Remember the tab selected for last dive trip
|
||||||
|
if (!lastSelectedDive)
|
||||||
|
lastTabSelectedDiveTrip = ui.tabWidget->currentIndex();
|
||||||
ui.tabWidget->setTabText(0, tr("Notes"));
|
ui.tabWidget->setTabText(0, tr("Notes"));
|
||||||
|
ui.tabWidget->setTabEnabled(1, true);
|
||||||
|
ui.tabWidget->setTabEnabled(2, true);
|
||||||
|
ui.tabWidget->setTabEnabled(4, true);
|
||||||
|
ui.tabWidget->setTabEnabled(5, true);
|
||||||
|
// Recover the tab selected for last dive
|
||||||
|
if (!lastSelectedDive)
|
||||||
|
ui.tabWidget->setCurrentIndex(lastTabSelectedDive);
|
||||||
|
lastSelectedDive = true;
|
||||||
currentTrip = NULL;
|
currentTrip = NULL;
|
||||||
// make all the fields visible writeable
|
// make all the fields visible writeable
|
||||||
ui.diveTripLocation->hide();
|
ui.diveTripLocation->hide();
|
||||||
|
|
|
@ -115,6 +115,9 @@ private:
|
||||||
Completers completers;
|
Completers completers;
|
||||||
bool modified;
|
bool modified;
|
||||||
bool copyPaste;
|
bool copyPaste;
|
||||||
|
bool lastSelectedDive;
|
||||||
|
int lastTabSelectedDive;
|
||||||
|
int lastTabSelectedDiveTrip;
|
||||||
void resetPallete();
|
void resetPallete();
|
||||||
void saveTags();
|
void saveTags();
|
||||||
void saveTaggedStrings();
|
void saveTaggedStrings();
|
||||||
|
|
Loading…
Add table
Reference in a new issue