summaryrefslogtreecommitdiffstats
path: root/qt-ui/mainwindow.cpp
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2015-08-20 22:24:49 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-08-21 07:37:15 -0700
commit0f096d0e5375d3f70f877fb0c2c11e925a2b43e8 (patch)
tree024d78543e2e217f6f118bcef5d67949b90a8c0e /qt-ui/mainwindow.cpp
parent307df53bb46ed3f874820925faa98682b7a478e5 (diff)
downloadsubsurface-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.cpp31
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
}