Hi Phil, 2012/9/19 Phil Thompson <p...@riverbankcomputing.com>
> On Wed, 19 Sep 2012 08:05:42 +0200, Salvatore Larosa <lrssv...@gmail.com> > wrote: > > Hi, > > > > 2012/9/19 Phil Thompson <p...@riverbankcomputing.com> > > > >> On Tue, 18 Sep 2012 23:16:00 +0200, Salvatore Larosa > <lrssv...@gmail.com> > >> wrote: > >> > Hi all, > >> > I am not sure if this is the rigth place to ask! > >> > > >> > I created a small console to execute python command by using > Qscintilla > >> > python bindings but something doesnt work with MIME data. > >> > > >> > My code is: > >> > > >> > def fromMimeData(self, source): > >> > if source.hasText(): > >> > pasteList = QStringList() > >> > pasteList = source.text().split("\n") > >> > if (len(pasteList) > 1): > >> > self.move_cursor_to_end() > >> > for line in pasteList[:-1]: > >> > self.append(line) > >> > self.move_cursor_to_end() > >> > self.runCommand(unicode(self.currentCommand())) > >> > self.append(unicode(pasteList[-1])) > >> > self.move_cursor_to_end() > >> > > >> > First question: when I paste some text in console and run command I > >> > get: > >> > > >> > TypeError: invalid result type from PythonEdit.fromMimeData() > >> > > >> > How I can avoid it? > >> > >> fromMimeData() should return a 2-tuple of the text as a QByteArray and > a > >> bool set if the selection is rectangular. > >> > > > > Thanks for your reply. > > > > oddly the paste command works well although returns that error! > > how should I manage the contents of tuple? > > I don't know what your code is supposed to do. If your implementation of > fromMimeData() is adding extra behaviour (rather than changing the default > behaviour) then call the super-class implementation, ie. add the following > at the end... > > return super(MyClass, self).fromMimeData(source) > > That solve the problem about typeError, but now it paste twice the same word! You can see the source code here [1] (MIME data stuff is at line 418). Thanks for your help! Regards, [1] - https://gist.github.com/3749286 > >> > Second question: If in my console I typed some text ( e.g def > >> > blablabla(self): ) and then > >> > I want edit it by replacing "self" with "source" by using paste > >> > command, > >> > the pasted text > >> > is placed at the end of the current line and not between brace > getting > >> the > >> > following result: > >> > > >> > def blablabla(self):source > >> > > >> > Any idea on how I can solve it? > >> > >> I can't reproduce that. What does move_cursor_to_end() do in the above > >> code? > >> > > > > move_cursor_to_end() move the cursor at the end of the current line!. > > the result doesnt change if I comment out it! > > if in my code I don't use the fromMimeData method, paste and drag/frop > > event does work as expected! > > But I need it to execute command when multi-line text is dropped or > pasted! > > > > > >> Phil > >> > > > > Regards, > > > > -SL > > Phil > -- Salvatore Larosa linkedIn: http://linkedin.com/in/larosasalvatore twitter: @lrssvt skype: s.larosa IRC: lrssvt on freenode
_______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt