[bijiben] emptyResuls: draw an empty state if no note found
- From: Pierre-Yves Luyten <pyluyten src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [bijiben] emptyResuls: draw an empty state if no note found
- Date: Wed, 1 May 2013 00:44:46 +0000 (UTC)
commit 8cafc8b6065fe3f351ec944fcc1a63c026456cba
Author: Pierre-Yves Luyten <py luyten fr>
Date: Wed May 1 02:43:33 2013 +0200
emptyResuls: draw an empty state if no note found
src/bjb-controller.c | 18 +++++++++++++-----
src/bjb-main-toolbar.c | 3 ++-
src/bjb-window-base.c | 14 +++++++-------
3 files changed, 22 insertions(+), 13 deletions(-)
---
diff --git a/src/bjb-controller.c b/src/bjb-controller.c
index 8c7ad5f..33fe0ce 100644
--- a/src/bjb-controller.c
+++ b/src/bjb-controller.c
@@ -367,7 +367,14 @@ update_controller_callback (GObject *source_object,
result = biji_get_notes_with_strings_or_collection_finish (source_object, res, self->priv->book);
self->priv->items_to_show = result;
+ if (!result)
+ {
+ bjb_window_base_switch_to (self->priv->window, BJB_WINDOW_BASE_NO_RESULT);
+ return;
+ }
+
sort_and_update (self);
+ bjb_window_base_switch_to (self->priv->window, BJB_WINDOW_BASE_MAIN_VIEW);
}
void
@@ -388,13 +395,14 @@ bjb_controller_apply_needle (BjbController *self)
/* If there are no note, report this */
if (!priv->items_to_show)
- bjb_window_base_switch_to (self->priv->window,
- BJB_WINDOW_BASE_NO_NOTE);
+ {
+ bjb_window_base_switch_to (self->priv->window, BJB_WINDOW_BASE_NO_NOTE);
+ return;
+ }
/* Otherwise do show existing notes */
- else
- sort_and_update (self);
-
+ sort_and_update (self);
+ bjb_window_base_switch_to (self->priv->window, BJB_WINDOW_BASE_MAIN_VIEW);
return;
}
diff --git a/src/bjb-main-toolbar.c b/src/bjb-main-toolbar.c
index 5ba9e72..b5e4ced 100644
--- a/src/bjb-main-toolbar.c
+++ b/src/bjb-main-toolbar.c
@@ -737,7 +737,8 @@ populate_main_toolbar(BjbMainToolbar *self)
if (view_type == BJB_WINDOW_BASE_NOTE_VIEW)
to_be = BJB_TOOLBAR_NOTE_VIEW;
- else if (view_type == BJB_WINDOW_BASE_MAIN_VIEW)
+ else if ( view_type == BJB_WINDOW_BASE_MAIN_VIEW
+ ||view_type == BJB_WINDOW_BASE_NO_RESULT)
{
if (bjb_main_view_get_selection_mode (priv->parent) == TRUE)
to_be = BJB_TOOLBAR_SELECT;
diff --git a/src/bjb-window-base.c b/src/bjb-window-base.c
index 64a6269..f9cc6b3 100644
--- a/src/bjb-window-base.c
+++ b/src/bjb-window-base.c
@@ -255,10 +255,10 @@ bjb_window_base_get_note (BjbWindowBase *self)
static void
destroy_note_if_needed (BjbWindowBase *bwb)
{
+ bwb->priv->note = NULL;
+
if (bwb->priv->note_view && GTK_IS_WIDGET (bwb->priv->note_view))
- {
g_clear_pointer (&(bwb->priv->note_overlay), gtk_widget_destroy);
- }
}
void
@@ -267,6 +267,9 @@ bjb_window_base_switch_to (BjbWindowBase *bwb, BjbWindowViewType type)
BjbWindowBasePriv *priv = bwb->priv;
priv->current_view = type;
+ if (type != BJB_WINDOW_BASE_NOTE_VIEW)
+ destroy_note_if_needed (bwb);
+
switch (type)
{
@@ -275,16 +278,13 @@ bjb_window_base_switch_to (BjbWindowBase *bwb, BjbWindowViewType type)
* Ensure the main view receives the proper signals */
case BJB_WINDOW_BASE_MAIN_VIEW:
- priv->note = NULL;
bjb_search_toolbar_connect (priv->search_bar);
bjb_main_view_connect_signals (priv->view);
gd_stack_set_visible_child_name (priv->stack, "main-view");
- destroy_note_if_needed (bwb);
break;
case BJB_WINDOW_BASE_SPINNER_VIEW:
- priv->note = NULL;
gd_stack_set_visible_child_name (priv->stack, "spinner");
break;
@@ -306,8 +306,6 @@ bjb_window_base_switch_to (BjbWindowBase *bwb, BjbWindowViewType type)
case BJB_WINDOW_BASE_NOTE_VIEW:
- bjb_search_toolbar_fade_out (priv->search_bar);
- bjb_search_toolbar_disconnect (priv->search_bar);
gtk_widget_show_all (GTK_WIDGET (priv->note_overlay));
gd_stack_set_visible_child_name (priv->stack, "note-view");
break;
@@ -326,6 +324,8 @@ bjb_window_base_switch_to_note (BjbWindowBase *bwb, BijiNoteObj *note)
BjbWindowBasePriv *priv = bwb->priv;
GtkWidget *w = GTK_WIDGET (bwb);
+ bjb_search_toolbar_disconnect (priv->search_bar);
+ bjb_search_toolbar_fade_out (priv->search_bar);
destroy_note_if_needed (bwb);
priv->note = note;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]