Hi Phil and all, 2012/9/20 Salvatore Larosa <lrssv...@gmail.com>
> Hi Phil, > > 2012/9/20 Phil Thompson <p...@riverbankcomputing.com> > >> 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(). >> >> > As you can see from the video [1] operations paste and drop works fine. > However, with this configuration [2] I can not paste or drop a piece of > text to a specific position of the cursor is the clipboard and mimedataare > inserted at > the end of the line! You can also see this problem in the video! > Thanks for your time!! > > Anyway, if you can not replicate it, apparently it's just my problem! > I can send you the source code (a simple widget) so that you can replicate > it! > > Regards, > > -SL > > [1] - http://lrssvt.ns0.it/pasteDropMimeData.ogv > [2] - https://gist.github.com/3755609 > I soved simply changing self.append() to self.insert() in insertFromDropPaste() method! The "append()" method inserts the text to the end of the text edit [1] Cheers! [1] - http://goo.gl/yGWkE -- 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