anjuta r4799 - in trunk: . plugins/run-program



Author: sgranjoux
Date: Wed Feb 25 20:59:29 2009
New Revision: 4799
URL: http://svn.gnome.org/viewvc/anjuta?rev=4799&view=rev

Log:
	* plugins/run-program/plugin.c,
	plugins/run-program/parameters.c,
	plugins/run-program/parameters.h:
	Fix #564306 â don't ask which program to run if project has only one
	target


Modified:
   trunk/ChangeLog
   trunk/plugins/run-program/parameters.c
   trunk/plugins/run-program/parameters.h
   trunk/plugins/run-program/plugin.c

Modified: trunk/plugins/run-program/parameters.c
==============================================================================
--- trunk/plugins/run-program/parameters.c	(original)
+++ trunk/plugins/run-program/parameters.c	Wed Feb 25 20:59:29 2009
@@ -683,8 +683,7 @@
 			g_list_free (exec_targets);
 		}
 	}
-	g_object_unref (model);
-
+	
 	if (plugin->recent_target != NULL)
 	{
 		gchar *local;
@@ -693,6 +692,24 @@
 		gtk_entry_set_text (GTK_ENTRY (GTK_BIN (dlg->target)->child), local);
 		g_free (local);
 	}
+	else
+	{
+		GtkTreeIter iter;
+
+		if (gtk_tree_model_get_iter_first (model, &iter) &&
+			!gtk_tree_model_iter_next (model, &iter))
+		{
+			gchar *default_target;
+
+			gtk_tree_model_get_iter_first (model, &iter);
+			gtk_tree_model_get (model, &iter,
+								0, &default_target,
+								-1);
+			gtk_entry_set_text (GTK_ENTRY (GTK_BIN (dlg->target)->child), default_target);
+			g_free (default_target);
+		}
+	}
+	g_object_unref (model);
 	
 	/* Fill environment variable list */
 	model = GTK_TREE_MODEL (gtk_list_store_new (ENV_N_COLUMNS,
@@ -732,24 +749,43 @@
 	return dlg;
 }
 
-/* Public functions
- *---------------------------------------------------------------------------*/
-
-gint
-run_parameters_dialog_run (RunProgramPlugin *plugin)
+static gint
+run_parameters_dialog_or_try_execute (RunProgramPlugin *plugin, gboolean try_run)
 {
 	RunDialog dlg;
 	gint response;
 	
 	run_dialog_init (&dlg, plugin);
-	
-	response = gtk_dialog_run (GTK_DIALOG (dlg.win));
-	if (response == GTK_RESPONSE_APPLY)
+	const char *target = gtk_entry_get_text (GTK_ENTRY (GTK_BIN (dlg.target)->child));
+	if (try_run && target && *target)
 	{
 		save_dialog_data (&dlg);
+		return GTK_RESPONSE_APPLY;
 	}
-	gtk_widget_destroy (dlg.win);
-	
+	else
+	{
+		response = gtk_dialog_run (GTK_DIALOG (dlg.win));
+		if (response == GTK_RESPONSE_APPLY)
+		{
+			save_dialog_data (&dlg);
+		}
+		gtk_widget_destroy (dlg.win);
+	}	
+
 	return response;
 }
 
+/* Public functions
+ *---------------------------------------------------------------------------*/
+
+gint
+run_parameters_dialog_run (RunProgramPlugin *plugin)
+{
+	return run_parameters_dialog_or_try_execute (plugin, FALSE);
+}
+
+gint
+run_parameters_dialog_or_execute (RunProgramPlugin *plugin)
+{
+	return run_parameters_dialog_or_try_execute (plugin, TRUE);
+}

Modified: trunk/plugins/run-program/parameters.h
==============================================================================
--- trunk/plugins/run-program/parameters.h	(original)
+++ trunk/plugins/run-program/parameters.h	Wed Feb 25 20:59:29 2009
@@ -24,5 +24,6 @@
 #include "plugin.h"
 
 gint run_parameters_dialog_run (RunProgramPlugin *plugin);
+gint run_parameters_dialog_or_execute (RunProgramPlugin *plugin);
 
 #endif

Modified: trunk/plugins/run-program/plugin.c
==============================================================================
--- trunk/plugins/run-program/plugin.c	(original)
+++ trunk/plugins/run-program/plugin.c	Wed Feb 25 20:59:29 2009
@@ -183,7 +183,7 @@
 	}
 	if (plugin->recent_target == NULL)
 	{
-		if (run_parameters_dialog_run (plugin) != GTK_RESPONSE_APPLY)
+		if (run_parameters_dialog_or_execute (plugin) != GTK_RESPONSE_APPLY)
 		{
 			return;
 		}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]