[meld] Set saner default paths in new tab file choosers (closes bgo#697085)



commit 85e59befd9c00690d9987b05a95a40c1ba36eadb
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Sat Apr 6 06:37:54 2013 +1000

    Set saner default paths in new tab file choosers (closes bgo#697085)

 data/ui/tab-placeholder.ui |    3 +++
 meld/newdifftab.py         |   21 +++++++++++++++++----
 2 files changed, 20 insertions(+), 4 deletions(-)
---
diff --git a/data/ui/tab-placeholder.ui b/data/ui/tab-placeholder.ui
index a0ecf5d..c3bb1a2 100644
--- a/data/ui/tab-placeholder.ui
+++ b/data/ui/tab-placeholder.ui
@@ -256,6 +256,7 @@
                                 <property name="can_focus">False</property>
                                 <property name="create_folders">False</property>
                                 <property name="title" translatable="yes">Select Third File</property>
+                                <signal name="file-set" handler="on_file_set" swapped="no"/>
                               </object>
                               <packing>
                                 <property name="left_attach">2</property>
@@ -268,6 +269,7 @@
                                 <property name="can_focus">False</property>
                                 <property name="create_folders">False</property>
                                 <property name="title" translatable="yes">Select Second File</property>
+                                <signal name="file-set" handler="on_file_set" swapped="no"/>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
@@ -280,6 +282,7 @@
                                 <property name="can_focus">False</property>
                                 <property name="create_folders">False</property>
                                 <property name="title" translatable="yes">Select First File</property>
+                                <signal name="file-set" handler="on_file_set" swapped="no"/>
                               </object>
                             </child>
                             <child>
diff --git a/meld/newdifftab.py b/meld/newdifftab.py
index fca356d..2e4efd3 100644
--- a/meld/newdifftab.py
+++ b/meld/newdifftab.py
@@ -47,6 +47,11 @@ class NewDiffTab(gobject.GObject, gnomeglade.Component):
                              parentapp.append_dirdiff,
                              parentapp.append_vcview)
         self.diff_type = -1
+
+        default_path = os.path.expanduser("~")
+        for chooser in self.file_chooser:
+            chooser.set_current_folder(default_path)
+
         self.widget.show()
 
     def on_button_type_toggled(self, button, *args):
@@ -71,12 +76,20 @@ class NewDiffTab(gobject.GObject, gnomeglade.Component):
         else:  # button is self.dir_three_way_checkbutton
             self.dir_chooser2.set_sensitive(button.get_active())
 
-    # TODO: This is not even hooked up. We could do checks here to prevent
-    # errors: check to see if we've got binary files; check for null file
-    # selections; sniff text encodings; check file permissions.
     def on_file_set(self, button, *args):
         filename = button.get_filename()
-        assert os.path.isfile(filename)
+        if not filename:
+            return
+
+        parent = os.path.dirname(filename)
+        if os.path.isdir(parent):
+            for chooser in self.file_chooser:
+                if not chooser.get_filename():
+                    chooser.set_current_folder(parent)
+
+        # TODO: We could do checks here to prevent errors: check to see if
+        # we've got binary files; check for null file selections; sniff text
+        # encodings; check file permissions.
 
     def _get_num_paths(self):
         if self.diff_type in (0, 1):


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