Re: [Diffuse-users] Preferences update error?
Status: Beta
Brought to you by:
dtmoser
|
From: Derrick M. <der...@ya...> - 2014-05-13 17:22:14
|
Eizan,
The preference value should never be None. I suspect the version of PyGTK on your system is returning None instead of a blank string from text widgets. Does the following patch fix the problem?
Cheers,
Derrick
--- diffuse (revision 409)
+++ diffuse (working copy)
@@ -991,7 +991,7 @@
for k in self.int_prefs.keys():
self.int_prefs[k] = widgets[k].get_value_as_int()
for k in self.string_prefs.keys():
- self.string_prefs[k] = widgets[k].get_text()
+ self.string_prefs[k] = nullToEmpty(widgets[k].get_text())
try:
ss = []
for k, v in self.bool_prefs.items():
________________________________
From: Eizan Miyamoto <eiz...@gm...>
To: dif...@li...
Sent: Tuesday, 13 May 2014, 13:04
Subject: [Diffuse-users] Preferences update error?
Hi everyone,
I've recently come across a possible(?) bug in the most recent Diffuse release (0.4.7). Basically, when I try to update a particular preference item, the change won't take and I get some errors spit out to my console. I don't see anything related to this on the bug tracker.
More specifically, when I tick Preferences->Display->ignore end of line differences, the following error is emitted:
Traceback (most recent call last):
File "/usr/bin/diffuse", line 8098, in preferences_cb
if self.prefs.runDialog(self.get_toplevel()):
File "/usr/bin/diffuse", line 1003, in runDialog
ss.append('%s "%s"\n' % (k, v.replace('\\', '\\\\').replace('"', '\\"')))
AttributeError: 'NoneType' object has no attribute 'replace'
When I apply the following patch, the issue goes away, but it's a pretty messy hack:
@@ -995,13 +995,13 @@ class Preferences:
try:
ss = []
for k, v in self.bool_prefs.items():
- if v != self.default_bool_prefs[k]:
+ if v is not None and v != self.default_bool_prefs[k]:
ss.append('%s %s\n' % (k, v))
for k, v in self.int_prefs.items():
- if v != self.default_int_prefs[k]:
+ if v is not None and v != self.default_int_prefs[k]:
ss.append('%s %s\n' % (k, v))
for k, v in self.string_prefs.items():
- if v != self.default_string_prefs[k]:
+ if v is not None and v != self.default_string_prefs[k]:
ss.append('%s "%s"\n' % (k, v.replace('\\', '\\\\').replace('"', '\\"')))
ss.sort()
f = open(self.path, 'w')
Or, do I perhaps have Diffuse installed incorrectly? I installed it with:
$ install.py --prefix=$HOME/opt --destdir=$HOME/opt
note:
$ uname -a
Linux debian 3.2.0-4-486 #1 Debian 3.2.54-2 i686 GNU/Linux
$ python --version
Python 2.7.3
Thanks!
Eizan
------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
Diffuse-users mailing list
Dif...@li...
https://lists.sourceforge.net/lists/listinfo/diffuse-users |