[anjuta] project-manager: Use ProjectChooser button in the Add library dialog



commit 27f51d2f503e7772d824bf83ede44f85e6e99110
Author: SÃbastien Granjoux <seb sfo free fr>
Date:   Thu Jan 12 19:37:07 2012 +0100

    project-manager: Use ProjectChooser button in the Add library dialog

 plugins/project-manager/dialogs.c         |   29 ++++++++++++-----------------
 plugins/project-manager/pm_dialogs.ui     |   17 +++++------------
 plugins/project-manager/project-chooser.c |   13 ++++++++-----
 3 files changed, 25 insertions(+), 34 deletions(-)
---
diff --git a/plugins/project-manager/dialogs.c b/plugins/project-manager/dialogs.c
index 23cb0a0..59a0b07 100644
--- a/plugins/project-manager/dialogs.c
+++ b/plugins/project-manager/dialogs.c
@@ -1601,7 +1601,7 @@ anjuta_pm_project_new_module (ProjectManagerPlugin *plugin,
 	GtkBuilder *gui;
 	GtkWidget *dialog;
 	GtkWidget *ok_button, *new_button;
-	GtkWidget *targets_view;
+	GtkWidget *target_chooser;
 	GtkWidget *modules_view;
 	GtkTreePath *root;
 	gint response;
@@ -1616,20 +1616,17 @@ anjuta_pm_project_new_module (ProjectManagerPlugin *plugin,
 
 	/* get all needed widgets */
 	dialog = GTK_WIDGET (gtk_builder_get_object (gui, "add_module_dialog"));
-	targets_view = GTK_WIDGET (gtk_builder_get_object (gui, "module_targets_view"));
+	target_chooser = GTK_WIDGET (gtk_builder_get_object (gui, "module_targets_chooser"));
 	modules_view = GTK_WIDGET (gtk_builder_get_object (gui, "modules_view"));
 	new_button = GTK_WIDGET (gtk_builder_get_object (gui, "new_package_button"));
 	ok_button = GTK_WIDGET (gtk_builder_get_object (gui, "ok_module_button"));
 
-	root = gbf_project_model_get_project_root (gbf_project_view_get_model (plugin->view));
-	setup_nodes_treeview (GBF_PROJECT_VIEW (targets_view),
-	                        plugin->view,
-	                       	root,
-							parent_filter_func,
-							GINT_TO_POINTER (ANJUTA_PROJECT_MODULE),
-							default_target);
-	gtk_tree_path_free (root);
-	gtk_widget_show (targets_view);
+	/* Fill target selection */
+	ianjuta_project_chooser_set_project_model (IANJUTA_PROJECT_CHOOSER (target_chooser),
+	                                           IANJUTA_PROJECT_MANAGER (plugin),
+	                                           ANJUTA_PROJECT_MODULE,
+	                                           NULL);
+	gtk_widget_show (target_chooser);
 	root = gbf_project_model_get_project_root (gbf_project_view_get_model (plugin->view));
 	setup_nodes_treeview (GBF_PROJECT_VIEW (modules_view),
 	                        plugin->view,
@@ -1659,10 +1656,7 @@ anjuta_pm_project_new_module (ProjectManagerPlugin *plugin,
 		gtk_window_set_transient_for (GTK_WINDOW (dialog), parent);
 	}
 
-	if (default_module)
-		gtk_widget_grab_focus (modules_view);
-	else
-		gtk_widget_grab_focus (targets_view);
+	gtk_widget_grab_focus (modules_view);
 
 	/* execute dialog */
 	while (!finished)
@@ -1678,10 +1672,11 @@ anjuta_pm_project_new_module (ProjectManagerPlugin *plugin,
 			}
 			case GTK_RESPONSE_OK:
 			{
+				GFile *target_file;
 				AnjutaProjectNode *target;
 
-				target = gbf_project_view_find_selected (GBF_PROJECT_VIEW (targets_view),
-														ANJUTA_PROJECT_TARGET);
+				target_file = ianjuta_project_chooser_get_selected (IANJUTA_PROJECT_CHOOSER (target_chooser), NULL);
+				target = gbf_project_view_get_node_from_file (plugin->view, ANJUTA_PROJECT_UNKNOWN, target_file);
 				if (target)
 				{
 					GString *err_mesg = g_string_new (NULL);
diff --git a/plugins/project-manager/pm_dialogs.ui b/plugins/project-manager/pm_dialogs.ui
index e52cd27..a635d05 100644
--- a/plugins/project-manager/pm_dialogs.ui
+++ b/plugins/project-manager/pm_dialogs.ui
@@ -92,22 +92,15 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkScrolledWindow" id="targets_ph1">
+                  <object class="AnjutaPmChooserButton" id="module_targets_chooser">
+                    <property name="use_action_appearance">False</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="shadow_type">in</property>
-                    <child>
-                      <object class="GbfProjectView" id="module_targets_view">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <child internal-child="selection">
-                          <object class="GtkTreeSelection" id="view-selection1"/>
-                        </child>
-                      </object>
-                    </child>
+                    <property name="receives_default">True</property>
+                    <property name="use_action_appearance">False</property>
                   </object>
                   <packing>
-                    <property name="expand">True</property>
+                    <property name="expand">False</property>
                     <property name="fill">True</property>
                     <property name="position">1</property>
                   </packing>
diff --git a/plugins/project-manager/project-chooser.c b/plugins/project-manager/project-chooser.c
index bbd77b7..d45c52b 100644
--- a/plugins/project-manager/project-chooser.c
+++ b/plugins/project-manager/project-chooser.c
@@ -83,6 +83,9 @@ is_node_valid (GtkTreeModel *model, GtkTreeIter *iter, AnjutaPmChooserButton *bu
 			mask = -1;
 			break;
 		case ANJUTA_PROJECT_MODULE:
+			/* Only module parent */
+			mask = ANJUTA_PROJECT_CAN_ADD_MODULE;
+			break;
 		case ANJUTA_PROJECT_PACKAGE:
 			/* Only package parent */
 			mask = ANJUTA_PROJECT_CAN_ADD_PACKAGE;
@@ -290,15 +293,15 @@ anjuta_pm_chooser_set_project_model (IAnjutaProjectChooser *iface, IAnjutaProjec
 		label = _("<Select any project node>");
 		break;
 	case ANJUTA_PROJECT_MODULE:
-		/* Display all modules */
-		func = is_project_module_node;
-		label = _("<Select any module>");
-		break;
-	case ANJUTA_PROJECT_PACKAGE:
 		/* Display all targets */
 		func = is_project_target_or_group_node;
 		label = _("<Select a target>");
 		break;
+	case ANJUTA_PROJECT_PACKAGE:
+		/* Display all modules */
+		func = is_project_module_node;
+		label = _("<Select any module>");
+		break;
 	case ANJUTA_PROJECT_SOURCE:
 		/* Display all targets */
 		func = is_project_target_or_group_node;



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