X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserPC.git;a=blobdiff_plain;f=src%2Fdialogs%2FSaveDialog.cpp;fp=src%2Fdialogs%2FSaveDialog.cpp;h=39d2b1855bbb9d83a3dcd25909c7fa9717d9149d;hp=281cc77c79a4c4ff97e606e4ce50402159c38242;hb=06a69a2d38bf73c0c5219f94c345b19142bb1646;hpb=15219459baed09d03d17a12c72302595c135fd53 diff --git a/src/dialogs/SaveDialog.cpp b/src/dialogs/SaveDialog.cpp index 281cc77..39d2b18 100644 --- a/src/dialogs/SaveDialog.cpp +++ b/src/dialogs/SaveDialog.cpp @@ -1,5 +1,5 @@ /* - * Copyright © 2022 Soren Stoutner . + * Copyright 2022 Soren Stoutner . * * This file is part of Privacy Browser PC . * @@ -30,7 +30,7 @@ #include #include -SaveDialog::SaveDialog(QWebEngineDownloadItem *downloadItemPointer) +SaveDialog::SaveDialog(QUrl &url, QString &mimeTypeString, int totalBytes, QString fileName, bool nativeDownloader): downloadUrl(url), suggestedFileName(fileName) { // Set the dialog window title. setWindowTitle(i18nc("The save dialog window title", "Save")); @@ -53,11 +53,6 @@ SaveDialog::SaveDialog(QWebEngineDownloadItem *downloadItemPointer) QDialogButtonBox *dialogButtonBoxPointer = saveDialogUi.dialogButtonBox; QPushButton *saveButtonPointer = dialogButtonBoxPointer->button(QDialogButtonBox::Save); - // Get the URL and the suggested file name. - downloadUrl = downloadItemPointer->url(); - suggestedFileName = downloadItemPointer->suggestedFileName(); - QString mimeTypeString = downloadItemPointer->mimeType(); - // Get a MIME type database. QMimeDatabase mimeDatabase; @@ -85,29 +80,40 @@ SaveDialog::SaveDialog(QWebEngineDownloadItem *downloadItemPointer) mimeTypeLabelPointer->setText("" + mimeTypeString + ""); // Populate the download size label. - if (downloadItemPointer->totalBytes() == -1) // The file size is unknown. + if (totalBytes == -1) // The file size is unknown. sizeLabelPointer->setText(i18nc("Unknown download file size. The bold style should be preserved.", "unknown")); else // The file size is known. Format it according to the locale. - sizeLabelPointer->setText(ki18nc("Download file size. The bold style should be preserved.", "%1 bytes").subs(downloadItemPointer->totalBytes()).toString()); - - // Connect the buttons. - connect(saveButtonPointer, SIGNAL(clicked()), this, SLOT(showFileDialog())); - connect(dialogButtonBoxPointer, SIGNAL(rejected()), this, SLOT(reject())); + sizeLabelPointer->setText(ki18nc("Download file size. The bold style should be preserved.", "%1 bytes").subs(totalBytes).toString()); // Create the keyboard shortcuts. QShortcut *sShortcutPointer = new QShortcut(QKeySequence(i18nc("The save key shortcut.", "s")), this); QShortcut *cShortcutPointer = new QShortcut(QKeySequence(i18nc("The close key shortcut.", "c")), this); - // Connect the shortcuts. - connect(sShortcutPointer, SIGNAL(activated()), this, SLOT(showFileDialog())); + // Connect the save buttons. + if (nativeDownloader) + { + // Show the file picker for the native download. + connect(saveButtonPointer, SIGNAL(clicked()), this, SLOT(showFilePicker())); + connect(sShortcutPointer, SIGNAL(activated()), this, SLOT(showFilePicker())); + } + else + { + // Use WebEngine's downloader + connect(saveButtonPointer, SIGNAL(clicked()), this, SLOT(accept())); + connect(sShortcutPointer, SIGNAL(activated()), this, SLOT(accept())); + } + + // Connect the cancel button. + connect(dialogButtonBoxPointer, SIGNAL(rejected()), this, SLOT(reject())); connect(cShortcutPointer, SIGNAL(activated()), this, SLOT(reject())); } -void SaveDialog::showFileDialog() +void SaveDialog::showFilePicker() { // Show the file picker dialog. - emit showSaveFilePickerDialog(downloadUrl, suggestedFileName); + emit useNativeDownloader(downloadUrl, suggestedFileName); // Close the dialog. reject(); } +