Skip to content

Commit 9d62e58

Browse files
committed
Add support to download file
1 parent e7949c5 commit 9d62e58

File tree

1 file changed

+14
-2
lines changed
  • bigbashview/usr/lib/bbv/ui

1 file changed

+14
-2
lines changed

bigbashview/usr/lib/bbv/ui/qt.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
import sys
2121
import os
2222
from PySide6.QtCore import QUrl, Qt
23-
from PySide6.QtWidgets import QWidget, QHBoxLayout, QSplitter, QApplication
23+
from PySide6.QtWidgets import QWidget, QHBoxLayout, QSplitter, QApplication, QFileDialog
2424
from PySide6.QtGui import QIcon, QColor, QKeySequence, QShortcut, QCursor
2525
from PySide6.QtWebEngineWidgets import QWebEngineView
26-
from PySide6.QtWebEngineCore import QWebEnginePage
26+
from PySide6.QtWebEngineCore import QWebEnginePage, QWebEngineDownloadRequest
2727

2828
from bbv.globaldata import ICON, TITLE
2929

@@ -74,6 +74,18 @@ def __init__(self):
7474
self.splitter2 = QSplitter(Qt.Horizontal)
7575
self.hbox.addWidget(self.splitter)
7676
self.setLayout(self.hbox)
77+
self.web.page().profile().downloadRequested.connect(self.onDownloadRequested)
78+
79+
def onDownloadRequested(self, download: QWebEngineDownloadRequest):
80+
home_directory = os.path.expanduser('~')
81+
82+
save_path, _ = QFileDialog.getSaveFileName(self, download.suggestedFileName(), os.path.join(home_directory, download.suggestedFileName()))
83+
if save_path:
84+
save_directory = os.path.dirname(save_path)
85+
save_filename = os.path.basename(save_path)
86+
download.setDownloadDirectory(save_directory)
87+
download.setDownloadFileName(save_filename)
88+
download.accept()
7789

7890
def onFeature(self, url, feature):
7991
if feature in (

0 commit comments

Comments
 (0)