window: move search-view into ui file
This new impl of search-view will allow a lot of cleaning on GcalWindow impl
This commit is contained in:
@@ -10,6 +10,7 @@
|
|||||||
<property name="show_menubar">False</property>
|
<property name="show_menubar">False</property>
|
||||||
<signal name="key-press-event" handler="key_pressed" object="GcalWindow" swapped="no"/>
|
<signal name="key-press-event" handler="key_pressed" object="GcalWindow" swapped="no"/>
|
||||||
<signal name="window-state-event" handler="window_state_changed" object="GcalWindow" swapped="no"/>
|
<signal name="window-state-event" handler="window_state_changed" object="GcalWindow" swapped="no"/>
|
||||||
|
<property name="active-date" bind-source="search_view" bind-property="active-date" bind-flags="default|sync-create"/>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkOverlay" id="views_overlay">
|
<object class="GtkOverlay" id="views_overlay">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
@@ -305,6 +306,11 @@
|
|||||||
<class name="views"/>
|
<class name="views"/>
|
||||||
</style>
|
</style>
|
||||||
</template>
|
</template>
|
||||||
|
<object class="GcalSearchView" id="search_view">
|
||||||
|
<property name="visible">False</property>
|
||||||
|
<property name="relative_to">search_entry</property>
|
||||||
|
<signal name="event-activated" handler="search_event_selected" object="GcalWindow" swapped="no"/>
|
||||||
|
</object>
|
||||||
<object class="GtkPopover" id="popover">
|
<object class="GtkPopover" id="popover">
|
||||||
<property name="visible">False</property>
|
<property name="visible">False</property>
|
||||||
<property name="relative_to">views_stack</property>
|
<property name="relative_to">views_stack</property>
|
||||||
|
|||||||
+14
-43
@@ -81,7 +81,9 @@ typedef struct
|
|||||||
GtkWidget *new_event_details_button;
|
GtkWidget *new_event_details_button;
|
||||||
GtkWidget *new_event_what_entry;
|
GtkWidget *new_event_what_entry;
|
||||||
|
|
||||||
/* day, week, month, year, list, search */
|
GtkWidget *search_view;
|
||||||
|
|
||||||
|
/* day, week, month, year, list */
|
||||||
GtkWidget *views [6];
|
GtkWidget *views [6];
|
||||||
GtkWidget *edit_dialog;
|
GtkWidget *edit_dialog;
|
||||||
|
|
||||||
@@ -215,10 +217,6 @@ static void search_bar_revealer_toggled (GObject *o
|
|||||||
GParamSpec *pspec,
|
GParamSpec *pspec,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
|
||||||
static void search_mode_toggled (GObject *object,
|
|
||||||
GParamSpec *pspec,
|
|
||||||
gpointer user_data);
|
|
||||||
|
|
||||||
static void remove_event (GtkWidget *notification,
|
static void remove_event (GtkWidget *notification,
|
||||||
GParamSpec *spec,
|
GParamSpec *spec,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
@@ -1017,13 +1015,14 @@ search_toggled (GObject *object,
|
|||||||
gtk_widget_show (priv->search_bar);
|
gtk_widget_show (priv->search_bar);
|
||||||
|
|
||||||
/* update header_bar widget */
|
/* update header_bar widget */
|
||||||
gcal_search_view_search (GCAL_SEARCH_VIEW (priv->views[GCAL_WINDOW_VIEW_SEARCH]), NULL, NULL);
|
gcal_search_view_search (GCAL_SEARCH_VIEW (priv->search_view), NULL, NULL);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
g_debug ("Leaving search mode");
|
g_debug ("Leaving search mode");
|
||||||
/* update header_bar */
|
/* update header_bar */
|
||||||
priv->leaving_search_mode = TRUE;
|
priv->leaving_search_mode = TRUE;
|
||||||
|
gtk_widget_hide (priv->search_view);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1038,8 +1037,8 @@ search_changed (GtkEditable *editable,
|
|||||||
if (gtk_search_bar_get_search_mode (GTK_SEARCH_BAR (priv->search_bar)))
|
if (gtk_search_bar_get_search_mode (GTK_SEARCH_BAR (priv->search_bar)))
|
||||||
{
|
{
|
||||||
/* perform the search */
|
/* perform the search */
|
||||||
gcal_search_view_search (GCAL_SEARCH_VIEW (priv->views[GCAL_WINDOW_VIEW_SEARCH]), "summary",
|
gcal_search_view_search (GCAL_SEARCH_VIEW (priv->search_view),
|
||||||
gtk_entry_get_text (GTK_ENTRY (priv->search_entry)));
|
"summary", gtk_entry_get_text (GTK_ENTRY (priv->search_entry)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1055,20 +1054,7 @@ search_bar_revealer_toggled (GObject *object,
|
|||||||
if (!gtk_revealer_get_child_revealed (GTK_REVEALER (object)))
|
if (!gtk_revealer_get_child_revealed (GTK_REVEALER (object)))
|
||||||
gtk_widget_hide (priv->search_bar);
|
gtk_widget_hide (priv->search_bar);
|
||||||
else
|
else
|
||||||
gtk_widget_show (priv->views[GCAL_WINDOW_VIEW_SEARCH]);
|
gtk_widget_show (priv->search_view);
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
search_mode_toggled (GObject *object,
|
|
||||||
GParamSpec *pspec,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
GcalWindowPrivate *priv;
|
|
||||||
|
|
||||||
priv = gcal_window_get_instance_private (GCAL_WINDOW (user_data));
|
|
||||||
|
|
||||||
if (!gtk_search_bar_get_search_mode (GTK_SEARCH_BAR (object)))
|
|
||||||
gtk_widget_hide (priv->views[GCAL_WINDOW_VIEW_SEARCH]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -1190,6 +1176,7 @@ gcal_window_class_init(GcalWindowClass *klass)
|
|||||||
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, popover);
|
||||||
|
gtk_widget_class_bind_template_child_private (widget_class, GcalWindow, search_view);
|
||||||
|
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, GcalWindow, new_event_title_label);
|
gtk_widget_class_bind_template_child_private (widget_class, GcalWindow, new_event_title_label);
|
||||||
gtk_widget_class_bind_template_child_private (widget_class, GcalWindow, new_event_create_button);
|
gtk_widget_class_bind_template_child_private (widget_class, GcalWindow, new_event_create_button);
|
||||||
@@ -1218,6 +1205,9 @@ gcal_window_class_init(GcalWindowClass *klass)
|
|||||||
|
|
||||||
/* Syncronization related */
|
/* Syncronization related */
|
||||||
gtk_widget_class_bind_template_callback (widget_class, window_state_changed);
|
gtk_widget_class_bind_template_callback (widget_class, window_state_changed);
|
||||||
|
|
||||||
|
/* search related */
|
||||||
|
gtk_widget_class_bind_template_callback (widget_class, search_event_selected);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -1306,22 +1296,10 @@ gcal_window_constructed (GObject *object)
|
|||||||
"year", _("Year"));
|
"year", _("Year"));
|
||||||
|
|
||||||
/* search view */
|
/* search view */
|
||||||
priv->views[GCAL_WINDOW_VIEW_SEARCH] = gcal_search_view_new ();
|
gcal_search_view_connect (GCAL_SEARCH_VIEW (priv->search_view), priv->manager);
|
||||||
gcal_search_view_connect (GCAL_SEARCH_VIEW (priv->views[GCAL_WINDOW_VIEW_SEARCH]), priv->manager);
|
gcal_search_view_set_time_format (GCAL_SEARCH_VIEW (priv->search_view), use_24h_format);
|
||||||
g_object_ref_sink (priv->views[GCAL_WINDOW_VIEW_SEARCH]);
|
|
||||||
|
|
||||||
gcal_search_view_set_time_format (GCAL_SEARCH_VIEW (priv->views[GCAL_WINDOW_VIEW_SEARCH]), use_24h_format);
|
|
||||||
gtk_popover_set_relative_to (GTK_POPOVER (priv->views[GCAL_WINDOW_VIEW_SEARCH]), priv->search_entry);
|
|
||||||
|
|
||||||
g_object_bind_property (GCAL_WINDOW (object), "active-date", priv->views[GCAL_WINDOW_VIEW_SEARCH], "active-date",
|
|
||||||
G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE);
|
|
||||||
|
|
||||||
/* signals connection/handling */
|
/* signals connection/handling */
|
||||||
/* HACK to ensure proper destroy of search-view widget */
|
|
||||||
g_signal_connect_swapped (priv->views_stack, "destroy",
|
|
||||||
G_CALLBACK (gtk_widget_destroy),
|
|
||||||
priv->views[GCAL_WINDOW_VIEW_SEARCH]);
|
|
||||||
|
|
||||||
/* only GcalView implementations */
|
/* only GcalView implementations */
|
||||||
for (i = 0; i < 4; ++i)
|
for (i = 0; i < 4; ++i)
|
||||||
{
|
{
|
||||||
@@ -1336,10 +1314,6 @@ gcal_window_constructed (GObject *object)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
g_signal_connect (priv->views[GCAL_WINDOW_VIEW_SEARCH], "event-activated", G_CALLBACK (search_event_selected),
|
|
||||||
object);
|
|
||||||
g_signal_connect (priv->search_bar, "notify::search-mode-enabled", G_CALLBACK (search_mode_toggled), object);
|
|
||||||
|
|
||||||
/* refresh timeout, first is fast */
|
/* refresh timeout, first is fast */
|
||||||
priv->refresh_timeout_id = g_timeout_add (FAST_REFRESH_TIMEOUT, (GSourceFunc) refresh_sources, object);
|
priv->refresh_timeout_id = g_timeout_add (FAST_REFRESH_TIMEOUT, (GSourceFunc) refresh_sources, object);
|
||||||
}
|
}
|
||||||
@@ -1357,9 +1331,6 @@ gcal_window_finalize (GObject *object)
|
|||||||
if (priv->views_switcher != NULL)
|
if (priv->views_switcher != NULL)
|
||||||
g_object_unref (priv->views_switcher);
|
g_object_unref (priv->views_switcher);
|
||||||
|
|
||||||
if (priv->views[GCAL_WINDOW_VIEW_SEARCH] != NULL)
|
|
||||||
g_object_unref (priv->views[GCAL_WINDOW_VIEW_SEARCH]);
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (gcal_window_parent_class)->finalize (object);
|
G_OBJECT_CLASS (gcal_window_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user