[PATCH] Enable Marble Google Sat lookup when run as a MacOSX app

subsurface at henrik.synth.no subsurface at henrik.synth.no
Thu May 30 00:08:11 PDT 2013


From: Henrik Brautaset Aronsen <subsurface at henrik.synth.no>

Following Dirk's commit ae2c132, add support for custom google sat
data in a MacOSX app bundle

Signed-off-by: Henrik Brautaset Aronsen <subsurface at henrik.synth.no>
---
 Rules.mk        | 4 ++++
 qt-ui/globe.cpp | 9 +++++++++
 2 files changed, 13 insertions(+)

diff --git a/Rules.mk b/Rules.mk
index a3eff13..63bfeeb 100644
--- a/Rules.mk
+++ b/Rules.mk
@@ -89,6 +89,10 @@ install-macosx: all
 	$(INSTALL) $(MACOSXFILES)/Info.plist $(MACOSXINSTALL)/Contents/
 	$(INSTALL) $(ICONFILE) $(MACOSXINSTALL)/Contents/Resources/
 	$(INSTALL) $(MACOSXFILES)/$(CAPITALIZED_NAME).icns $(MACOSXINSTALL)/Contents/Resources/
+	@-if test ! -z "$(MARBLEDIR)"; then \
+		$(INSTALL) -d -m 755 $(MACOSXINSTALL)/Contents/Resources/share/$(MARBLEDIR); \
+		$(TAR) cf - $(MARBLEDIR) | ( cd $(MACOSXINSTALL)/Contents/Resources/share; $(TAR) xf - ); \
+	fi
 	for LOC in $(wildcard share/locale/*/LC_MESSAGES); do \
 		$(INSTALL) -d -m 755 $(MACOSXINSTALL)/Contents/Resources/$$LOC; \
 		$(INSTALL) $$LOC/$(NAME).mo $(MACOSXINSTALL)/Contents/Resources/$$LOC/$(NAME).mo; \
diff --git a/qt-ui/globe.cpp b/qt-ui/globe.cpp
index 8662b2f..4b065c1 100644
--- a/qt-ui/globe.cpp
+++ b/qt-ui/globe.cpp
@@ -49,6 +49,15 @@ GlobeGPS::GlobeGPS(QWidget* parent) : MarbleWidget(parent), loadedDives(0)
 			foundGoogleMap = true;
 		}
 	}
+	if (!foundGoogleMap) {
+		// then check if we're running as an app on MacOSX
+		execdir = QCoreApplication::applicationDirPath();
+		marble = QDir(execdir.append("/../Resources/share/marbledata"));
+		if (marble.exists()) {
+			MarbleDirs::setMarbleDataPath(marble.absolutePath());
+			foundGoogleMap = true;
+		}
+	}
 	messageWidget = new KMessageWidget(this);
 	messageWidget->setCloseButtonVisible(false);
 	messageWidget->setHidden(true);
-- 
1.8.2.2



More information about the subsurface mailing list