[meld: 2/4] Revert "Add an option to preferably use native file dialogs"




commit a7ee12a828c10225bcdd9ffbff2e535c0e28ab0d
Author: Mario Aichinger <aichingm gmail com>
Date:   Sat Nov 28 19:02:39 2020 +0100

    Revert "Add an option to preferably use native file dialogs"
    
    This reverts commit 5f5c44f03617e71ce90f6058295e661eaccc181a.

 data/org.gnome.meld.gschema.xml   |   5 --
 meld/filediff.py                  |   4 +-
 meld/iohelpers.py                 |   4 +-
 meld/newdifftab.py                |  51 +---------------
 meld/preferences.py               |   2 -
 meld/resources/ui/new-diff-tab.ui |  42 +------------
 meld/resources/ui/preferences.ui  | 121 +++-----------------------------------
 meld/settings.py                  |   2 -
 meld/ui/filechooser.py            |  35 -----------
 9 files changed, 15 insertions(+), 251 deletions(-)
---
diff --git a/data/org.gnome.meld.gschema.xml b/data/org.gnome.meld.gschema.xml
index 63e2118a..d966b43b 100644
--- a/data/org.gnome.meld.gschema.xml
+++ b/data/org.gnome.meld.gschema.xml
@@ -114,11 +114,6 @@
           <summary>Use the system default monospace font</summary>
           <description>If false, custom-font will be used instead of the system monospace font.</description>
       </key>
-      <key name="use-system-file-dialogs" type="b">
-          <default>false</default>
-          <summary>Use the system file dialogs</summary>
-          <description>If false, custom non-native file dialogs will be used.</description>
-      </key>
       <key name="custom-font" type="s">
           <default>"monospace, 14"</default>
           <summary>Custom font</summary>
diff --git a/meld/filediff.py b/meld/filediff.py
index 356537bb..dfaf71a0 100644
--- a/meld/filediff.py
+++ b/meld/filediff.py
@@ -52,7 +52,7 @@ from meld.sourceview import (
     TextviewLineAnimationType,
     get_custom_encoding_candidates,
 )
-from meld.ui.filechooser import MeldFileChooserDialogFactory
+from meld.ui.filechooser import MeldFileChooserDialog
 from meld.ui.findbar import FindBar
 from meld.ui.util import (
     make_multiobject_property_action,
@@ -2042,7 +2042,7 @@ class FileDiff(Gtk.VBox, MeldDoc):
     def on_file_open_button_clicked(self, button):
         pane = self.file_open_button.index(button)
 
-        dialog = MeldFileChooserDialogFactory.dialog(
+        dialog = MeldFileChooserDialog(
             title=_("Open File"),
             transient_for=self.get_toplevel(),
         )
diff --git a/meld/iohelpers.py b/meld/iohelpers.py
index 614a58a9..ffa162e4 100644
--- a/meld/iohelpers.py
+++ b/meld/iohelpers.py
@@ -5,7 +5,7 @@ from gi.repository import Gio, GLib, Gtk
 
 from meld.conf import _
 from meld.misc import get_modal_parent, modal_dialog
-from meld.ui.filechooser import MeldFileChooserDialogFactory
+from meld.ui.filechooser import MeldFileChooserDialog
 
 
 def trash_or_confirm(gfile: Gio.File) -> bool:
@@ -75,7 +75,7 @@ def trash_or_confirm(gfile: Gio.File) -> bool:
 def prompt_save_filename(
         title: str, parent: Optional[Gtk.Widget] = None) -> Optional[Gio.File]:
 
-    dialog = MeldFileChooserDialogFactory.dialog(
+    dialog = MeldFileChooserDialog(
         title,
         transient_for=get_modal_parent(parent),
         action=Gtk.FileChooserAction.SAVE,
diff --git a/meld/newdifftab.py b/meld/newdifftab.py
index 06d593b1..a619013a 100644
--- a/meld/newdifftab.py
+++ b/meld/newdifftab.py
@@ -20,7 +20,6 @@ from gi.repository import Gio, GLib, GObject, Gtk
 from meld.conf import _
 from meld.melddoc import LabeledObjectMixin, MeldDoc
 from meld.recent import recent_comparisons
-from meld.settings import get_meld_settings, settings
 from meld.ui.util import map_widgets_into_lists
 
 
@@ -62,9 +61,6 @@ class NewDiffTab(Gtk.Alignment, LabeledObjectMixin):
     file_chooser0 = Gtk.Template.Child()
     file_chooser1 = Gtk.Template.Child()
     file_chooser2 = Gtk.Template.Child()
-    file_chooser_native0 = Gtk.Template.Child()
-    file_chooser_native1 = Gtk.Template.Child()
-    file_chooser_native2 = Gtk.Template.Child()
     file_three_way_checkbutton = Gtk.Template.Child()
     filechooserdialog0 = Gtk.Template.Child()
     filechooserdialog1 = Gtk.Template.Child()
@@ -75,13 +71,7 @@ class NewDiffTab(Gtk.Alignment, LabeledObjectMixin):
         super().__init__()
         map_widgets_into_lists(
             self,
-            [
-                "file_chooser",
-                "file_chooser_native",
-                "dir_chooser",
-                "vc_chooser",
-                "filechooserdialog"
-            ]
+            ["file_chooser", "dir_chooser", "vc_chooser", "filechooserdialog"]
         )
         self.button_types = [
             self.button_type_file,
@@ -99,10 +89,7 @@ class NewDiffTab(Gtk.Alignment, LabeledObjectMixin):
         for chooser in self.file_chooser:
             chooser.set_current_folder(default_path)
 
-        get_meld_settings().connect('changed', self.on_setting_changed)
-
         self.show()
-        self.hide_unused_file_chooser_buttons()
 
     @Gtk.Template.Callback()
     def on_button_type_toggled(self, button, *args):
@@ -126,7 +113,6 @@ class NewDiffTab(Gtk.Alignment, LabeledObjectMixin):
     def on_three_way_checkbutton_toggled(self, button, *args):
         if button is self.file_three_way_checkbutton:
             self.file_chooser2.set_sensitive(button.get_active())
-            self.file_chooser_native2.set_sensitive(button.get_active())
         else:  # button is self.dir_three_way_checkbutton
             self.dir_chooser2.set_sensitive(button.get_active())
 
@@ -150,23 +136,6 @@ class NewDiffTab(Gtk.Alignment, LabeledObjectMixin):
         # we've got binary files; check for null file selections; sniff text
         # encodings; check file permissions.
 
-    def hide_unused_file_chooser_buttons(self):
-        if settings.get_boolean('use-system-file-dialogs'):
-            choosers_to_hide = self.file_chooser
-            choosers_to_show = self.file_chooser_native
-        else:
-            choosers_to_hide = self.file_chooser_native
-            choosers_to_show = self.file_chooser
-
-        for b in choosers_to_hide:
-            b.hide()
-        for b in choosers_to_show:
-            b.show()
-
-    def on_setting_changed(self, settings, key):
-        if key == 'use-system-file-dialogs':
-            self.hide_unused_file_chooser_buttons()
-
     def _get_num_paths(self):
         if self.diff_type in (DiffType.File, DiffType.Folder):
             three_way_buttons = (
@@ -181,22 +150,8 @@ class NewDiffTab(Gtk.Alignment, LabeledObjectMixin):
 
     @Gtk.Template.Callback()
     def on_button_compare_clicked(self, *args):
-        type_choosers = (
-                            self.file_chooser,
-                            self.dir_chooser,
-                            self.vc_chooser,
-                            self.file_chooser_native
-                        )
-
-        if settings.get_boolean('use-system-file-dialogs'):
-            native_offset = 3
-        else:
-            native_offset = 0
-
-        chooser_index = self.diff_type + native_offset
-
-        choosers = type_choosers[chooser_index][:self._get_num_paths()]
-
+        type_choosers = (self.file_chooser, self.dir_chooser, self.vc_chooser)
+        choosers = type_choosers[self.diff_type][:self._get_num_paths()]
         compare_gfiles = [chooser.get_file() for chooser in choosers]
 
         compare_kwargs = {}
diff --git a/meld/preferences.py b/meld/preferences.py
index 01993dbf..cf8b9def 100644
--- a/meld/preferences.py
+++ b/meld/preferences.py
@@ -254,7 +254,6 @@ class PreferencesDialog(Gtk.Dialog):
 
     checkbutton_break_commit_lines = Gtk.Template.Child()
     checkbutton_default_font = Gtk.Template.Child()
-    checkbutton_system_file_dialogs = Gtk.Template.Child()
     checkbutton_folder_filter_text = Gtk.Template.Child()
     checkbutton_highlight_current_line = Gtk.Template.Child()
     checkbutton_ignore_blank_lines = Gtk.Template.Child()
@@ -287,7 +286,6 @@ class PreferencesDialog(Gtk.Dialog):
         super().__init__(**kwargs)
 
         bindings = [
-            ('use-system-file-dialogs', self.checkbutton_system_file_dialogs, 'active'),  # noqa: E501
             ('use-system-font', self.checkbutton_default_font, 'active'),
             ('custom-font', self.fontpicker, 'font'),
             ('indent-width', self.spinbutton_tabsize, 'value'),
diff --git a/meld/resources/ui/new-diff-tab.ui b/meld/resources/ui/new-diff-tab.ui
index 3b3f1b47..1a8ea3d6 100644
--- a/meld/resources/ui/new-diff-tab.ui
+++ b/meld/resources/ui/new-diff-tab.ui
@@ -342,7 +342,7 @@
                       </object>
                       <packing>
                         <property name="left_attach">2</property>
-                        <property name="top_attach">2</property>
+                        <property name="top_attach">1</property>
                       </packing>
                     </child>
                     <child>
@@ -359,19 +359,6 @@
                         <property name="top_attach">0</property>
                       </packing>
                     </child>
-                    <child>
-                      <object class="GtkFileChooserButton" id="file_chooser_native0">
-                        <property name="visible">True</property>
-                        <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>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="top_attach">1</property>
-                      </packing>
-                    </child>
                     <child>
                       <object class="GtkFileChooserButton" id="file_chooser1">
                         <property name="visible">True</property>
@@ -386,19 +373,6 @@
                         <property name="top_attach">0</property>
                       </packing>
                     </child>
-                    <child>
-                      <object class="GtkFileChooserButton" id="file_chooser_native1">
-                        <property name="visible">True</property>
-                        <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>
-                        <property name="top_attach">1</property>
-                      </packing>
-                    </child>
                     <child>
                       <object class="GtkFileChooserButton" id="file_chooser2">
                         <property name="visible">True</property>
@@ -414,20 +388,6 @@
                         <property name="top_attach">0</property>
                       </packing>
                     </child>
-                    <child>
-                      <object class="GtkFileChooserButton" id="file_chooser_native2">
-                        <property name="visible">True</property>
-                        <property name="sensitive">False</property>
-                        <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>
-                        <property name="top_attach">1</property>
-                      </packing>
-                    </child>
                     <child>
                       <placeholder/>
                     </child>
diff --git a/meld/resources/ui/preferences.ui b/meld/resources/ui/preferences.ui
index 67f984bf..37dc3055 100644
--- a/meld/resources/ui/preferences.ui
+++ b/meld/resources/ui/preferences.ui
@@ -55,112 +55,6 @@
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="show_border">False</property>
-            <child>
-              <object class="GtkBox" id="general_tab">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="border_width">12</property>
-                <property name="orientation">vertical</property>
-                <property name="spacing">12</property>
-                <child>
-                  <object class="GtkBox">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="orientation">vertical</property>
-                    <property name="spacing">6</property>
-                    <child>
-                      <object class="GtkLabel" id="label17">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">File Dialogs</property>
-                        <property name="use_markup">True</property>
-                        <property name="xalign">0</property>
-                        <attributes>
-                          <attribute name="weight" value="bold"/>
-                        </attributes>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkBox">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <child>
-                          <object class="GtkLabel">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="padding">12</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkBox">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="orientation">vertical</property>
-                            <property name="spacing">6</property>
-                            <child>
-                              <object class="GtkCheckButton" id="checkbutton_system_file_dialogs">
-                                <property name="label" translatable="yes">_Use system file dialogs where 
possible</property>
-                                <property name="visible">True</property>
-                                <property name="can_focus">True</property>
-                                <property name="receives_default">False</property>
-                                <property name="use_underline">True</property>
-                                <property name="xalign">0</property>
-                                <property name="active">True</property>
-                                <property name="draw_indicator">True</property>
-                              </object>
-                              <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child type="tab">
-              <object class="GtkLabel" id="general_label">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="label" translatable="yes">General</property>
-              </object>
-              <packing>
-                <property name="position">0</property>
-                <property name="tab_fill">False</property>
-              </packing>
-            </child>
             <child>
               <object class="GtkBox" id="editor_tab">
                 <property name="visible">True</property>
@@ -805,7 +699,7 @@
                   <packing>
                     <property name="expand">True</property>
                     <property name="fill">True</property>
-                    <property name="position">1</property>
+                    <property name="position">3</property>
                   </packing>
                 </child>
               </object>
@@ -817,7 +711,6 @@
                 <property name="label" translatable="yes">Editor</property>
               </object>
               <packing>
-                <property name="position">1</property>
                 <property name="tab_fill">False</property>
               </packing>
             </child>
@@ -1447,7 +1340,7 @@
                 </child>
               </object>
               <packing>
-                <property name="position">3</property>
+                <property name="position">2</property>
                 <property name="tab_fill">False</property>
               </packing>
             </child>
@@ -1458,7 +1351,7 @@
                 <property name="label" translatable="yes">Version Control</property>
               </object>
               <packing>
-                <property name="position">3</property>
+                <property name="position">2</property>
                 <property name="tab_fill">False</property>
               </packing>
             </child>
@@ -1552,7 +1445,7 @@
                 </child>
               </object>
               <packing>
-                <property name="position">4</property>
+                <property name="position">3</property>
                 <property name="tab_fill">False</property>
               </packing>
             </child>
@@ -1563,7 +1456,7 @@
                 <property name="label" translatable="yes">File Filters</property>
               </object>
               <packing>
-                <property name="position">4</property>
+                <property name="position">3</property>
                 <property name="tab_fill">False</property>
               </packing>
             </child>
@@ -1738,7 +1631,7 @@
                 </child>
               </object>
               <packing>
-                <property name="position">5</property>
+                <property name="position">4</property>
               </packing>
             </child>
             <child type="tab">
@@ -1748,7 +1641,7 @@
                 <property name="label" translatable="yes">Text Filters</property>
               </object>
               <packing>
-                <property name="position">5</property>
+                <property name="position">4</property>
                 <property name="tab_fill">False</property>
               </packing>
             </child>
diff --git a/meld/settings.py b/meld/settings.py
index c97fb563..a240a8e3 100644
--- a/meld/settings.py
+++ b/meld/settings.py
@@ -53,8 +53,6 @@ class MeldSettings(GObject.GObject):
         elif key in ('style-scheme'):
             self.style_scheme = self._style_scheme_from_gsettings()
             self.emit('changed', 'style-scheme')
-        elif key in ('use-system-file-dialogs'):
-            self.emit('changed', 'use-system-file-dialogs')
 
     def _style_scheme_from_gsettings(self):
         from meld.style import set_base_style_scheme
diff --git a/meld/ui/filechooser.py b/meld/ui/filechooser.py
index 2cd15888..9616adb9 100644
--- a/meld/ui/filechooser.py
+++ b/meld/ui/filechooser.py
@@ -20,7 +20,6 @@ import sys
 from gi.repository import Gtk, GtkSource
 
 from meld.conf import _
-from meld.settings import settings
 
 FILE_ACTIONS = {
     Gtk.FileChooserAction.OPEN,
@@ -28,20 +27,6 @@ FILE_ACTIONS = {
 }
 
 
-class MeldFileChooserDialogNative(Gtk.FileChooserNative):
-
-    __gtype_name__ = 'MeldFileChooserDialogNative'
-
-    def __init__(self, title=None, transient_for=None,
-                 action=Gtk.FileChooserAction.OPEN):
-        super().__init__(title=title, transient_for=transient_for,
-                         action=action)
-
-    def set_default_response(*_):
-        pass  # it is not possible to set this when using the native dialog
-        # The native dialog always returns Gtk.ResponseType.ACCEPT
-
-
 class MeldFileChooserDialog(Gtk.FileChooserDialog):
 
     """A simple GTK+ file chooser dialog with a text encoding combo box."""
@@ -121,23 +106,3 @@ class MeldFileChooserDialog(Gtk.FileChooserDialog):
             self.props.extra_widget = self.make_encoding_combo()
         else:
             self.props.extra_widget = None
-
-
-class MeldFileChooserDialogFactory:
-
-    @staticmethod
-    def dialog(title=None, transient_for=None,
-               action=Gtk.FileChooserAction.OPEN):
-
-        if settings.get_boolean('use-system-file-dialogs'):
-            return MeldFileChooserDialogNative(
-                                    title,
-                                    transient_for=transient_for,
-                                    action=action,
-                                )
-        else:
-            return MeldFileChooserDialog(
-                                    title,
-                                    transient_for=transient_for,
-                                    action=action,
-                                )


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