aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2026-09-14 21:03:32 +0200
committersaturneric <[email protected]>2026-09-14 21:03:32 +0200
commit95f832096cdf29b4e8ff8554086cdb43d40c1387 (patch)
tree91c2864113d34c1ab14c08933c39c95a6d44938e
parenttest(email): cover encrypted messages and reply rendering (diff)
downloadmodules-95f832096cdf29b4e8ff8554086cdb43d40c1387.tar.gz
modules-95f832096cdf29b4e8ff8554086cdb43d40c1387.zip
refactor(email): reposition imap progress indicators
- move the main progress bar into the action row near its related buttons - resize the main indicator for improved visibility during operations - center a compact loading bar within the empty-state pane - remove the former full-width header progress bar layout
-rw-r--r--src/m_email/EMailImapController.cpp32
1 files changed, 20 insertions, 12 deletions
diff --git a/src/m_email/EMailImapController.cpp b/src/m_email/EMailImapController.cpp
index f4e549e..2d43d4d 100644
--- a/src/m_email/EMailImapController.cpp
+++ b/src/m_email/EMailImapController.cpp
@@ -321,16 +321,6 @@ void EMailImapController::build_ui() {
top->addWidget(refresh_button_);
outer->addLayout(top);
- // Indeterminate, because none of these operations can report a fraction:
- // IMAP says when it is done, not how far along it is. Shown only after a
- // short delay so a fast folder never flashes a progress bar.
- progress_ = new QProgressBar(this);
- progress_->setRange(0, 0);
- progress_->setTextVisible(false);
- progress_->setFixedHeight(4);
- progress_->setVisible(false);
- outer->addWidget(progress_);
-
progress_timer_ = new QTimer(this);
progress_timer_->setSingleShot(true);
progress_timer_->setInterval(kProgressDelayMs);
@@ -380,11 +370,14 @@ void EMailImapController::build_ui() {
loading_label_ = EMailEmptyNotice(loading_pane_);
loading_layout->addWidget(loading_label_);
+ // Sized to the sentence above it rather than stretched across the pane: a
+ // full-width bar in an otherwise empty panel reads as a piece of furniture,
+ // not as something in progress.
auto* loading_bar = new QProgressBar(loading_pane_);
loading_bar->setRange(0, 0); // indeterminate: no total is known here
loading_bar->setTextVisible(false);
- loading_bar->setFixedHeight(4);
- loading_layout->addWidget(loading_bar);
+ loading_bar->setFixedSize(140, 6);
+ loading_layout->addWidget(loading_bar, 0, Qt::AlignHCenter);
loading_layout->addStretch(1);
loading_pane_->setVisible(false);
@@ -420,10 +413,25 @@ void EMailImapController::build_ui() {
open_button_->setDefault(true);
cancel_button_ = new QPushButton(tr("Close"), this);
+ // Indeterminate, because none of these operations can report a fraction:
+ // IMAP says when it is done, not how far along it is. Shown only after a
+ // short delay so a fast folder never flashes a progress bar.
+ //
+ // It sits in the action row rather than as a hairline under the header: up
+ // there it was four pixels at the far end of the window from the buttons
+ // being waited on, which is not where someone who just clicked is looking.
+ progress_ = new QProgressBar(this);
+ progress_->setRange(0, 0);
+ progress_->setTextVisible(false);
+ progress_->setFixedHeight(18);
+ progress_->setFixedWidth(120);
+ progress_->setVisible(false);
+
buttons->addWidget(previous_button_);
buttons->addWidget(next_button_);
buttons->addWidget(page_label_);
buttons->addWidget(status_label_, 1);
+ buttons->addWidget(progress_);
buttons->addWidget(open_button_);
buttons->addWidget(cancel_button_);
outer->addLayout(buttons);