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>
This commit is contained in:
Anton Lundin 2014-03-26 23:08:56 +01:00 committed by Dirk Hohndel
parent 027ffc41bb
commit 770bf9afba
4 changed files with 36 additions and 2 deletions

View file

@ -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

View file

@ -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

View file

@ -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()

View file

@ -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