[anjuta] git: Don't disable the OK button the the Remote delete dialog
- From: James Liggett <jrliggett src gnome org>
- To: svn-commits-list gnome org
- Subject: [anjuta] git: Don't disable the OK button the the Remote delete dialog
- Date: Wed, 29 Jul 2009 02:04:05 +0000 (UTC)
commit 7985ee5efe4acf1754bbd095b0bbed7b98e74851
Author: James Liggett <jrliggett cox net>
Date: Tue Jul 28 18:21:13 2009 -0700
git: Don't disable the OK button the the Remote delete dialog
Instead, make OK always active, and default. Pop up an error message if there are no branches
plugins/git/anjuta-git.ui | 5 +++--
plugins/git/git-delete-remote-dialog.c | 28 ++++------------------------
plugins/git/git-ui-utils.c | 27 +++++++++++++++++++++++++++
plugins/git/git-ui-utils.h | 1 +
4 files changed, 35 insertions(+), 26 deletions(-)
---
diff --git a/plugins/git/anjuta-git.ui b/plugins/git/anjuta-git.ui
index 769887a..82bafe5 100644
--- a/plugins/git/anjuta-git.ui
+++ b/plugins/git/anjuta-git.ui
@@ -3882,9 +3882,10 @@
<object class="GtkButton" id="delete_remote_ok_button">
<property name="label">gtk-ok</property>
<property name="visible">True</property>
- <property name="sensitive">False</property>
<property name="can_focus">True</property>
- <property name="receives_default">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="receives_default">False</property>
<property name="use_stock">True</property>
</object>
<packing>
diff --git a/plugins/git/git-delete-remote-dialog.c b/plugins/git/git-delete-remote-dialog.c
index 723ce1b..6b9be4c 100644
--- a/plugins/git/git-delete-remote-dialog.c
+++ b/plugins/git/git-delete-remote-dialog.c
@@ -41,6 +41,9 @@ on_delete_remote_dialog_response (GtkDialog *dialog, gint response_id,
branch_combo_model = GTK_TREE_MODEL (gtk_builder_get_object (data->bxml,
"branch_combo_model"));
+ if (!git_check_branches (GTK_COMBO_BOX (delete_remote_branch_combo)))
+ return;
+
gtk_combo_box_get_active_iter (GTK_COMBO_BOX (delete_remote_branch_combo),
&iter);
gtk_tree_model_get (branch_combo_model, &iter, 0, &branch, -1);
@@ -89,29 +92,6 @@ on_remote_list_command_data_arrived (AnjutaCommand *command,
}
static void
-on_remote_list_command_finished (AnjutaCommand *command, guint return_code,
- GtkBuilder *bxml)
-{
- GtkWidget *delete_remote_ok_button;
- GtkWidget *delete_remote_combo;
- GtkTreeModel *branch_combo_model;
- GtkTreeIter iter;
-
- delete_remote_ok_button = GTK_WIDGET (gtk_builder_get_object (bxml,
- "delete_remote_ok_button"));
- delete_remote_combo = GTK_WIDGET (gtk_builder_get_object (bxml,
- "delete_remote_combo"));
- branch_combo_model = GTK_TREE_MODEL (gtk_builder_get_object (bxml,
- "branch_combo_model"));
-
- if (gtk_tree_model_get_iter_first (branch_combo_model, &iter))
- {
- gtk_widget_set_sensitive (delete_remote_ok_button, TRUE);
- gtk_combo_box_set_active (GTK_COMBO_BOX (delete_remote_combo), 0);
- }
-}
-
-static void
delete_remote_dialog (Git *plugin)
{
GtkBuilder *bxml;
@@ -148,7 +128,7 @@ delete_remote_dialog (Git *plugin)
branch_combo_model);
g_signal_connect (G_OBJECT (list_command), "command-finished",
- G_CALLBACK (on_remote_list_command_finished),
+ G_CALLBACK (on_git_command_finished),
bxml);
anjuta_command_start (ANJUTA_COMMAND (list_command));
diff --git a/plugins/git/git-ui-utils.c b/plugins/git/git-ui-utils.c
index 89028f9..31aa4d5 100644
--- a/plugins/git/git-ui-utils.c
+++ b/plugins/git/git-ui-utils.c
@@ -139,6 +139,33 @@ git_check_input (GtkWidget *parent, GtkWidget *widget, const gchar *input,
}
gboolean
+git_check_branches (GtkComboBox *combo_box)
+{
+ gint ret;
+ GtkWidget *parent;
+ GtkWidget *dialog;
+
+ ret = (gtk_combo_box_get_active (combo_box) > 0);
+
+ if (!ret)
+ {
+ parent = gtk_widget_get_toplevel (GTK_WIDGET (combo_box));
+ dialog = gtk_message_dialog_new (GTK_WINDOW (parent),
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_WARNING,
+ GTK_BUTTONS_OK,
+ "%s",
+ _("There are no branches available."));
+
+ gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_destroy (dialog);
+
+ }
+
+ return ret;
+}
+
+gboolean
git_get_selected_stash (GtkTreeSelection *selection, gchar **stash)
{
gboolean ret;
diff --git a/plugins/git/git-ui-utils.h b/plugins/git/git-ui-utils.h
index 5bf916f..79e9357 100644
--- a/plugins/git/git-ui-utils.h
+++ b/plugins/git/git-ui-utils.h
@@ -56,6 +56,7 @@ void git_create_message_view (Git* plugin);
gboolean git_check_input (GtkWidget *parent, GtkWidget *widget,
const gchar *input, const gchar *error_message);
gboolean git_get_selected_stash (GtkTreeSelection *selection, gchar **stash);
+gboolean git_check_branches (GtkComboBox *combo_box);
gchar *git_get_log_from_textview (GtkWidget* textview);
guint git_status_bar_progress_pulse (Git *plugin, gchar *text);
void git_clear_status_bar_progress_pulse (guint timer_id);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]