[nautilus/wip/alexpandelea/batchRename: 14/17] Use GtkPopoverMenu instead of GtkMenuButton
- From: Alexandru-Ionut Pandelea <alexpandelea src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus/wip/alexpandelea/batchRename: 14/17] Use GtkPopoverMenu instead of GtkMenuButton
- Date: Tue, 5 Jul 2016 16:49:41 +0000 (UTC)
commit aa716710a5058e3604b6386c567e03eb294c8339
Author: Alexandru Pandelea <alexandru pandelea gmail com>
Date: Wed Jun 29 23:36:53 2016 +0300
Use GtkPopoverMenu instead of GtkMenuButton
The GtkMenuButton is now a GtkToggleButton that shows a GtkPopoverMenu
with the same actions that were before in the menu.
https://bugzilla.gnome.org/show_bug.cgi?id=768311
src/nautilus-batch-rename.c | 31 +++++++---
src/resources/ui/nautilus-batch-rename-dialog.ui | 74 ++++++++++++++--------
2 files changed, 69 insertions(+), 36 deletions(-)
---
diff --git a/src/nautilus-batch-rename.c b/src/nautilus-batch-rename.c
index e5b2d99..50cd0db 100644
--- a/src/nautilus-batch-rename.c
+++ b/src/nautilus-batch-rename.c
@@ -52,6 +52,8 @@ struct _NautilusBatchRename
GtkWidget *add_button_label;
GtkWidget *numbering_order_label;
GtkWidget *scrolled_window;
+ GtkWidget *numbering_order_popover;
+ GtkWidget *numbering_order_button;
GList *listbox_rows;
@@ -238,7 +240,7 @@ create_row_for_label (const gchar *new_text,
g_object_set_data (G_OBJECT (row), "show-separator", GINT_TO_POINTER (show_separator));
icon = gtk_image_new_from_icon_name ("media-playlist-consecutive-symbolic",
- GTK_ICON_SIZE_SMALL_TOOLBAR);
+ GTK_ICON_SIZE_SMALL_TOOLBAR);
box = g_object_new (GTK_TYPE_BOX,
"orientation",GTK_ORIENTATION_HORIZONTAL,
@@ -451,6 +453,21 @@ add_popover_closed (NautilusBatchRename *dialog)
}
static void
+numbering_order_button_clicked (NautilusBatchRename *dialog)
+{
+ if (gtk_widget_is_visible (dialog->numbering_order_popover))
+ gtk_widget_set_visible (dialog->numbering_order_popover, FALSE);
+ else
+ gtk_widget_set_visible (dialog->numbering_order_popover, TRUE);
+}
+
+static void
+numbering_order_popover_closed (NautilusBatchRename *dialog)
+{
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->numbering_order_button), FALSE);
+}
+
+static void
nautilus_batch_rename_initialize_actions (NautilusBatchRename *dialog)
{
GAction *action;
@@ -464,14 +481,6 @@ nautilus_batch_rename_initialize_actions (NautilusBatchRename *dialog)
gtk_widget_insert_action_group (GTK_WIDGET (dialog),
"dialog",
G_ACTION_GROUP (dialog->action_group));
-
- action = g_action_map_lookup_action (G_ACTION_MAP (dialog->action_group),
- "numbering-order-changed-ascending");
- g_simple_action_set_enabled (G_SIMPLE_ACTION (action),TRUE);
-
- action = g_action_map_lookup_action (G_ACTION_MAP (dialog->action_group),
- "numbering-order-changed-descending");
- g_simple_action_set_enabled (G_SIMPLE_ACTION (action),TRUE);
}
static void
@@ -501,6 +510,8 @@ nautilus_batch_rename_class_init (NautilusBatchRenameClass *klass)
gtk_widget_class_bind_template_child (widget_class, NautilusBatchRename, add_button_label);
gtk_widget_class_bind_template_child (widget_class, NautilusBatchRename, numbering_order_label);
gtk_widget_class_bind_template_child (widget_class, NautilusBatchRename, scrolled_window);
+ gtk_widget_class_bind_template_child (widget_class, NautilusBatchRename, numbering_order_popover);
+ gtk_widget_class_bind_template_child (widget_class, NautilusBatchRename, numbering_order_button);
gtk_widget_class_bind_template_callback (widget_class, file_names_widget_entry_on_changed);
gtk_widget_class_bind_template_callback (widget_class, batch_rename_dialog_on_closed);
@@ -508,6 +519,8 @@ nautilus_batch_rename_class_init (NautilusBatchRenameClass *klass)
gtk_widget_class_bind_template_callback (widget_class, batch_rename_mode_changed);
gtk_widget_class_bind_template_callback (widget_class, add_button_clicked);
gtk_widget_class_bind_template_callback (widget_class, add_popover_closed);
+ gtk_widget_class_bind_template_callback (widget_class, numbering_order_button_clicked);
+ gtk_widget_class_bind_template_callback (widget_class, numbering_order_popover_closed);
}
GtkWidget*
diff --git a/src/resources/ui/nautilus-batch-rename-dialog.ui
b/src/resources/ui/nautilus-batch-rename-dialog.ui
index 553dd64..6c1f529 100644
--- a/src/resources/ui/nautilus-batch-rename-dialog.ui
+++ b/src/resources/ui/nautilus-batch-rename-dialog.ui
@@ -148,11 +148,9 @@
</packing>
</child>
<child>
- <object class="GtkMenuButton" id="numbering_order_button">
+ <object class="GtkToggleButton" id="numbering_order_button">
<property name="visible">True</property>
- <property name="sensitive">True</property>
- <property name="use-popover">True</property>
- <property name="menu_model">numbering_order_menu</property>
+ <signal name="toggled" handler="numbering_order_button_clicked" swapped="yes" />
<child>
<object class="GtkBox">
<property name="visible">True</property>
@@ -306,8 +304,8 @@
</template>
<object class="GtkPopover" id="add_popover">
- <property name="relative-to">add_button</property>
<property name="position">bottom</property>
+ <property name="relative-to">add_button</property>
<signal name="closed" handler="add_popover_closed" swapped="yes" />
<child>
<object class="GtkLabel">
@@ -323,26 +321,48 @@
<property name="visible">True</property>
<property name="icon_name">object-select-symbolic</property>
</object>
-
- <menu id="numbering_order_menu">
- <section>
- <item>
- <attribute name="id">ascending</attribute>
- <attribute name="label" translatable="yes">Original name (Ascending) </attribute>
- <attribute name="action">dialog.numbering-order-changed-ascending</attribute>
- </item>
- <item>
- <attribute name="label" translatable="yes">Original name (Descending)</attribute>
- <attribute name="action">dialog.numbering-order-changed-descending</attribute>
- </item>
- <item>
- <attribute name="label" translatable="yes">First Modified</attribute>
- <attribute name="action">dialog.numbering-order-changed-first-modified</attribute>
- </item>
- <item>
- <attribute name="label" translatable="yes">Last Modified</attribute>
- <attribute name="action">dialog.numbering-order-changed-last-modified</attribute>
- </item>
- </section>
- </menu>
+ <object class="GtkPopoverMenu" id="numbering_order_popover">
+ <property name="relative-to">numbering_order_button</property>
+ <property name="position">bottom</property>
+ <signal name="closed" handler="numbering_order_popover_closed" swapped="yes" />
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkModelButton" id="original_ascending">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="text" translatable="yes">Original name (Ascending) </property>
+ <property name="action-name">dialog.numbering-order-changed-ascending</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkModelButton" id="original_descending">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="text" translatable="yes">Original name (Descending) </property>
+ <property name="action-name">dialog.numbering-order-changed-descending</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkModelButton" id="first_modified">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="text" translatable="yes">First Modified</property>
+ <property name="action-name">dialog.numbering-order-changed-first-modified</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkModelButton" id="last_modified">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="text" translatable="yes">Last Modified</property>
+ <property name="action-name">dialog.numbering-order-changed-last-modified</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
</interface>
\ No newline at end of file
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]