PyQt5 conversion seems mostly straight forward, apart from the parts
that are not straight forward :-}

Trying to work out what's going on in todo.py, let's use a simple test
case, just running the 'insert-icon' command on an outline with a
single node.

'insert-icon' uses g.app.gui.runOpenFileDialog, and *Py*Qt 5 has changed the 
return value for QFileDialog.getOpenFileNames() from 
  [list of file names]
to
  [[list of file names], <selected filter>]

Ok, no big deal.

Here's a trap though:

-                def setter(pri=pri): o.setPri(pri)
-                self.connect(w, QtCore.SIGNAL("clicked()"), setter)
+                def setter(pri=pri):
+                    o.setPri(pri)
+                if isQt5:
+                    w.clicked.connect(setter)
+                else:
+                    self.connect(w, QtCore.SIGNAL("clicked()"), setter)

The old form calls setter() with no parameters, the new form calls
setter with `bool is_checked`, seeing buttons can be checked or
unchecked when they're clicked.

I think the best solution is to change setter() to be
  def setter(checked, pri=pri): ...
which will work in both Qt4 and Qt5, basically the old style .connect()
let you select whether that parameter got passed or not, but I think
everything's cleaner if we just make the callbacks match the basic
definition of the signals.

Cheers -Terry

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To post to this group, send email to leo-editor@googlegroups.com.
Visit this group at http://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.

Reply via email to