allow drag&drop of multiple files
This commit is contained in:
@@ -144,8 +144,9 @@ class MainWindow(QMainWindow):
|
||||
e.ignore()
|
||||
|
||||
def dropEvent(self, e):
|
||||
file = urlutils.url_to_path(e.mimeData().text())
|
||||
PluginRegistry.execute_single("open_file", file)
|
||||
files = urlutils.urls_to_path(e.mimeData().text())
|
||||
for file in files:
|
||||
PluginRegistry.execute_single("open_file", file)
|
||||
|
||||
def _restore_window(self):
|
||||
qsettings = CuteSettings()
|
||||
|
||||
21
urlutils.py
21
urlutils.py
@@ -3,6 +3,14 @@ from urllib.parse import urlparse
|
||||
import sys
|
||||
|
||||
|
||||
def urls_to_path(urls: str) -> [str]:
|
||||
result = []
|
||||
url_list = urls.splitlines(keepends=False)
|
||||
for url in url_list:
|
||||
path = url_to_path(url)
|
||||
result.append(path)
|
||||
return result
|
||||
|
||||
def url_to_path(url: str) -> str:
|
||||
p = urlparse(url)
|
||||
if sys.platform == 'win32' or sys.platform == 'cygwin':
|
||||
@@ -10,8 +18,11 @@ def url_to_path(url: str) -> str:
|
||||
return os.path.abspath(os.path.join(p.netloc, p.path))
|
||||
|
||||
|
||||
def url_is_file(url: str) -> bool:
|
||||
if url.startswith("file://"):
|
||||
path = url_to_path(url)
|
||||
return os.path.isfile(path)
|
||||
return False
|
||||
def url_is_file(string: str) -> bool:
|
||||
url_candidates = string.splitlines(keepends=False)
|
||||
for url in url_candidates:
|
||||
if url.startswith("file://"):
|
||||
path = url_to_path(url)
|
||||
if not os.path.isfile(path):
|
||||
return False
|
||||
return True
|
||||
|
||||
Reference in New Issue
Block a user