diff options
author | Tomaz Canabrava <tomaz.canabrava@intel.com> | 2015-08-20 22:24:49 -0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-08-21 07:37:15 -0700 |
commit | 0f096d0e5375d3f70f877fb0c2c11e925a2b43e8 (patch) | |
tree | 024d78543e2e217f6f118bcef5d67949b90a8c0e /qt-ui/mainwindow.cpp | |
parent | 307df53bb46ed3f874820925faa98682b7a478e5 (diff) | |
download | subsurface-0f096d0e5375d3f70f877fb0c2c11e925a2b43e8.tar.gz |
Save Properties for each State of the mainWindow
Each state can have the same widgets but with different
properties - currently I'm using "enabled" : true and false
for the DiveSiteEdit, it looks like a big amount of code
for such a small thing but it was the cleaner way that
I tougth of doing.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/mainwindow.cpp')
-rw-r--r-- | qt-ui/mainwindow.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index 1a12305d9..dec550389 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -119,6 +119,13 @@ MainWindow::MainWindow() : QMainWindow(), QWidget *diveSitePictures = new QWidget(); // Placeholder + std::pair<QByteArray, QVariant> enabled = std::make_pair("enabled", QVariant(true)); + std::pair<QByteArray, QVariant> disabled = std::make_pair("enabled", QVariant(false)); + PropertyList enabledList; + PropertyList disabledList; + enabledList.push_back(enabled); + disabledList.push_back(disabled); + registerApplicationState("Default", mainTab, profileContainer, diveListView, globeGps ); registerApplicationState("AddDive", mainTab, profileContainer, diveListView, globeGps ); registerApplicationState("EditDive", mainTab, profileContainer, diveListView, globeGps ); @@ -126,6 +133,13 @@ MainWindow::MainWindow() : QMainWindow(), registerApplicationState("EditPlannedDive", plannerWidget, profileContainer, diveListView, globeGps ); registerApplicationState("EditDiveSite", diveSiteEdit, diveSitePictures, diveListView, globeGps); + setStateProperties("Default", enabledList, enabledList, enabledList,enabledList); + setStateProperties("AddDive", enabledList, enabledList, enabledList,enabledList); + setStateProperties("EditDive", enabledList, enabledList, enabledList,enabledList); + setStateProperties("PlanDive", enabledList, enabledList, enabledList,enabledList); + setStateProperties("EditPlannedDive", enabledList, enabledList, enabledList,enabledList); + setStateProperties("EditDiveSite", enabledList, enabledList, disabledList, enabledList); + setApplicationState("Default"); ui.multiFilter->hide(); @@ -213,6 +227,11 @@ MainWindow::~MainWindow() m_Instance = NULL; } +void MainWindow::setStateProperties(const QByteArray& state, const PropertyList& tl, const PropertyList& tr, const PropertyList& bl, const PropertyList& br) +{ + stateProperties[state] = PropertiesForQuadrant(tl, tr, bl, br); +} + void MainWindow::on_actionDiveSiteEdit_triggered() { setApplicationState("EditDiveSite"); } @@ -1726,9 +1745,21 @@ void MainWindow::setApplicationState(const QByteArray& state) { } SET_CURRENT_INDEX( topLeft ) + Q_FOREACH(const WidgetProperty& p, stateProperties[state].topLeft) { + ui.topLeft->currentWidget()->setProperty( p.first.data(), p.second); + } SET_CURRENT_INDEX( topRight ) + Q_FOREACH(const WidgetProperty& p, stateProperties[state].topRight) { + ui.topRight->currentWidget()->setProperty( p.first.data(), p.second); + } SET_CURRENT_INDEX( bottomLeft ) + Q_FOREACH(const WidgetProperty& p, stateProperties[state].bottomLeft) { + ui.bottomLeft->currentWidget()->setProperty( p.first.data(), p.second); + } SET_CURRENT_INDEX( bottomRight ) + Q_FOREACH(const WidgetProperty& p, stateProperties[state].bottomRight) { + ui.bottomRight->currentWidget()->setProperty( p.first.data(), p.second); + } #undef SET_CURRENT_INDEX } |