[Monodevelop-patches-list] r2539 - in trunk/MonoDevelop/Core/src/MonoDevelop.Base: . Gui/Dialogs/ReferenceDialog Gui/Pads Gui/Workbench/Layouts Internal/Project/Combine Internal/Project/Project Services/File

Lluis Sanchez <lluis@ximian.com> lluis at mono-cvs.ximian.com
Sun May 15 17:36:00 EDT 2005


Author: lluis
Date: 2005-05-15 17:35:59 -0400 (Sun, 15 May 2005)
New Revision: 2539

Modified:
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Base.glade
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/ChangeLog
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/ReferenceDialog/AssemblyReferencePanel.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/ReferenceDialog/GacReferencePanel.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/ReferenceDialog/ProjectReferencePanel.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/ReferenceDialog/SelectReferenceDialog.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Pads/DefaultMonitorPad.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Workbench/Layouts/SdiWorkspaceWindow.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Internal/Project/Combine/Combine.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Internal/Project/Project/DotNetProject.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Internal/Project/Project/DotNetProjectConfiguration.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Internal/Project/Project/Project.cs
   trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/File/DefaultFileService.cs
Log:
2005-05-15  Lluis Sanchez Gual  <lluis at novell.com> 

	* Services/File/DefaultFileService.cs: Make the service GUI thread safe.
	* Gui/Dialogs/ReferenceDialog: Cleaned up the dialog.
	* Gui/Workbench/Layouts/SdiWorkspaceWindow.cs: Added IntPtr constructor
	to make gtk# happy.
	* Gui/Pads/DefaultMonitorPad.cs: Don't indent when a task has a null name.
	* Base.glade: Many fixes to make the dialogs more conforming to the HIG.
	* Internal/Project/Project/DotNetProjectConfiguration.cs: Added
	SourceDirectory property.
	* Internal/Project/Project/DotNetProject.cs: Set the sources path before
	building.
	* Internal/Project/Project/Project.cs: In CopyReferencesToOutputPath, copy
	refereces of referenced projects. They are not needed for compiling, but
	they are for running. The Build method now also builds required references.



Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Base.glade
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Base.glade	2005-05-15 21:31:15 UTC (rev 2538)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Base.glade	2005-05-15 21:35:59 UTC (rev 2539)
@@ -5,8 +5,9 @@
 <requires lib="gnome"/>
 
 <widget class="GtkDialog" id="TreeViewOptionDialog">
-  <property name="width_request">640</property>
-  <property name="height_request">480</property>
+  <property name="border_width">6</property>
+  <property name="width_request">770</property>
+  <property name="height_request">520</property>
   <property name="visible">True</property>
   <property name="title" translatable="yes">Options</property>
   <property name="type">GTK_WINDOW_TOPLEVEL</property>
@@ -25,7 +26,7 @@
     <widget class="GtkVBox" id="MainBox">
       <property name="visible">True</property>
       <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
+      <property name="spacing">7</property>
 
       <child internal-child="action_area">
 	<widget class="GtkHButtonBox" id="ActionArea">
@@ -70,9 +71,10 @@
 
       <child>
 	<widget class="GtkHBox" id="DisplayBox">
+	  <property name="border_width">6</property>
 	  <property name="visible">True</property>
 	  <property name="homogeneous">False</property>
-	  <property name="spacing">7</property>
+	  <property name="spacing">12</property>
 
 	  <child>
 	    <widget class="GtkVBox" id="TreeViewContainer">
@@ -132,7 +134,7 @@
 	      </child>
 	    </widget>
 	    <packing>
-	      <property name="padding">6</property>
+	      <property name="padding">0</property>
 	      <property name="expand">False</property>
 	      <property name="fill">True</property>
 	    </packing>
@@ -142,7 +144,7 @@
 	    <widget class="GtkVBox" id="optionPanel">
 	      <property name="visible">True</property>
 	      <property name="homogeneous">False</property>
-	      <property name="spacing">12</property>
+	      <property name="spacing">0</property>
 
 	      <child>
 		<widget class="GtkVBox" id="vbox30">
@@ -298,7 +300,7 @@
 	  </child>
 	</widget>
 	<packing>
-	  <property name="padding">6</property>
+	  <property name="padding">0</property>
 	  <property name="expand">True</property>
 	  <property name="fill">True</property>
 	</packing>
@@ -308,6 +310,7 @@
 </widget>
 
 <widget class="GtkDialog" id="NewProjectDialog">
+  <property name="width_request">630</property>
   <property name="title" translatable="yes">New Solution</property>
   <property name="type">GTK_WINDOW_TOPLEVEL</property>
   <property name="window_position">GTK_WIN_POS_CENTER</property>
@@ -410,27 +413,6 @@
 		  <property name="spacing">0</property>
 
 		  <child>
-		    <widget class="GtkLabel" id="spacer1">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">    </property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
 		    <widget class="GtkVBox" id="vbox4">
 		      <property name="visible">True</property>
 		      <property name="homogeneous">False</property>
@@ -588,7 +570,7 @@
 		  <child>
 		    <widget class="GtkTable" id="table1">
 		      <property name="visible">True</property>
-		      <property name="n_rows">4</property>
+		      <property name="n_rows">5</property>
 		      <property name="n_columns">2</property>
 		      <property name="homogeneous">False</property>
 		      <property name="row_spacing">6</property>
@@ -603,7 +585,7 @@
 			  <property name="justify">GTK_JUSTIFY_LEFT</property>
 			  <property name="wrap">False</property>
 			  <property name="selectable">False</property>
-			  <property name="xalign">1</property>
+			  <property name="xalign">0</property>
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
@@ -628,7 +610,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char">*</property>
+			  <property name="invisible_char" translatable="yes">*</property>
 			  <property name="activates_default">False</property>
 			  <signal name="changed" handler="PathChanged" last_modification_time="Sat, 17 Jan 2004 17:21:33 GMT"/>
 			</widget>
@@ -650,7 +632,7 @@
 			  <property name="justify">GTK_JUSTIFY_LEFT</property>
 			  <property name="wrap">False</property>
 			  <property name="selectable">False</property>
-			  <property name="xalign">1</property>
+			  <property name="xalign">0</property>
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
@@ -668,13 +650,13 @@
 		      <child>
 			<widget class="GtkLabel" id="lbl_subdirectory">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">Project _Subdirectory:</property>
+			  <property name="label" translatable="yes">_Subdirectory:</property>
 			  <property name="use_underline">True</property>
 			  <property name="use_markup">False</property>
 			  <property name="justify">GTK_JUSTIFY_LEFT</property>
 			  <property name="wrap">False</property>
 			  <property name="selectable">False</property>
-			  <property name="xalign">1</property>
+			  <property name="xalign">0</property>
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
@@ -699,7 +681,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char">*</property>
+			  <property name="invisible_char" translatable="yes">*</property>
 			  <property name="activates_default">False</property>
 			  <signal name="changed" handler="PathChanged" last_modification_time="Sat, 17 Jan 2004 17:24:07 GMT"/>
 			</widget>
@@ -754,6 +736,30 @@
 			  <property name="y_options">fill</property>
 			</packing>
 		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="lbl_will_save_in">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Project will be saved in: /dev/null</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">0</property>
+			  <property name="right_attach">2</property>
+			  <property name="top_attach">4</property>
+			  <property name="bottom_attach">5</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -775,27 +781,6 @@
 	      <property name="fill">True</property>
 	    </packing>
 	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="lbl_will_save_in">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Project will be saved in: /dev/null</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
@@ -808,6 +793,9 @@
 </widget>
 
 <widget class="GtkDialog" id="AddReferenceDialog">
+  <property name="border_width">6</property>
+  <property name="width_request">640</property>
+  <property name="height_request">520</property>
   <property name="visible">True</property>
   <property name="title" translatable="yes">Add References</property>
   <property name="type">GTK_WINDOW_TOPLEVEL</property>
@@ -871,7 +859,7 @@
 
       <child>
 	<widget class="GtkVBox" id="vbox5">
-	  <property name="border_width">2</property>
+	  <property name="border_width">6</property>
 	  <property name="visible">True</property>
 	  <property name="homogeneous">False</property>
 	  <property name="spacing">12</property>
@@ -933,68 +921,119 @@
 	  </child>
 
 	  <child>
-	    <widget class="GtkHBox" id="hbox4">
+	    <widget class="GtkVBox" id="vbox71">
+	      <property name="height_request">160</property>
 	      <property name="visible">True</property>
 	      <property name="homogeneous">False</property>
-	      <property name="spacing">12</property>
+	      <property name="spacing">3</property>
 
 	      <child>
-		<widget class="GtkScrolledWindow" id="scrolledwindow2">
+		<widget class="GtkLabel" id="label101">
 		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
-		  <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
-		  <property name="shadow_type">GTK_SHADOW_NONE</property>
-		  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-		  <child>
-		    <widget class="GtkTreeView" id="ReferencesTreeView">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="headers_visible">True</property>
-		      <property name="rules_hint">False</property>
-		      <property name="reorderable">False</property>
-		      <property name="enable_search">True</property>
-		    </widget>
-		  </child>
+		  <property name="label" translatable="yes">Selected references:</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
 		</packing>
 	      </child>
 
 	      <child>
-		<widget class="GtkVButtonBox" id="vbuttonbox1">
+		<widget class="GtkHBox" id="hbox4">
+		  <property name="height_request">150</property>
 		  <property name="visible">True</property>
-		  <property name="layout_style">GTK_BUTTONBOX_END</property>
-		  <property name="spacing">0</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">12</property>
 
 		  <child>
-		    <widget class="GtkButton" id="RemoveReferenceButton">
+		    <widget class="GtkScrolledWindow" id="scrolledwindow2">
 		      <property name="visible">True</property>
-		      <property name="can_default">True</property>
 		      <property name="can_focus">True</property>
-		      <property name="label">gtk-remove</property>
-		      <property name="use_stock">True</property>
-		      <property name="relief">GTK_RELIEF_NORMAL</property>
-		      <property name="focus_on_click">True</property>
-		      <signal name="clicked" handler="RemoveReference" last_modification_time="Sat, 17 Jan 2004 22:02:58 GMT"/>
+		      <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
+		      <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
+		      <property name="shadow_type">GTK_SHADOW_IN</property>
+		      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+		      <child>
+			<widget class="GtkTreeView" id="ReferencesTreeView">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="headers_visible">True</property>
+			  <property name="rules_hint">False</property>
+			  <property name="reorderable">False</property>
+			  <property name="enable_search">True</property>
+			</widget>
+		      </child>
 		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
 		  </child>
+
+		  <child>
+		    <widget class="GtkVBox" id="vbox70">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">0</property>
+
+		      <child>
+			<widget class="GtkButton" id="RemoveReferenceButton">
+			  <property name="visible">True</property>
+			  <property name="tooltip" translatable="yes">Remove</property>
+			  <property name="can_focus">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="focus_on_click">True</property>
+			  <signal name="clicked" handler="RemoveReference" last_modification_time="Sat, 14 May 2005 14:21:24 GMT"/>
+
+			  <child>
+			    <widget class="GtkImage" id="but">
+			      <property name="visible">True</property>
+			      <property name="stock">gtk-remove</property>
+			      <property name="icon_size">4</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			    </widget>
+			  </child>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
+		  <property name="expand">True</property>
+		  <property name="fill">True</property>
 		</packing>
 	      </child>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
-	      <property name="expand">True</property>
-	      <property name="fill">True</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
 	    </packing>
 	  </child>
 	</widget>
@@ -1427,7 +1466,6 @@
 	      <property name="directory_entry">True</property>
 	      <property name="modal">True</property>
 	      <property name="use_filechooser">True</property>
-	      <property name="filechooser_action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
 
 	      <child internal-child="entry">
 		<widget class="GtkEntry" id="combo-entry1">
@@ -1438,7 +1476,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">False</property>
 		</widget>
 	      </child>
@@ -2150,7 +2188,7 @@
     <widget class="GtkVBox" id="vbox32">
       <property name="visible">True</property>
       <property name="homogeneous">False</property>
-      <property name="spacing">6</property>
+      <property name="spacing">12</property>
 
       <child>
 	<widget class="GtkHBox" id="hbox21">
@@ -2284,27 +2322,6 @@
 	      <property name="fill">False</property>
 	    </packing>
 	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label40">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">    </property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
@@ -2331,7 +2348,7 @@
 	      <property name="max_length">0</property>
 	      <property name="text" translatable="yes"></property>
 	      <property name="has_frame">True</property>
-	      <property name="invisible_char">*</property>
+	      <property name="invisible_char" translatable="yes">*</property>
 	      <property name="activates_default">False</property>
 	    </widget>
 	    <packing>
@@ -2346,13 +2363,13 @@
 	  <child>
 	    <widget class="GtkLabel" id="commandLabel">
 	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_Command</property>
+	      <property name="label" translatable="yes">_Command:</property>
 	      <property name="use_underline">True</property>
 	      <property name="use_markup">False</property>
 	      <property name="justify">GTK_JUSTIFY_LEFT</property>
 	      <property name="wrap">False</property>
 	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
+	      <property name="xalign">0</property>
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
@@ -2371,13 +2388,13 @@
 	  <child>
 	    <widget class="GtkLabel" id="titleLabel">
 	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_Title</property>
+	      <property name="label" translatable="yes">_Title:</property>
 	      <property name="use_underline">True</property>
 	      <property name="use_markup">False</property>
 	      <property name="justify">GTK_JUSTIFY_LEFT</property>
 	      <property name="wrap">False</property>
 	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
+	      <property name="xalign">0</property>
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
@@ -2396,13 +2413,13 @@
 	  <child>
 	    <widget class="GtkLabel" id="argumentLabel">
 	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_Arguments</property>
+	      <property name="label" translatable="yes">_Arguments:</property>
 	      <property name="use_underline">True</property>
 	      <property name="use_markup">False</property>
 	      <property name="justify">GTK_JUSTIFY_LEFT</property>
 	      <property name="wrap">False</property>
 	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
+	      <property name="xalign">0</property>
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
@@ -2420,7 +2437,7 @@
 	  <child>
 	    <widget class="GtkLabel" id="workingDirLabel">
 	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_Working Directory</property>
+	      <property name="label" translatable="yes">_Working Directory:</property>
 	      <property name="use_underline">True</property>
 	      <property name="use_markup">False</property>
 	      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -2448,7 +2465,7 @@
 	      <property name="n_columns">2</property>
 	      <property name="homogeneous">False</property>
 	      <property name="row_spacing">0</property>
-	      <property name="column_spacing">0</property>
+	      <property name="column_spacing">4</property>
 
 	      <child>
 		<widget class="GtkEntry" id="argumentTextBox">
@@ -2459,7 +2476,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">False</property>
 		</widget>
 		<packing>
@@ -2507,7 +2524,7 @@
 	      <property name="n_columns">2</property>
 	      <property name="homogeneous">False</property>
 	      <property name="row_spacing">0</property>
-	      <property name="column_spacing">0</property>
+	      <property name="column_spacing">4</property>
 
 	      <child>
 		<widget class="GtkEntry" id="workingDirTextBox">
@@ -2518,7 +2535,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">False</property>
 		</widget>
 		<packing>
@@ -2567,7 +2584,6 @@
 	      <property name="directory_entry">False</property>
 	      <property name="modal">True</property>
 	      <property name="use_filechooser">True</property>
-	      <property name="filechooser_action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
 
 	      <child internal-child="entry">
 		<widget class="GtkEntry" id="combo-entry2">
@@ -2578,7 +2594,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">False</property>
 		</widget>
 	      </child>
@@ -2645,8 +2661,8 @@
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
+	  <property name="expand">False</property>
+	  <property name="fill">False</property>
 	</packing>
       </child>
     </widget>
@@ -2704,12 +2720,13 @@
 	    <widget class="GtkHBox" id="hbox29">
 	      <property name="visible">True</property>
 	      <property name="homogeneous">False</property>
-	      <property name="spacing">6</property>
+	      <property name="spacing">0</property>
 
 	      <child>
 		<widget class="GtkLabel" id="label55">
+		  <property name="width_request">18</property>
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">    </property>
+		  <property name="label" translatable="yes"></property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">False</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -2734,115 +2751,18 @@
 		  <property name="spacing">6</property>
 
 		  <child>
-		    <widget class="GtkHBox" id="hbox23">
+		    <widget class="GtkTable" id="table11">
 		      <property name="visible">True</property>
+		      <property name="n_rows">2</property>
+		      <property name="n_columns">2</property>
 		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
+		      <property name="row_spacing">6</property>
+		      <property name="column_spacing">6</property>
 
 		      <child>
-			<widget class="GtkVBox" id="vbox42">
+			<widget class="GtkLabel" id="nameLabel">
 			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkLabel" id="nameLabel">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">_Name</property>
-			      <property name="use_underline">True</property>
-			      <property name="use_markup">False</property>
-			      <property name="justify">GTK_JUSTIFY_LEFT</property>
-			      <property name="wrap">False</property>
-			      <property name="selectable">False</property>
-			      <property name="xalign">0</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox28">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label54">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">    </property>
-				  <property name="use_underline">False</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0.5</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkEntry" id="projectNameEntry">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="editable">True</property>
-				  <property name="visibility">True</property>
-				  <property name="max_length">0</property>
-				  <property name="text" translatable="yes"></property>
-				  <property name="has_frame">True</property>
-				  <property name="invisible_char">*</property>
-				  <property name="activates_default">False</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkVBox" id="vbox43">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkLabel" id="descriptionLabel">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">_Description</property>
+			  <property name="label" translatable="yes">_Name:</property>
 			  <property name="use_underline">True</property>
 			  <property name="use_markup">False</property>
 			  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -2852,90 +2772,108 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="mnemonic_widget">projectNameEntry</property>
 			</widget>
 			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
+			  <property name="left_attach">0</property>
+			  <property name="right_attach">1</property>
+			  <property name="top_attach">0</property>
+			  <property name="bottom_attach">1</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
 			</packing>
 		      </child>
 
 		      <child>
-			<widget class="GtkHBox" id="hbox30">
+			<widget class="GtkEntry" id="projectNameEntry">
 			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">0</property>
+			  <property name="can_focus">True</property>
+			  <property name="editable">True</property>
+			  <property name="visibility">True</property>
+			  <property name="max_length">0</property>
+			  <property name="text" translatable="yes"></property>
+			  <property name="has_frame">True</property>
+			  <property name="invisible_char" translatable="yes">*</property>
+			  <property name="activates_default">False</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">1</property>
+			  <property name="right_attach">2</property>
+			  <property name="top_attach">0</property>
+			  <property name="bottom_attach">1</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
 
-			  <child>
-			    <widget class="GtkLabel" id="label57">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">    </property>
-			      <property name="use_underline">False</property>
-			      <property name="use_markup">False</property>
-			      <property name="justify">GTK_JUSTIFY_LEFT</property>
-			      <property name="wrap">False</property>
-			      <property name="selectable">False</property>
-			      <property name="xalign">0.5</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
+		      <child>
+			<widget class="GtkScrolledWindow" id="scrolledwindow5">
+			  <property name="width_request">350</property>
+			  <property name="height_request">150</property>
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+			  <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+			  <property name="shadow_type">GTK_SHADOW_IN</property>
+			  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
 
 			  <child>
-			    <widget class="GtkScrolledWindow" id="scrolledwindow5">
-			      <property name="width_request">350</property>
-			      <property name="height_request">150</property>
+			    <widget class="GtkTextView" id="projectDescriptionTextView">
+			      <property name="height_request">160</property>
 			      <property name="visible">True</property>
 			      <property name="can_focus">True</property>
-			      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-			      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-			      <property name="shadow_type">GTK_SHADOW_IN</property>
-			      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-			      <child>
-				<widget class="GtkTextView" id="projectDescriptionTextView">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="editable">True</property>
-				  <property name="overwrite">False</property>
-				  <property name="accepts_tab">True</property>
-				  <property name="justification">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap_mode">GTK_WRAP_NONE</property>
-				  <property name="cursor_visible">True</property>
-				  <property name="pixels_above_lines">0</property>
-				  <property name="pixels_below_lines">0</property>
-				  <property name="pixels_inside_wrap">0</property>
-				  <property name="left_margin">0</property>
-				  <property name="right_margin">0</property>
-				  <property name="indent">0</property>
-				  <property name="text" translatable="yes"></property>
-				</widget>
-			      </child>
+			      <property name="editable">True</property>
+			      <property name="overwrite">False</property>
+			      <property name="accepts_tab">True</property>
+			      <property name="justification">GTK_JUSTIFY_LEFT</property>
+			      <property name="wrap_mode">GTK_WRAP_NONE</property>
+			      <property name="cursor_visible">True</property>
+			      <property name="pixels_above_lines">0</property>
+			      <property name="pixels_below_lines">0</property>
+			      <property name="pixels_inside_wrap">0</property>
+			      <property name="left_margin">0</property>
+			      <property name="right_margin">0</property>
+			      <property name="indent">0</property>
+			      <property name="text" translatable="yes"></property>
 			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
 			  </child>
 			</widget>
 			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
+			  <property name="left_attach">1</property>
+			  <property name="right_attach">2</property>
+			  <property name="top_attach">1</property>
+			  <property name="bottom_attach">2</property>
 			</packing>
 		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="descriptionLabel">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">_Description:</property>
+			  <property name="use_underline">True</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.01</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="mnemonic_widget">scrolledwindow5</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">0</property>
+			  <property name="right_attach">1</property>
+			  <property name="top_attach">1</property>
+			  <property name="bottom_attach">2</property>
+			  <property name="x_options"></property>
+			  <property name="y_options">fill</property>
+			</packing>
+		      </child>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
 		    </packing>
 		  </child>
 
@@ -2960,22 +2898,22 @@
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
+		  <property name="expand">True</property>
+		  <property name="fill">True</property>
 		</packing>
 	      </child>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
-	      <property name="expand">True</property>
-	      <property name="fill">True</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
 	    </packing>
 	  </child>
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
+	  <property name="expand">False</property>
+	  <property name="fill">False</property>
 	</packing>
       </child>
 
@@ -3010,12 +2948,13 @@
 	    <widget class="GtkHBox" id="hbox26">
 	      <property name="visible">True</property>
 	      <property name="homogeneous">False</property>
-	      <property name="spacing">6</property>
+	      <property name="spacing">0</property>
 
 	      <child>
 		<widget class="GtkLabel" id="label49">
+		  <property name="width_request">18</property>
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">    </property>
+		  <property name="label" translatable="yes"></property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">False</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -3063,12 +3002,13 @@
 	    <widget class="GtkHBox" id="hbox27">
 	      <property name="visible">True</property>
 	      <property name="homogeneous">False</property>
-	      <property name="spacing">6</property>
+	      <property name="spacing">0</property>
 
 	      <child>
 		<widget class="GtkLabel" id="label50">
+		  <property name="width_request">18</property>
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">    </property>
+		  <property name="label" translatable="yes"></property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">False</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -3114,8 +3054,8 @@
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
+	  <property name="expand">False</property>
+	  <property name="fill">False</property>
 	</packing>
       </child>
     </widget>
@@ -3336,7 +3276,6 @@
 			      <property name="directory_entry">False</property>
 			      <property name="modal">True</property>
 			      <property name="use_filechooser">True</property>
-			      <property name="filechooser_action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
 
 			      <child internal-child="entry">
 				<widget class="GtkEntry" id="combo-entry3">
@@ -3347,7 +3286,7 @@
 				  <property name="max_length">0</property>
 				  <property name="text" translatable="yes"></property>
 				  <property name="has_frame">True</property>
-				  <property name="invisible_char">*</property>
+				  <property name="invisible_char" translatable="yes">*</property>
 				  <property name="activates_default">False</property>
 				</widget>
 			      </child>
@@ -3529,7 +3468,6 @@
 			      <property name="directory_entry">True</property>
 			      <property name="modal">True</property>
 			      <property name="use_filechooser">True</property>
-			      <property name="filechooser_action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
 
 			      <child internal-child="entry">
 				<widget class="GtkEntry" id="combo-entry4">
@@ -3540,7 +3478,7 @@
 				  <property name="max_length">0</property>
 				  <property name="text" translatable="yes"></property>
 				  <property name="has_frame">True</property>
-				  <property name="invisible_char">*</property>
+				  <property name="invisible_char" translatable="yes">*</property>
 				  <property name="activates_default">False</property>
 				</widget>
 			      </child>
@@ -3691,7 +3629,7 @@
 	<widget class="GtkVBox" id="vbox59">
 	  <property name="visible">True</property>
 	  <property name="homogeneous">False</property>
-	  <property name="spacing">0</property>
+	  <property name="spacing">6</property>
 
 	  <child>
 	    <widget class="GtkRadioButton" id="multipleRadioButton">
@@ -3804,27 +3742,6 @@
 			  </child>
 
 			  <child>
-			    <widget class="GtkLabel" id="label67">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">    </property>
-			      <property name="use_underline">False</property>
-			      <property name="use_markup">False</property>
-			      <property name="justify">GTK_JUSTIFY_LEFT</property>
-			      <property name="wrap">False</property>
-			      <property name="selectable">False</property>
-			      <property name="xalign">0.5</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
 			    <widget class="GtkButton" id="moveDownButton">
 			      <property name="visible">True</property>
 			      <property name="can_focus">True</property>
@@ -3887,8 +3804,8 @@
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
 			</packing>
 		      </child>
 		    </widget>
@@ -4322,7 +4239,7 @@
 	      <property name="max_length">0</property>
 	      <property name="text" translatable="yes"></property>
 	      <property name="has_frame">True</property>
-	      <property name="invisible_char">*</property>
+	      <property name="invisible_char" translatable="yes">*</property>
 	      <property name="activates_default">True</property>
 	    </widget>
 	    <packing>
@@ -4418,7 +4335,6 @@
 	      <property name="directory_entry">True</property>
 	      <property name="modal">True</property>
 	      <property name="use_filechooser">True</property>
-	      <property name="filechooser_action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
 
 	      <child internal-child="entry">
 		<widget class="GtkEntry" id="combo-entry5">
@@ -4429,7 +4345,7 @@
 		  <property name="max_length">0</property>
 		  <property name="text" translatable="yes"></property>
 		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
+		  <property name="invisible_char" translatable="yes">*</property>
 		  <property name="activates_default">False</property>
 		</widget>
 	      </child>
@@ -4502,12 +4418,13 @@
 	    <widget class="GtkHBox" id="hbox57">
 	      <property name="visible">True</property>
 	      <property name="homogeneous">False</property>
-	      <property name="spacing">6</property>
+	      <property name="spacing">0</property>
 
 	      <child>
 		<widget class="GtkLabel" id="label91">
+		  <property name="width_request">18</property>
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">    </property>
+		  <property name="label" translatable="yes"></property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">False</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4543,7 +4460,7 @@
 		      <child>
 			<widget class="GtkLabel" id="label98">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">Assembly _name</property>
+			  <property name="label" translatable="yes">Assembly _name:</property>
 			  <property name="use_underline">True</property>
 			  <property name="use_markup">False</property>
 			  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4568,7 +4485,7 @@
 		      <child>
 			<widget class="GtkLabel" id="label99">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">Output _path</property>
+			  <property name="label" translatable="yes">Output _path:</property>
 			  <property name="use_underline">True</property>
 			  <property name="use_markup">False</property>
 			  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4593,7 +4510,7 @@
 		      <child>
 			<widget class="GtkLabel" id="label100">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">Paramet_ers</property>
+			  <property name="label" translatable="yes">Paramet_ers:</property>
 			  <property name="use_underline">True</property>
 			  <property name="use_markup">False</property>
 			  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4624,7 +4541,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char">*</property>
+			  <property name="invisible_char" translatable="yes">*</property>
 			  <property name="activates_default">False</property>
 			</widget>
 			<packing>
@@ -4645,7 +4562,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char">*</property>
+			  <property name="invisible_char" translatable="yes">*</property>
 			  <property name="activates_default">False</property>
 			</widget>
 			<packing>
@@ -4665,7 +4582,6 @@
 			  <property name="directory_entry">True</property>
 			  <property name="modal">True</property>
 			  <property name="use_filechooser">True</property>
-			  <property name="filechooser_action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
 
 			  <child internal-child="entry">
 			    <widget class="GtkEntry" id="combo-entry6">
@@ -4676,7 +4592,7 @@
 			      <property name="max_length">0</property>
 			      <property name="text" translatable="yes"></property>
 			      <property name="has_frame">True</property>
-			      <property name="invisible_char">*</property>
+			      <property name="invisible_char" translatable="yes">*</property>
 			      <property name="activates_default">False</property>
 			    </widget>
 			  </child>
@@ -4751,8 +4667,8 @@
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
+	  <property name="expand">False</property>
+	  <property name="fill">False</property>
 	</packing>
       </child>
 
@@ -4787,12 +4703,13 @@
 	    <widget class="GtkHBox" id="hbox58">
 	      <property name="visible">True</property>
 	      <property name="homogeneous">False</property>
-	      <property name="spacing">6</property>
+	      <property name="spacing">0</property>
 
 	      <child>
 		<widget class="GtkLabel" id="label92">
+		  <property name="width_request">18</property>
 		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">    </property>
+		  <property name="label" translatable="yes"></property>
 		  <property name="use_underline">False</property>
 		  <property name="use_markup">False</property>
 		  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4822,7 +4739,7 @@
 		  <child>
 		    <widget class="GtkLabel" id="label95">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Execute co_mmand</property>
+		      <property name="label" translatable="yes">Execute co_mmand:</property>
 		      <property name="use_underline">True</property>
 		      <property name="use_markup">False</property>
 		      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4847,7 +4764,7 @@
 		  <child>
 		    <widget class="GtkLabel" id="label96">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_After build</property>
+		      <property name="label" translatable="yes">_After build:</property>
 		      <property name="use_underline">True</property>
 		      <property name="use_markup">False</property>
 		      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4872,7 +4789,7 @@
 		  <child>
 		    <widget class="GtkLabel" id="label97">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Before build</property>
+		      <property name="label" translatable="yes">_Before build:</property>
 		      <property name="use_underline">True</property>
 		      <property name="use_markup">False</property>
 		      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -4901,7 +4818,6 @@
 		      <property name="directory_entry">False</property>
 		      <property name="modal">True</property>
 		      <property name="use_filechooser">True</property>
-		      <property name="filechooser_action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
 
 		      <child internal-child="entry">
 			<widget class="GtkEntry" id="combo-entry7">
@@ -4912,7 +4828,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char">*</property>
+			  <property name="invisible_char" translatable="yes">*</property>
 			  <property name="activates_default">False</property>
 			</widget>
 		      </child>
@@ -4933,7 +4849,6 @@
 		      <property name="directory_entry">False</property>
 		      <property name="modal">True</property>
 		      <property name="use_filechooser">True</property>
-		      <property name="filechooser_action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
 
 		      <child internal-child="entry">
 			<widget class="GtkEntry" id="combo-entry8">
@@ -4944,7 +4859,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char">*</property>
+			  <property name="invisible_char" translatable="yes">*</property>
 			  <property name="activates_default">False</property>
 			</widget>
 		      </child>
@@ -4965,7 +4880,6 @@
 		      <property name="directory_entry">False</property>
 		      <property name="modal">True</property>
 		      <property name="use_filechooser">True</property>
-		      <property name="filechooser_action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
 
 		      <child internal-child="entry">
 			<widget class="GtkEntry" id="combo-entry9">
@@ -4976,7 +4890,7 @@
 			  <property name="max_length">0</property>
 			  <property name="text" translatable="yes"></property>
 			  <property name="has_frame">True</property>
-			  <property name="invisible_char">*</property>
+			  <property name="invisible_char" translatable="yes">*</property>
 			  <property name="activates_default">False</property>
 			</widget>
 		      </child>
@@ -5006,6 +4920,221 @@
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">False</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkDialog" id="ErrorDialog">
+  <property name="border_width">6</property>
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">dialog1</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="has_separator">True</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="dialog-vbox5">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child internal-child="action_area">
+	<widget class="GtkHButtonBox" id="dialog-action_area5">
+	  <property name="visible">True</property>
+	  <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+	  <child>
+	    <widget class="GtkButton" id="okbutton1">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-ok</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-5</property>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	  <property name="pack_type">GTK_PACK_END</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkHBox" id="hbox59">
+	  <property name="border_width">6</property>
+	  <property name="visible">True</property>
+	  <property name="homogeneous">False</property>
+	  <property name="spacing">6</property>
+
+	  <child>
+	    <widget class="GtkVBox" id="vbox72">
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">0</property>
+
+	      <child>
+		<widget class="GtkImage" id="icon">
+		  <property name="visible">True</property>
+		  <property name="stock">gtk-dialog-error</property>
+		  <property name="icon_size">6</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkVBox" id="vbox73">
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">12</property>
+
+	      <child>
+		<widget class="GtkLabel" id="errorLabel">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">&lt;b&gt;Unexpected error&lt;/b&gt;</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">True</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="descriptionLabel">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">label104</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">False</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkExpander" id="expander1">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="expanded">True</property>
+		  <property name="spacing">0</property>
+
+		  <child>
+		    <widget class="GtkScrolledWindow" id="scrolledwindow10">
+		      <property name="visible">True</property>
+		      <property name="can_focus">True</property>
+		      <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
+		      <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
+		      <property name="shadow_type">GTK_SHADOW_IN</property>
+		      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+		      <child>
+			<widget class="GtkTextView" id="detailsTextView">
+			  <property name="height_request">250</property>
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="editable">True</property>
+			  <property name="overwrite">False</property>
+			  <property name="accepts_tab">True</property>
+			  <property name="justification">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap_mode">GTK_WRAP_NONE</property>
+			  <property name="cursor_visible">True</property>
+			  <property name="pixels_above_lines">0</property>
+			  <property name="pixels_below_lines">0</property>
+			  <property name="pixels_inside_wrap">0</property>
+			  <property name="left_margin">0</property>
+			  <property name="right_margin">0</property>
+			  <property name="indent">0</property>
+			  <property name="text" translatable="yes"></property>
+			</widget>
+		      </child>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkLabel" id="label102">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">Details</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		    </widget>
+		    <packing>
+		      <property name="type">label_item</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">True</property>
+	      <property name="fill">True</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
 	  <property name="expand">True</property>
 	  <property name="fill">True</property>
 	</packing>

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/ChangeLog
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/ChangeLog	2005-05-15 21:31:15 UTC (rev 2538)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/ChangeLog	2005-05-15 21:35:59 UTC (rev 2539)
@@ -1,3 +1,19 @@
+2005-05-15  Lluis Sanchez Gual  <lluis at novell.com> 
+
+	* Services/File/DefaultFileService.cs: Make the service GUI thread safe.
+	* Gui/Dialogs/ReferenceDialog: Cleaned up the dialog.
+	* Gui/Workbench/Layouts/SdiWorkspaceWindow.cs: Added IntPtr constructor
+	to make gtk# happy.
+	* Gui/Pads/DefaultMonitorPad.cs: Don't indent when a task has a null name.
+	* Base.glade: Many fixes to make the dialogs more conforming to the HIG.
+	* Internal/Project/Project/DotNetProjectConfiguration.cs: Added
+	SourceDirectory property.
+	* Internal/Project/Project/DotNetProject.cs: Set the sources path before
+	building.
+	* Internal/Project/Project/Project.cs: In CopyReferencesToOutputPath, copy
+	refereces of referenced projects. They are not needed for compiling, but
+	they are for running. The Build method now also builds required references.
+
 2005-05-09 Jacob Ilsø Christensen  <jacobilsoe at gmail.com>
  
  	* Gui/Pads/OpenTaskView.cs: Fixed Gtk warnings by using Clipboard.Text

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/ReferenceDialog/AssemblyReferencePanel.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/ReferenceDialog/AssemblyReferencePanel.cs	2005-05-15 21:31:15 UTC (rev 2538)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/ReferenceDialog/AssemblyReferencePanel.cs	2005-05-15 21:35:59 UTC (rev 2539)
@@ -17,50 +17,56 @@
 
 namespace MonoDevelop.Gui.Dialogs
 {
-	public class AssemblyReferencePanel : VButtonBox, IReferencePanel
+	public class AssemblyReferencePanel : HBox, IReferencePanel
 	{
 		SelectReferenceDialog selectDialog;
+		FileChooserWidget chooser;
 		
 		public AssemblyReferencePanel(SelectReferenceDialog selectDialog)
 		{
 			this.selectDialog = selectDialog;
-			// FIXME: il8n this
-			Gtk.Button browseButton = new Gtk.Button(GettextCatalog.GetString ("Browse"));
-			browseButton.Clicked += new EventHandler(SelectReferenceDialog);
-			PackStart(browseButton, false, false, 6);
+			
+			chooser = new FileChooserWidget (FileChooserAction.Open, "");
+			chooser.SelectMultiple = true;
+			PackStart (chooser, true, true, 0);
+			
+			PackStart (new Gtk.VSeparator(), false, false, 0);
+			
+			VBox box = new VBox ();
+			Gtk.Button addButton = new Gtk.Button (Gtk.Stock.Add);
+			addButton.Clicked += new EventHandler(SelectReferenceDialog);
+			box.PackStart (addButton, false, false, 0);
+			PackStart (box, false, false, 0);
+			
+			BorderWidth = 6;
+			Spacing = 6;
 			ShowAll();
 		}
 		
 		void SelectReferenceDialog(object sender, EventArgs e)
 		{
-			using (FileSelector fdiag = new FileSelector (GettextCatalog.GetString ("Find .Net Assembly"))) {
 			// FIXME: this should only allow dll's and exe's
 			// fdiag.Complete("*");
-				fdiag.SelectMultiple = true;
-				int response = fdiag.Run();
-				string[] selectedFiles = new string[fdiag.Filenames.Length];
-				fdiag.Filenames.CopyTo(selectedFiles, 0);
-				fdiag.Hide ();
 			
-				if (response == (int) ResponseType.Ok) {
-					foreach (string file in selectedFiles) {
-						bool isAssembly = true;
-						try	{
-							System.Reflection.AssemblyName.GetAssemblyName(System.IO.Path.GetFullPath (file));
-						} catch (Exception assemblyExcep) {
-							isAssembly = false;
-						}
-					
-						if (isAssembly) {
-						selectDialog.AddReference(ReferenceType.Assembly,
-							System.IO.Path.GetFileName(file),
-							file);
-						} else {
-							// FIXME: il8n this
-							Runtime.MessageService.ShowError(String.Format (GettextCatalog.GetString ("File {0} is not a valid .Net Assembly"), file));
-						}
-					}
+			string[] selectedFiles = new string[chooser.Filenames.Length];
+			chooser.Filenames.CopyTo(selectedFiles, 0);
+		
+			foreach (string file in selectedFiles) {
+				bool isAssembly = true;
+				try	{
+					System.Reflection.AssemblyName.GetAssemblyName(System.IO.Path.GetFullPath (file));
+				} catch (Exception assemblyExcep) {
+					isAssembly = false;
 				}
+			
+				if (isAssembly) {
+				selectDialog.AddReference(ReferenceType.Assembly,
+					System.IO.Path.GetFileName(file),
+					file);
+				} else {
+					// FIXME: il8n this
+					Runtime.MessageService.ShowError(String.Format (GettextCatalog.GetString ("File {0} is not a valid .Net Assembly"), file));
+				}
 			}
 		}
 		

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/ReferenceDialog/GacReferencePanel.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/ReferenceDialog/GacReferencePanel.cs	2005-05-15 21:31:15 UTC (rev 2538)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/ReferenceDialog/GacReferencePanel.cs	2005-05-15 21:35:59 UTC (rev 2539)
@@ -21,7 +21,7 @@
 
 namespace MonoDevelop.Gui.Dialogs
 {
-	public class GacReferencePanel : Frame, IReferencePanel
+	public class GacReferencePanel : VBox, IReferencePanel
 	{
 		SelectReferenceDialog selectDialog;
 
@@ -54,10 +54,11 @@
 			
 			PrintCache();
 			ScrolledWindow sc = new ScrolledWindow ();
-			sc.AddWithViewport (treeView);
-			this.Add (sc);
-			Shadow = ShadowType.In;
+			sc.ShadowType = Gtk.ShadowType.In;
+			sc.Add (treeView);
+			this.PackStart (sc, true, true, 0);
 			ShowAll ();
+			BorderWidth = 6;
 		}
 		
 		public void AddReference(object sender, Gtk.ToggledArgs e)

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/ReferenceDialog/ProjectReferencePanel.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/ReferenceDialog/ProjectReferencePanel.cs	2005-05-15 21:31:15 UTC (rev 2538)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/ReferenceDialog/ProjectReferencePanel.cs	2005-05-15 21:35:59 UTC (rev 2539)
@@ -27,36 +27,70 @@
 		{
 			this.selectDialog = selectDialog;
 			
-			store = new TreeStore (typeof (string), typeof (string), typeof(Project));
+			store = new TreeStore (typeof (string), typeof (string), typeof(Project), typeof(bool), typeof(Gdk.Pixbuf));
 			treeView = new TreeView (store);
-			treeView.AppendColumn (GettextCatalog.GetString ("Project Name"), new CellRendererText (), "text", 0);
-			treeView.AppendColumn (GettextCatalog.GetString ("Project Directory"), new CellRendererText (), "text", 1);
 			
+			TreeViewColumn firstColumn = new TreeViewColumn ();
 			
+			firstColumn.Title = GettextCatalog.GetString ("Project");
+			CellRendererToggle tog_render = new CellRendererToggle ();
+			tog_render.Xalign = 0;
+			tog_render.Toggled += new Gtk.ToggledHandler (AddReference);
+			firstColumn.PackStart (tog_render, false);
+			firstColumn.AddAttribute (tog_render, "active", 3);
+
+			Gtk.CellRendererPixbuf pix_render = new Gtk.CellRendererPixbuf ();
+			firstColumn.PackStart (pix_render, false);
+			firstColumn.AddAttribute (pix_render, "pixbuf", 4);
+			
+			CellRendererText text_render = new CellRendererText ();
+			firstColumn.PackStart (text_render, true);
+			firstColumn.AddAttribute (text_render, "text", 0);
+			
+			treeView.AppendColumn (firstColumn);
+			treeView.AppendColumn (GettextCatalog.GetString ("Directory"), new CellRendererText (), "text", 1);
+			
 			PopulateListView ();
 			ScrolledWindow sc = new ScrolledWindow ();
-			sc.AddWithViewport (treeView);
+			sc.ShadowType = Gtk.ShadowType.In;
+			sc.Add (treeView);
 			PackStart (sc, true, true, 0);
-			
-			Button b = new Button (Gtk.Stock.Add);
-			b.Clicked += new EventHandler (AddReference);
-			
-			PackEnd (b, false, false, 0);
 			ShowAll ();
+			BorderWidth = 6;
 		}
 		
-		void AddReference (TreeModel model, TreePath path, TreeIter iter)
+		public void AddReference(object sender, Gtk.ToggledArgs e)
 		{
-			Project project = (Project) model.GetValue (iter, 2);
-			selectDialog.AddReference(ReferenceType.Project,
-						  project.Name,
-						  project.GetOutputFileName());
+			Gtk.TreeIter iter;
+			store.GetIterFromString (out iter, e.Path);
+			Project project = (Project) store.GetValue (iter, 2);
+			
+			if ((bool)store.GetValue (iter, 3) == false) {
+				store.SetValue (iter, 3, true);
+				selectDialog.AddReference(ReferenceType.Project,
+							  project.Name,
+							  project.GetOutputFileName());
+				
+			} else {
+				store.SetValue (iter, 3, false);
+				selectDialog.RemoveReference(ReferenceType.Project,
+							  project.Name,
+							  project.GetOutputFileName());
+			}
 		}
 		
-		public void AddReference(object sender, EventArgs e)
+		public void SignalRefChange (string refLoc, bool newstate)
 		{
-			treeView.Selection.SelectedForeach (new TreeSelectionForeachFunc (AddReference));
-		}	
+			Gtk.TreeIter looping_iter;
+			store.GetIterFirst (out looping_iter);
+			do {
+				Project project = (Project) store.GetValue (looping_iter, 2);
+				if (project.Name == refLoc) {
+					store.SetValue (looping_iter, 3, newstate);
+					return;
+				}
+			} while (store.IterNext (ref looping_iter));
+		}
 		
 		void PopulateListView ()
 		{
@@ -67,7 +101,9 @@
 			}
 			
 			foreach (Project projectEntry in openCombine.GetAllProjects()) {
-				store.AppendValues (projectEntry.Name, projectEntry.BaseDirectory, projectEntry);
+				string iconName = Runtime.Gui.Icons.GetImageForProjectType (projectEntry.ProjectType);
+				Gdk.Pixbuf icon = treeView.RenderIcon (iconName, Gtk.IconSize.Menu, "");
+				store.AppendValues (projectEntry.Name, projectEntry.BaseDirectory, projectEntry, false, icon);
 			}
 		}
 	}

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/ReferenceDialog/SelectReferenceDialog.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/ReferenceDialog/SelectReferenceDialog.cs	2005-05-15 21:31:15 UTC (rev 2538)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Dialogs/ReferenceDialog/SelectReferenceDialog.cs	2005-05-15 21:35:59 UTC (rev 2539)
@@ -36,6 +36,7 @@
 		GacReferencePanel gacRefPanel;
 
 		Project configureProject;
+		ProjectReferencePanel projectRefPanel;
 		
 		public ProjectReferenceCollection ReferenceInformations {
 			get {
@@ -77,6 +78,7 @@
 			ReferencesTreeView.AppendColumn (GettextCatalog.GetString ("Location"), new CellRendererText (), "text", 2);
 			
 			gacRefPanel = new GacReferencePanel (this);
+			projectRefPanel = new ProjectReferencePanel (this);
 			
 			foreach (ProjectReference refInfo in configureProject.ProjectReferences) {
 				switch (refInfo.ReferenceType) {
@@ -91,7 +93,7 @@
 			}
 			mainBook.RemovePage (mainBook.CurrentPage);
 			mainBook.AppendPage (gacRefPanel, new Gtk.Label (GettextCatalog.GetString ("Global Assembly Cache")));
-			mainBook.AppendPage (new ProjectReferencePanel (this), new Gtk.Label (GettextCatalog.GetString ("Projects")));
+			mainBook.AppendPage (projectRefPanel, new Gtk.Label (GettextCatalog.GetString ("Projects")));
 			mainBook.AppendPage (new AssemblyReferencePanel (this), new Gtk.Label (GettextCatalog.GetString (".Net Assembly")));
 			//comTabPage.Controls.Add(new COMReferencePanel(this));
 			ReferencesTreeView.Selection.Changed += new EventHandler (onChanged);
@@ -115,6 +117,7 @@
 		void AddGacReference (ProjectReference refInfo, Project referencedProject)
 		{
 			gacRefPanel.SignalRefChange (refInfo.Reference, true);
+			projectRefPanel.SignalRefChange (refInfo.Reference, true);
 			refTreeStore.AppendValues (System.IO.Path.GetFileNameWithoutExtension (refInfo.GetReferencedFileName ()), refInfo.ReferenceType.ToString (), refInfo.Reference, refInfo);
 		}
 
@@ -156,7 +159,8 @@
 					break;
 					
 			}
-			refTreeStore.AppendValues (referenceName, referenceType.ToString (), referenceLocation, tag);
+			Gtk.TreeIter ni = refTreeStore.AppendValues (referenceName, referenceType.ToString (), referenceLocation, tag);
+			ReferencesTreeView.ScrollToCell (refTreeStore.GetPath (ni), null, false, 0, 0);
 		}
 		
 		void SelectReference(object sender, EventArgs e)
@@ -174,6 +178,9 @@
 					case ReferenceType.Gac:
 						gacRefPanel.SignalRefChange ((string)refTreeStore.GetValue (iter, 2), false);
 						break;
+					case ReferenceType.Project:
+						projectRefPanel.SignalRefChange ((string)refTreeStore.GetValue (iter, 0), false);
+						break;
 				}
 				Gtk.TreeIter newIter = iter;
 				if (refTreeStore.IterNext (ref newIter)) {

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Pads/DefaultMonitorPad.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Pads/DefaultMonitorPad.cs	2005-05-15 21:31:15 UTC (rev 2538)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Pads/DefaultMonitorPad.cs	2005-05-15 21:35:59 UTC (rev 2539)
@@ -36,6 +36,7 @@
 		TextTag bold;
 		int ident = 0;
 		ArrayList tags = new ArrayList ();
+		Stack indents = new Stack ();
 
 		string markupTitle;
 		string title;
@@ -130,15 +131,23 @@
 		
 		public void BeginTask (string name, int totalWork)
 		{
-			Indent ();
-			TextIter it = buffer.EndIter;
-			string txt = "\n" + name + "\n";
-			buffer.InsertWithTags (ref it, txt, tag, bold);
+			if (name != null && name.Length > 0) {
+				Indent ();
+				indents.Push (name);
+			} else
+				indents.Push (null);
+
+			if (name != null) {
+				TextIter it = buffer.EndIter;
+				string txt = "\n" + name + "\n";
+				buffer.InsertWithTags (ref it, txt, tag, bold);
+			}
 		}
 		
 		public void EndTask ()
 		{
-			Unindent ();
+			if (indents.Count > 0 && indents.Pop () != null)
+				Unindent ();
 		}
 		
 		public void WriteText (string text)

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Workbench/Layouts/SdiWorkspaceWindow.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Workbench/Layouts/SdiWorkspaceWindow.cs	2005-05-15 21:31:15 UTC (rev 2538)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Gui/Workbench/Layouts/SdiWorkspaceWindow.cs	2005-05-15 21:35:59 UTC (rev 2539)
@@ -40,6 +40,10 @@
 		
 		ViewCommandHandlers commandHandler;
 		
+		protected SdiWorkspaceWindow (IntPtr p): base (p)
+		{
+		}
+		
 		public Widget TabPage {
 			get {
 				return tabPage;

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Internal/Project/Combine/Combine.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Internal/Project/Combine/Combine.cs	2005-05-15 21:31:15 UTC (rev 2538)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Internal/Project/Combine/Combine.cs	2005-05-15 21:35:59 UTC (rev 2539)
@@ -461,7 +461,7 @@
 					if (monitor.IsCancelRequested)
 						break;
 
-					ICompilerResult res = entry.Build (monitor);
+					ICompilerResult res = entry.Build (monitor, false);
 					builds++;
 					cres.Errors.AddRange (res.CompilerResults.Errors);
 					monitor.Step (1);

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Internal/Project/Project/DotNetProject.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Internal/Project/Project/DotNetProject.cs	2005-05-15 21:31:15 UTC (rev 2538)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Internal/Project/Project/DotNetProject.cs	2005-05-15 21:35:59 UTC (rev 2539)
@@ -105,6 +105,8 @@
 		protected override ICompilerResult DoBuild (IProgressMonitor monitor)
 		{
 			DotNetProjectConfiguration conf = (DotNetProjectConfiguration) ActiveConfiguration;
+			conf.SourceDirectory = BaseDirectory;
+			
 			foreach (ProjectFile finfo in ProjectFiles) {
 				// Treat app.config in the project root directory as the application config
 				if (Path.GetFileName (finfo.Name).ToUpper () == "app.config".ToUpper() &&

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Internal/Project/Project/DotNetProjectConfiguration.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Internal/Project/Project/DotNetProjectConfiguration.cs	2005-05-15 21:31:15 UTC (rev 2538)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Internal/Project/Project/DotNetProjectConfiguration.cs	2005-05-15 21:35:59 UTC (rev 2539)
@@ -58,6 +58,8 @@
 		
 		[ItemProperty ("CodeGeneration")]
 		object compilationParameters;
+		
+		string sourcePath;
 
 		public virtual string OutputAssembly {
 			get { return assembly; }
@@ -82,5 +84,10 @@
 		public string CompiledOutputName {
 			get { return Path.Combine (OutputDirectory, OutputAssembly) + (CompileTarget == CompileTarget.Library ? ".dll" : ".exe"); }
 		}
+		
+		public string SourceDirectory {
+			get { return sourcePath; }
+			set { sourcePath = value; }
+		}
 	}
 }

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Internal/Project/Project/Project.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Internal/Project/Project/Project.cs	2005-05-15 21:31:15 UTC (rev 2538)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Internal/Project/Project/Project.cs	2005-05-15 21:35:59 UTC (rev 2539)
@@ -243,16 +243,21 @@
 			}
 		}
 
-		public void CopyReferencesToOutputPath(bool force)
+		public void CopyReferencesToOutputPath (bool force)
 		{
 			AbstractProjectConfiguration config = ActiveConfiguration as AbstractProjectConfiguration;
 			if (config == null) {
 				return;
 			}
+			CopyReferencesToOutputPath (config.OutputDirectory, force);
+		}
+		
+		void CopyReferencesToOutputPath (string destPath, bool force)
+		{
 			foreach (ProjectReference projectReference in ProjectReferences) {
 				if ((projectReference.LocalCopy || force) && projectReference.ReferenceType != ReferenceType.Gac) {
 					string referenceFileName   = projectReference.GetReferencedFileName();
-					string destinationFileName = Runtime.FileUtilityService.GetDirectoryNameWithSeparator(config.OutputDirectory) + Path.GetFileName(referenceFileName);
+					string destinationFileName = Path.Combine (destPath, Path.GetFileName (referenceFileName));
 					try {
 						if (destinationFileName != referenceFileName) {
 							File.Copy(referenceFileName, destinationFileName, true);
@@ -263,6 +268,10 @@
 						Runtime.LoggingService.InfoFormat("Can't copy reference file from {0} to {1} reason {2}", referenceFileName, destinationFileName, e);
 					}
 				}
+				if (projectReference.ReferenceType == ReferenceType.Project) {
+					Project p = Runtime.ProjectService.GetProject (projectReference.Reference);
+					p.CopyReferencesToOutputPath (destPath, force);
+				}
 			}
 		}
 		
@@ -313,8 +322,39 @@
 		
 		public override ICompilerResult Build (IProgressMonitor monitor)
 		{
-			if (!NeedsBuilding) return new DefaultCompilerResult (new CompilerResults (null), "");
+			return Build (monitor, true);
+		}
+		
+		public virtual ICompilerResult Build (IProgressMonitor monitor, bool buildReferences)
+		{
+			if (buildReferences)
+			{
+				ArrayList referenced = new ArrayList ();
+				GetReferencedProjects (referenced, this);
+				
+				CompilerResults cres = new CompilerResults (null);
+				
+				int builds = 0;
+				int failedBuilds = 0;
+					
+				monitor.BeginTask (null, referenced.Count);
+				foreach (Project p in referenced) {
+					ICompilerResult res = p.Build (monitor, false);
+					cres.Errors.AddRange (res.CompilerResults.Errors);
+					monitor.Step (1);
+					builds++;
+					if (res.ErrorCount > 0) {
+						failedBuilds = 1;
+						break;
+					}
+				}
+				monitor.EndTask ();
+				return new DefaultCompilerResult (cres, "", builds, failedBuilds);
+			}
 			
+			if (!NeedsBuilding)
+				return new DefaultCompilerResult (new CompilerResults (null), "");
+			
 			try {
 				monitor.BeginTask (String.Format (GettextCatalog.GetString ("Building Project: {0} Configuration: {1}"), Name, ActiveConfiguration.Name), 3);
 				
@@ -342,6 +382,21 @@
 			}
 		}
 		
+		void GetReferencedProjects (ArrayList referenced, Project project)
+		{
+			if (referenced.Contains (project)) return;
+			
+			if (NeedsBuilding)
+				referenced.Insert (0, project);
+
+			foreach (ProjectReference pref in project.ProjectReferences) {
+				if (pref.ReferenceType == ReferenceType.Project) {
+					Project rp = Runtime.ProjectService.GetProject (pref.Reference);
+					GetReferencedProjects (referenced, rp);
+				}
+			}
+		}
+		
 		protected virtual void DoPreBuild (IProgressMonitor monitor)
 		{
 			AbstractProjectConfiguration conf = ActiveConfiguration as AbstractProjectConfiguration;
@@ -448,17 +503,29 @@
 				return;
 			}
 			
-			if (filesChecked) return;
-			
-			foreach (ProjectFile file in ProjectFiles) {
-				if (file.BuildAction == BuildAction.Exclude) continue;
-				FileInfo finfo = new FileInfo (file.FilePath);
-				if (finfo.Exists && finfo.LastWriteTime > tim) {
-					isDirty = true;
-					return;
+			if (!filesChecked) {
+				foreach (ProjectFile file in ProjectFiles) {
+					if (file.BuildAction == BuildAction.Exclude) continue;
+					FileInfo finfo = new FileInfo (file.FilePath);
+					if (finfo.Exists && finfo.LastWriteTime > tim) {
+						isDirty = true;
+						return;
+					}
 				}
+				
+				filesChecked = true;
 			}
-			filesChecked = true;
+
+			foreach (ProjectReference pref in ProjectReferences) {
+				if (pref.ReferenceType == ReferenceType.Project) {
+					Project rp = Runtime.ProjectService.GetProject (pref.Reference);
+					if (rp != null && rp.NeedsBuilding) {
+						isDirty = true;
+						return;
+					}
+				}
+			}
+			
 		}
 		
 		protected virtual DateTime GetLastBuildTime ()

Modified: trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/File/DefaultFileService.cs
===================================================================
--- trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/File/DefaultFileService.cs	2005-05-15 21:31:15 UTC (rev 2538)
+++ trunk/MonoDevelop/Core/src/MonoDevelop.Base/Services/File/DefaultFileService.cs	2005-05-15 21:35:59 UTC (rev 2539)
@@ -21,7 +21,7 @@
 
 namespace MonoDevelop.Services
 {
-	public class DefaultFileService : AbstractService, IFileService
+	public class DefaultFileService : GuiSyncAbstractService, IFileService
 	{
 		string currentFile;
 		RecentOpen       recentOpen = null;
@@ -287,12 +287,14 @@
 			}
 		}
 		
+		[FreeDispatch]
 		public void CopyFile (string sourcePath, string destPath)
 		{
 			File.Copy (sourcePath, destPath, true);
 			OnFileCreated (new FileEventArgs (destPath, false));
 		}
 
+		[FreeDispatch]
 		public void MoveFile (string sourcePath, string destPath)
 		{
 			File.Copy (sourcePath, destPath, true);
@@ -301,6 +303,7 @@
 			OnFileRemoved (new FileEventArgs (destPath, false));
 		}
 		
+		[FreeDispatch]
 		public void CreateDirectory (string path)
 		{
 			Directory.CreateDirectory (path);




More information about the Monodevelop-patches-list mailing list