summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Anton Lundin <glance@acc.umu.se>2014-03-26 23:08:56 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-03-27 10:40:06 -0700
commit770bf9afba18a2d50ead56c0068dc07ed8cb63a1 (patch)
tree78dfc1706dad2affd6957cf974914745c2f172a8
parent027ffc41bb2e50ccb6a1b812a225773fb8227fee (diff)
downloadsubsurface-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.cpp10
-rw-r--r--qt-ui/globe.h18
-rw-r--r--qt-ui/mainwindow.cpp4
-rw-r--r--subsurface-configure.pri6
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