aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@digia.com>2013-08-29 11:18:22 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-08-29 12:26:01 +0200
commit491b83d228a5eecaae3cbb8a63355d8cd2da6996 (patch)
tree0fa320544a3d5985b1fcd830b4a968274fea4e49 /src
parent05a4df5ed72ab11a3f2cccfbec701fd63e5f9984 (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.cpp43
-rw-r--r--src/winextras/qwintaskbarbutton.h3
-rw-r--r--src/winextras/qwintaskbarbutton_p.h3
-rw-r--r--src/winextras/qwintaskbarprogress.cpp2
-rw-r--r--src/winextras/qwintaskbarprogress.h1
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