gui: delete room implemented
This commit is contained in:
parent
3ee262014b
commit
6eda583e2e
|
@ -28,6 +28,7 @@
|
||||||
#include "graph_view.h"
|
#include "graph_view.h"
|
||||||
#include "gtk_builder.h"
|
#include "gtk_builder.h"
|
||||||
#include "world_tree.h"
|
#include "world_tree.h"
|
||||||
|
#include "menu.h"
|
||||||
|
|
||||||
struct graph_view
|
struct graph_view
|
||||||
{
|
{
|
||||||
|
@ -244,6 +245,7 @@ void activate_view(graph_view_handle view)
|
||||||
{
|
{
|
||||||
attach_canvas(view_ptr);
|
attach_canvas(view_ptr);
|
||||||
set_main_window_title(view);
|
set_main_window_title(view);
|
||||||
|
menu_view_activated(is_room_view(view));
|
||||||
}
|
}
|
||||||
|
|
||||||
const char * get_view_name(graph_view_handle view)
|
const char * get_view_name(graph_view_handle view)
|
||||||
|
@ -290,6 +292,21 @@ canvas_handle get_current_canvas(void)
|
||||||
return graph_canvas_get_canvas(g_current_view->graph_canvas);
|
return graph_canvas_get_canvas(g_current_view->graph_canvas);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char * get_current_view_room_name(void)
|
||||||
|
{
|
||||||
|
if (g_current_view == NULL || !is_room_view((graph_view_handle)g_current_view))
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return g_current_view->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool is_room_view(graph_view_handle view)
|
||||||
|
{
|
||||||
|
return strcmp(graph_proxy_get_object(view_ptr->graph), STUDIO_OBJECT_PATH) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
bool app_run_custom(graph_view_handle view, const char * command, const char * name, bool run_in_terminal, uint8_t level)
|
bool app_run_custom(graph_view_handle view, const char * command, const char * name, bool run_in_terminal, uint8_t level)
|
||||||
{
|
{
|
||||||
return ladish_app_supervisor_proxy_run_custom(view_ptr->app_supervisor, command, name, run_in_terminal, level);
|
return ladish_app_supervisor_proxy_run_custom(view_ptr->app_supervisor, command, name, run_in_terminal, level);
|
||||||
|
|
|
@ -50,6 +50,8 @@ const char * get_view_name(graph_view_handle view);
|
||||||
const char * get_view_opath(graph_view_handle view);
|
const char * get_view_opath(graph_view_handle view);
|
||||||
bool set_view_name(graph_view_handle view, const char * name);
|
bool set_view_name(graph_view_handle view, const char * name);
|
||||||
canvas_handle get_current_canvas(void);
|
canvas_handle get_current_canvas(void);
|
||||||
|
const char * get_current_view_room_name(void);
|
||||||
|
bool is_room_view(graph_view_handle view);
|
||||||
|
|
||||||
ladish_app_supervisor_proxy_handle graph_view_get_app_supervisor(graph_view_handle view);
|
ladish_app_supervisor_proxy_handle graph_view_get_app_supervisor(graph_view_handle view);
|
||||||
bool app_run_custom(graph_view_handle view, const char * command, const char * name, bool run_in_terminal, uint8_t level);
|
bool app_run_custom(graph_view_handle view, const char * command, const char * name, bool run_in_terminal, uint8_t level);
|
||||||
|
|
19
gui/main.c
19
gui/main.c
|
@ -786,6 +786,25 @@ void menu_request_create_room(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void menu_request_destroy_room(void)
|
||||||
|
{
|
||||||
|
const char * room;
|
||||||
|
|
||||||
|
room = get_current_view_room_name();
|
||||||
|
if (room == NULL)
|
||||||
|
{
|
||||||
|
ASSERT_NO_PASS;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
log_info("destroy room '%s' request", room);
|
||||||
|
|
||||||
|
if (!studio_proxy_delete_room(room))
|
||||||
|
{
|
||||||
|
error_message_box("Room deletion failed, please inspect logs.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static gboolean poll_jack(gpointer data)
|
static gboolean poll_jack(gpointer data)
|
||||||
{
|
{
|
||||||
update_load();
|
update_load();
|
||||||
|
|
|
@ -113,6 +113,7 @@ void menu_init(void)
|
||||||
g_signal_connect(G_OBJECT(g_menu_item_jack_configure), "activate", G_CALLBACK(menu_request_jack_configure), NULL);
|
g_signal_connect(G_OBJECT(g_menu_item_jack_configure), "activate", G_CALLBACK(menu_request_jack_configure), NULL);
|
||||||
g_signal_connect(G_OBJECT(g_menu_item_start_app), "activate", G_CALLBACK(menu_request_start_app), NULL);
|
g_signal_connect(G_OBJECT(g_menu_item_start_app), "activate", G_CALLBACK(menu_request_start_app), NULL);
|
||||||
g_signal_connect(G_OBJECT(g_menu_item_create_room), "activate", G_CALLBACK(menu_request_create_room), NULL);
|
g_signal_connect(G_OBJECT(g_menu_item_create_room), "activate", G_CALLBACK(menu_request_create_room), NULL);
|
||||||
|
g_signal_connect(G_OBJECT(g_menu_item_destroy_room), "activate", G_CALLBACK(menu_request_destroy_room), NULL);
|
||||||
|
|
||||||
g_signal_connect(G_OBJECT(g_menu_item_jack_latency_32), "toggled", G_CALLBACK(buffer_size_change_request), (gpointer)32);
|
g_signal_connect(G_OBJECT(g_menu_item_jack_latency_32), "toggled", G_CALLBACK(buffer_size_change_request), (gpointer)32);
|
||||||
g_signal_connect(G_OBJECT(g_menu_item_jack_latency_64), "toggled", G_CALLBACK(buffer_size_change_request), (gpointer)64);
|
g_signal_connect(G_OBJECT(g_menu_item_jack_latency_64), "toggled", G_CALLBACK(buffer_size_change_request), (gpointer)64);
|
||||||
|
@ -135,8 +136,6 @@ void menu_studio_state_changed(unsigned int studio_state)
|
||||||
gtk_widget_set_sensitive(g_menu_item_rename_studio, studio_state == STUDIO_STATE_STOPPED || studio_state == STUDIO_STATE_STARTED);
|
gtk_widget_set_sensitive(g_menu_item_rename_studio, studio_state == STUDIO_STATE_STOPPED || studio_state == STUDIO_STATE_STARTED);
|
||||||
gtk_widget_set_sensitive(g_menu_item_start_app, studio_state == STUDIO_STATE_STOPPED || studio_state == STUDIO_STATE_STARTED);
|
gtk_widget_set_sensitive(g_menu_item_start_app, studio_state == STUDIO_STATE_STOPPED || studio_state == STUDIO_STATE_STARTED);
|
||||||
gtk_widget_set_sensitive(g_menu_item_create_room, studio_state == STUDIO_STATE_STOPPED || studio_state == STUDIO_STATE_STARTED);
|
gtk_widget_set_sensitive(g_menu_item_create_room, studio_state == STUDIO_STATE_STOPPED || studio_state == STUDIO_STATE_STARTED);
|
||||||
//gtk_widget_set_sensitive(g_menu_item_destroy_room, studio_state == STUDIO_STATE_STOPPED || studio_state == STUDIO_STATE_STARTED);
|
|
||||||
//gtk_widget_set_sensitive(g_menu_item_load_project, studio_state == STUDIO_STATE_STARTED);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void menu_set_jack_latency_items_sensivity(bool sensitive)
|
void menu_set_jack_latency_items_sensivity(bool sensitive)
|
||||||
|
@ -200,3 +199,9 @@ bool menu_set_jack_latency(uint32_t buffer_size, bool force, bool * changed_ptr)
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void menu_view_activated(bool room)
|
||||||
|
{
|
||||||
|
gtk_widget_set_sensitive(g_menu_item_destroy_room, room);
|
||||||
|
//gtk_widget_set_sensitive(g_menu_item_load_project, room);
|
||||||
|
}
|
||||||
|
|
|
@ -31,6 +31,7 @@ void menu_init(void);
|
||||||
void menu_studio_state_changed(unsigned int studio_state);
|
void menu_studio_state_changed(unsigned int studio_state);
|
||||||
void menu_set_jack_latency_items_sensivity(bool sensitive);
|
void menu_set_jack_latency_items_sensivity(bool sensitive);
|
||||||
bool menu_set_jack_latency(uint32_t buffer_size, bool force, bool * changed_ptr);
|
bool menu_set_jack_latency(uint32_t buffer_size, bool force, bool * changed_ptr);
|
||||||
|
void menu_view_activated(bool room);
|
||||||
|
|
||||||
void menu_request_daemon_exit(void);
|
void menu_request_daemon_exit(void);
|
||||||
void menu_request_toggle_toolbar(bool visible);
|
void menu_request_toggle_toolbar(bool visible);
|
||||||
|
@ -44,6 +45,7 @@ void menu_request_stop_studio(void);
|
||||||
void menu_request_unload_studio(void);
|
void menu_request_unload_studio(void);
|
||||||
void menu_request_rename_studio(void);
|
void menu_request_rename_studio(void);
|
||||||
void menu_request_create_room(void);
|
void menu_request_create_room(void);
|
||||||
|
void menu_request_destroy_room(void);
|
||||||
void menu_request_jack_latency_change(uint32_t buffer_size);
|
void menu_request_jack_latency_change(uint32_t buffer_size);
|
||||||
|
|
||||||
#endif /* #ifndef MENU_H__37ACA2FE_C43D_4FA8_B7CF_6DD345F17CD1__INCLUDED */
|
#endif /* #ifndef MENU_H__37ACA2FE_C43D_4FA8_B7CF_6DD345F17CD1__INCLUDED */
|
||||||
|
|
|
@ -334,3 +334,8 @@ bool studio_proxy_create_room(const char * name, const char * template)
|
||||||
{
|
{
|
||||||
return dbus_call(SERVICE_NAME, STUDIO_OBJECT_PATH, IFACE_STUDIO, "NewRoom", "ss", &name, &template, "");
|
return dbus_call(SERVICE_NAME, STUDIO_OBJECT_PATH, IFACE_STUDIO, "NewRoom", "ss", &name, &template, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool studio_proxy_delete_room(const char * name)
|
||||||
|
{
|
||||||
|
return dbus_call(SERVICE_NAME, STUDIO_OBJECT_PATH, IFACE_STUDIO, "DeleteRoom", "s", &name, "");
|
||||||
|
}
|
||||||
|
|
|
@ -51,5 +51,6 @@ studio_proxy_set_room_callbacks(
|
||||||
void (* changed)(const char * opath, const char * name, const char * template));
|
void (* changed)(const char * opath, const char * name, const char * template));
|
||||||
|
|
||||||
bool studio_proxy_create_room(const char * name, const char * template);
|
bool studio_proxy_create_room(const char * name, const char * template);
|
||||||
|
bool studio_proxy_delete_room(const char * name);
|
||||||
|
|
||||||
#endif /* #ifndef STUDIO_PROXY_H__2CEC623F_C998_4618_A947_D1A0016DF978__INCLUDED */
|
#endif /* #ifndef STUDIO_PROXY_H__2CEC623F_C998_4618_A947_D1A0016DF978__INCLUDED */
|
||||||
|
|
Loading…
Reference in New Issue