Hi, 2012/9/19 Phil Thompson <p...@riverbankcomputing.com>
> On Wed, 19 Sep 2012 14:54:57 +0200, Salvatore Larosa <lrssv...@gmail.com> > wrote: > > 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). > > The purpose of fromMimeData() is to allow you to specify how MIME data is > converted to text. It looks like you are trying to use it for another > purpose. You should probably look at reimplementing dropEvent() instead. > > I thought it would work like insertFromMimeData [1]. I tested it with QTextEdit widget and works fine! I need that to execute multi-line command in my shell i.e.: >>> if True: . . . print "Hello" . . . if False: . . . print "Bye Bye" so the last command line only paste the text doesnt run it! Also, I implemented dropEvent() and has worked only for drag and drop event and not to paste :-( Anyway, thanks a lot! Regards -SL [1] - http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qtextedit.html#insertFromMimeData > 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