Unload studio command
This commit is contained in:
parent
f55a45416e
commit
5243fd33fa
|
@ -1607,6 +1607,12 @@ static void ladish_save_studio(method_call_t * call_ptr)
|
|||
}
|
||||
}
|
||||
|
||||
static void ladish_unload_studio(method_call_t * call_ptr)
|
||||
{
|
||||
studio_clear();
|
||||
method_return_new_void(call_ptr);
|
||||
}
|
||||
|
||||
bool studio_new(void * call_ptr, const char * studio_name)
|
||||
{
|
||||
studio_clear();
|
||||
|
@ -1655,10 +1661,14 @@ METHOD_ARGS_END
|
|||
METHOD_ARGS_BEGIN(Save, "Save studio")
|
||||
METHOD_ARGS_END
|
||||
|
||||
METHOD_ARGS_BEGIN(Unload, "Unload studio")
|
||||
METHOD_ARGS_END
|
||||
|
||||
METHODS_BEGIN
|
||||
METHOD_DESCRIBE(GetName, ladish_get_studio_name)
|
||||
METHOD_DESCRIBE(Rename, ladish_rename_studio)
|
||||
METHOD_DESCRIBE(Save, ladish_save_studio)
|
||||
METHOD_DESCRIBE(Unload, ladish_unload_studio)
|
||||
METHODS_END
|
||||
|
||||
SIGNAL_ARGS_BEGIN(StudioRenamed, "Studio name changed")
|
||||
|
|
|
@ -82,6 +82,22 @@
|
|||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkImageMenuItem" id="menu_item_unload_studio">
|
||||
<property name="visible">True</property>
|
||||
<property name="sensitive">False</property>
|
||||
<property name="label" translatable="yes">_Unload Studio</property>
|
||||
<property name="use_underline">True</property>
|
||||
<accelerator key="U" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK" signal="activate"/>
|
||||
<child internal-child="image">
|
||||
<widget class="GtkImage" id="menu-item-image5">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-save</property>
|
||||
<property name="icon_size">1</property>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
<child>
|
||||
<widget class="GtkImageMenuItem" id="menu_item_delete_studio">
|
||||
<property name="visible">True</property>
|
||||
|
|
15
gui/main.c
15
gui/main.c
|
@ -50,6 +50,7 @@ GtkWidget * g_buffer_size_combo;
|
|||
|
||||
GtkWidget * g_menu_item_new_studio;
|
||||
GtkWidget * g_menu_item_save_studio;
|
||||
GtkWidget * g_menu_item_unload_studio;
|
||||
GtkWidget * g_menu_item_rename_studio;
|
||||
GtkWidget * g_menu_item_create_room;
|
||||
GtkWidget * g_menu_item_destroy_room;
|
||||
|
@ -336,6 +337,16 @@ static void new_studio(void)
|
|||
}
|
||||
}
|
||||
|
||||
static void unload_studio(void)
|
||||
{
|
||||
lash_info("unload studio request");
|
||||
if (!studio_proxy_unload())
|
||||
{
|
||||
lash_error("studio unload failed");
|
||||
/* TODO: display error message */
|
||||
}
|
||||
}
|
||||
|
||||
static void rename_studio(void)
|
||||
{
|
||||
char * new_name;
|
||||
|
@ -383,6 +394,7 @@ void control_proxy_on_studio_appeared(void)
|
|||
}
|
||||
|
||||
gtk_widget_set_sensitive(g_menu_item_save_studio, true);
|
||||
gtk_widget_set_sensitive(g_menu_item_unload_studio, true);
|
||||
gtk_widget_set_sensitive(g_menu_item_rename_studio, true);
|
||||
gtk_widget_set_sensitive(g_menu_item_create_room, true);
|
||||
gtk_widget_set_sensitive(g_menu_item_destroy_room, true);
|
||||
|
@ -405,6 +417,7 @@ void control_proxy_on_studio_disappeared(void)
|
|||
}
|
||||
|
||||
gtk_widget_set_sensitive(g_menu_item_save_studio, false);
|
||||
gtk_widget_set_sensitive(g_menu_item_unload_studio, false);
|
||||
gtk_widget_set_sensitive(g_menu_item_rename_studio, false);
|
||||
gtk_widget_set_sensitive(g_menu_item_create_room, false);
|
||||
gtk_widget_set_sensitive(g_menu_item_destroy_room, false);
|
||||
|
@ -519,6 +532,7 @@ int main(int argc, char** argv)
|
|||
g_buffer_size_combo = get_glade_widget("buffer_size_combo");
|
||||
g_menu_item_new_studio = get_glade_widget("menu_item_new_studio");
|
||||
g_menu_item_save_studio = get_glade_widget("menu_item_save_studio");
|
||||
g_menu_item_unload_studio = get_glade_widget("menu_item_unload_studio");
|
||||
g_menu_item_rename_studio = get_glade_widget("menu_item_rename_studio");
|
||||
g_menu_item_create_room = get_glade_widget("menu_item_create_room");
|
||||
g_menu_item_destroy_room = get_glade_widget("menu_item_destroy_room");
|
||||
|
@ -560,6 +574,7 @@ int main(int argc, char** argv)
|
|||
g_signal_connect(G_OBJECT(g_clear_load_button), "clicked", G_CALLBACK(clear_load), NULL);
|
||||
g_signal_connect(G_OBJECT(get_glade_widget("menu_item_view_arrange")), "activate", G_CALLBACK(arrange), NULL);
|
||||
g_signal_connect(G_OBJECT(g_menu_item_new_studio), "activate", G_CALLBACK(new_studio), NULL);
|
||||
g_signal_connect(G_OBJECT(g_menu_item_unload_studio), "activate", G_CALLBACK(unload_studio), NULL);
|
||||
g_signal_connect(G_OBJECT(g_menu_item_save_studio), "activate", G_CALLBACK(save_studio), NULL);
|
||||
g_signal_connect(G_OBJECT(g_menu_item_rename_studio), "activate", G_CALLBACK(rename_studio), NULL);
|
||||
|
||||
|
|
|
@ -146,6 +146,11 @@ bool studio_proxy_save(void)
|
|||
return dbus_call_simple(SERVICE_NAME, STUDIO_OBJECT_PATH, IFACE_STUDIO, "Save", "", "");
|
||||
}
|
||||
|
||||
bool studio_proxy_unload(void)
|
||||
{
|
||||
return dbus_call_simple(SERVICE_NAME, STUDIO_OBJECT_PATH, IFACE_STUDIO, "Unload", "", "");
|
||||
}
|
||||
|
||||
void studio_proxy_set_renamed_callback(void (* callback)(const char * new_studio_name))
|
||||
{
|
||||
g_renamed_callback = callback;
|
||||
|
|
|
@ -33,6 +33,7 @@ void studio_proxy_uninit(void);
|
|||
bool studio_proxy_get_name(char ** name);
|
||||
bool studio_proxy_rename(const char * name);
|
||||
bool studio_proxy_save(void);
|
||||
bool studio_proxy_unload(void);
|
||||
void studio_proxy_set_renamed_callback(void (* callback)(const char * new_studio_name));
|
||||
|
||||
#endif /* #ifndef STUDIO_PROXY_H__2CEC623F_C998_4618_A947_D1A0016DF978__INCLUDED */
|
||||
|
|
Loading…
Reference in New Issue