[anjuta] Revert "git: Use combo box instead of tree view for remotes"
- From: James Liggett <jrliggett src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [anjuta] Revert "git: Use combo box instead of tree view for remotes"
- Date: Mon, 16 Jan 2012 06:16:46 +0000 (UTC)
commit b133c59529262ec81e3050e8b5e0f9777cbd4128
Author: James Liggett <jrliggett cox net>
Date: Sun Jan 15 22:10:20 2012 -0800
Revert "git: Use combo box instead of tree view for remotes"
This reverts commit 9f5989682f9fc356c940e99601089f0225286ede.
plugins/git/anjuta-git.ui | 30 ++++++++++++++++++++----
plugins/git/git-remotes-pane.c | 48 ++++++++++++++++++++++++++++++---------
2 files changed, 62 insertions(+), 16 deletions(-)
---
diff --git a/plugins/git/anjuta-git.ui b/plugins/git/anjuta-git.ui
index c8e94fb..70e6385 100644
--- a/plugins/git/anjuta-git.ui
+++ b/plugins/git/anjuta-git.ui
@@ -2813,10 +2813,30 @@
<property name="can_focus">False</property>
<property name="left_padding">12</property>
<child>
- <object class="GtkComboBoxText" id="remotes_combo">
+ <object class="GtkScrolledWindow" id="scrolledwindow1">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="entry-text-column">0</property>
+ <property name="can_focus">True</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkTreeView" id="remotes_view">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="model">remotes_list_model</property>
+ <property name="headers_visible">False</property>
+ <property name="headers_clickable">False</property>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn1">
+ <property name="title">column</property>
+ <child>
+ <object class="GtkCellRendererText" id="name_renderer"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
</object>
</child>
</object>
@@ -2833,8 +2853,8 @@
</child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
diff --git a/plugins/git/git-remotes-pane.c b/plugins/git/git-remotes-pane.c
index a75dd92..7cfae46 100644
--- a/plugins/git/git-remotes-pane.c
+++ b/plugins/git/git-remotes-pane.c
@@ -23,11 +23,30 @@ struct _GitRemotesPanePriv
{
GtkBuilder *builder;
gchar *selected_remote;
- GtkWidget* remotes_combo;
};
G_DEFINE_TYPE (GitRemotesPane, git_remotes_pane, GIT_TYPE_PANE);
+static gboolean
+on_remote_selected (GtkTreeSelection *selection, GtkTreeModel *model,
+ GtkTreePath *path, gboolean path_currently_selected,
+ GitRemotesPane *self)
+{
+ GtkTreeIter iter;
+
+ if (!path_currently_selected)
+ {
+ gtk_tree_model_get_iter (model, &iter, path);
+
+ g_free (self->priv->selected_remote);
+ gtk_tree_model_get (model, &iter, 0, &(self->priv->selected_remote), -1);
+
+ anjuta_dock_pane_notify_single_selection_changed (ANJUTA_DOCK_PANE (self));
+ }
+
+ return TRUE;
+}
+
static void
git_remotes_pane_init (GitRemotesPane *self)
{
@@ -35,6 +54,8 @@ git_remotes_pane_init (GitRemotesPane *self)
"remotes_list_model",
NULL};
GError *error = NULL;
+ GtkTreeView *remotes_view;
+ GtkTreeSelection *selection;
self->priv = g_new0 (GitRemotesPanePriv, 1);
self->priv->builder = gtk_builder_new ();
@@ -47,8 +68,14 @@ git_remotes_pane_init (GitRemotesPane *self)
g_error_free (error);
}
- self->priv->remotes_combo = GTK_WIDGET (gtk_builder_get_object (self->priv->builder,
- "remotes_combo"));
+ remotes_view = GTK_TREE_VIEW (gtk_builder_get_object (self->priv->builder,
+ "remotes_view"));
+ selection = gtk_tree_view_get_selection (remotes_view);
+
+
+ gtk_tree_selection_set_select_function (selection,
+ (GtkTreeSelectionFunc) on_remote_selected,
+ self, NULL);
}
static void
@@ -91,22 +118,21 @@ static void
on_remote_list_command_data_arrived (AnjutaCommand *command,
GitRemotesPane *self)
{
+ GtkListStore *remotes_list_model;
GQueue *output;
gchar *remote;
+ GtkTreeIter iter;
+ remotes_list_model = GTK_LIST_STORE (gtk_builder_get_object (self->priv->builder,
+ "remotes_list_model"));
output = git_raw_output_command_get_output (GIT_RAW_OUTPUT_COMMAND (command));
while (g_queue_peek_head (output))
{
remote = g_queue_pop_head (output);
- gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT(self->priv->remotes_combo),
- remote);
- if (gtk_combo_box_get_active (GTK_COMBO_BOX (self->priv->remotes_combo))
- == -1)
- {
- gtk_combo_box_set_active (GTK_COMBO_BOX (self->priv->remotes_combo), 0);
- }
+ gtk_list_store_append (remotes_list_model, &iter);
+ gtk_list_store_set (remotes_list_model, &iter, 0, remote, -1);
g_free (remote);
}
@@ -137,5 +163,5 @@ git_remotes_pane_new (Git *plugin)
gchar *
git_remotes_pane_get_selected_remote (GitRemotesPane *self)
{
- return gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (self->priv->remotes_combo));
+ return g_strdup (self->priv->selected_remote);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]