[bijiben] emptyResultsBox: inform the user when no book is loaded
- From: Pierre-Yves Luyten <pyluyten src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [bijiben] emptyResultsBox: inform the user when no book is loaded
- Date: Wed, 24 Apr 2013 23:22:10 +0000 (UTC)
commit eeb03809d1b409f3e8bff162ea31c91b71836844
Author: Pierre-Yves Luyten <py luyten fr>
Date: Thu Apr 25 01:20:25 2013 +0200
emptyResultsBox: inform the user when no book is loaded
this is the most trivial case.
Book is loaded but no note appear.
Trashed notes or searching in vain are not yet supported.
src/bjb-controller.c | 13 ++++++++++++-
src/bjb-window-base.c | 22 ++++++++++++++++++++++
src/bjb-window-base.h | 2 ++
3 files changed, 36 insertions(+), 1 deletions(-)
---
diff --git a/src/bjb-controller.c b/src/bjb-controller.c
index 11de083..8bb4801 100644
--- a/src/bjb-controller.c
+++ b/src/bjb-controller.c
@@ -344,6 +344,7 @@ update_controller_callback (GObject *source_object,
result = biji_get_notes_with_strings_or_collection_finish (source_object, res, self->priv->book);
self->priv->notes_to_show = result;
+
sort_and_update (self);
}
@@ -362,10 +363,20 @@ bjb_controller_apply_needle (BjbController *self)
if (needle == NULL || g_strcmp0 (needle,"") == 0)
{
priv->notes_to_show = biji_note_book_get_notes (self->priv->book);
- sort_and_update (self);
+
+ /* If there are no note, report this */
+ if (!priv->notes_to_show)
+ bjb_window_base_switch_to (self->priv->window,
+ BJB_WINDOW_BASE_NO_NOTE);
+
+ /* Otherwise do show existing notes */
+ else
+ sort_and_update (self);
+
return;
}
+ /* There is a research, apply lookup */
biji_get_notes_with_string_or_collection_async (needle, update_controller_callback, self);
}
diff --git a/src/bjb-window-base.c b/src/bjb-window-base.c
index e94e96b..90a402b 100644
--- a/src/bjb-window-base.c
+++ b/src/bjb-window-base.c
@@ -6,6 +6,7 @@
#include <libgd/gd.h>
#include "bjb-bijiben.h"
+#include "bjb-empty-results-box.h"
#include "bjb-window-base.h"
#include "bjb-main-toolbar.h"
#include "bjb-main-view.h"
@@ -39,6 +40,8 @@ struct _BjbWindowBasePriv
GdStack *stack;
GtkWidget *spinner; // this spinner takes the whole place
// and only shows on startup
+ GtkWidget *no_note;
+
BjbWindowViewType current_view;
BjbMainView *view;
BjbMainToolbar *main_toolbar;
@@ -214,6 +217,9 @@ bjb_window_base_new(void)
gtk_widget_show (priv->spinner);
gtk_spinner_start (GTK_SPINNER (priv->spinner));
+ priv->no_note = bjb_empty_results_box_new ();
+ gd_stack_add_named (priv->stack, priv->no_note, "empty");
+
gd_stack_add_named (priv->stack, GTK_WIDGET (priv->view), "main-view");
gtk_widget_show_all (GTK_WIDGET (retval));
@@ -268,6 +274,22 @@ bjb_window_base_switch_to (BjbWindowBase *bwb, BjbWindowViewType type)
destroy_note_if_needed (bwb);
}
+ else if (type == BJB_WINDOW_BASE_NO_NOTE)
+ {
+ bjb_empty_results_box_set_type (BJB_EMPTY_RESULTS_BOX (priv->no_note),
+ BJB_EMPTY_RESULTS_NO_NOTE);
+ gtk_widget_show (priv->no_note);
+ gd_stack_set_visible_child_name (priv->stack, "empty");
+ }
+
+ else if (type == BJB_WINDOW_BASE_NO_RESULT)
+ {
+ bjb_empty_results_box_set_type (BJB_EMPTY_RESULTS_BOX (priv->no_note),
+ BJB_EMPTY_RESULTS_NO_RESULTS);
+ gtk_widget_show (priv->no_note);
+ gd_stack_set_visible_child_name (priv->stack, "empty");
+ }
+
else
{
gtk_widget_show_all (GTK_WIDGET (priv->note_overlay));
diff --git a/src/bjb-window-base.h b/src/bjb-window-base.h
index c2273e2..ca9c391 100644
--- a/src/bjb-window-base.h
+++ b/src/bjb-window-base.h
@@ -33,6 +33,8 @@ struct _BjbWindowBase
typedef enum {
BJB_WINDOW_BASE_MAIN_VIEW,
BJB_WINDOW_BASE_NOTE_VIEW,
+ BJB_WINDOW_BASE_NO_NOTE,
+ BJB_WINDOW_BASE_NO_RESULT,
BJB_WINDOW_BASE_NO_VIEW
} BjbWindowViewType;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]