19 int progressMinimum READ progressMinimum NOTIFY progressRangeChanged)
21 int progressMaximum READ progressMaximum NOTIFY progressRangeChanged)
22 Q_PROPERTY (
int progressValue READ progressValue NOTIFY progressValueChanged)
23 Q_PROPERTY (QString progressText READ progressText NOTIFY progressTextChanged)
30 virtual int progressMinimum ()
const = 0;
31 virtual int progressMaximum ()
const = 0;
32 virtual int progressValue ()
const = 0;
33 virtual QString progressText ()
const = 0;
34 Q_INVOKABLE
virtual QVariant resultVar ()
const = 0;
35 Q_INVOKABLE
virtual void cancel () = 0;
36 Q_INVOKABLE
virtual bool isCanceled ()
const = 0;
37 Q_INVOKABLE
virtual bool isValid ()
const = 0;
40 void progressValueChanged (
int value);
41 void progressRangeChanged (
int minimum,
int maximum);
42 void progressTextChanged (
const QString &text);
46 void setup (QFutureWatcherBase &watcher)
const
49 &watcher, &QFutureWatcherBase::progressRangeChanged,
this,
50 &QFutureQmlWrapper::progressRangeChanged);
52 &watcher, &QFutureWatcherBase::progressValueChanged,
this,
53 &QFutureQmlWrapper::progressValueChanged);
55 &watcher, &QFutureWatcherBase::progressTextChanged,
this,
56 &QFutureQmlWrapper::progressTextChanged);
58 &watcher, &QFutureWatcherBase::finished,
this,
59 &QFutureQmlWrapper::finished);
66 QFutureQmlWrapperT (QFuture<T> future) : future_ (future)
68 watcher_.setFuture (future_);
72 int progressMinimum ()
const override {
return watcher_.progressMinimum (); }
73 int progressMaximum ()
const override {
return watcher_.progressMaximum (); }
74 int progressValue ()
const override {
return watcher_.progressValue (); }
75 QString progressText ()
const override {
return watcher_.progressText (); }
76 QVariant resultVar ()
const override
78 if constexpr (std::is_same_v<T, void>)
84 assert (future_.isResultReadyAt (0));
85 return QVariant::fromValue (watcher_.result ());
89 void cancel ()
override { future_.cancel (); }
90 bool isCanceled ()
const override {
return future_.isCanceled (); }
91 bool isValid ()
const override {
return future_.isValid (); }
95 QFutureWatcher<T> watcher_;