[meld] Add "Show whitespace" preference in file comparison (closes bgo#622342)



commit 4e6626a8b5883df8f3a64deaae2b2417bf259f46
Author: Jon Dufresne <jon dufresne gmail com>
Date:   Sun Jun 20 09:12:46 2010 -0700

    Add "Show whitespace" preference in file comparison (closes bgo#622342)

 data/ui/preferences.ui |   18 +++++++++++++++++-
 meld/filediff.py       |    6 ++++++
 meld/preferences.py    |    7 ++++++-
 3 files changed, 29 insertions(+), 2 deletions(-)
---
diff --git a/data/ui/preferences.ui b/data/ui/preferences.ui
index ce61ec5..839c3ef 100644
--- a/data/ui/preferences.ui
+++ b/data/ui/preferences.ui
@@ -281,6 +281,22 @@
                               </packing>
                             </child>
                             <child>
+                              <object class="GtkCheckButton" id="checkbutton_show_whitespace">
+                                <property name="label" translatable="yes">Show w_hitespace</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="draw_indicator">True</property>
+                                <signal handler="on_checkbutton_show_whitespace_toggled" name="toggled"/>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">5</property>
+                              </packing>
+                            </child>
+                            <child>
                               <object class="GtkCheckButton" id="checkbutton_use_syntax_highlighting">
                                 <property name="label" translatable="yes">Use s_yntax highlighting</property>
                                 <property name="visible">True</property>
@@ -293,7 +309,7 @@
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
-                                <property name="position">5</property>
+                                <property name="position">6</property>
                               </packing>
                             </child>
                           </object>
diff --git a/meld/filediff.py b/meld/filediff.py
index caf6f78..7f8220c 100644
--- a/meld/filediff.py
+++ b/meld/filediff.py
@@ -186,11 +186,13 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
                                  gtk.gdk.CONTROL_MASK)
         gtk.binding_entry_remove(srcviewer.GtkTextView, gtk.keysyms.z,
                                  gtk.gdk.CONTROL_MASK | gtk.gdk.SHIFT_MASK)
+        spaces_flag = srcviewer.gsv.DRAW_SPACES_ALL if self.prefs.show_whitespace else 0
         for v in self.textview:
             v.set_buffer(srcviewer.GtkTextBuffer())
             v.set_show_line_numbers(self.prefs.show_line_numbers)
             v.set_insert_spaces_instead_of_tabs(self.prefs.spaces_instead_of_tabs)
             v.set_wrap_mode(self.prefs.edit_wrap_lines)
+            v.set_draw_spaces(spaces_flag)
             srcviewer.set_tab_width(v, self.prefs.tab_size)
         self.keymask = 0
         self.load_font()
@@ -567,6 +569,10 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
         elif key == "show_line_numbers":
             for t in self.textview:
                 t.set_show_line_numbers( value )
+        elif key == "show_whitespace":
+            spaces_flag = srcviewer.gsv.DRAW_SPACES_ALL if self.prefs.show_whitespace else 0
+            for v in self.textview:
+                v.set_draw_spaces(spaces_flag)
         elif key == "use_syntax_highlighting":
             for i in range(self.num_panes):
                 srcviewer.set_highlighting_enabled_from_file(
diff --git a/meld/preferences.py b/meld/preferences.py
index 7d90da3..878676f 100644
--- a/meld/preferences.py
+++ b/meld/preferences.py
@@ -135,13 +135,15 @@ class PreferencesDialog(gnomeglade.Component):
         if srcviewer.gsv is not None:
             self.checkbutton_spaces_instead_of_tabs.set_active( self.prefs.spaces_instead_of_tabs )
             self.checkbutton_show_line_numbers.set_active( self.prefs.show_line_numbers )
+            self.checkbutton_show_whitespace.set_active(self.prefs.show_whitespace)
             self.checkbutton_use_syntax_highlighting.set_active( self.prefs.use_syntax_highlighting )
         else:
             no_sourceview_text = \
                 _("Only available if you have gnome-python-desktop installed")
             for w in (self.checkbutton_spaces_instead_of_tabs,
                       self.checkbutton_show_line_numbers,
-                      self.checkbutton_use_syntax_highlighting):
+                      self.checkbutton_use_syntax_highlighting,
+                      self.checkbutton_show_whitespace):
                 w.set_sensitive(False)
                 w.set_tooltip_text(no_sourceview_text)
         # TODO: This doesn't restore the state of character wrapping when word
@@ -202,6 +204,8 @@ class PreferencesDialog(gnomeglade.Component):
 
     def on_checkbutton_show_line_numbers_toggled(self, check):
         self.prefs.show_line_numbers = check.get_active()
+    def on_checkbutton_show_whitespace_toggled(self, check):
+        self.prefs.show_whitespace = check.get_active()
     def on_checkbutton_use_syntax_highlighting_toggled(self, check):
         self.prefs.use_syntax_highlighting = check.get_active()
 
@@ -242,6 +246,7 @@ class MeldPreferences(prefs.Preferences):
         "tab_size": prefs.Value(prefs.INT, 4),
         "spaces_instead_of_tabs": prefs.Value(prefs.BOOL, False),
         "show_line_numbers": prefs.Value(prefs.BOOL, 0),
+        "show_whitespace": prefs.Value(prefs.BOOL, False),
         "use_syntax_highlighting": prefs.Value(prefs.BOOL, 0),
         "edit_wrap_lines" : prefs.Value(prefs.INT, 0),
         "edit_command_type" : prefs.Value(prefs.STRING, "gnome"), #gnome, custom



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