SF.net SVN: geany:[3634] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Thu Mar 19 17:49:52 UTC 2009


Revision: 3634
          http://geany.svn.sourceforge.net/geany/?rev=3634&view=rev
Author:   eht16
Date:     2009-03-19 17:49:52 +0000 (Thu, 19 Mar 2009)

Log Message:
-----------
Update build menu items after changing anything in the 'Set Includes and Arguments' dialog.
Disable Compile/Run buttons/menu items when Compile/Run commands are set but empty.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/build.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2009-03-17 21:06:10 UTC (rev 3633)
+++ trunk/ChangeLog	2009-03-19 17:49:52 UTC (rev 3634)
@@ -1,3 +1,12 @@
+2009-03-19  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>
+
+ * src/build.c:
+   Update build menu items after changing anything in the
+   'Set Includes and Arguments' dialog.
+   Disable Compile/Run buttons/menu items when Compile/Run commands are
+   set but empty.
+
+
 2009-03-16  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>
 
  * src/search.c:

Modified: trunk/src/build.c
===================================================================
--- trunk/src/build.c	2009-03-17 21:06:10 UTC (rev 3633)
+++ trunk/src/build.c	2009-03-19 17:49:52 UTC (rev 3634)
@@ -1365,8 +1365,12 @@
                                         gint response,
                                         gpointer user_data)
 {
-	GeanyFiletype *ft = user_data;
+	GeanyDocument *doc = user_data;
+	GeanyFiletype *ft;
 
+	g_return_if_fail(doc != NULL);
+
+	ft = doc->file_type;
 	g_return_if_fail(ft != NULL);
 
 	if (response == GTK_RESPONSE_ACCEPT)
@@ -1407,6 +1411,8 @@
 				programs->modified = TRUE;
 			}
 		}
+		if (programs->modified)
+			build_menu_update(doc);
 	}
 }
 
@@ -1530,7 +1536,7 @@
 	/* run modally to prevent user changing idx filetype */
 	response = gtk_dialog_run(GTK_DIALOG(dialog));
 	/* call the callback manually */
-	on_includes_arguments_dialog_response(GTK_DIALOG(dialog), response, ft);
+	on_includes_arguments_dialog_response(GTK_DIALOG(dialog), response, doc);
 
 	gtk_widget_destroy(dialog);
 }
@@ -1605,9 +1611,11 @@
 		can_build = can_make;
 
 	if (menu_items->item_compile)
-		gtk_widget_set_sensitive(menu_items->item_compile, can_build && ft->actions->can_compile);
+		gtk_widget_set_sensitive(menu_items->item_compile,
+			can_build && ft->actions->can_compile && NZV(ft->programs->compiler));
 	if (menu_items->item_link)
-		gtk_widget_set_sensitive(menu_items->item_link, can_build && ft->actions->can_link);
+		gtk_widget_set_sensitive(menu_items->item_link,
+			can_build && ft->actions->can_link && NZV(ft->programs->linker));
 	if (menu_items->item_make_all)
 		gtk_widget_set_sensitive(menu_items->item_make_all, can_make);
 	if (menu_items->item_make_custom)
@@ -1618,7 +1626,7 @@
 	if (app->project && NZV(app->project->run_cmd))
 		can_run = have_path;	/* for now run is disabled for all untitled files */
 	else
-		can_run = have_path && ft->actions->can_exec;
+		can_run = have_path && ft->actions->can_exec && NZV(ft->programs->run_cmd);
 
 	can_stop = run_info.pid > (GPid) 1;
 	can_run &= ! can_stop;
@@ -1651,7 +1659,8 @@
 	if (widgets.toolitem_set_args != NULL)
 		gtk_widget_set_sensitive(widgets.toolitem_set_args, can_set_args);
 
-	ui_widget_set_sensitive(widgets.compile_button, can_build && ft->actions->can_compile);
+	ui_widget_set_sensitive(widgets.compile_button,
+		can_build && ft->actions->can_compile && NZV(ft->programs->compiler));
 	ui_widget_set_sensitive(widgets.build_button, can_make);
 	ui_widget_set_sensitive(widgets.run_button, can_run || can_stop);
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list