[gitg] Bind more repository properties to preferences.
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gitg] Bind more repository properties to preferences.
- Date: Tue, 1 Jun 2010 20:16:19 +0000 (UTC)
commit aaa332446a37ee553e1b1d55d752a69e053fbcd8
Author: Ignacio Casal Quinteiro <icq gnome org>
Date: Tue Jun 1 22:15:50 2010 +0200
Bind more repository properties to preferences.
gitg/gitg-window.c | 43 ++++++++++--------
libgitg/gitg-repository.c | 111 +++++++++++++-------------------------------
2 files changed, 57 insertions(+), 97 deletions(-)
---
diff --git a/gitg/gitg-window.c b/gitg/gitg-window.c
index bbe1147..ade2333 100644
--- a/gitg/gitg-window.c
+++ b/gitg/gitg-window.c
@@ -1315,21 +1315,6 @@ convert_setting_to_inactive_gap (GValue const *setting,
return TRUE;
}
-static gboolean
-convert_setting_to_inactive_enabled (GValue const *setting,
- GValue *value,
- gpointer userdata)
-{
- g_return_val_if_fail (G_VALUE_HOLDS(setting, G_TYPE_BOOLEAN), FALSE);
- g_return_val_if_fail (G_VALUE_HOLDS(value, G_TYPE_BOOLEAN), FALSE);
-
- gboolean s = g_value_get_boolean (setting);
- g_value_set_boolean (value, s);
-
- return TRUE;
-}
-
-
static void
bind_repository (GitgWindow *window)
{
@@ -1347,6 +1332,26 @@ bind_repository (GitgWindow *window)
convert_setting_to_inactive_max,
window);
+ gitg_data_binding_new (preferences,
+ "history-show-virtual-stash",
+ window->priv->repository,
+ "show-stash");
+
+ gitg_data_binding_new (preferences,
+ "history-show-virtual-staged",
+ window->priv->repository,
+ "show-staged");
+
+ gitg_data_binding_new (preferences,
+ "history-show-virtual-unstaged",
+ window->priv->repository,
+ "show-unstaged");
+
+ gitg_data_binding_new (preferences,
+ "history-topo-order",
+ window->priv->repository,
+ "topo-order");
+
gitg_data_binding_new_full (preferences,
"history-collapse-inactive-lanes",
window->priv->repository,
@@ -1361,10 +1366,10 @@ bind_repository (GitgWindow *window)
convert_setting_to_inactive_gap,
window);
- gitg_data_binding_new_full (preferences, "history-collapse-inactive-lanes-active",
- window->priv->repository, "inactive-enabled",
- convert_setting_to_inactive_enabled,
- window);
+ gitg_data_binding_new (preferences,
+ "history-collapse-inactive-lanes-active",
+ window->priv->repository,
+ "inactive-enabled");
}
static gboolean
diff --git a/libgitg/gitg-repository.c b/libgitg/gitg-repository.c
index 8f34686..669655f 100644
--- a/libgitg/gitg-repository.c
+++ b/libgitg/gitg-repository.c
@@ -124,6 +124,11 @@ struct _GitgRepositoryPrivate
guint topoorder : 1;
};
+static gboolean repository_relane (GitgRepository *repository);
+static void build_log_args (GitgRepository *self,
+ gint argc,
+ gchar const **av);
+
inline static gint
gitg_repository_error_quark ()
{
@@ -397,6 +402,15 @@ do_clear (GitgRepository *repository,
}
static void
+prepare_relane (GitgRepository *repository)
+{
+ if (!repository->priv->idle_relane_id)
+ {
+ repository->priv->idle_relane_id = g_idle_add ((GSourceFunc)repository_relane, repository);
+ }
+}
+
+static void
gitg_repository_finalize (GObject *object)
{
GitgRepository *rp = GITG_REPOSITORY (object);
@@ -482,35 +496,51 @@ gitg_repository_set_property (GObject *object,
break;
case PROP_SHOW_STAGED:
self->priv->show_staged = g_value_get_boolean (value);
+ gitg_repository_reload (self);
break;
case PROP_SHOW_UNSTAGED:
self->priv->show_unstaged = g_value_get_boolean (value);
+ gitg_repository_reload (self);
break;
case PROP_SHOW_STASH:
self->priv->show_stash = g_value_get_boolean (value);
+ gitg_repository_reload (self);
break;
case PROP_TOPO_ORDER:
self->priv->topoorder = g_value_get_boolean (value);
+
+ if (self->priv->selection != NULL)
+ {
+ build_log_args (self,
+ g_strv_length (self->priv->selection),
+ (gchar const **)self->priv->selection);
+ }
+
+ gitg_repository_reload (self);
break;
case PROP_INACTIVE_MAX:
g_object_set_property (G_OBJECT (self->priv->lanes),
"inactive-max",
value);
+ prepare_relane (self);
break;
case PROP_INACTIVE_COLLAPSE:
g_object_set_property (G_OBJECT (self->priv->lanes),
"inactive-collapse",
value);
+ prepare_relane (self);
break;
case PROP_INACTIVE_GAP:
g_object_set_property (G_OBJECT (self->priv->lanes),
"inactive-gap",
value);
+ prepare_relane (self);
break;
case PROP_INACTIVE_ENABLED:
g_object_set_property (G_OBJECT (self->priv->lanes),
"inactive-enabled",
value);
+ prepare_relane (self);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -534,7 +564,6 @@ gitg_repository_get_property (GObject *object,
case PROP_GIT_DIR:
g_value_set_object (value, self->priv->git_dir);
break;
- break;
case PROP_LOADER:
g_value_set_object (value, self->priv->loader);
break;
@@ -1125,23 +1154,6 @@ repository_relane (GitgRepository *repository)
return FALSE;
}
-static void
-prepare_relane (GitgRepository *repository)
-{
- if (!repository->priv->idle_relane_id)
- {
- repository->priv->idle_relane_id = g_idle_add ((GSourceFunc)repository_relane, repository);
- }
-}
-
-static void
-on_lane_setting_changed (GitgRepository *repository,
- GParamSpec *pspec,
- gpointer useless)
-{
- prepare_relane (repository);
-}
-
static gchar **
copy_strv (gchar const **ptr,
gint argc)
@@ -1240,26 +1252,6 @@ build_log_args (GitgRepository *self,
}
static void
-on_update_topo_order (GitgRepository *repository,
- GParamSpec *spec,
- gpointer useless)
-{
- build_log_args (repository,
- g_strv_length (repository->priv->selection),
- (gchar const **)repository->priv->selection);
-
- gitg_repository_reload (repository);
-}
-
-static void
-on_update_virtual (GitgRepository *repository,
- GParamSpec *spec,
- gpointer useless)
-{
- gitg_repository_reload (repository);
-}
-
-static void
gitg_repository_init (GitgRepository *object)
{
object->priv = GITG_REPOSITORY_GET_PRIVATE (object);
@@ -1297,46 +1289,6 @@ gitg_repository_init (GitgRepository *object)
"end-loading",
G_CALLBACK (on_loader_end_loading),
object);
-
- g_signal_connect (object,
- "notify::show-stash",
- G_CALLBACK (on_update_virtual),
- NULL);
-
- g_signal_connect (object,
- "notify::show-unstaged",
- G_CALLBACK (on_update_virtual),
- NULL);
-
- g_signal_connect (object,
- "notify::show-staged",
- G_CALLBACK (on_update_virtual),
- NULL);
-
- g_signal_connect (object,
- "notify::topo-order",
- G_CALLBACK (on_update_topo_order),
- NULL);
-
- g_signal_connect (object,
- "notify::inactive_mac",
- G_CALLBACK (on_lane_setting_changed),
- NULL);
-
- g_signal_connect (object,
- "notify::inactive_collapse",
- G_CALLBACK (on_lane_setting_changed),
- NULL);
-
- g_signal_connect (object,
- "notify::inactive_gap",
- G_CALLBACK (on_lane_setting_changed),
- NULL);
-
- g_signal_connect (object,
- "notify::inactive_enabled",
- G_CALLBACK (on_lane_setting_changed),
- NULL);
}
static void
@@ -1433,6 +1385,9 @@ load_current_ref (GitgRepository *self)
gint i;
gint numargs;
+ if (self->priv->last_args == NULL)
+ return NULL;
+
numargs = g_strv_length (self->priv->last_args);
gchar const **argv = g_new0 (gchar const *, numargs + 3);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]