gladish: use real studio name when creating studio view

This commit is contained in:
Nedko Arnaudov 2009-08-23 11:19:31 +03:00
parent 21965995d9
commit 58a5e9a56b
1 changed files with 29 additions and 3 deletions

View File

@ -189,10 +189,24 @@ static gboolean poll_jack(gpointer data)
void control_proxy_on_studio_appeared(void) void control_proxy_on_studio_appeared(void)
{ {
if (!create_view("Studio", SERVICE_NAME, STUDIO_OBJECT_PATH, false, &g_studio_view)) char * name;
if (!studio_proxy_get_name(&name))
{
lash_error("failed to get studio name");
goto exit;
}
if (g_studio_view != NULL)
{
lash_error("studio appear signal received but studio already exists");
goto free_name;
}
if (!create_view(name, SERVICE_NAME, STUDIO_OBJECT_PATH, false, &g_studio_view))
{ {
lash_error("create_view() failed for studio"); lash_error("create_view() failed for studio");
return; goto free_name;
} }
gtk_widget_set_sensitive(g_menu_item_save_studio, true); gtk_widget_set_sensitive(g_menu_item_save_studio, true);
@ -200,10 +214,22 @@ void control_proxy_on_studio_appeared(void)
gtk_widget_set_sensitive(g_menu_item_destroy_room, true); gtk_widget_set_sensitive(g_menu_item_destroy_room, true);
gtk_widget_set_sensitive(g_menu_item_load_project, true); gtk_widget_set_sensitive(g_menu_item_load_project, true);
gtk_widget_set_sensitive(g_menu_item_start_app, true); gtk_widget_set_sensitive(g_menu_item_start_app, true);
free_name:
free(name);
exit:
return;
} }
void control_proxy_on_studio_disappeared(void) void control_proxy_on_studio_disappeared(void)
{ {
if (g_studio_view == NULL)
{
lash_error("studio disappear signal received but studio does not exists");
return;
}
gtk_widget_set_sensitive(g_menu_item_save_studio, false); gtk_widget_set_sensitive(g_menu_item_save_studio, false);
gtk_widget_set_sensitive(g_menu_item_create_room, false); gtk_widget_set_sensitive(g_menu_item_create_room, false);
gtk_widget_set_sensitive(g_menu_item_destroy_room, false); gtk_widget_set_sensitive(g_menu_item_destroy_room, false);
@ -213,7 +239,7 @@ void control_proxy_on_studio_disappeared(void)
if (g_studio_view != NULL) if (g_studio_view != NULL)
{ {
destroy_view(g_studio_view); destroy_view(g_studio_view);
g_jack_view = NULL; g_studio_view = NULL;
} }
} }