window: Simplify window menu

We could have relied on the popover menu automatic
menu handling capabilities from the very beginning.
This commit is contained in:
Georges Basile Stavracas Neto
2018-07-29 00:54:02 -03:00
parent 89e80e688b
commit 7d99af9c36
3 changed files with 25 additions and 48 deletions
+1 -1
View File
@@ -10,7 +10,7 @@
<child> <child>
<object class="GtkModelButton"> <object class="GtkModelButton">
<property name="text" translatable="yes">_Weather</property> <property name="text" translatable="yes">_Weather</property>
<property name="menu-name">main-menu</property> <property name="menu-name">main</property>
<property name="inverted">True</property> <property name="inverted">True</property>
<property name="centered">True</property> <property name="centered">True</property>
<property name="visible">True</property> <property name="visible">True</property>
+24 -35
View File
@@ -370,55 +370,44 @@
<signal name="response" handler="edit_dialog_closed" object="GcalWindow" swapped="no"/> <signal name="response" handler="edit_dialog_closed" object="GcalWindow" swapped="no"/>
<signal name="delete-event" handler="gtk_widget_hide_on_delete" object="GcalWindow" swapped="no"/> <signal name="delete-event" handler="gtk_widget_hide_on_delete" object="GcalWindow" swapped="no"/>
</object> </object>
<object class="GtkPopoverMenu" id="win_menu"> <object class="GtkPopoverMenu" id="win_menu">
<signal name="notify::visible" handler="on_popover_menu_visible_cb" object="GcalWindow" swapped="no" />
<child> <child>
<object class="GtkStack" id="win_menu_stack"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="margin">12</property>
<property name="homogeneous">False</property> <property name="orientation">vertical</property>
<property name="transition_type">slide-left-right</property>
<property name="interpolate-size">True</property> <!-- Synchronize -->
<child> <child>
<object class="GtkModelButton">
<!-- New Event -->
<object class="GtkBox">
<property name="margin">12</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="orientation">vertical</property> <property name="action-name">app.sync</property>
<property name="text" translatable="yes">_Synchronize</property>
<!-- Synchronize -->
<child>
<object class="GtkModelButton">
<property name="text" translatable="yes">_Synchronize</property>
<property name="action-name">app.sync</property>
<property name="visible">True</property>
</object>
</child>
<child>
<object class="GtkModelButton" id="win-menu-open-weather">
<property name="text" translatable="yes">_Weather</property>
<property name="menu-name">weather-menu</property>
<property name="visible">True</property>
</object>
</child>
</object> </object>
<packing>
<property name="name">main-menu</property>
</packing>
</child> </child>
<!-- Weather --> <!-- Weather -->
<child> <child>
<object class="GcalWeatherSettings" id="weather_settings"> <object class="GtkModelButton">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="menu-name">weather</property>
<property name="text" translatable="yes">_Weather</property>
</object> </object>
<packing>
<property name="name">weather-menu</property>
</packing>
</child> </child>
</object> </object>
</child> </child>
<!-- Weather submenu -->
<child>
<object class="GcalWeatherSettings" id="weather_settings">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="submenu">weather</property>
</packing>
</child>
</object> </object>
</interface> </interface>
-12
View File
@@ -126,7 +126,6 @@ struct _GcalWindow
GtkWidget *today_button; GtkWidget *today_button;
GtkWidget *forward_button; GtkWidget *forward_button;
GtkWidget *views_switcher; GtkWidget *views_switcher;
GtkWidget *win_menu_stack;
/* new event popover widgets */ /* new event popover widgets */
GtkWidget *quick_add_popover; GtkWidget *quick_add_popover;
@@ -929,14 +928,6 @@ window_state_changed (GtkWidget *widget,
return FALSE; return FALSE;
} }
static void
on_popover_menu_visible_cb (GtkWidget *widget,
GParamSpec *pspec,
GcalWindow *self)
{
gtk_stack_set_visible_child_name (GTK_STACK (self->win_menu_stack), "main-menu");
}
static void static void
edit_event (GcalQuickAddPopover *popover, edit_event (GcalQuickAddPopover *popover,
GcalEvent *event, GcalEvent *event,
@@ -1479,7 +1470,6 @@ gcal_window_class_init (GcalWindowClass *klass)
gtk_widget_class_bind_template_child (widget_class, GcalWindow, views_overlay); gtk_widget_class_bind_template_child (widget_class, GcalWindow, views_overlay);
gtk_widget_class_bind_template_child (widget_class, GcalWindow, views_stack); gtk_widget_class_bind_template_child (widget_class, GcalWindow, views_stack);
gtk_widget_class_bind_template_child (widget_class, GcalWindow, views_switcher); gtk_widget_class_bind_template_child (widget_class, GcalWindow, views_switcher);
gtk_widget_class_bind_template_child (widget_class, GcalWindow, win_menu_stack);
gtk_widget_class_bind_template_child (widget_class, GcalWindow, weather_settings); gtk_widget_class_bind_template_child (widget_class, GcalWindow, weather_settings);
gtk_widget_class_bind_template_child (widget_class, GcalWindow, week_view); gtk_widget_class_bind_template_child (widget_class, GcalWindow, week_view);
gtk_widget_class_bind_template_child (widget_class, GcalWindow, year_view); gtk_widget_class_bind_template_child (widget_class, GcalWindow, year_view);
@@ -1497,8 +1487,6 @@ gcal_window_class_init (GcalWindowClass *klass)
gtk_widget_class_bind_template_callback (widget_class, view_changed); gtk_widget_class_bind_template_callback (widget_class, view_changed);
gtk_widget_class_bind_template_callback (widget_class, date_updated); gtk_widget_class_bind_template_callback (widget_class, date_updated);
gtk_widget_class_bind_template_callback (widget_class, on_popover_menu_visible_cb);
/* Event removal related */ /* Event removal related */
gtk_widget_class_bind_template_callback (widget_class, hide_notification); gtk_widget_class_bind_template_callback (widget_class, hide_notification);
gtk_widget_class_bind_template_callback (widget_class, remove_event); gtk_widget_class_bind_template_callback (widget_class, remove_event);