Skip to content

Commit e7f602b

Browse files
committed
Fixes for SaveInformation::canSave
1 parent 0808312 commit e7f602b

File tree

8 files changed

+43
-45
lines changed

8 files changed

+43
-45
lines changed

src/core/TransfersManager.cpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -265,11 +265,11 @@ void Transfer::start(QNetworkReply *reply, const QString &target)
265265
{
266266
m_isSelectingPath = true;
267267

268-
const SaveInformation information(Utils::getSavePath(fileName, directory));
268+
const SaveInformation saveInfo(Utils::getSavePath(fileName, directory));
269269

270270
m_isSelectingPath = false;
271271

272-
if (!information.canSave)
272+
if (!saveInfo.canSave())
273273
{
274274
if (m_reply)
275275
{
@@ -283,7 +283,7 @@ void Transfer::start(QNetworkReply *reply, const QString &target)
283283
return;
284284
}
285285

286-
finalTarget = information.path;
286+
finalTarget = saveInfo.path;
287287
canOverwriteExisting = true;
288288
}
289289

@@ -879,16 +879,16 @@ bool Transfer::setTarget(const QString &target, bool canOverwriteExisting)
879879
if (result == QMessageBox::No)
880880
{
881881
const QFileInfo information(target);
882-
const QString path(Utils::getSavePath(information.fileName(), information.path(), {}, true).path);
882+
const SaveInformation saveInfo(Utils::getSavePath(information.fileName(), information.path(), {}, true));
883883

884-
if (path.isEmpty())
884+
if (!saveInfo.canSave())
885885
{
886886
cancel();
887887

888888
return false;
889889
}
890890

891-
mutableTarget = path;
891+
mutableTarget = saveInfo.path;
892892
}
893893
else if (result == QMessageBox::Cancel)
894894
{

src/core/Utils.cpp

+1-7
Original file line numberDiff line numberDiff line change
@@ -655,8 +655,6 @@ SaveInformation getSavePath(const QString &fileName, const QString &directory, Q
655655
}
656656

657657
information.filter = dialog.selectedNameFilter();
658-
information.canSave = true;
659-
660658
path = dialog.selectedFiles().value(0);
661659
}
662660

@@ -687,11 +685,7 @@ SaveInformation getSavePath(const QString &fileName, const QString &directory, Q
687685
}
688686
while (true);
689687

690-
if (path.isEmpty())
691-
{
692-
information.canSave = false;
693-
}
694-
else
688+
if (!path.isEmpty())
695689
{
696690
SettingsManager::setOption(SettingsManager::Paths_SaveFileOption, QFileInfo(path).dir().canonicalPath());
697691
}

src/core/Utils.h

+5-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,11 @@ struct SaveInformation final
8585
{
8686
QString path;
8787
QString filter;
88-
bool canSave = false;
88+
89+
bool canSave() const
90+
{
91+
return !path.isEmpty();
92+
}
8993
};
9094

9195
namespace Utils

src/modules/backends/web/qtwebengine/QtWebEngineWebWidget.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -249,11 +249,11 @@ void QtWebEngineWebWidget::triggerAction(int identifier, const QVariantMap &para
249249
case ActionsManager::SaveAction:
250250
if (m_page->isViewingMedia())
251251
{
252-
const SaveInformation information(Utils::getSavePath(suggestSaveFileName(SingleFileSaveFormat)));
252+
const SaveInformation saveInfo(Utils::getSavePath(suggestSaveFileName(SingleFileSaveFormat)));
253253

254-
if (information.canSave)
254+
if (saveInfo.canSave())
255255
{
256-
m_page->save(information.path, QWebEngineDownloadItem::SingleHtmlSaveFormat);
256+
m_page->save(saveInfo.path, QWebEngineDownloadItem::SingleHtmlSaveFormat);
257257
}
258258
}
259259
else

src/modules/backends/web/qtwebkit/QtWebKitWebWidget.cpp

+13-13
Original file line numberDiff line numberDiff line change
@@ -402,16 +402,16 @@ void QtWebKitWebWidget::handleDownloadRequested(const QNetworkRequest &request)
402402

403403
if (device && device->size() > 0)
404404
{
405-
const QString path(Utils::getSavePath(request.url().fileName()).path);
405+
const SaveInformation saveInfo(Utils::getSavePath(request.url().fileName()));
406406

407-
if (path.isEmpty())
407+
if (!saveInfo.canSave())
408408
{
409409
device->deleteLater();
410410

411411
return;
412412
}
413413

414-
QFile file(path);
414+
QFile file(saveInfo.path);
415415

416416
if (!file.open(QIODevice::WriteOnly))
417417
{
@@ -435,15 +435,15 @@ void QtWebKitWebWidget::handleDownloadRequested(const QNetworkRequest &request)
435435
{
436436
const QString imageUrl(hitResult.imageUrl.url());
437437
const QString imageType(imageUrl.mid(11, (imageUrl.indexOf(QLatin1Char(';')) - 11)));
438-
const QString path(Utils::getSavePath(tr("file") + QLatin1Char('.') + imageType).path);
438+
const SaveInformation saveInfo(Utils::getSavePath(tr("file") + QLatin1Char('.') + imageType));
439439

440-
if (!path.isEmpty())
440+
if (saveInfo.canSave())
441441
{
442-
QImageWriter writer(path);
442+
QImageWriter writer(saveInfo.path);
443443

444444
if (!writer.write(QImage::fromData(QByteArray::fromBase64(imageUrl.mid(imageUrl.indexOf(QLatin1String(";base64,")) + 7).toUtf8()), imageType.toStdString().c_str())))
445445
{
446-
Console::addMessage(tr("Failed to save image: %1").arg(writer.errorString()), Console::OtherCategory, Console::ErrorLevel, path, -1, getWindowIdentifier());
446+
Console::addMessage(tr("Failed to save image: %1").arg(writer.errorString()), Console::OtherCategory, Console::ErrorLevel, saveInfo.path, -1, getWindowIdentifier());
447447
}
448448
}
449449

@@ -875,14 +875,14 @@ void QtWebKitWebWidget::triggerAction(int identifier, const QVariantMap &paramet
875875
case ActionsManager::SaveAction:
876876
if (m_page->isViewingMedia())
877877
{
878-
const SaveInformation information(Utils::getSavePath(suggestSaveFileName(SingleFileSaveFormat)));
878+
const SaveInformation saveInfo(Utils::getSavePath(suggestSaveFileName(SingleFileSaveFormat)));
879879

880-
if (information.canSave)
880+
if (saveInfo.canSave())
881881
{
882882
QNetworkRequest request(getUrl());
883883
request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache);
884884

885-
TransfersManager::startTransfer(m_networkManager->get(request), information.path, (Transfer::CanAskForPathOption | Transfer::CanAutoDeleteOption | Transfer::CanOverwriteOption | Transfer::IsPrivateOption));
885+
TransfersManager::startTransfer(m_networkManager->get(request), saveInfo.path, (Transfer::CanAskForPathOption | Transfer::CanAutoDeleteOption | Transfer::CanOverwriteOption | Transfer::IsPrivateOption));
886886
}
887887
}
888888
else
@@ -1598,11 +1598,11 @@ void QtWebKitWebWidget::triggerAction(int identifier, const QVariantMap &paramet
15981598
m_page->setViewportSize(viewportSize);
15991599

16001600
const QStringList filters({tr("PNG image (*.png)"), tr("JPEG image (*.jpg *.jpeg)")});
1601-
const SaveInformation result(Utils::getSavePath(suggestSaveFileName(QLatin1String(".png")), {}, filters));
1601+
const SaveInformation saveInfo(Utils::getSavePath(suggestSaveFileName(QLatin1String(".png")), {}, filters));
16021602

1603-
if (result.canSave)
1603+
if (saveInfo.canSave())
16041604
{
1605-
pixmap.save(result.path, ((filters.indexOf(result.filter) == 0) ? "PNG" : "JPEG"));
1605+
pixmap.save(saveInfo.path, ((filters.indexOf(saveInfo.filter) == 0) ? "PNG" : "JPEG"));
16061606
}
16071607
}
16081608

src/ui/SourceViewerWebWidget.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,11 @@ void SourceViewerWebWidget::triggerAction(int identifier, const QVariantMap &par
6969
{
7070
case ActionsManager::SaveAction:
7171
{
72-
const QString path(Utils::getSavePath(suggestSaveFileName(SingleFileSaveFormat)).path);
72+
const SaveInformation saveInfo(Utils::getSavePath(suggestSaveFileName(SingleFileSaveFormat)));
7373

74-
if (!path.isEmpty())
74+
if (saveInfo.canSave())
7575
{
76-
QFile file(path);
76+
QFile file(saveInfo.path);
7777

7878
if (file.open(QIODevice::WriteOnly))
7979
{
@@ -84,7 +84,7 @@ void SourceViewerWebWidget::triggerAction(int identifier, const QVariantMap &par
8484
}
8585
else
8686
{
87-
Console::addMessage(tr("Failed to save file: %1").arg(file.errorString()), Console::OtherCategory, Console::ErrorLevel, path);
87+
Console::addMessage(tr("Failed to save file: %1").arg(file.errorString()), Console::OtherCategory, Console::ErrorLevel, saveInfo.path);
8888

8989
QMessageBox::warning(nullptr, tr("Error"), tr("Failed to save file."), QMessageBox::Close);
9090
}

src/ui/TransferDialog.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,9 @@ void TransferDialog::handleButtonClicked(QAbstractButton *button)
134134
dialog = dialog->parentWidget();
135135
}
136136

137-
const QString path(Utils::getSavePath(m_transfer->getSuggestedFileName()).path);
137+
const SaveInformation saveInfo(Utils::getSavePath(m_transfer->getSuggestedFileName()));
138138

139-
if (path.isEmpty())
139+
if (!saveInfo.canSave())
140140
{
141141
m_transfer->cancel();
142142

@@ -145,13 +145,13 @@ void TransferDialog::handleButtonClicked(QAbstractButton *button)
145145
return;
146146
}
147147

148-
m_transfer->setTarget(path, true);
148+
m_transfer->setTarget(saveInfo.path, true);
149149

150150
if (m_ui->rememberChoiceCheckBox->isChecked())
151151
{
152152
HandlersManager::HandlerDefinition definition;
153153
definition.transferMode = HandlersManager::HandlerDefinition::SaveTransfer;
154-
definition.downloadsPath = QFileInfo(path).canonicalPath();
154+
definition.downloadsPath = QFileInfo(saveInfo.path).canonicalPath();
155155

156156
HandlersManager::setHandler(m_transfer->getMimeType(), definition);
157157
}

src/ui/WebWidget.cpp

+7-7
Original file line numberDiff line numberDiff line change
@@ -201,17 +201,17 @@ void WebWidget::startTransfer(Transfer *transfer)
201201
break;
202202
case HandlersManager::HandlerDefinition::SaveAsTransfer:
203203
{
204-
const QString path(Utils::getSavePath(transfer->getSuggestedFileName(), handler.downloadsPath, {}, true).path);
204+
const SaveInformation saveInfo(Utils::getSavePath(transfer->getSuggestedFileName(), handler.downloadsPath, {}, true));
205205

206-
if (path.isEmpty())
206+
if (!saveInfo.canSave())
207207
{
208208
transfer->cancel();
209209
transfer->deleteLater();
210210

211211
return;
212212
}
213213

214-
transfer->setTarget(path, true);
214+
transfer->setTarget(saveInfo.path, true);
215215

216216
TransfersManager::addTransfer(transfer);
217217
}
@@ -776,16 +776,16 @@ QString WebWidget::getSavePath(const QVector<SaveFormat> &allowedFormats, SaveFo
776776
filters.append(formats.value(allowedFormats.at(i)));
777777
}
778778

779-
const SaveInformation result(Utils::getSavePath(suggestSaveFileName(SingleFileSaveFormat), {}, filters));
779+
const SaveInformation saveInfo(Utils::getSavePath(suggestSaveFileName(SingleFileSaveFormat), {}, filters));
780780

781-
if (!result.canSave)
781+
if (!saveInfo.canSave())
782782
{
783783
return {};
784784
}
785785

786-
*selectedFormat = formats.key(result.filter);
786+
*selectedFormat = formats.key(saveInfo.filter);
787787

788-
return result.path;
788+
return saveInfo.path;
789789
}
790790

791791
QString WebWidget::getOpenActionText(SessionsManager::OpenHints hints) const

0 commit comments

Comments
 (0)