[gnome-builder] navigation: implement max items in navigation
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] navigation: implement max items in navigation
- Date: Wed, 24 Sep 2014 07:15:52 +0000 (UTC)
commit 5c3dcf757ca6183de4afdcc92c1da6ad4d3e9372
Author: Christian Hergert <christian hergert me>
Date: Wed Sep 24 00:15:46 2014 -0700
navigation: implement max items in navigation
src/navigation/gb-navigation-list.c | 21 +++++++++++++++++----
1 files changed, 17 insertions(+), 4 deletions(-)
---
diff --git a/src/navigation/gb-navigation-list.c b/src/navigation/gb-navigation-list.c
index 5372447..af6f14f 100644
--- a/src/navigation/gb-navigation-list.c
+++ b/src/navigation/gb-navigation-list.c
@@ -16,10 +16,14 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#define G_LOG_DOMAIN "navigation"
+
#include <glib/gi18n.h>
#include "gb-navigation-list.h"
+#define NAVIGATION_MAX_ITEMS 32
+
struct _GbNavigationListPrivate
{
GPtrArray *items;
@@ -118,17 +122,26 @@ gb_navigation_list_append (GbNavigationList *list,
position = list->priv->current + 1;
- if (list->priv->items->len)
+ if (list->priv->items->len > (list->priv->current + 1))
g_ptr_array_remove_range (list->priv->items, position,
list->priv->items->len - 1);
+ if (list->priv->items->len == NAVIGATION_MAX_ITEMS)
+ {
+ g_ptr_array_remove_index (list->priv->items, 0);
+ list->priv->current--;
+ }
+
g_ptr_array_add (list->priv->items, g_object_ref_sink (item));
list->priv->current++;
- g_object_notify_by_pspec (G_OBJECT (list), gParamSpecs [PROP_CURRENT_ITEM]);
- g_object_notify_by_pspec (G_OBJECT (list), gParamSpecs [PROP_CAN_GO_BACKWARD]);
- g_object_notify_by_pspec (G_OBJECT (list), gParamSpecs [PROP_CAN_GO_FORWARD]);
+ g_object_notify_by_pspec (G_OBJECT (list),
+ gParamSpecs [PROP_CURRENT_ITEM]);
+ g_object_notify_by_pspec (G_OBJECT (list),
+ gParamSpecs [PROP_CAN_GO_BACKWARD]);
+ g_object_notify_by_pspec (G_OBJECT (list),
+ gParamSpecs [PROP_CAN_GO_FORWARD]);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]