@@ -264,6 +264,8 @@ def __init__(self, parent=None):
264264
265265 self .setCentralWidget (self .splitter )
266266
267+ self .setAcceptDrops (True )
268+
267269 self .status = QStatusBar (self )
268270 self .status_text = QLabel (self )
269271 self .status_text .setFont (getMonospaceFont ())
@@ -342,6 +344,26 @@ def create_tab(self, data, filename, forced_view = None):
342344 def create_tab_from_data (self , data ):
343345 self .create_tab (BinaryData (data ), "" )
344346
347+ def dragEnterEvent (self , event ):
348+ if event .mimeData ().hasFormat ("text/uri-list" ):
349+ event .acceptProposedAction ()
350+
351+ def dropEvent (self , event ):
352+ for i in event .mimeData ().urls ():
353+ if (sys .platform == "darwin" and (i .toLocalFile ().find ('/.file/id=' ) == 0 )):
354+ try :
355+ from Foundation import NSURL
356+ except ImportError :
357+ sys .path .append ('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC' )
358+ from Foundation import NSURL
359+ url = NSURL .URLWithString_ (i .toString ()).path ()
360+ self .open_name (str (url ))
361+ else :
362+ if (i .isLocalFile ()):
363+ return
364+ self .open_name (i .toLocalFile ()):
365+ event .accept ()
366+
345367 def new (self ):
346368 self .create_tab (BinaryData (), "" )
347369
@@ -371,6 +393,11 @@ def open(self):
371393 data = BinaryFile (name [0 ])
372394 self .create_tab (data , name [0 ])
373395
396+ def open_name (self , name ):
397+ if len (name ) != 0 :
398+ data = BinaryFile (name )
399+ self .create_tab (data , name )
400+
374401 def save_tab (self , index ):
375402 if self .focus_tab .widget (index ).isNewFileName () and self .focus_tab .widget (index ).save (self .focus_tab .widget (index ).filename ):
376403 self .focus_tab .setTabText (index , self .focus_tab .widget (index ).getTabName ())
0 commit comments