summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-11-19 13:12:06 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2014-11-26 18:22:22 +0200
commite9768e934fdeaf31aaae779e42ff493a2e781179 (patch)
tree53b416abd30d637bec23b489ce32e7b0776c377b
parentc927eeb9eeed1b3a9ccd9a232df62fb3873ef267 (diff)
move creation of UIConfiguration object to precede creation of ArdourUI.
This is pretty kludgy but we need the UIConfiguration object (or any color management object) to be the first to connect to the ColorsChanged signal. Might be better to make the UIConfiguration object a delegate for the ThemeManager.
-rw-r--r--gtk2_ardour/ardour_ui.cc8
-rw-r--r--gtk2_ardour/ardour_ui.h1
-rw-r--r--gtk2_ardour/main.cc1
3 files changed, 8 insertions, 2 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index 6f038dc27b..15b57988b2 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -233,8 +233,6 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
theArdourUI = this;
}
- ui_config = new UIConfiguration();
-
ui_config->ParameterChanged.connect (sigc::mem_fun (*this, &ARDOUR_UI::parameter_changed));
boost::function<void (string)> pc (boost::bind (&ARDOUR_UI::parameter_changed, this, _1));
ui_config->map_parameters (pc);
@@ -399,6 +397,12 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
attach_to_engine ();
}
+void
+ARDOUR_UI::create_configuration ()
+{
+ ui_config = new UIConfiguration();
+}
+
GlobalPortMatrixWindow*
ARDOUR_UI::create_global_port_matrix (ARDOUR::DataType type)
{
diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h
index 51bc6dd117..3a6f1b501e 100644
--- a/gtk2_ardour/ardour_ui.h
+++ b/gtk2_ardour/ardour_ui.h
@@ -168,6 +168,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
static ARDOUR_UI *instance () { return theArdourUI; }
static UIConfiguration *config () { return ui_config; }
+ static void create_configuration();
PublicEditor& the_editor(){return *editor;}
Mixer_UI* the_mixer() { return mixer; }
diff --git a/gtk2_ardour/main.cc b/gtk2_ardour/main.cc
index 0c6fbce69f..d6aed1dd2d 100644
--- a/gtk2_ardour/main.cc
+++ b/gtk2_ardour/main.cc
@@ -277,6 +277,7 @@ int main (int argc, char *argv[])
#endif
try {
+ ARDOUR_UI::create_configuration ();
ui = new ARDOUR_UI (&argc, &argv, localedir);
} catch (failed_constructor& err) {
error << string_compose (_("could not create %1 GUI"), PROGRAM_NAME) << endmsg;