diff options
author | Dennis Oberst <[email protected]> | 2023-02-16 18:14:38 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <[email protected]> | 2023-03-21 12:55:33 +0000 |
commit | e453de0c0b8787ae672f77f9922e9960bc9fe0b7 (patch) | |
tree | 440089db09dd4027f8891cb665f500d66bebabd6 /examples/qtconcurrent/progressdialog | |
parent | 6ea0d5756553df37042e1560efa01eb2857e31be (diff) |
Example: rename progressdialog to primecounter and modernize it
The previous example finished way too quickly and provided no real
value in regards to API understanding. Previously, QtConcurrent::map
was used, which was also used in other examples. We are now using
QtConcurrent::filterReduce to demonstrate other functionality.
Task-number: QTBUG-111165
Change-Id: Ibd6eb119d0711cddfe8b211d460e9d67d6ce95c3
Reviewed-by: MÃ¥rten Nordheim <[email protected]>
Reviewed-by: Ivan Solovev <[email protected]>
(cherry picked from commit 8352756d27e5657390b6e87f45e0c0bae6b7784e)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
Diffstat (limited to 'examples/qtconcurrent/progressdialog')
-rw-r--r-- | examples/qtconcurrent/progressdialog/CMakeLists.txt | 37 | ||||
-rw-r--r-- | examples/qtconcurrent/progressdialog/doc/images/qtconcurrent-progressdialog.png | bin | 4608 -> 0 bytes | |||
-rw-r--r-- | examples/qtconcurrent/progressdialog/doc/src/qtconcurrent-progressdialog.qdoc | 14 | ||||
-rw-r--r-- | examples/qtconcurrent/progressdialog/main.cpp | 53 | ||||
-rw-r--r-- | examples/qtconcurrent/progressdialog/progressdialog.pro | 7 |
5 files changed, 0 insertions, 111 deletions
diff --git a/examples/qtconcurrent/progressdialog/CMakeLists.txt b/examples/qtconcurrent/progressdialog/CMakeLists.txt deleted file mode 100644 index 5609572d95b..00000000000 --- a/examples/qtconcurrent/progressdialog/CMakeLists.txt +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (C) 2022 The Qt Company Ltd. -# SPDX-License-Identifier: BSD-3-Clause - -cmake_minimum_required(VERSION 3.16) -project(progressdialog LANGUAGES CXX) - -if(NOT DEFINED INSTALL_EXAMPLESDIR) - set(INSTALL_EXAMPLESDIR "examples") -endif() - -set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/qtconcurrent/progressdialog") - -find_package(Qt6 REQUIRED COMPONENTS Concurrent Core Gui Widgets) - -qt_standard_project_setup() - -qt_add_executable(progressdialog - main.cpp -) - -set_target_properties(progressdialog PROPERTIES - WIN32_EXECUTABLE FALSE - MACOSX_BUNDLE TRUE -) - -target_link_libraries(progressdialog PRIVATE - Qt6::Concurrent - Qt6::Core - Qt6::Gui - Qt6::Widgets -) - -install(TARGETS progressdialog - RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" - BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" - LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" -) diff --git a/examples/qtconcurrent/progressdialog/doc/images/qtconcurrent-progressdialog.png b/examples/qtconcurrent/progressdialog/doc/images/qtconcurrent-progressdialog.png Binary files differdeleted file mode 100644 index 2e8b7735ad3..00000000000 --- a/examples/qtconcurrent/progressdialog/doc/images/qtconcurrent-progressdialog.png +++ /dev/null diff --git a/examples/qtconcurrent/progressdialog/doc/src/qtconcurrent-progressdialog.qdoc b/examples/qtconcurrent/progressdialog/doc/src/qtconcurrent-progressdialog.qdoc deleted file mode 100644 index 103dbda8bac..00000000000 --- a/examples/qtconcurrent/progressdialog/doc/src/qtconcurrent-progressdialog.qdoc +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only - -/*! - \example progressdialog - \title QtConcurrent Progress Dialog Example - \brief Demonstrates how to monitor the progress of the active processes. - \ingroup qtconcurrentexamples - - The QtConcurrent Progress Dialog example shows how to use the - QFutureWatcher class to monitor the progress of a long-running operation. - - \image qtconcurrent-progressdialog.png -*/ diff --git a/examples/qtconcurrent/progressdialog/main.cpp b/examples/qtconcurrent/progressdialog/main.cpp deleted file mode 100644 index 702f59e910d..00000000000 --- a/examples/qtconcurrent/progressdialog/main.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#include <QtWidgets> -#include <QtConcurrent> - -#include <functional> - -using namespace QtConcurrent; - -int main(int argc, char **argv) -{ - QApplication app(argc, argv); - - const int iterations = 20; - - // Prepare the list. - QList<int> list; - for (int i = 0; i < iterations; ++i) - list.append(i); - - // Create a progress dialog. - QProgressDialog dialog; - dialog.setLabelText(QString("Progressing using %1 thread(s)...").arg(QThread::idealThreadCount())); - - // Create a QFutureWatcher and connect signals and slots. - QFutureWatcher<void> futureWatcher; - QObject::connect(&futureWatcher, &QFutureWatcher<void>::finished, &dialog, &QProgressDialog::reset); - QObject::connect(&dialog, &QProgressDialog::canceled, &futureWatcher, &QFutureWatcher<void>::cancel); - QObject::connect(&futureWatcher, &QFutureWatcher<void>::progressRangeChanged, &dialog, &QProgressDialog::setRange); - QObject::connect(&futureWatcher, &QFutureWatcher<void>::progressValueChanged, &dialog, &QProgressDialog::setValue); - - // Our function to compute - std::function<void(int&)> spin = [](int &iteration) { - const int work = 1000 * 1000 * 40; - volatile int v = 0; - for (int j = 0; j < work; ++j) - ++v; - - qDebug() << "iteration" << iteration << "in thread" << QThread::currentThreadId(); - }; - - // Start the computation. - futureWatcher.setFuture(QtConcurrent::map(list, spin)); - - // Display the dialog and start the event loop. - dialog.exec(); - - futureWatcher.waitForFinished(); - - // Query the future to check if was canceled. - qDebug() << "Canceled?" << futureWatcher.future().isCanceled(); -} diff --git a/examples/qtconcurrent/progressdialog/progressdialog.pro b/examples/qtconcurrent/progressdialog/progressdialog.pro deleted file mode 100644 index 8a5b3aabb77..00000000000 --- a/examples/qtconcurrent/progressdialog/progressdialog.pro +++ /dev/null @@ -1,7 +0,0 @@ -QT += concurrent widgets -CONFIG += console - -SOURCES += main.cpp - -target.path = $$[QT_INSTALL_EXAMPLES]/qtconcurrent/progressdialog -INSTALLS += target |