Index: plugins/cvs-plugin/anjuta-cvs-plugin.glade
===================================================================
--- plugins/cvs-plugin/anjuta-cvs-plugin.glade	(revision 4939)
+++ plugins/cvs-plugin/anjuta-cvs-plugin.glade	(working copy)
@@ -2,7 +2,6 @@
 <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
 <!--*- mode: xml -*-->
 <glade-interface>
-  <requires lib="gnome"/>
   <widget class="GtkWindow" id="preferences_cvs">
     <property name="visible">True</property>
     <property name="title" translatable="yes">CVS Preferences</property>
@@ -44,17 +43,8 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeFileEntry" id="fileentry1">
+              <widget class="GtkFileChooserButton" id="preferences_file:text:/usr/bin/cvs:0:cvs.path">
                 <property name="visible">True</property>
-                <property name="max_saved">10</property>
-                <child internal-child="entry">
-                  <widget class="GtkEntry" id="preferences_entry:text:/usr/bin/cvs:0:cvs.path">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="invisible_char">*</property>
-                    <property name="text">/usr/bin/cvs</property>
-                  </widget>
-                </child>
               </widget>
               <packing>
                 <property name="left_attach">1</property>
@@ -162,18 +152,30 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeFileEntry" id="gnomefileentry">
+              <widget class="GtkHBox" id="hbox01">
                 <property name="visible">True</property>
-                <property name="modal">True</property>
-                <property name="use_filechooser">True</property>
-                <property name="max_saved">10</property>
-                <child internal-child="entry">
+                <child>
                   <widget class="GtkEntry" id="cvs_filename">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="invisible_char">&#x25CF;</property>
                     <property name="width_request">260</property>
+                  </widget>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkButton" id="button01">
+                    <property name="label" translatable="yes">Browse...</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="invisible_char">*</property>
+                    <property name="receives_default">True</property>
                   </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
               </widget>
               <packing>
@@ -265,18 +267,31 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeFileEntry" id="fileentry2">
+              <widget class="GtkHBox" id="hbox02">
                 <property name="visible">True</property>
-                <property name="modal">True</property>
-                <property name="use_filechooser">True</property>
-                <property name="max_saved">10</property>
-                <child internal-child="entry">
+                <child>
                   <widget class="GtkEntry" id="cvs_filename">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="invisible_char">*</property>
+                    <property name="invisible_char">&#x25CF;</property>
+                    <property name="width_request">260</property>
                   </widget>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
                 </child>
+                <child>
+                  <widget class="GtkButton" id="button02">
+                    <property name="label" translatable="yes">Browse...</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">True</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
               </widget>
               <packing>
                 <property name="expand">False</property>
@@ -369,18 +384,31 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeFileEntry" id="fileentry3">
+              <widget class="GtkHBox" id="hbox03">
                 <property name="visible">True</property>
-                <property name="modal">True</property>
-                <property name="use_filechooser">True</property>
-                <property name="max_saved">10</property>
-                <child internal-child="entry">
+                <child>
                   <widget class="GtkEntry" id="cvs_filename">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="invisible_char">*</property>
+                    <property name="invisible_char">&#x25CF;</property>
+                    <property name="width_request">260</property>
                   </widget>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
                 </child>
+                <child>
+                  <widget class="GtkButton" id="button03">
+                    <property name="label" translatable="yes">Browse...</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">True</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
               </widget>
               <packing>
                 <property name="expand">False</property>
@@ -468,16 +496,10 @@
                               </packing>
                             </child>
                             <child>
-                              <widget class="GnomeEntry" id="entry2">
+                              <widget class="GtkEntry" id="cvs_revision">
                                 <property name="visible">True</property>
-                                <property name="max_saved">10</property>
-                                <child internal-child="entry">
-                                  <widget class="GtkEntry" id="cvs_revision">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="invisible_char">*</property>
-                                  </widget>
-                                </child>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">*</property>
                               </widget>
                               <packing>
                                 <property name="position">1</property>
@@ -588,18 +610,30 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeFileEntry" id="fileentry4">
+              <widget class="GtkHBox" id="hbox04">
                 <property name="visible">True</property>
-                <property name="modal">True</property>
-                <property name="use_filechooser">True</property>
-                <property name="max_saved">10</property>
-                <child internal-child="entry">
+                <child>
                   <widget class="GtkEntry" id="cvs_filename">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="invisible_char">&#x25CF;</property>
                     <property name="width_request">260</property>
+                  </widget>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkButton" id="button04">
+                    <property name="label" translatable="yes">Browse...</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="invisible_char">*</property>
+                    <property name="receives_default">True</property>
                   </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
               </widget>
               <packing>
@@ -711,16 +745,10 @@
                               </packing>
                             </child>
                             <child>
-                              <widget class="GnomeEntry" id="entry5">
+                              <widget class="GtkEntry" id="cvs_revision">
                                 <property name="visible">True</property>
-                                <property name="max_saved">10</property>
-                                <child internal-child="entry">
-                                  <widget class="GtkEntry" id="cvs_revision">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="invisible_char">*</property>
-                                  </widget>
-                                </child>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">*</property>
                               </widget>
                               <packing>
                                 <property name="position">1</property>
@@ -841,18 +869,30 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeFileEntry" id="fileentry5">
+              <widget class="GtkHBox" id="hbox05">
                 <property name="visible">True</property>
-                <property name="modal">True</property>
-                <property name="use_filechooser">True</property>
-                <property name="max_saved">10</property>
-                <child internal-child="entry">
+                <child>
                   <widget class="GtkEntry" id="cvs_filename">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="invisible_char">&#x25CF;</property>
                     <property name="width_request">260</property>
+                  </widget>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkButton" id="button05">
+                    <property name="label" translatable="yes">Browse...</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="invisible_char">*</property>
+                    <property name="receives_default">True</property>
                   </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
               </widget>
               <packing>
@@ -1004,18 +1044,30 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeFileEntry" id="fileentry6">
+              <widget class="GtkHBox" id="hbox06">
                 <property name="visible">True</property>
-                <property name="modal">True</property>
-                <property name="use_filechooser">True</property>
-                <property name="max_saved">10</property>
-                <child internal-child="entry">
+                <child>
                   <widget class="GtkEntry" id="cvs_filename">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="invisible_char">&#x25CF;</property>
                     <property name="width_request">260</property>
+                  </widget>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkButton" id="button06">
+                    <property name="label" translatable="yes">Browse...</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="invisible_char">*</property>
+                    <property name="receives_default">True</property>
                   </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
               </widget>
               <packing>
@@ -1094,16 +1146,10 @@
                               </packing>
                             </child>
                             <child>
-                              <widget class="GnomeEntry" id="entry4">
+                              <widget class="GtkEntry" id="cvs_revision">
                                 <property name="visible">True</property>
-                                <property name="max_saved">10</property>
-                                <child internal-child="entry">
-                                  <widget class="GtkEntry" id="cvs_revision">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="invisible_char">*</property>
-                                  </widget>
-                                </child>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">*</property>
                               </widget>
                               <packing>
                                 <property name="position">1</property>
@@ -1218,18 +1264,31 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeFileEntry" id="fileentry7">
+              <widget class="GtkHBox" id="hbox07">
                 <property name="visible">True</property>
-                <property name="modal">True</property>
-                <property name="use_filechooser">True</property>
-                <property name="max_saved">10</property>
-                <child internal-child="entry">
+                <child>
                   <widget class="GtkEntry" id="cvs_filename">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="invisible_char">*</property>
+                    <property name="invisible_char">&#x25CF;</property>
+                    <property name="width_request">260</property>
                   </widget>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
                 </child>
+                <child>
+                  <widget class="GtkButton" id="button07">
+                    <property name="label" translatable="yes">Browse...</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">True</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
               </widget>
               <packing>
                 <property name="expand">False</property>
@@ -1461,19 +1520,9 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GnomeFileEntry" id="fileentry8">
+                      <widget class="GtkFileChooserButton" id="cvs_rootdir">
                         <property name="visible">True</property>
-                        <property name="directory_entry">True</property>
-                        <property name="modal">True</property>
-                        <property name="use_filechooser">True</property>
-                        <property name="max_saved">10</property>
-                        <child internal-child="entry">
-                          <widget class="GtkEntry" id="cvs_rootdir">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="invisible_char">*</property>
-                          </widget>
-                        </child>
+                        <property name="action">select-folder</property>
                       </widget>
                       <packing>
                         <property name="left_attach">1</property>
Index: plugins/cvs-plugin/cvs-callbacks.c
===================================================================
--- plugins/cvs-plugin/cvs-callbacks.c	(revision 4939)
+++ plugins/cvs-plugin/cvs-callbacks.c	(working copy)
@@ -66,7 +66,6 @@
 		return FALSE;
 	}
 	return TRUE;
-	return FALSE;
 }
 
 static gboolean 
@@ -411,6 +410,7 @@
 void
 on_cvs_import_response(GtkDialog* dialog, gint response, CVSData* data)
 {
+	gchar* dirname = NULL;
 	if (is_busy(data->plugin, dialog))
 		return;
 	
@@ -426,7 +426,7 @@
 			GtkWidget* releasetag;
 			GtkWidget* logtext;
 			GtkWidget* typecombo;
-			GtkWidget* direntry;
+			GtkFileChooser* dir;
 			gchar* log;
 			
 			username = glade_xml_get_widget(data->gxml, "cvs_username");
@@ -445,8 +445,9 @@
 			if (!check_entry(dialog, releasetag, _("Release")))
 				break;
 			typecombo = glade_xml_get_widget(data->gxml, "cvs_server_type");
-			direntry = glade_xml_get_widget(data->gxml, "cvs_rootdir");
-			if (!check_entry(dialog, direntry, _("Directory")))
+			dir = GTK_FILE_CHOOSER(glade_xml_get_widget(data->gxml, "cvs_rootdir"));
+			dirname = gtk_file_chooser_get_filename (dir);
+			if (!dirname)
 				break;
 			
 			logtext = glade_xml_get_widget(data->gxml, "cvs_log");
@@ -465,7 +466,7 @@
 			}
 			
 			anjuta_cvs_import(ANJUTA_PLUGIN(data->plugin),
-				gtk_entry_get_text(GTK_ENTRY(direntry)),
+				dirname,
 				gtk_entry_get_text(GTK_ENTRY(cvsroot_entry)),
 				gtk_entry_get_text(GTK_ENTRY(module_entry)),
 				gtk_entry_get_text(GTK_ENTRY(vendortag)),
@@ -484,4 +485,5 @@
 			gtk_widget_destroy(GTK_WIDGET(dialog));
 			break;
 	}
+	g_free(dirname);
 }
Index: plugins/cvs-plugin/cvs-actions.c
===================================================================
--- plugins/cvs-plugin/cvs-actions.c	(revision 4939)
+++ plugins/cvs-plugin/cvs-actions.c	(working copy)
@@ -97,11 +97,34 @@
 		gtk_widget_set_sensitive(GTK_WIDGET(fileentry), TRUE);	
 }
 
+static void
+on_browse_button_clicked(GtkButton *button, GtkEntry *entry)
+{
+	GtkWidget *dialog;
+	dialog = gtk_file_chooser_dialog_new("Open File",
+					      NULL,
+					      GTK_FILE_CHOOSER_ACTION_OPEN,
+					      GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+					      GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+					      NULL);
+	if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
+	{
+		char *filename;
+		filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (dialog));
+
+		gtk_entry_set_text(entry, filename);
+
+		g_free(filename);
+	}
+	gtk_widget_destroy(dialog);
+}
+
 void cvs_add_dialog(GtkAction* action, CVSPlugin* plugin, gchar *filename)
 {
 	GladeXML* gxml;
 	GtkWidget* dialog; 
 	GtkWidget* fileentry;
+	GtkWidget* button;
 	CVSData* data;
 	gxml = glade_xml_new(GLADE_FILE, "cvs_add", NULL);
 	
@@ -110,6 +133,10 @@
 	if (filename)
 		gtk_entry_set_text(GTK_ENTRY(fileentry), filename);
 	
+	button = glade_xml_get_widget(gxml, "button01");
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_browse_button_clicked), fileentry);
+
 	data = cvs_data_new(plugin, gxml);
 	g_signal_connect(G_OBJECT(dialog), "response", 
 		G_CALLBACK(on_cvs_add_response), data);
@@ -122,6 +149,7 @@
 	GladeXML* gxml;
 	GtkWidget* dialog; 
 	GtkWidget* fileentry;
+	GtkWidget* button;
 	CVSData* data;
 	
 	gxml = glade_xml_new(GLADE_FILE, "cvs_remove", NULL);
@@ -131,6 +159,10 @@
 	if (filename)
 		gtk_entry_set_text(GTK_ENTRY(fileentry), filename);
 
+	button = glade_xml_get_widget(gxml, "button02");
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_browse_button_clicked), fileentry);
+
 	data = cvs_data_new(plugin, gxml);
 	g_signal_connect(G_OBJECT(dialog), "response", 
 		G_CALLBACK(on_cvs_remove_response), data);
@@ -145,6 +177,7 @@
 	GtkWidget* dialog; 
 	GtkWidget* fileentry;
 	GtkWidget* project;
+	GtkWidget* button;
 	CVSData* data;
 	
 	gxml = glade_xml_new(GLADE_FILE, "cvs_commit", NULL);
@@ -159,7 +192,11 @@
 	g_signal_connect(G_OBJECT(project), "toggled", 
 		G_CALLBACK(on_whole_project_toggled), plugin);
 	init_whole_project(plugin, project);
-	
+
+	button = glade_xml_get_widget(gxml, "button03");
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_browse_button_clicked), fileentry);
+
 	data = cvs_data_new(plugin, gxml);
 	g_signal_connect(G_OBJECT(dialog), "response", 
 		G_CALLBACK(on_cvs_commit_response), data);
@@ -174,6 +211,7 @@
 	GtkWidget* dialog; 
 	GtkWidget* fileentry;
 	GtkWidget* project;
+	GtkWidget* button;
 	CVSData* data;
 	
 	gxml = glade_xml_new(GLADE_FILE, "cvs_update", NULL);
@@ -188,7 +226,11 @@
 	g_signal_connect(G_OBJECT(project), "toggled", 
 		G_CALLBACK(on_whole_project_toggled), plugin);
 	init_whole_project(plugin, project);
-	
+
+	button = glade_xml_get_widget(gxml, "button04");
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_browse_button_clicked), fileentry);
+
 	data = cvs_data_new(plugin, gxml);
 	g_signal_connect(G_OBJECT(dialog), "response", 
 		G_CALLBACK(on_cvs_update_response), data);
@@ -204,6 +246,7 @@
 	GtkWidget* diff_type;
 	GtkWidget* unified_diff;
 	GtkWidget* project;
+	GtkWidget* button;
 	CVSData* data;
 	
 	gxml = glade_xml_new(GLADE_FILE, "cvs_diff", NULL);
@@ -224,7 +267,11 @@
 	gtk_combo_box_set_active(GTK_COMBO_BOX(diff_type), DIFF_PATCH);
 	g_signal_connect(G_OBJECT(diff_type), "changed", 
 		G_CALLBACK(on_diff_type_changed), unified_diff);
-	
+
+	button = glade_xml_get_widget(gxml, "button06");
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_browse_button_clicked), fileentry);
+
 	data = cvs_data_new(plugin, gxml);
 	g_signal_connect(G_OBJECT(dialog), "response", 
 		G_CALLBACK(on_cvs_diff_response), data);
@@ -238,6 +285,7 @@
 	GtkWidget* dialog; 
 	GtkWidget* fileentry;
 	GtkWidget* project;
+	GtkWidget* button;
 	CVSData* data;
 	
 	gxml = glade_xml_new(GLADE_FILE, "cvs_status", NULL);
@@ -252,13 +300,16 @@
 	g_signal_connect(G_OBJECT(project), "toggled", 
 		G_CALLBACK(on_whole_project_toggled), plugin);
 	init_whole_project(plugin, project);
-	
+
+	button = glade_xml_get_widget(gxml, "button05");
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_browse_button_clicked), fileentry);
+
 	data = cvs_data_new(plugin, gxml);
 	g_signal_connect(G_OBJECT(dialog), "response", 
 		G_CALLBACK(on_cvs_status_response), data);
 	
 	gtk_widget_show(dialog);	
-
 }
 
 void cvs_log_dialog (GtkAction* action, CVSPlugin* plugin, gchar *filename)
@@ -267,6 +318,7 @@
 	GtkWidget* dialog; 
 	GtkWidget* fileentry;
 	GtkWidget* project;
+	GtkWidget* button;
 	CVSData* data;
 
 	gxml = glade_xml_new(GLADE_FILE, "cvs_logdialog", NULL);
@@ -281,7 +333,11 @@
 	g_signal_connect(G_OBJECT(project), "toggled", 
 		G_CALLBACK(on_whole_project_toggled), plugin);
 	init_whole_project(plugin, project);
-	
+
+	button = glade_xml_get_widget(gxml, "button07");
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_browse_button_clicked), fileentry);
+
 	data = cvs_data_new(plugin, gxml);
 	g_signal_connect(G_OBJECT(dialog), "response", 
 		G_CALLBACK(on_cvs_log_response), data);
@@ -323,14 +379,14 @@
 {
 	GladeXML* gxml;
 	GtkWidget* dialog; 
-	GtkWidget* direntry;
+	GtkFileChooser* dir;
 	GtkWidget* typecombo;
 	CVSData* data;
 	
 	gxml = glade_xml_new(GLADE_FILE, "cvs_import", NULL);
 	
 	dialog = glade_xml_get_widget(gxml, "cvs_import");
-	direntry = glade_xml_get_widget(gxml, "cvs_rootdir");
+	dir = GTK_FILE_CHOOSER (glade_xml_get_widget(gxml, "cvs_rootdir"));
 	typecombo = glade_xml_get_widget(gxml, "cvs_server_type");
 	
 	g_signal_connect (G_OBJECT(typecombo), "changed", 
@@ -338,7 +394,7 @@
 	gtk_combo_box_set_active(GTK_COMBO_BOX(typecombo), SERVER_LOCAL);
 	
 	if (plugin->project_root_dir)
-		gtk_entry_set_text(GTK_ENTRY(direntry), plugin->project_root_dir);
+		gtk_file_chooser_set_filename(dir, plugin->project_root_dir);
 	
 	data = cvs_data_new(plugin, gxml);
 	g_signal_connect(G_OBJECT(dialog), "response", 

