QString suggestedFileName = currentPrivacyWebEngineViewPointer->title() + ".mht";
// Get the download directory.
- QString downloadDirectory = Settings::downloadLocation();
+ QString downloadDirectory = Settings::downloadDirectory();
// Resolve the system download directory if specified.
if (downloadDirectory == QLatin1String("System Download Directory"))
// Save the webpage as an archive if the file save path is populated.
if (!saveFilePath.isEmpty())
{
+ // Update the download directory if specified.
+ if (Settings::autoUpateDownloadDirectory())
+ updateDownloadDirectory(saveFilePath);
+
// Set the saving archive flag. Otherwise, a second download tries to run.
savingArchive = true;
if (saveDialogResult == QDialog::Accepted) // Save was selected.
{
// Get the download directory.
- QString downloadDirectory = Settings::downloadLocation();
+ QString downloadDirectory = Settings::downloadDirectory();
// Resolve the system download directory if specified.
if (downloadDirectory == QLatin1String("System Download Directory"))
// Process the save file path.
if (!saveFilePath.isEmpty()) // The file save path is populated.
{
+ // Update the download directory if specified.
+ if (Settings::autoUpateDownloadDirectory())
+ updateDownloadDirectory(saveFilePath);
+
// Create a save file path file info.
QFileInfo saveFilePathFileInfo = QFileInfo(saveFilePath);
currentPrivacyWebEngineViewPointer->reload();
}
+void TabWidget::updateDownloadDirectory(QString newDownloadDirectory) const
+{
+ // Remove the file name from the save file path.
+ newDownloadDirectory.truncate(newDownloadDirectory.lastIndexOf(QLatin1Char('/')));
+
+ // Update the download location.
+ Settings::setDownloadDirectory(newDownloadDirectory);
+
+ // Get a handle for the KConfig skeleton.
+ KConfigSkeleton *kConfigSkeletonPointer = Settings::self();
+
+ // Write the settings to disk.
+ kConfigSkeletonPointer->save();
+}
+
void TabWidget::updateUiFromWebEngineView(const PrivacyWebEngineView *privacyWebEngineViewPointer) const
{
// Only update the UI if the signal was emitted from the current privacy WebEngine.
void TabWidget::useNativeKdeDownloader(QUrl &downloadUrl, QString &suggestedFileName)
{
// Get the download directory.
- QString downloadDirectory = Settings::downloadLocation();
+ QString downloadDirectory = Settings::downloadDirectory();
// Resolve the system download directory if specified.
if (downloadDirectory == QLatin1String("System Download Directory"))
saveFileDialogPointer->setWindowModality(Qt::WindowModal);
// Process the saving of the file. The save file dialog pointer must be captured directly instead of by reference or nasty crashes occur.
- auto saveFile = [saveFileDialogPointer, downloadUrl] ()
+ auto saveFile = [saveFileDialogPointer, downloadUrl, this] ()
{
// Get the save location. The dialog box should only allow the selecting of one file location.
QUrl saveLocation = saveFileDialogPointer->selectedUrls().value(0);
+ // Update the download directory if specified.
+ if (Settings::autoUpateDownloadDirectory())
+ updateDownloadDirectory(saveLocation.toLocalFile());
+
// Create a file copy job. `-1` creates the file with default permissions.
KIO::FileCopyJob *fileCopyJobPointer = KIO::file_copy(downloadUrl, saveLocation, -1, KIO::Overwrite);