Continue to separate logic code from UI code

We don't want to call into the MainWindow from C code.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2015-08-22 07:05:13 -07:00
parent e86fd45efd
commit ccd2cb2502
4 changed files with 17 additions and 9 deletions

View file

@ -1731,10 +1731,10 @@ void MainWindow::setApplicationState(const QByteArray& state) {
if (!applicationState.keys().contains(state))
return;
if (currentApplicationState == state)
if (getCurrentAppState() == state)
return;
currentApplicationState = state;
setCurrentAppState(state);
#define SET_CURRENT_INDEX( X ) \
if (applicationState[state].X) { \
@ -1762,8 +1762,3 @@ void MainWindow::setApplicationState(const QByteArray& state) {
}
#undef SET_CURRENT_INDEX
}
bool MainWindow::inPlanner()
{
return (currentApplicationState == "PlanDive" || currentApplicationState == "EditPlannedDive");
}

View file

@ -243,7 +243,6 @@ private:
QHash<QByteArray, WidgetForQuadrant> applicationState;
QHash<QByteArray, PropertiesForQuadrant> stateProperties;
QByteArray currentApplicationState;
WindowTitleUpdate *wtu;
};

View file

@ -1274,7 +1274,19 @@ extern "C" void parse_display_units(char *line)
qDebug() << line;
}
static QByteArray currentApplicationState;
QByteArray getCurrentAppState()
{
return currentApplicationState;
}
void setCurrentAppState(QByteArray state)
{
currentApplicationState = state;
}
extern "C" bool in_planner()
{
return MainWindow::instance()->inPlanner();
return (currentApplicationState == "PlanDive" || currentApplicationState == "EditPlannedDive");
}

View file

@ -36,6 +36,8 @@ fraction_t string_to_fraction(const char *str);
int getCloudURL(QString &filename);
void loadPreferences();
bool parseGpsText(const QString &gps_text, double *latitude, double *longitude);
QByteArray getCurrentAppState();
void setCurrentAppState(QByteArray state);
extern "C" bool in_planner();
#endif // QTHELPER_H