forked from qt-creator/qt-creator
ImageScaling: Reuse LoopList
Instead of LoopRepeat + container capture. Change-Id: Ic37c4ff53c4ce2a217a258aa4af1272ac3d8ab29 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -56,7 +56,7 @@ void Images::process()
|
|||||||
const auto urls = downloadDialog->getUrls();
|
const auto urls = downloadDialog->getUrls();
|
||||||
initLayout(urls.size());
|
initLayout(urls.size());
|
||||||
|
|
||||||
const LoopRepeat repeater(urls.size());
|
const LoopList iterator(urls);
|
||||||
const Storage<QByteArray> storage;
|
const Storage<QByteArray> storage;
|
||||||
|
|
||||||
const auto onRootSetup = [this] {
|
const auto onRootSetup = [this] {
|
||||||
@@ -68,13 +68,13 @@ void Images::process()
|
|||||||
cancelButton->setEnabled(false);
|
cancelButton->setEnabled(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
const auto onDownloadSetup = [this, urls, repeater](NetworkQuery &query) {
|
const auto onDownloadSetup = [this, iterator](NetworkQuery &query) {
|
||||||
query.setNetworkAccessManager(&qnam);
|
query.setNetworkAccessManager(&qnam);
|
||||||
query.setRequest(QNetworkRequest(urls.at(repeater.iteration())));
|
query.setRequest(QNetworkRequest(*iterator));
|
||||||
};
|
};
|
||||||
const auto onDownloadDone = [this, storage, repeater](const NetworkQuery &query,
|
const auto onDownloadDone = [this, storage, iterator](const NetworkQuery &query,
|
||||||
DoneWith result) {
|
DoneWith result) {
|
||||||
const int it = repeater.iteration();
|
const int it = iterator.iteration();
|
||||||
if (result == DoneWith::Success)
|
if (result == DoneWith::Success)
|
||||||
*storage = query.reply()->readAll();
|
*storage = query.reply()->readAll();
|
||||||
else
|
else
|
||||||
@@ -84,9 +84,9 @@ void Images::process()
|
|||||||
const auto onScalingSetup = [storage](ConcurrentCall<QImage> &data) {
|
const auto onScalingSetup = [storage](ConcurrentCall<QImage> &data) {
|
||||||
data.setConcurrentCallData(&scale, *storage);
|
data.setConcurrentCallData(&scale, *storage);
|
||||||
};
|
};
|
||||||
const auto onScalingDone = [this, repeater](const ConcurrentCall<QImage> &data,
|
const auto onScalingDone = [this, iterator](const ConcurrentCall<QImage> &data,
|
||||||
DoneWith result) {
|
DoneWith result) {
|
||||||
const int it = repeater.iteration();
|
const int it = iterator.iteration();
|
||||||
if (result == DoneWith::Success)
|
if (result == DoneWith::Success)
|
||||||
labels[it]->setPixmap(QPixmap::fromImage(data.result()));
|
labels[it]->setPixmap(QPixmap::fromImage(data.result()));
|
||||||
else
|
else
|
||||||
@@ -96,7 +96,7 @@ void Images::process()
|
|||||||
const QList<GroupItem> tasks {
|
const QList<GroupItem> tasks {
|
||||||
finishAllAndSuccess,
|
finishAllAndSuccess,
|
||||||
parallel,
|
parallel,
|
||||||
repeater,
|
iterator,
|
||||||
onGroupSetup(onRootSetup),
|
onGroupSetup(onRootSetup),
|
||||||
Group {
|
Group {
|
||||||
storage,
|
storage,
|
||||||
|
Reference in New Issue
Block a user