diff options
author | J-P Nurmi <jpnurmi@digia.com> | 2013-08-29 11:18:22 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-08-29 12:26:01 +0200 |
commit | 491b83d228a5eecaae3cbb8a63355d8cd2da6996 (patch) | |
tree | 0fa320544a3d5985b1fcd830b4a968274fea4e49 /src | |
parent | 05a4df5ed72ab11a3f2cccfbec701fd63e5f9984 (diff) |
Kill QWinTaskbarProgress::IndeterminateState
Automatically turn it to an indeterminate progress bar if
minimum and maximum both are set to 0 - just like QProgressBar.
Change-Id: Ie20121a8feaf95dbd35c4ea9e6bf342ee147011a
Reviewed-by: Ivan Vizir <define-true-false@yandex.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/winextras/qwintaskbarbutton.cpp | 43 | ||||
-rw-r--r-- | src/winextras/qwintaskbarbutton.h | 3 | ||||
-rw-r--r-- | src/winextras/qwintaskbarbutton_p.h | 3 | ||||
-rw-r--r-- | src/winextras/qwintaskbarprogress.cpp | 2 | ||||
-rw-r--r-- | src/winextras/qwintaskbarprogress.h | 1 |
5 files changed, 18 insertions, 34 deletions
diff --git a/src/winextras/qwintaskbarbutton.cpp b/src/winextras/qwintaskbarbutton.cpp index fdcfad3..83f6f7d 100644 --- a/src/winextras/qwintaskbarbutton.cpp +++ b/src/winextras/qwintaskbarbutton.cpp @@ -74,7 +74,6 @@ static TBPFLAG nativeProgressState(QWinTaskbarProgress::ProgressState state) switch (state) { default : case QWinTaskbarProgress::NoProgressState: flag = TBPF_NOPROGRESS; break; - case QWinTaskbarProgress::IndeterminateState: flag = TBPF_INDETERMINATE; break; case QWinTaskbarProgress::NormalState: flag = TBPF_NORMAL; break; case QWinTaskbarProgress::PausedState: flag = TBPF_PAUSED; break; case QWinTaskbarProgress::ErrorState: flag = TBPF_ERROR; break; @@ -137,32 +136,25 @@ void QWinTaskbarButtonPrivate::updateOverlayIcon() delete[] descrPtr; } -void QWinTaskbarButtonPrivate::_q_updateProgressValue() +void QWinTaskbarButtonPrivate::_q_updateProgress() { - const QWinTaskbarProgress::ProgressState state = progressBar ? progressBar->state() : QWinTaskbarProgress::NoProgressState; - if (!pTbList || !window || state == QWinTaskbarProgress::NoProgressState || state == QWinTaskbarProgress::IndeterminateState) + if (!pTbList || !window || !progressBar) return; const int min = progressBar->minimum(); const int max = progressBar->maximum(); - const int range = max - min; - if (range > 0) { - const int value = 100.0 * (progressBar->value() - min) / range; - pTbList->SetProgressValue(handle(), value, 100); - - if (state == QWinTaskbarProgress::IndeterminateState) - progressBar->setState(QWinTaskbarProgress::NormalState); + if (min == 0 && max == 0) { + pTbList->SetProgressState(handle(), TBPF_INDETERMINATE); + } else { + const int range = max - min; + if (range > 0) { + const int value = 100.0 * (progressBar->value() - min) / range; + pTbList->SetProgressValue(handle(), value, 100); + } + pTbList->SetProgressState(handle(), nativeProgressState(progressBar->state())); } } -void QWinTaskbarButtonPrivate::_q_updateProgressState() -{ - if (!pTbList || !window || !progressBar) - return; - - pTbList->SetProgressState(handle(), nativeProgressState(progressBar->state())); -} - /*! Constructs a QWinTaskbarButton with the parent object \a parent. */ @@ -193,8 +185,7 @@ void QWinTaskbarButton::setWindow(QWindow *window) if (d->window) { d->window->installEventFilter(this); if (d->window->isVisible()) { - d->_q_updateProgressValue(); - d->_q_updateProgressState(); + d->_q_updateProgress(); d->updateOverlayIcon(); } } @@ -262,11 +253,10 @@ QWinTaskbarProgress *QWinTaskbarButton::progressBar() const if (!d->progressBar) { QWinTaskbarButton *that = const_cast<QWinTaskbarButton *>(this); QWinTaskbarProgress *pbar = new QWinTaskbarProgress(that); - connect(pbar, SIGNAL(valueChanged(int)), this, SLOT(_q_updateProgressValue())); - connect(pbar, SIGNAL(stateChanged(QWinTaskbarProgress::ProgressState)), this, SLOT(_q_updateProgressState())); + connect(pbar, SIGNAL(valueChanged(int)), this, SLOT(_q_updateProgress())); + connect(pbar, SIGNAL(stateChanged(QWinTaskbarProgress::ProgressState)), this, SLOT(_q_updateProgress())); that->d_func()->progressBar = pbar; - that->d_func()->_q_updateProgressValue(); - that->d_func()->_q_updateProgressState(); + that->d_func()->_q_updateProgress(); } return d->progressBar; } @@ -279,8 +269,7 @@ bool QWinTaskbarButton::eventFilter(QObject *object, QEvent *event) { Q_D(QWinTaskbarButton); if (object == d->window && event->type() == QWinEvent::TaskbarButtonCreated) { - d->_q_updateProgressState(); - d->_q_updateProgressValue(); + d->_q_updateProgress(); d->updateOverlayIcon(); } return false; diff --git a/src/winextras/qwintaskbarbutton.h b/src/winextras/qwintaskbarbutton.h index c8b50ec..8d91351 100644 --- a/src/winextras/qwintaskbarbutton.h +++ b/src/winextras/qwintaskbarbutton.h @@ -85,8 +85,7 @@ private: Q_DECLARE_PRIVATE(QWinTaskbarButton) QScopedPointer<QWinTaskbarButtonPrivate> d_ptr; - Q_PRIVATE_SLOT(d_func(), void _q_updateProgressValue()) - Q_PRIVATE_SLOT(d_func(), void _q_updateProgressState()) + Q_PRIVATE_SLOT(d_func(), void _q_updateProgress()) }; QT_END_NAMESPACE diff --git a/src/winextras/qwintaskbarbutton_p.h b/src/winextras/qwintaskbarbutton_p.h index dbb88ea..32b868e 100644 --- a/src/winextras/qwintaskbarbutton_p.h +++ b/src/winextras/qwintaskbarbutton_p.h @@ -69,8 +69,7 @@ public: void updateOverlayIcon(); - void _q_updateProgressValue(); - void _q_updateProgressState(); + void _q_updateProgress(); ITaskbarList4 *pTbList; QWindow *window; diff --git a/src/winextras/qwintaskbarprogress.cpp b/src/winextras/qwintaskbarprogress.cpp index 607798e..fec4684 100644 --- a/src/winextras/qwintaskbarprogress.cpp +++ b/src/winextras/qwintaskbarprogress.cpp @@ -74,8 +74,6 @@ QT_BEGIN_NAMESPACE \value NoProgressState No progress indicator is displayed. - \value IndeterminateState - The progress indicator cycles repeatedly. \value NormalState The progress indicator is green. \value PausedState diff --git a/src/winextras/qwintaskbarprogress.h b/src/winextras/qwintaskbarprogress.h index 6a79a47..ff23bc8 100644 --- a/src/winextras/qwintaskbarprogress.h +++ b/src/winextras/qwintaskbarprogress.h @@ -62,7 +62,6 @@ class Q_WINEXTRAS_EXPORT QWinTaskbarProgress : public QObject public: enum ProgressState { NoProgressState, - IndeterminateState, NormalState, PausedState, ErrorState |