On Thu, 20 Sep 2012 00:48:10 +0200, Salvatore Larosa <lrssv...@gmail.com> wrote: > 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 :-(
So reimplement paste(). Phil _______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt