[almanah] Deactivate the events expander when no events and show an events counter
- From: Ãlvaro PeÃa <alvaropg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [almanah] Deactivate the events expander when no events and show an events counter
- Date: Sun, 15 Jul 2012 10:44:14 +0000 (UTC)
commit 8e44f523cf903ea05a334fc753465bc1c93d4b3c
Author: Ãlvaro PeÃa <alvaropg gmail com>
Date: Mon Jul 9 18:27:18 2012 +0200
Deactivate the events expander when no events and show an events counter
data/almanah.ui | 33 +++++++++++++++++++++++++--------
src/main-window.c | 19 +++++++++++++++++++
2 files changed, 44 insertions(+), 8 deletions(-)
---
diff --git a/data/almanah.ui b/data/almanah.ui
index fdb0a5f..455fb83 100644
--- a/data/almanah.ui
+++ b/data/almanah.ui
@@ -377,14 +377,31 @@
<child>
<object class="GtkExpander" id="almanah_mw_events_expander">
<child type="label">
- <object class="GtkLabel" id="almanah_mw_events_label">
- <property name="label" translatable="yes">Past Events</property>
- <accessibility>
- <relation target="almanah_mw_events_tree_view" type="label-for"/>
- </accessibility>
- <attributes>
- <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
- </attributes>
+ <object class="GtkHBox" id="almanah_mw_events_expander_label_box">
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="almanah_mw_events_label">
+ <property name="label" translatable="yes">Past events</property>
+ <accessibility>
+ <relation target="almanah_mw_events_tree_view" type="label-for"/>
+ </accessibility>
+ <attributes>
+ <attribute name="weight" value="PANGO_WEIGHT_BOLD"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="almanah_mw_events_count_label">
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
</object>
</child>
<child>
diff --git a/src/main-window.c b/src/main-window.c
index a7acf59..7d9f83a 100644
--- a/src/main-window.c
+++ b/src/main-window.c
@@ -101,6 +101,8 @@ struct _AlmanahMainWindowPrivate {
GtkTextBuffer *entry_buffer;
AlmanahCalendarButton *calendar_button;
GtkListStore *event_store;
+ GtkWidget *events_expander;
+ GtkLabel *events_count_label;
GtkTreeSelection *events_selection;
GtkToggleAction *bold_action;
GtkToggleAction *italic_action;
@@ -243,6 +245,8 @@ almanah_main_window_new (AlmanahApplication *application)
priv->entry_view = GTK_TEXT_VIEW (gtk_builder_get_object (builder, "almanah_mw_entry_view"));
priv->entry_buffer = gtk_text_view_get_buffer (priv->entry_view);
priv->event_store = GTK_LIST_STORE (gtk_builder_get_object (builder, "almanah_mw_event_store"));
+ priv->events_expander = GTK_WIDGET (gtk_builder_get_object (builder, "almanah_mw_events_expander"));
+ priv->events_count_label = GTK_LABEL (gtk_builder_get_object (builder, "almanah_mw_events_count_label"));
priv->events_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (gtk_builder_get_object (builder, "almanah_mw_events_tree_view")));
priv->bold_action = GTK_TOGGLE_ACTION (gtk_builder_get_object (builder, "almanah_ui_bold"));;
priv->italic_action = GTK_TOGGLE_ACTION (gtk_builder_get_object (builder, "almanah_ui_italic"));
@@ -1358,6 +1362,8 @@ mw_events_updated_cb (AlmanahEventManager *event_manager, AlmanahEventFactoryTyp
AlmanahMainWindowPrivate *priv = main_window->priv;
GSList *_events, *events;
GDate date;
+ guint events_count = 0;
+ gchar *events_text;
almanah_calendar_button_get_date (main_window->priv->calendar_button, &date);
_events = almanah_event_manager_get_events (event_manager, type_id, &date);
@@ -1382,9 +1388,22 @@ mw_events_updated_cb (AlmanahEventManager *event_manager, AlmanahEventFactoryTyp
4, g_strdup_printf ("<small>%s</small>", almanah_event_get_name (event)),
-1);
+ events_count++;
+
g_object_unref (event);
}
+ events_text = g_strdup_printf ("%u", events_count);
+ gtk_label_set_label (priv->events_count_label, events_text);
+ g_free (events_text);
+
+ if (events_count > 0) {
+ gtk_widget_set_sensitive (priv->events_expander, TRUE);
+ } else {
+ gtk_expander_set_expanded (GTK_EXPANDER (priv->events_expander), FALSE);
+ gtk_widget_set_sensitive (priv->events_expander, FALSE);
+ }
+
g_debug ("Finished adding events.");
g_slist_free (_events);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]