# This is part of the dragdrop example.
from python_tqt . qt import *
import secret
class DropSite ( TQLabel ) :
def __init__ ( self , parent = None , name = None ) :
TQLabel . __init__ ( self , parent , name )
self . setAcceptDrops ( 1 )
# this is a normal event
def mousePressEvent ( self , e ) :
if ( self . pixmap ( ) ) :
drobj = TQImageDrag ( self . pixmap ( ) . convertToImage ( ) , self )
pm = TQPixmap ( )
pm . convertFromImage ( self . pixmap ( ) . convertToImage ( ) . smoothScale (
self . pixmap ( ) . width ( ) / 3 , self . pixmap ( ) . height ( ) / 3 ) )
drobj . setPixmap ( pm , TQPoint ( - 5 , - 7 ) )
else :
drobj = TQTextDrag ( self . text ( ) , self )
drobj . dragCopy ( )
def backgroundColorChange ( self , qcolor ) :
# Reduce flicker by using repaint() rather than update()
self . repaint ( )
def dragMoveEvent ( self , e ) :
# Check if you want the drag at e.pos()...
# Give the user some feedback...
pass
def dragEnterEvent ( self , e ) :
# Check if you want the drag...
if ( secret . canDecode ( e ) or
TQTextDrag . canDecode ( e ) or
TQImageDrag . canDecode ( e ) or
TQUriDrag . canDecode ( e ) ) :
e . accept ( )
# Give the user some feedback...
t = ' '
i = 0
while e . format ( i ) :
if ( t != ' ' ) :
t + = " \n "
t + = str ( e . format ( i ) )
i + = 1
self . emit ( PYSIGNAL ( ' message(TQString &) ' ) , ( TQString ( t ) , ) )
self . setEraseColor ( TQt . white )
def dragLeaveEvent ( self , TQDragLeaveEvent ) :
# Give the user some feedback...
self . emit ( PYSIGNAL ( ' message(TQString &) ' ) , ( TQString ( ' ' ) , ) )
self . setEraseColor ( TQt . lightGray )
def dropEvent ( self , e ) :
self . setEraseColor ( TQt . lightGray )
# Try to decode to the data you understand...
str = TQString ( )
if ( TQTextDrag . decode ( e , str ) ) :
self . setText ( str )
self . setMinimumSize ( self . minimumSize ( ) . expandedTo ( self . sizeHint ( ) ) )
return
pm = TQPixmap ( )
if ( TQImageDrag . decode ( e , pm ) ) :
self . setPixmap ( pm )
self . setMinimumSize ( self . minimumSize ( ) . expandedTo ( self . sizeHint ( ) ) )
return
# TQStrList strings
#strings = TQStrList()
strings = [ ]
if ( TQUriDrag . decode ( e , strings ) ) :
m = TQString ( " Full URLs: \n " )
for u in strings :
m = m + " " + u + ' \n '
# TQStringList files
files = [ ]
if ( TQUriDrag . decodeLocalFiles ( e , files ) ) :
m + = " Files: \n "
# for (TQStringList.Iterator i=files.begin() i!=files.end() ++i)
for i in files :
m = m + " " + i + ' \n '
self . setText ( m )
self . setMinimumSize ( self . minimumSize ( ) . expandedTo ( self . sizeHint ( ) ) )
return
str = secret . decode ( e )
if str :
self . setText ( str )
self . setMinimumSize ( self . minimumSize ( ) . expandedTo ( self . sizeHint ( ) ) )
return