Allow file drops

This commit is contained in:
Peter Stockings
2026-03-03 20:25:36 +11:00
parent 3eb4b671c6
commit de0a7172e7

View File

@@ -24,6 +24,7 @@ class VlcSyncApp(QMainWindow):
self.setMinimumSize(900, 600)
self.resize(1100, 700)
self.setAcceptDrops(True)
# Main stacked widget to switch between Lobby and Room
self.stacked_widget = QStackedWidget()
@@ -362,11 +363,7 @@ class VlcSyncApp(QMainWindow):
def on_volume_changed(self, value):
self.vlc_player.set_volume(value)
def select_file(self):
file_path, _ = QFileDialog.getOpenFileName(
self, "Select Video File", "", "Video Files (*.mp4 *.mkv *.avi *.mov *.webm);;All Files (*)"
)
if file_path:
def _set_local_file(self, file_path: str):
self.local_file_path = file_path
self.local_file_name = os.path.basename(file_path)
self.local_file_size = os.path.getsize(file_path)
@@ -376,6 +373,29 @@ class VlcSyncApp(QMainWindow):
self.create_file_info.show()
self.check_inputs()
def select_file(self):
file_path, _ = QFileDialog.getOpenFileName(
self, "Select Video File", "", "Video Files (*.mp4 *.mkv *.avi *.mov *.webm);;All Files (*)"
)
if file_path:
self._set_local_file(file_path)
def dragEnterEvent(self, event):
if event.mimeData().hasUrls():
event.accept()
else:
event.ignore()
def dropEvent(self, event):
if self.stacked_widget.currentIndex() == 0:
for url in event.mimeData().urls():
file_path = url.toLocalFile()
if os.path.isfile(file_path):
ext = os.path.splitext(file_path)[1].lower()
if ext in ['.mp4', '.mkv', '.avi', '.mov', '.webm']:
self._set_local_file(file_path)
break
def copy_room_code(self):
if self.room_code:
QApplication.clipboard().setText(self.room_code)