From 955c64efcf30e87ab3d4bdb1520745c1997f0953 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 20 Oct 2008 02:02:27 +0000 Subject: Make Ingen and Patchage relocatable binaries when built as a bundle. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@1690 a436a847-0d15-0410-975c-d299462d15a1 --- src/gui/App.cpp | 3 ++- src/gui/GladeFactory.cpp | 19 +++++++------------ src/gui/LoadPatchWindow.cpp | 4 ++-- src/gui/LoadSubpatchWindow.cpp | 4 ++-- 4 files changed, 13 insertions(+), 17 deletions(-) (limited to 'src/gui') diff --git a/src/gui/App.cpp b/src/gui/App.cpp index 7e414297..615ac36f 100644 --- a/src/gui/App.cpp +++ b/src/gui/App.cpp @@ -34,6 +34,7 @@ #include "client/PatchModel.hpp" #include "client/ClientStore.hpp" #include "engine/Engine.hpp" +#include "shared/runtime_paths.hpp" #include "NodeModule.hpp" #include "ControlPanel.hpp" #include "SubpatchModule.hpp" @@ -107,7 +108,7 @@ App::run(int argc, char** argv, Ingen::Shared::World* world) _instance->configuration()->apply_settings(); // Set default window icon - const Glib::ustring icon_path = INGEN_DATA_DIR "/ingen.svg"; + const Glib::ustring icon_path = Shared::data_file_path("ingen.svg"); try { if (Glib::file_test(icon_path, Glib::FILE_TEST_EXISTS)) Gtk::Window::set_default_icon_from_file(icon_path); diff --git a/src/gui/GladeFactory.cpp b/src/gui/GladeFactory.cpp index 81640d57..792e67ac 100644 --- a/src/gui/GladeFactory.cpp +++ b/src/gui/GladeFactory.cpp @@ -19,6 +19,7 @@ #include #include #include "config.h" +#include "shared/runtime_paths.hpp" using namespace std; @@ -36,21 +37,15 @@ GladeFactory::find_glade_file() if (env_path) glade_filename = env_path; else - glade_filename = "./ingen_gui.glade"; + glade_filename = Shared::data_file_path("ingen_gui.glade"); ifstream fs(glade_filename.c_str()); - if (fs.fail()) { // didn't find it, check INGEN_DATA_DIR - fs.clear(); - glade_filename = INGEN_DATA_DIR; - glade_filename += "/ingen_gui.glade"; - - fs.open(glade_filename.c_str()); - if (fs.fail()) { - cerr << "[GladeFactory] Unable to find ingen_gui.glade in current directory or " << INGEN_DATA_DIR << "." << endl; - throw; - } - fs.close(); + if (fs.fail()) { + cerr << "Unable to find ingen_gui.glade in " << INGEN_DATA_DIR << endl; + throw; } + + fs.close(); cerr << "[GladeFactory] Loading widgets from " << glade_filename.c_str() << endl; } diff --git a/src/gui/LoadPatchWindow.cpp b/src/gui/LoadPatchWindow.cpp index fdbc3c23..caa6c8bf 100644 --- a/src/gui/LoadPatchWindow.cpp +++ b/src/gui/LoadPatchWindow.cpp @@ -21,6 +21,7 @@ #include "LoadPatchWindow.hpp" #include "interface/EngineInterface.hpp" #include "client/PatchModel.hpp" +#include "shared/runtime_paths.hpp" #include "App.hpp" #include "Configuration.hpp" #include "ThreadedLoader.hpp" @@ -60,8 +61,7 @@ LoadPatchWindow::LoadPatchWindow(BaseObjectType* cobject, const Glib::RefPtr