Changeset View
Changeset View
Standalone View
Standalone View
src/libkdepim/progresswidget/statusbarprogresswidget.cpp
Show First 20 Lines • Show All 97 Lines • ▼ Show 20 Line(s) | 66 | { | |||
---|---|---|---|---|---|
98 | mLabel->setObjectName(QStringLiteral("emptylabel")); | 98 | mLabel->setObjectName(QStringLiteral("emptylabel")); | ||
99 | mLabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); | 99 | mLabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); | ||
100 | mLabel->installEventFilter(this); | 100 | mLabel->installEventFilter(this); | ||
101 | mLabel->setMinimumWidth(w); | 101 | mLabel->setMinimumWidth(w); | ||
102 | mStackedWidget->insertWidget(2, mLabel); | 102 | mStackedWidget->insertWidget(2, mLabel); | ||
103 | mButton->setMaximumHeight(maximumHeight); | 103 | mButton->setMaximumHeight(maximumHeight); | ||
104 | setFixedWidth(600); | 104 | setFixedWidth(600); | ||
105 | 105 | | |||
106 | mMode = Clean; | 106 | mMode = Progress; // so the call below works | ||
107 | setMode(); | 107 | setMode(Clean); | ||
108 | 108 | | |||
109 | connect(mButton, &QAbstractButton::clicked, | 109 | connect(mButton, &QAbstractButton::clicked, | ||
110 | this, &StatusbarProgressWidget::slotProgressButtonClicked); | 110 | this, &StatusbarProgressWidget::slotProgressButtonClicked); | ||
111 | 111 | | |||
112 | connect(ProgressManager::instance(), &ProgressManager::progressItemAdded, | 112 | connect(ProgressManager::instance(), &ProgressManager::progressItemAdded, | ||
113 | this, &StatusbarProgressWidget::slotProgressItemAdded); | 113 | this, &StatusbarProgressWidget::slotProgressItemAdded); | ||
114 | connect(ProgressManager::instance(), &ProgressManager::progressItemCompleted, | 114 | connect(ProgressManager::instance(), &ProgressManager::progressItemCompleted, | ||
115 | this, &StatusbarProgressWidget::slotProgressItemCompleted); | 115 | this, &StatusbarProgressWidget::slotProgressItemCompleted); | ||
▲ Show 20 Lines • Show All 102 Lines • ▼ Show 20 Line(s) | 217 | } else if (!noItems) { // N items | |||
218 | mProgressBar->setMaximum(0); | 218 | mProgressBar->setMaximum(0); | ||
219 | mProgressBar->setTextVisible(false); | 219 | mProgressBar->setTextVisible(false); | ||
220 | Q_ASSERT(mBusyTimer); | 220 | Q_ASSERT(mBusyTimer); | ||
221 | if (mBusyTimer) { | 221 | if (mBusyTimer) { | ||
222 | mBusyTimer->start(100); | 222 | mBusyTimer->start(100); | ||
223 | } | 223 | } | ||
224 | } | 224 | } | ||
225 | 225 | | |||
226 | if (!noItems && mMode != Progress) { | 226 | if (!noItems) { | ||
227 | mMode = Progress; | 227 | setMode(Progress); | ||
228 | setMode(); | | |||
229 | } | 228 | } | ||
230 | } | 229 | } | ||
231 | 230 | | |||
232 | void StatusbarProgressWidget::slotBusyIndicator() | 231 | void StatusbarProgressWidget::slotBusyIndicator() | ||
233 | { | 232 | { | ||
234 | const int p = mProgressBar->value(); | 233 | const int p = mProgressBar->value(); | ||
235 | mProgressBar->setValue(p + 10); | 234 | mProgressBar->setValue(p + 10); | ||
236 | } | 235 | } | ||
237 | 236 | | |||
238 | void StatusbarProgressWidget::slotProgressItemProgress(ProgressItem *item, unsigned int value) | 237 | void StatusbarProgressWidget::slotProgressItemProgress(ProgressItem *item, unsigned int value) | ||
239 | { | 238 | { | ||
240 | Q_ASSERT(item == mCurrentItem); // the only one we should be connected to | 239 | Q_ASSERT(item == mCurrentItem); // the only one we should be connected to | ||
241 | Q_UNUSED(item); | 240 | Q_UNUSED(item); | ||
242 | mProgressBar->setValue(value); | 241 | mProgressBar->setValue(value); | ||
243 | } | 242 | } | ||
244 | 243 | | |||
245 | void StatusbarProgressWidget::setMode() | 244 | void StatusbarProgressWidget::setMode(Mode mode) | ||
246 | { | 245 | { | ||
246 | if (mMode == mode) | ||||
dvratil: `return` when `mMode == mode`? Or does the code rely on the side-effects? | |||||
247 | return; | ||||
248 | mMode = mode; | ||||
247 | switch (mMode) { | 249 | switch (mMode) { | ||
248 | case Clean: | 250 | case Clean: | ||
249 | if (mShowButton) { | 251 | if (mShowButton) { | ||
250 | mButton->hide(); | 252 | mButton->hide(); | ||
251 | } | 253 | } | ||
252 | mSslLabel->setState(SSLLabel::Done); | 254 | mSslLabel->setState(SSLLabel::Done); | ||
253 | // show the empty label in order to make the status bar look better | 255 | // show the empty label in order to make the status bar look better | ||
254 | mStackedWidget->show(); | 256 | mStackedWidget->show(); | ||
Show All 12 Lines | |||||
267 | } | 269 | } | ||
268 | } | 270 | } | ||
269 | 271 | | |||
270 | void StatusbarProgressWidget::slotClean() | 272 | void StatusbarProgressWidget::slotClean() | ||
271 | { | 273 | { | ||
272 | // check if a new item showed up since we started the timer. If not, clear | 274 | // check if a new item showed up since we started the timer. If not, clear | ||
273 | if (ProgressManager::instance()->isEmpty()) { | 275 | if (ProgressManager::instance()->isEmpty()) { | ||
274 | mProgressBar->setValue(0); | 276 | mProgressBar->setValue(0); | ||
275 | mMode = Clean; | 277 | setMode(Clean); | ||
276 | setMode(); | | |||
277 | } | 278 | } | ||
278 | } | 279 | } | ||
279 | 280 | | |||
280 | bool StatusbarProgressWidget::eventFilter(QObject *obj, QEvent *ev) | 281 | bool StatusbarProgressWidget::eventFilter(QObject *obj, QEvent *ev) | ||
281 | { | 282 | { | ||
282 | if (ev->type() == QEvent::MouseButtonPress) { | 283 | if (ev->type() == QEvent::MouseButtonPress) { | ||
283 | QMouseEvent *e = static_cast<QMouseEvent *>(ev); | 284 | QMouseEvent *e = static_cast<QMouseEvent *>(ev); | ||
284 | 285 | | |||
Show All 25 Lines | 308 | { | |||
310 | updateProgressButton(); | 311 | updateProgressButton(); | ||
311 | setFixedWidth(qMax(600, mProgressDialog->width())); | 312 | setFixedWidth(qMax(600, mProgressDialog->width())); | ||
312 | } | 313 | } | ||
313 | 314 | | |||
314 | void StatusbarProgressWidget::slotProgressDialogVisible(bool b) | 315 | void StatusbarProgressWidget::slotProgressDialogVisible(bool b) | ||
315 | { | 316 | { | ||
316 | // Show the hide/show button (mButton) as soon as the progress dialog is shown | 317 | // Show the hide/show button (mButton) as soon as the progress dialog is shown | ||
317 | // (StatusbarProgressWidget::slotShowItemDelayed happens later) | 318 | // (StatusbarProgressWidget::slotShowItemDelayed happens later) | ||
318 | if (b && mMode != Progress) { | 319 | if (b) { | ||
319 | mMode = Progress; | 320 | setMode(Progress); | ||
320 | setMode(); | | |||
321 | } | 321 | } | ||
322 | } | 322 | } |
return when mMode == mode? Or does the code rely on the side-effects?