[gnome-todo] task-list-panel: Fix panel popover



commit dfbe18537b13ac8408e2e2ec8d2aac941cbcde52
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Thu Apr 2 16:33:39 2020 -0300

    task-list-panel: Fix panel popover

 src/gtd-task-list-panel.c  |  12 +++-
 src/gtd-task-list-panel.ui | 160 +++++++++++++++++++++++++--------------------
 2 files changed, 99 insertions(+), 73 deletions(-)
---
diff --git a/src/gtd-task-list-panel.c b/src/gtd-task-list-panel.c
index 1590411..4fd5e2a 100644
--- a/src/gtd-task-list-panel.c
+++ b/src/gtd-task-list-panel.c
@@ -1,6 +1,6 @@
 /* gtd-task-list-panel.c
  *
- * Copyright 2018 Georges Basile Stavracas Neto <georges stavracas gmail com>
+ * Copyright 2018-2020 Georges Basile Stavracas Neto <georges stavracas gmail com>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -39,6 +39,7 @@ struct _GtdTaskListPanel
   GtkButton          *archive_button;
   GtkFlowBox         *colors_flowbox;
   GtkPopover         *popover;
+  GtkStack           *popover_stack;
   GtkWidget          *rename_button;
   GtkEditable        *rename_entry;
   GtdTaskListView    *task_list_view;
@@ -278,6 +279,13 @@ on_delete_button_clicked_cb (GtkButton        *button,
   g_signal_emit (self, signals[LIST_DELETED], 0, list);
 }
 
+static void
+on_go_to_rename_page_button_clicked_cb (GtkButton        *button,
+                                        GtdTaskListPanel *self)
+{
+  gtk_stack_set_visible_child_name (self->popover_stack, "rename");
+}
+
 static void
 on_popover_hidden_cb (GtkPopover       *popover,
                       GtdTaskListPanel *self)
@@ -535,6 +543,7 @@ gtd_task_list_panel_class_init (GtdTaskListPanelClass *klass)
   gtk_widget_class_bind_template_child (widget_class, GtdTaskListPanel, archive_button);
   gtk_widget_class_bind_template_child (widget_class, GtdTaskListPanel, colors_flowbox);
   gtk_widget_class_bind_template_child (widget_class, GtdTaskListPanel, popover);
+  gtk_widget_class_bind_template_child (widget_class, GtdTaskListPanel, popover_stack);
   gtk_widget_class_bind_template_child (widget_class, GtdTaskListPanel, rename_button);
   gtk_widget_class_bind_template_child (widget_class, GtdTaskListPanel, rename_entry);
   gtk_widget_class_bind_template_child (widget_class, GtdTaskListPanel, rename_entry);
@@ -543,6 +552,7 @@ gtd_task_list_panel_class_init (GtdTaskListPanelClass *klass)
   gtk_widget_class_bind_template_callback (widget_class, on_archive_button_clicked_cb);
   gtk_widget_class_bind_template_callback (widget_class, on_colors_flowbox_child_activated_cb);
   gtk_widget_class_bind_template_callback (widget_class, on_delete_button_clicked_cb);
+  gtk_widget_class_bind_template_callback (widget_class, on_go_to_rename_page_button_clicked_cb);
   gtk_widget_class_bind_template_callback (widget_class, on_popover_hidden_cb);
   gtk_widget_class_bind_template_callback (widget_class, on_rename_button_clicked_cb);
   gtk_widget_class_bind_template_callback (widget_class, on_rename_entry_activated_cb);
diff --git a/src/gtd-task-list-panel.ui b/src/gtd-task-list-panel.ui
index fe9cdf2..85940ff 100644
--- a/src/gtd-task-list-panel.ui
+++ b/src/gtd-task-list-panel.ui
@@ -5,88 +5,104 @@
       <object class="GtdTaskListView" id="task_list_view"/>
     </child>
   </template>
-  <object class="GtkPopoverMenu" id="popover">
+  <object class="GtkPopover" id="popover">
     <property name="visible">0</property>
     <signal name="hide" handler="on_popover_hidden_cb" object="GtdTaskListPanel" swapped="no"/>
     <child>
-      <object class="GtkBox">
-        <property name="name">main</property>
-        <property name="orientation">vertical</property>
+      <object class="GtkStack" id="popover_stack">
+
+        <!-- Main Page -->
         <child>
-          <object class="GtkFlowBox" id="colors_flowbox">
-            <property name="hexpand">true</property>
-            <property name="vexpand">true</property>
-            <property name="selection-mode">none</property>
-            <property name="min-children-per-line">3</property>
-            <property name="max-children-per-line">3</property>
-            <signal name="child-activated" handler="on_colors_flowbox_child_activated_cb" 
object="GtdTaskListPanel" swapped="no"/>
-          </object>
-        </child>
-        <child>
-          <object class="GtkModelButton">
-            <property name="text" translatable="yes">Rename</property>
-            <property name="menu-name">rename</property>
-          </object>
-        </child>
-        <child>
-          <object class="GtkModelButton">
-            <property name="text" translatable="yes">Clear completed tasks…</property>
-            <property name="action-name">list.clear-completed-tasks</property>
-          </object>
-        </child>
-        <child>
-          <object class="GtkSeparator"/>
-        </child>
-        <child>
-          <object class="GtkButton" id="archive_button">
-            <property name="label" translatable="yes">Archive</property>
-            <signal name="clicked" handler="on_archive_button_clicked_cb" object="GtdTaskListPanel" 
swapped="no"/>
-          </object>
-        </child>
-        <child>
-          <object class="GtkModelButton">
-            <property name="text" translatable="yes">Delete</property>
-            <signal name="clicked" handler="on_delete_button_clicked_cb" object="GtdTaskListPanel" 
swapped="no"/>
-          </object>
-        </child>
-      </object>
-    </child>
-    <child>
-      <object class="GtkBox">
-        <property name="name">rename</property>
-        <property name="orientation">vertical</property>
-        <property name="spacing">12</property>
-        <property name="margin-top">12</property>
-        <property name="margin-bottom">12</property>
-        <property name="margin-start">12</property>
-        <property name="margin-end">12</property>
-        <child>
-          <object class="GtkModelButton" id="rename_header_button">
-            <property name="text" translatable="yes">Rename</property>
-            <property name="menu-name">main</property>
-            <property name="role">title</property>
+          <object class="GtkStackPage">
+            <property name="name">main</property>
+            <property name="child">
+              <object class="GtkBox">
+                <property name="orientation">vertical</property>
+                <child>
+                  <object class="GtkFlowBox" id="colors_flowbox">
+                    <property name="hexpand">true</property>
+                    <property name="vexpand">true</property>
+                    <property name="selection-mode">none</property>
+                    <property name="min-children-per-line">3</property>
+                    <property name="max-children-per-line">3</property>
+                    <signal name="child-activated" handler="on_colors_flowbox_child_activated_cb" 
object="GtdTaskListPanel" swapped="no"/>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkModelButton">
+                    <property name="text" translatable="yes">Rename</property>
+                    <signal name="clicked" handler="on_go_to_rename_page_button_clicked_cb" 
object="GtdTaskListPanel" swapped="no"/>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkModelButton">
+                    <property name="text" translatable="yes">Clear completed tasks…</property>
+                    <property name="action-name">list.clear-completed-tasks</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkSeparator"/>
+                </child>
+                <child>
+                  <object class="GtkButton" id="archive_button">
+                    <property name="label" translatable="yes">Archive</property>
+                    <signal name="clicked" handler="on_archive_button_clicked_cb" object="GtdTaskListPanel" 
swapped="no"/>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkModelButton">
+                    <property name="text" translatable="yes">Delete</property>
+                    <signal name="clicked" handler="on_delete_button_clicked_cb" object="GtdTaskListPanel" 
swapped="no"/>
+                  </object>
+                </child>
+              </object>
+            </property>
           </object>
         </child>
+
+        <!-- Rename Page -->
         <child>
-          <object class="GtkBox">
-            <property name="spacing">12</property>
-            <child>
-              <object class="GtkEntry" id="rename_entry">
-                <signal name="activate" handler="on_rename_entry_activated_cb" object="GtdTaskListPanel" 
swapped="no"/>
-                <signal name="notify::text" handler="on_rename_entry_text_changed_cb" 
object="GtdTaskListPanel" swapped="no"/>
-              </object>
-            </child>
-            <child>
-              <object class="GtkButton" id="rename_button">
-                <property name="label" translatable="yes">Rename</property>
-                <signal name="clicked" handler="on_rename_button_clicked_cb" object="GtdTaskListPanel" 
swapped="no"/>
-                <style>
-                  <class name="destructive-action"/>
-                </style>
+          <object class="GtkStackPage">
+            <property name="name">rename</property>
+            <property name="child">
+              <object class="GtkBox">
+                <property name="orientation">vertical</property>
+                <property name="spacing">12</property>
+                <property name="margin-top">12</property>
+                <property name="margin-bottom">12</property>
+                <property name="margin-start">12</property>
+                <property name="margin-end">12</property>
+                <child>
+                  <object class="GtkModelButton" id="rename_header_button">
+                    <property name="text" translatable="yes">Rename</property>
+                    <property name="role">title</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkBox">
+                    <property name="spacing">12</property>
+                    <child>
+                      <object class="GtkEntry" id="rename_entry">
+                        <signal name="activate" handler="on_rename_entry_activated_cb" 
object="GtdTaskListPanel" swapped="no"/>
+                        <signal name="notify::text" handler="on_rename_entry_text_changed_cb" 
object="GtdTaskListPanel" swapped="no"/>
+                      </object>
+                    </child>
+                    <child>
+                      <object class="GtkButton" id="rename_button">
+                        <property name="label" translatable="yes">Rename</property>
+                        <signal name="clicked" handler="on_rename_button_clicked_cb" 
object="GtdTaskListPanel" swapped="no"/>
+                        <style>
+                          <class name="destructive-action"/>
+                        </style>
+                      </object>
+                    </child>
+                  </object>
+                </child>
               </object>
-            </child>
+            </property>
           </object>
         </child>
+
       </object>
     </child>
   </object>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]