window: move more code into ui file

Probably I can load the GMenuModel of the popover directly but I don't
know exactly how, and I've asked already and you can set bindings using
builder's ui file, just like before I don't know how at this time.
This commit is contained in:
Erick Pérez Castellanos
2014-12-04 17:10:54 -05:00
parent aa445c33d1
commit f8f8991510
2 changed files with 26 additions and 27 deletions
+17
View File
@@ -8,6 +8,7 @@
<property name="default_width">800</property>
<property name="default_height">600</property>
<property name="show_menubar">False</property>
<signal name="key-press-event" handler="key_pressed" object="GcalWindow" swapped="no"/>
<child>
<object class="GtkOverlay" id="views_overlay">
<property name="visible">True</property>
@@ -25,6 +26,7 @@
<property name="no_show_all">True</property>
<property name="hexpand">True</property>
<property name="show_close_button">True</property>
<signal name="notify::search-mode-enabled" handler="search_toggled" object="GcalWindow" swapped="no"/>
<child>
<object class="GtkGrid" id="search_entry_grid">
<property name="visible">True</property>
@@ -39,6 +41,7 @@
<property name="primary_icon_name">edit-find-symbolic</property>
<property name="primary_icon_activatable">False</property>
<property name="primary_icon_sensitive">False</property>
<signal name="search-changed" handler="search_changed" object="GcalWindow" swapped="no"/>
</object>
<packing>
<property name="left_attach">0</property>
@@ -61,6 +64,8 @@
<property name="vexpand">True</property>
<property name="transition_duration">250</property>
<property name="transition_type">slide-left-right</property>
<signal name="notify::visible-child" handler="view_changed" object="GcalWindow" swapped="no"/>
<signal name="notify::transition-running" handler="stack_transition_running" object="GcalWindow" swapped="no"/>
<style>
<class name="views"/>
</style>
@@ -96,6 +101,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="date_updated" object="GcalWindow" swapped="no"/>
</object>
</child>
<child type="title">
@@ -110,10 +116,12 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_popover">True</property>
<child>
<object class="GtkImage" id="menu_image">
<property name="can_focus">False</property>
<property name="icon_name">open-menu-symbolic</property>
<property name="icon_size">1</property>
</object>
</child>
</object>
@@ -144,4 +152,13 @@
<class name="views"/>
</style>
</template>
<object class="GtkPopover" id="popover">
<property name="visible">False</property>
<property name="relative_to">views_stack</property>
<child>
<object class="GcalNewEventWidget" id="new_event_widget">
<property name="visible">True</property>
</object>
</child>
</object>
</interface>
+9 -27
View File
@@ -980,6 +980,15 @@ gcal_window_class_init(GcalWindowClass *klass)
gtk_widget_class_bind_template_child_private (widget_class, GcalWindow, views_overlay);
gtk_widget_class_bind_template_child_private (widget_class, GcalWindow, views_stack);
gtk_widget_class_bind_template_child_private (widget_class, GcalWindow, views_switcher);
gtk_widget_class_bind_template_child_private (widget_class, GcalWindow, popover);
gtk_widget_class_bind_template_child_private (widget_class, GcalWindow, new_event_widget);
gtk_widget_class_bind_template_callback (widget_class, key_pressed);
gtk_widget_class_bind_template_callback (widget_class, search_toggled);
gtk_widget_class_bind_template_callback (widget_class, search_changed);
gtk_widget_class_bind_template_callback (widget_class, view_changed);
gtk_widget_class_bind_template_callback (widget_class, stack_transition_running);
gtk_widget_class_bind_template_callback (widget_class, date_updated);
}
static void
@@ -1029,8 +1038,6 @@ gcal_window_constructed (GObject *object)
/* header_bar: menu */
gtk_menu_button_set_use_popover (GTK_MENU_BUTTON (priv->menu_button),
TRUE);
builder = gtk_builder_new ();
gtk_builder_add_from_resource (builder,
"/org/gnome/calendar/menus.ui",
@@ -1049,7 +1056,6 @@ gcal_window_constructed (GObject *object)
priv->search_bar, "search-mode-enabled",
G_BINDING_BIDIRECTIONAL);
priv->views[GCAL_WINDOW_VIEW_WEEK] =
gcal_week_view_new (priv->manager);
gcal_week_view_set_first_weekday (
@@ -1086,18 +1092,7 @@ gcal_window_constructed (GObject *object)
"active-date",
G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
/* popover and content */
priv->popover = gtk_popover_new (GTK_WIDGET(priv->views_stack));
priv->new_event_widget = gcal_new_event_widget_new ();
gtk_container_add (GTK_CONTAINER(priv->popover),
GTK_WIDGET(priv->new_event_widget));
/* signals connection/handling */
g_signal_connect (object, "key-press-event",
G_CALLBACK (key_pressed), object);
/* HACK to ensure proper destroy of search-view widget */
g_signal_connect_swapped (priv->views_stack, "destroy",
G_CALLBACK (gtk_widget_destroy),
@@ -1120,19 +1115,6 @@ gcal_window_constructed (GObject *object)
}
}
g_signal_connect (priv->search_bar, "notify::search-mode-enabled",
G_CALLBACK (search_toggled), object);
g_signal_connect (priv->search_entry, "search-changed",
G_CALLBACK (search_changed), object);
g_signal_connect (priv->views_stack, "notify::visible-child",
G_CALLBACK (view_changed), object);
g_signal_connect (priv->views_stack, "notify::transition-running",
G_CALLBACK (stack_transition_running), object);
g_signal_connect (priv->today_button, "clicked",
G_CALLBACK (date_updated), object);
g_signal_connect (gcal_nav_bar_get_prev_button (GCAL_NAV_BAR (priv->nav_bar)),
"clicked", G_CALLBACK (date_updated), object);
g_signal_connect (gcal_nav_bar_get_next_button (GCAL_NAV_BAR (priv->nav_bar)),