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:
@@ -8,6 +8,7 @@
|
|||||||
<property name="default_width">800</property>
|
<property name="default_width">800</property>
|
||||||
<property name="default_height">600</property>
|
<property name="default_height">600</property>
|
||||||
<property name="show_menubar">False</property>
|
<property name="show_menubar">False</property>
|
||||||
|
<signal name="key-press-event" handler="key_pressed" object="GcalWindow" swapped="no"/>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkOverlay" id="views_overlay">
|
<object class="GtkOverlay" id="views_overlay">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
@@ -25,6 +26,7 @@
|
|||||||
<property name="no_show_all">True</property>
|
<property name="no_show_all">True</property>
|
||||||
<property name="hexpand">True</property>
|
<property name="hexpand">True</property>
|
||||||
<property name="show_close_button">True</property>
|
<property name="show_close_button">True</property>
|
||||||
|
<signal name="notify::search-mode-enabled" handler="search_toggled" object="GcalWindow" swapped="no"/>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkGrid" id="search_entry_grid">
|
<object class="GtkGrid" id="search_entry_grid">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
@@ -39,6 +41,7 @@
|
|||||||
<property name="primary_icon_name">edit-find-symbolic</property>
|
<property name="primary_icon_name">edit-find-symbolic</property>
|
||||||
<property name="primary_icon_activatable">False</property>
|
<property name="primary_icon_activatable">False</property>
|
||||||
<property name="primary_icon_sensitive">False</property>
|
<property name="primary_icon_sensitive">False</property>
|
||||||
|
<signal name="search-changed" handler="search_changed" object="GcalWindow" swapped="no"/>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">0</property>
|
<property name="left_attach">0</property>
|
||||||
@@ -61,6 +64,8 @@
|
|||||||
<property name="vexpand">True</property>
|
<property name="vexpand">True</property>
|
||||||
<property name="transition_duration">250</property>
|
<property name="transition_duration">250</property>
|
||||||
<property name="transition_type">slide-left-right</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>
|
<style>
|
||||||
<class name="views"/>
|
<class name="views"/>
|
||||||
</style>
|
</style>
|
||||||
@@ -96,6 +101,7 @@
|
|||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="receives_default">True</property>
|
<property name="receives_default">True</property>
|
||||||
|
<signal name="clicked" handler="date_updated" object="GcalWindow" swapped="no"/>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child type="title">
|
<child type="title">
|
||||||
@@ -110,10 +116,12 @@
|
|||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="receives_default">True</property>
|
<property name="receives_default">True</property>
|
||||||
|
<property name="use_popover">True</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkImage" id="menu_image">
|
<object class="GtkImage" id="menu_image">
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="icon_name">open-menu-symbolic</property>
|
<property name="icon_name">open-menu-symbolic</property>
|
||||||
|
<property name="icon_size">1</property>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
@@ -144,4 +152,13 @@
|
|||||||
<class name="views"/>
|
<class name="views"/>
|
||||||
</style>
|
</style>
|
||||||
</template>
|
</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>
|
</interface>
|
||||||
|
|||||||
+9
-27
@@ -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_overlay);
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, GcalWindow, views_stack);
|
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, 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
|
static void
|
||||||
@@ -1029,8 +1038,6 @@ gcal_window_constructed (GObject *object)
|
|||||||
|
|
||||||
|
|
||||||
/* header_bar: menu */
|
/* header_bar: menu */
|
||||||
gtk_menu_button_set_use_popover (GTK_MENU_BUTTON (priv->menu_button),
|
|
||||||
TRUE);
|
|
||||||
builder = gtk_builder_new ();
|
builder = gtk_builder_new ();
|
||||||
gtk_builder_add_from_resource (builder,
|
gtk_builder_add_from_resource (builder,
|
||||||
"/org/gnome/calendar/menus.ui",
|
"/org/gnome/calendar/menus.ui",
|
||||||
@@ -1049,7 +1056,6 @@ gcal_window_constructed (GObject *object)
|
|||||||
priv->search_bar, "search-mode-enabled",
|
priv->search_bar, "search-mode-enabled",
|
||||||
G_BINDING_BIDIRECTIONAL);
|
G_BINDING_BIDIRECTIONAL);
|
||||||
|
|
||||||
|
|
||||||
priv->views[GCAL_WINDOW_VIEW_WEEK] =
|
priv->views[GCAL_WINDOW_VIEW_WEEK] =
|
||||||
gcal_week_view_new (priv->manager);
|
gcal_week_view_new (priv->manager);
|
||||||
gcal_week_view_set_first_weekday (
|
gcal_week_view_set_first_weekday (
|
||||||
@@ -1086,18 +1092,7 @@ gcal_window_constructed (GObject *object)
|
|||||||
"active-date",
|
"active-date",
|
||||||
G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
|
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 */
|
/* signals connection/handling */
|
||||||
g_signal_connect (object, "key-press-event",
|
|
||||||
G_CALLBACK (key_pressed), object);
|
|
||||||
|
|
||||||
/* HACK to ensure proper destroy of search-view widget */
|
/* HACK to ensure proper destroy of search-view widget */
|
||||||
g_signal_connect_swapped (priv->views_stack, "destroy",
|
g_signal_connect_swapped (priv->views_stack, "destroy",
|
||||||
G_CALLBACK (gtk_widget_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)),
|
g_signal_connect (gcal_nav_bar_get_prev_button (GCAL_NAV_BAR (priv->nav_bar)),
|
||||||
"clicked", G_CALLBACK (date_updated), object);
|
"clicked", G_CALLBACK (date_updated), object);
|
||||||
g_signal_connect (gcal_nav_bar_get_next_button (GCAL_NAV_BAR (priv->nav_bar)),
|
g_signal_connect (gcal_nav_bar_get_next_button (GCAL_NAV_BAR (priv->nav_bar)),
|
||||||
|
|||||||
Reference in New Issue
Block a user