summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Stebbins <[email protected]>2017-09-18 10:45:47 -0700
committerJohn Stebbins <[email protected]>2017-11-06 08:19:49 -0800
commit296dea8e43c7f0bd8e6c564222c6bdd87c8b3f17 (patch)
tree8aa466d94101cdc1924cc8b0817953d7661459dd
parent1deba0d64c98dec881456867925d85434c030ae7 (diff)
LinGui: add preset "modified" indicator and reset button
When a setting is modified, the word "Modified" appears next to the preset selection menu button and the "Reset" button is enabled.
-rw-r--r--gtk/src/ghb.m430
-rw-r--r--gtk/src/main.c51
-rw-r--r--gtk/src/presets.c51
3 files changed, 100 insertions, 32 deletions
diff --git a/gtk/src/ghb.m4 b/gtk/src/ghb.m4
index 6ecd20ac8..c5e15731c 100644
--- a/gtk/src/ghb.m4
+++ b/gtk/src/ghb.m4
@@ -1584,6 +1584,36 @@ This is often the feature title of a DVD.</property>
<property name="position">1</property>
</packing>
</child>
+ <child>
+ <object class="GtkLabel" id="preset_selection_modified_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="width-chars">10</property>
+ <property name="label" translatable="yes"></property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="preset_selection_reset">
+ <property name="label" translatable="yes">Reset</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip_text" translatable="yes">Reset the current title to default Preset values</property>
+ <property name="receives_default">True</property>
+ <property name="halign">end</property>
+ <property name="action-name">app.preset-reset</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
diff --git a/gtk/src/main.c b/gtk/src/main.c
index a452830bb..bcfdbed91 100644
--- a/gtk/src/main.c
+++ b/gtk/src/main.c
@@ -874,41 +874,44 @@ G_MODULE_EXPORT void
guide_action_cb(GSimpleAction *action, GVariant *param, gpointer ud);
G_MODULE_EXPORT void
preset_select_action_cb(GSimpleAction *action, GVariant *param, gpointer ud);
+G_MODULE_EXPORT void
+preset_reset_action_cb(GSimpleAction *action, GVariant *param, gpointer ud);
static void map_actions(GApplication * app, signal_user_data_t * ud)
{
const GActionEntry entries[] =
{
- { "source", source_action_cb },
- { "single", single_title_action_cb },
- { "destination", destination_action_cb },
- { "preferences", preferences_action_cb },
- { "quit", quit_action_cb },
- { "queue-add", queue_add_action_cb },
- { "queue-add-all", queue_add_all_action_cb },
- { "queue-start", queue_start_action_cb },
- { "queue-pause", queue_pause_action_cb },
- { "queue-save", queue_save_action_cb },
+ { "source", source_action_cb },
+ { "single", single_title_action_cb },
+ { "destination", destination_action_cb },
+ { "preferences", preferences_action_cb },
+ { "quit", quit_action_cb },
+ { "queue-add", queue_add_action_cb },
+ { "queue-add-all", queue_add_all_action_cb },
+ { "queue-start", queue_start_action_cb },
+ { "queue-pause", queue_pause_action_cb },
+ { "queue-save", queue_save_action_cb },
{ "hbfd", NULL,
- NULL, "false", hbfd_action_cb },
+ NULL, "false", hbfd_action_cb },
{ "show-presets", NULL,
- NULL, "false", show_presets_action_cb },
+ NULL, "false", show_presets_action_cb },
{ "show-queue", NULL,
- NULL, "false", show_queue_action_cb },
+ NULL, "false", show_queue_action_cb },
{ "show-preview", NULL,
- NULL, "false", show_preview_action_cb },
+ NULL, "false", show_preview_action_cb },
{ "show-activity", NULL,
- NULL, "false", show_activity_action_cb },
- { "preset-save", preset_save_action_cb },
- { "preset-remove", preset_remove_action_cb },
- { "preset-default", preset_default_action_cb },
- { "preset-folder", preset_folder_action_cb },
- { "preset-export", preset_export_action_cb },
- { "preset-import", preset_import_action_cb },
- { "presets-reload", presets_reload_action_cb },
- { "about", about_action_cb },
- { "guide", guide_action_cb },
+ NULL, "false", show_activity_action_cb },
+ { "preset-save", preset_save_action_cb },
+ { "preset-remove", preset_remove_action_cb },
+ { "preset-default", preset_default_action_cb },
+ { "preset-folder", preset_folder_action_cb },
+ { "preset-export", preset_export_action_cb },
+ { "preset-import", preset_import_action_cb },
+ { "presets-reload", presets_reload_action_cb },
+ { "about", about_action_cb },
+ { "guide", guide_action_cb },
{ "preset-select", preset_select_action_cb, "s" },
+ { "preset-reset", preset_reset_action_cb, },
};
g_action_map_add_action_entries(G_ACTION_MAP(app), entries,
G_N_ELEMENTS(entries), ud);
diff --git a/gtk/src/presets.c b/gtk/src/presets.c
index 3eef3ccf9..d4344591c 100644
--- a/gtk/src/presets.c
+++ b/gtk/src/presets.c
@@ -572,10 +572,10 @@ set_preset_menu_button_label(signal_user_data_t *ud, hb_preset_index_t *path)
dict = hb_preset_get(path);
type = ghb_dict_get_int(dict, "Type");
- fullname = preset_get_fullname(path, " > ");
+ fullname = preset_get_fullname(path, " <span alpha=\"70%\">></span> ");
label = GTK_LABEL(GHB_WIDGET(ud->builder, "presets_menu_button_label"));
text = g_strdup_printf("%s%s", type ? "Custom" : "Official", fullname);
- gtk_label_set_text(label, text);
+ gtk_label_set_markup(label, text);
free(fullname);
free(text);
}
@@ -1141,14 +1141,27 @@ get_selected_path(signal_user_data_t *ud)
}
G_MODULE_EXPORT void
-preset_select_action_cb(GSimpleAction *action, GVariant *value,
+preset_select_action_cb(GSimpleAction *action, GVariant *param,
signal_user_data_t *ud)
{
- const char * preset_path = g_variant_get_string(value, NULL);
+ const char * preset_path = g_variant_get_string(param, NULL);
ghb_select_preset(ud, preset_path);
}
+G_MODULE_EXPORT void
+preset_reset_action_cb(GSimpleAction *action, GVariant *param,
+ signal_user_data_t *ud)
+{
+ const char * preset_path;
+
+ preset_path = ghb_dict_get_string(ud->settings, "PresetFullName");
+ if (preset_path != NULL)
+ {
+ ghb_select_preset(ud, preset_path);
+ }
+}
+
void
ghb_presets_menu_init(signal_user_data_t *ud)
{
@@ -2654,7 +2667,19 @@ presets_list_selection_changed_cb(GtkTreeSelection *selection, signal_user_data_
free(fullname);
ghb_set_current_title_settings(ud);
ghb_load_post_settings(ud);
+ }
+ if (!ghb_dict_get_bool(dict, "Folder"))
+ {
+ GtkLabel * label;
+ GSimpleAction * action;
+
set_preset_menu_button_label(ud, path);
+ label = GTK_LABEL(GHB_WIDGET(ud->builder,
+ "preset_selection_modified_label"));
+ gtk_label_set_markup(label, "");
+ action = G_SIMPLE_ACTION(g_action_map_lookup_action(
+ G_ACTION_MAP(ud->app), "preset-reset"));
+ g_simple_action_set_enabled(action, FALSE);
}
sensitive = TRUE;
free(path);
@@ -2667,14 +2692,24 @@ presets_list_selection_changed_cb(GtkTreeSelection *selection, signal_user_data_
void
ghb_clear_presets_selection(signal_user_data_t *ud)
{
- GtkTreeView *treeview;
- GtkTreeSelection *selection;
+ GtkTreeView * treeview;
+ GtkTreeSelection * selection;
+ GtkLabel * label;
+ GSimpleAction * action;
if (ud->dont_clear_presets) return;
treeview = GTK_TREE_VIEW(GHB_WIDGET(ud->builder, "presets_list"));
- selection = gtk_tree_view_get_selection (treeview);
- gtk_tree_selection_unselect_all (selection);
+ selection = gtk_tree_view_get_selection(treeview);
+ gtk_tree_selection_unselect_all(selection);
ghb_dict_set_bool(ud->settings, "preset_modified", TRUE);
+
+ label = GTK_LABEL(GHB_WIDGET(ud->builder,
+ "preset_selection_modified_label"));
+ gtk_label_set_markup(label, "<u><i>Modified</i></u>");
+
+ action = G_SIMPLE_ACTION(g_action_map_lookup_action(G_ACTION_MAP(ud->app),
+ "preset-reset"));
+ g_simple_action_set_enabled(action, TRUE);
}
G_MODULE_EXPORT void