gladish: persist the toolbar visibility setting across invocations

This commit is contained in:
Nedko Arnaudov 2010-09-27 22:48:35 +03:00
parent c800b2c5fb
commit 1f2972377e
4 changed files with 51 additions and 2 deletions

View File

@ -33,6 +33,7 @@
#include "graph_view.h"
#include "../common/catdup.h"
#include "../proxies/studio_proxy.h"
#include "../proxies/conf_proxy.h"
#include "create_room_dialog.h"
#include "menu.h"
#include "about.h"
@ -44,6 +45,8 @@
GtkWidget * g_main_win;
GtkWidget * g_toolbar;
#define LADISH_CONF_KEY_GLADISH_TOOLBAR_VISIBILITY "/org/ladish/gladish/toolbar_visibility"
void
set_main_window_title(
graph_view_handle view)
@ -85,12 +88,46 @@ void menu_request_toggle_toolbar(bool visible)
{
gtk_widget_hide(g_toolbar);
}
conf_set_bool(LADISH_CONF_KEY_GLADISH_TOOLBAR_VISIBILITY, visible);
}
void on_dbus_toggle_toobar(void * context, const char * key, const char * value)
{
bool toolbar_visible;
if (value == NULL)
{
toolbar_visible = false;
}
else
{
toolbar_visible = conf_string2bool(value);
}
if (toolbar_visible)
{
gtk_widget_show(g_toolbar);
}
else
{
gtk_widget_hide(g_toolbar);
}
menu_set_toolbar_visibility(toolbar_visible);
}
int main(int argc, char** argv)
{
gtk_init(&argc, &argv);
dbus_init();
if (!conf_proxy_init())
{
return 1;
}
if (!canvas_init())
{
log_error("Canvas initialization failed.");
@ -122,7 +159,10 @@ int main(int argc, char** argv)
menu_init();
buffer_size_clear();
dbus_init();
if (!conf_register(LADISH_CONF_KEY_GLADISH_TOOLBAR_VISIBILITY, on_dbus_toggle_toobar, NULL))
{
return 1;
}
if (!init_jack())
{
@ -154,9 +194,11 @@ int main(int argc, char** argv)
studio_proxy_uninit();
control_proxy_uninit();
uninit_jack();
dbus_uninit();
create_room_dialog_uninit();
uninit_gtk_builder();
conf_proxy_uninit();
dbus_uninit();
return 0;
}

View File

@ -217,6 +217,11 @@ bool menu_set_jack_latency(uint32_t buffer_size, bool force)
return true;
}
void menu_set_toolbar_visibility(bool visible)
{
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(g_menu_item_view_toolbar), visible);
}
void menu_view_activated(bool room)
{
gtk_widget_set_sensitive(g_menu_item_destroy_room, room);

View File

@ -33,6 +33,7 @@ void menu_init(void);
void menu_studio_state_changed(unsigned int studio_state);
void menu_set_jack_latency_items_sensivity(bool sensitive);
bool menu_set_jack_latency(uint32_t buffer_size, bool force);
void menu_set_toolbar_visibility(bool visible);
void menu_view_activated(bool room);
void fill_view_popup_menu(GtkMenu * menu, graph_view_handle view);

View File

@ -458,6 +458,7 @@ def build(bld):
'control_proxy.c',
'app_supervisor_proxy.c',
"room_proxy.c",
"conf_proxy.c",
]:
gladish.source.append(os.path.join("proxies", source))