mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-30 13:41:48 +00:00
disable properties editor when nothing is selected
This commit is contained in:
parent
0767ac5e92
commit
64d09470d0
1 changed files with 18 additions and 1 deletions
|
@ -30,6 +30,7 @@ typedef struct App
|
||||||
GtkWidget *main_window;
|
GtkWidget *main_window;
|
||||||
GtkListStore *model;
|
GtkListStore *model;
|
||||||
GtkTreeSelection *selection;
|
GtkTreeSelection *selection;
|
||||||
|
GtkWidget *properties;
|
||||||
} App;
|
} App;
|
||||||
|
|
||||||
App *app_new (void);
|
App *app_new (void);
|
||||||
|
@ -50,6 +51,8 @@ void delete_item_activate_cb (GtkMenuItem * item, App * app);
|
||||||
|
|
||||||
void add_file_item_activate_cb (GtkMenuItem * item, App * app);
|
void add_file_item_activate_cb (GtkMenuItem * item, App * app);
|
||||||
|
|
||||||
|
void app_selection_changed_cb (GtkTreeSelection * selection, App * app);
|
||||||
|
|
||||||
gboolean create_ui (App * app);
|
gboolean create_ui (App * app);
|
||||||
|
|
||||||
static gboolean find_row_for_object (GtkListStore * model, GtkTreeIter * ret,
|
static gboolean find_row_for_object (GtkListStore * model, GtkTreeIter * ret,
|
||||||
|
@ -88,6 +91,16 @@ add_file_item_activate_cb (GtkMenuItem * item, App * app)
|
||||||
app_add_file (app, (gchar *) "/home/brandon/media/small-mvi_0008.avi");
|
app_add_file (app, (gchar *) "/home/brandon/media/small-mvi_0008.avi");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
app_selection_changed_cb (GtkTreeSelection * selection, App * app)
|
||||||
|
{
|
||||||
|
int n;
|
||||||
|
n = gtk_tree_selection_count_selected_rows (selection);
|
||||||
|
|
||||||
|
/* some widgets should be disabled when we have an empty selection */
|
||||||
|
gtk_widget_set_sensitive (app->properties, n > 0);
|
||||||
|
}
|
||||||
|
|
||||||
/* application methods ******************************************************/
|
/* application methods ******************************************************/
|
||||||
|
|
||||||
static void selection_foreach (GtkTreeModel * model, GtkTreePath * path,
|
static void selection_foreach (GtkTreeModel * model, GtkTreePath * path,
|
||||||
|
@ -282,8 +295,9 @@ create_ui (App * app)
|
||||||
app->main_window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));
|
app->main_window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));
|
||||||
app->model =
|
app->model =
|
||||||
gtk_list_store_new (3, G_TYPE_STRING, G_TYPE_UINT64, G_TYPE_OBJECT);
|
gtk_list_store_new (3, G_TYPE_STRING, G_TYPE_UINT64, G_TYPE_OBJECT);
|
||||||
|
app->properties = GTK_WIDGET (gtk_builder_get_object (builder, "properties"));
|
||||||
|
|
||||||
if (!(app->main_window && app->model && timeline)) {
|
if (!(app->main_window && app->model && timeline && app->properties)) {
|
||||||
g_print ("Could not retrieve all widgets from the XML");
|
g_print ("Could not retrieve all widgets from the XML");
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
@ -293,6 +307,9 @@ create_ui (App * app)
|
||||||
if (!app->selection)
|
if (!app->selection)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
g_signal_connect (app->selection, "changed",
|
||||||
|
G_CALLBACK (app_selection_changed_cb), app);
|
||||||
|
|
||||||
gtk_tree_view_set_model (timeline, GTK_TREE_MODEL (app->model));
|
gtk_tree_view_set_model (timeline, GTK_TREE_MODEL (app->model));
|
||||||
|
|
||||||
gtk_builder_connect_signals (builder, app);
|
gtk_builder_connect_signals (builder, app);
|
||||||
|
|
Loading…
Reference in a new issue