mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 22:27:35 +00:00
FileManager+LibGUI: Show thumbnail generation progress in the statusbar.
This commit is contained in:
parent
32191b0d4b
commit
614dafea32
9 changed files with 63 additions and 11 deletions
|
@ -1,5 +1,6 @@
|
|||
#include <LibGUI/GProgressBar.h>
|
||||
#include <SharedGraphics/Painter.h>
|
||||
#include <AK/StringBuilder.h>
|
||||
|
||||
GProgressBar::GProgressBar(GWidget* parent)
|
||||
: GWidget(parent)
|
||||
|
@ -45,7 +46,15 @@ void GProgressBar::paint_event(GPaintEvent& event)
|
|||
|
||||
// Then we draw the progress text over the gradient.
|
||||
// We draw it twice, once offset (1, 1) for a drop shadow look.
|
||||
auto progress_text = String::format("%d%%", (int)(progress * 100));
|
||||
StringBuilder builder;
|
||||
builder.append(m_caption);
|
||||
if (m_format == Format::Percentage)
|
||||
builder.appendf("%d%%", (int)(progress * 100));
|
||||
else if (m_format == Format::ValueSlashMax)
|
||||
builder.appendf("%d/%d", m_value, m_max);
|
||||
|
||||
auto progress_text = builder.to_string();
|
||||
|
||||
painter.draw_text(rect().translated(1, 1), progress_text, TextAlignment::Center, Color::Black);
|
||||
painter.draw_text(rect(), progress_text, TextAlignment::Center, Color::White);
|
||||
|
||||
|
|
|
@ -12,11 +12,20 @@ public:
|
|||
|
||||
int value() const { return m_value; }
|
||||
|
||||
String caption() const { return m_caption; }
|
||||
void set_caption(const String& caption) { m_caption = caption; }
|
||||
|
||||
enum Format { Percentage, ValueSlashMax };
|
||||
Format format() const { return m_format; }
|
||||
void set_format(Format format) { m_format = format; }
|
||||
|
||||
protected:
|
||||
virtual void paint_event(GPaintEvent&) override;
|
||||
|
||||
private:
|
||||
Format m_format { Percentage };
|
||||
int m_min { 0 };
|
||||
int m_max { 100 };
|
||||
int m_value { 0 };
|
||||
String m_caption;
|
||||
};
|
||||
|
|
|
@ -336,6 +336,7 @@ void GWidget::invalidate_layout()
|
|||
return;
|
||||
if (!w->main_widget())
|
||||
return;
|
||||
do_layout();
|
||||
w->main_widget()->do_layout();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue