diff options
author | Anton Lundin <glance@acc.umu.se> | 2014-03-26 23:08:56 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-03-27 10:40:06 -0700 |
commit | 770bf9afba18a2d50ead56c0068dc07ed8cb63a1 (patch) | |
tree | 78dfc1706dad2affd6957cf974914745c2f172a8 | |
parent | 027ffc41bb2e50ccb6a1b812a225773fb8227fee (diff) | |
download | subsurface-770bf9afba18a2d50ead56c0068dc07ed8cb63a1.tar.gz |
Introduce NO_MARBLE define, make GlobeGPS a dummy
Some users have requested a way to build subsurface without marble.
This hides all traces in the ui and creates a GlobeGPS-dummy thats
just a QLabel saying that marble is disabled, in case its shown
somehow. The dummy is there so we can just ignore the fact that marble
is disabled in the rest of the code.
Fixes #394
Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r-- | qt-ui/globe.cpp | 10 | ||||
-rw-r--r-- | qt-ui/globe.h | 18 | ||||
-rw-r--r-- | qt-ui/mainwindow.cpp | 4 | ||||
-rw-r--r-- | subsurface-configure.pri | 6 |
4 files changed, 36 insertions, 2 deletions
diff --git a/qt-ui/globe.cpp b/qt-ui/globe.cpp index 4c6743770..961e0dbe5 100644 --- a/qt-ui/globe.cpp +++ b/qt-ui/globe.cpp @@ -1,4 +1,5 @@ #include "globe.h" +#ifndef NO_MARBLE #include "kmessagewidget.h" #include "mainwindow.h" #include "ui_mainwindow.h" @@ -295,3 +296,12 @@ void GlobeGPS::resizeEvent(QResizeEvent *event) messageWidget->setGeometry(5, 5, size - 10, 0); messageWidget->setMaximumHeight(500); } +#else + +GlobeGPS::GlobeGPS(QWidget* parent) { setText("MARBLE DISABLED AT BUILD TIME"); } +void GlobeGPS::repopulateLabels() {} +void GlobeGPS::centerOn(dive* dive) {} +bool GlobeGPS::eventFilter(QObject *obj, QEvent *ev) {} +void GlobeGPS::prepareForGetDiveCoordinates() {} +void GlobeGPS::reload() {} +#endif diff --git a/qt-ui/globe.h b/qt-ui/globe.h index 80d9613dd..f5a1e4053 100644 --- a/qt-ui/globe.h +++ b/qt-ui/globe.h @@ -1,5 +1,6 @@ #ifndef GLOBE_H #define GLOBE_H +#ifndef NO_MARBLE #include <marble/MarbleWidget.h> #include <marble/GeoDataCoordinates.h> @@ -41,4 +42,21 @@ slots: void prepareForGetDiveCoordinates(); }; +#else // NO_MARBLE +/* Dummy widget for when we don't have MarbleWidget */ +#include <QLabel> + +class GlobeGPS : public QLabel { + Q_OBJECT +public: + GlobeGPS(QWidget *parent); + void reload(); + void repopulateLabels(); + void centerOn(struct dive* dive); + bool eventFilter(QObject*, QEvent*); +public slots: + void prepareForGetDiveCoordinates(); +}; + +#endif // NO_MARBLE #endif // GLOBE_H diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index e77fa6b2c..e1b9d3e4f 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -81,6 +81,10 @@ MainWindow::MainWindow() : QMainWindow(), #ifndef ENABLE_PLANNER ui.menuLog->removeAction(ui.actionDivePlanner); #endif +#ifdef NO_MARBLE + ui.layoutWidget->hide(); + ui.menuView->removeAction(ui.actionViewGlobe); +#endif } MainWindow::~MainWindow() diff --git a/subsurface-configure.pri b/subsurface-configure.pri index c01af7ab8..84e259941 100644 --- a/subsurface-configure.pri +++ b/subsurface-configure.pri @@ -144,8 +144,10 @@ link_pkgconfig: packagesExist(libiconv): PKGCONFIG += libiconv # Before Marble 4.9, the GeoDataTreeModel.h header wasn't installed # Check if it's present by trying to compile # ### FIXME: implement that -win32: CONFIG(debug, debug|release): LIBS += -lmarblewidgetd -else: LIBS += -lmarblewidget +!contains(DEFINES, NO_MARBLE) { + win32: CONFIG(debug, debug|release): LIBS += -lmarblewidgetd + else: LIBS += -lmarblewidget +} libgit21-api { DEFINES += USE_LIBGIT21_API |