Skip to content
This repository was archived by the owner on Oct 2, 2020. It is now read-only.

Commit f619de3

Browse files
committed
testing drag and drop
1 parent 2530c7d commit f619de3

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

binja.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)