From f641ddd9f054c54de1514d2bc6883824cf97d8ee Mon Sep 17 00:00:00 2001 From: LoRd_MuldeR Date: Mon, 25 Nov 2013 13:58:21 +0100 Subject: [PATCH] Some improvements to Working Banner: Now use a pointer member variable for the UI. Also update Taskbar progress indicator. --- etc/Translation/Blank.ts | 4 ++-- etc/Translation/LameXP_PL.ts | 4 ++-- etc/Translation/LameXP_SV.ts | 4 ++-- res/images/Loading3.gif | Bin 1188 -> 10323 bytes src/Config.h | 2 +- src/Dialog_WorkingBanner.cpp | 44 ++++++++++++++++++++++++----------- src/Dialog_WorkingBanner.h | 13 +++++++++-- 7 files changed, 48 insertions(+), 23 deletions(-) diff --git a/etc/Translation/Blank.ts b/etc/Translation/Blank.ts index 5cb139c4..f93cc9d9 100644 --- a/etc/Translation/Blank.ts +++ b/etc/Translation/Blank.ts @@ -3476,12 +3476,12 @@ - + Update ready to install. Applicaion will quit... - + Update failed. Please try again or download manually! diff --git a/etc/Translation/LameXP_PL.ts b/etc/Translation/LameXP_PL.ts index 91e0da15..2c10e3e8 100644 --- a/etc/Translation/LameXP_PL.ts +++ b/etc/Translation/LameXP_PL.ts @@ -3513,12 +3513,12 @@ Pobieranie aktualizacji w toku, prosze czekać... - + Update ready to install. Applicaion will quit... Aktualizacja gotowa do instalacji. Teraz program zostanie zamknięty... - + Update failed. Please try again or download manually! Aktualizacja zakończona niepowodzeniem. Prosze spróbować ponownie lub zainstalować ręcznie! diff --git a/etc/Translation/LameXP_SV.ts b/etc/Translation/LameXP_SV.ts index bf3ff7db..c67a4e3b 100644 --- a/etc/Translation/LameXP_SV.ts +++ b/etc/Translation/LameXP_SV.ts @@ -3496,12 +3496,12 @@ Uppdatering laddas ner, vänta... - + Update ready to install. Applicaion will quit... Uppdatering klar att installeras. Programmet kommer att avslutas... - + Update failed. Please try again or download manually! Uppdateringen misslyckades. Försök igen, eller ladda ner manuellt! diff --git a/res/images/Loading3.gif b/res/images/Loading3.gif index 7c2ef2b6dba1a2bc981bdbf98b219b2034dd3743..fc1992d2b276af6510677614ac52d6dc57c2602e 100644 GIT binary patch literal 10323 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 diff --git a/src/Config.h b/src/Config.h index d64ae536..c4753763 100644 --- a/src/Config.h +++ b/src/Config.h @@ -35,7 +35,7 @@ #define VER_LAMEXP_MINOR_LO 9 #define VER_LAMEXP_TYPE Alpha #define VER_LAMEXP_PATCH 8 -#define VER_LAMEXP_BUILD 1473 +#define VER_LAMEXP_BUILD 1475 #define VER_LAMEXP_CONFG 1348 /////////////////////////////////////////////////////////////////////////////// diff --git a/src/Dialog_WorkingBanner.cpp b/src/Dialog_WorkingBanner.cpp index 480c3a9e..849ea90b 100644 --- a/src/Dialog_WorkingBanner.cpp +++ b/src/Dialog_WorkingBanner.cpp @@ -21,6 +21,7 @@ /////////////////////////////////////////////////////////////////////////////// #include "Dialog_WorkingBanner.h" +#include "../tmp/UIC_WorkingBanner.h" #include "Global.h" #include "WinSevenTaskbar.h" @@ -75,16 +76,16 @@ static inline void UPDATE_MARGINS(QWidget *control, int l = 0, int r = 0, int t WorkingBanner::WorkingBanner(QWidget *parent) : QDialog(parent, Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint), - m_metrics(NULL), m_working(NULL) + ui(new Ui::WorkingBanner()), m_metrics(NULL), m_working(NULL) { //Init the dialog, from the .ui file - setupUi(this); + ui->setupUi(this); setModal(true); //Enable the "sheet of glass" effect if(lamexp_sheet_of_glass(this)) { - SET_TEXT_COLOR(labelStatus, lamexp_system_color(lamexp_syscolor_caption)); + SET_TEXT_COLOR(ui->labelStatus, lamexp_system_color(lamexp_syscolor_caption)); } else { @@ -92,7 +93,7 @@ WorkingBanner::WorkingBanner(QWidget *parent) m_working = new QMovie(":/images/Busy.gif"); m_working->setSpeed(75); m_working->setCacheMode(QMovie::CacheAll); - labelWorking->setMovie(m_working); + ui->labelWorking->setMovie(m_working); m_working->start(); } @@ -103,7 +104,7 @@ WorkingBanner::WorkingBanner(QWidget *parent) setCursor(Qt::WaitCursor); //Clear label - labelStatus->clear(); + ui->labelStatus->clear(); } //////////////////////////////////////////////////////////// @@ -119,6 +120,7 @@ WorkingBanner::~WorkingBanner(void) } LAMEXP_DELETE(m_metrics); + delete ui; } //////////////////////////////////////////////////////////// @@ -134,8 +136,9 @@ void WorkingBanner::show(const QString &text) setText(text); //Reset progress - progressBar->setMaximum(0); - progressBar->setValue(-1); + ui->progressBar->setMinimum(0); + ui->progressBar->setMaximum(0); + ui->progressBar->setValue(-1); } void WorkingBanner::show(const QString &text, QThread *thread) @@ -249,34 +252,47 @@ void WorkingBanner::setText(const QString &text) { if(!m_metrics) { - m_metrics = new QFontMetrics(labelStatus->font()); + m_metrics = new QFontMetrics(ui->labelStatus->font()); } - if(m_metrics->width(text) <= labelStatus->width() - 8) + if(m_metrics->width(text) <= ui->labelStatus->width() - 8) { - labelStatus->setText(text); + ui->labelStatus->setText(text); } else { QString choppedText = text.simplified().append("..."); - while((m_metrics->width(choppedText) > labelStatus->width() - 8) && (choppedText.length() > 8)) + while((m_metrics->width(choppedText) > ui->labelStatus->width() - 8) && (choppedText.length() > 8)) { choppedText.chop(4); choppedText = choppedText.trimmed(); choppedText.append("..."); } - labelStatus->setText(choppedText); + ui->labelStatus->setText(choppedText); } } void WorkingBanner::setProgressMax(unsigned int max) { - progressBar->setMaximum(max); + ui->progressBar->setMaximum(max); + if(ui->progressBar->maximum() > ui->progressBar->minimum()) + { + WinSevenTaskbar::setTaskbarState(dynamic_cast(this->parent()), WinSevenTaskbar::WinSevenTaskbarNoState); + WinSevenTaskbar::setTaskbarProgress(dynamic_cast(this->parent()), ui->progressBar->value(), ui->progressBar->maximum()); + } + else + { + WinSevenTaskbar::setTaskbarState(dynamic_cast(this->parent()), WinSevenTaskbar::WinSevenTaskbarIndeterminateState); + } } void WorkingBanner::setProgressVal(unsigned int val) { - progressBar->setValue(val); + ui->progressBar->setValue(val); + if(ui->progressBar->maximum() > ui->progressBar->minimum()) + { + WinSevenTaskbar::setTaskbarProgress(dynamic_cast(this->parent()), ui->progressBar->value(), ui->progressBar->maximum()); + } } //////////////////////////////////////////////////////////// diff --git a/src/Dialog_WorkingBanner.h b/src/Dialog_WorkingBanner.h index f030a56c..de0100c4 100644 --- a/src/Dialog_WorkingBanner.h +++ b/src/Dialog_WorkingBanner.h @@ -22,13 +22,20 @@ #pragma once -#include "../tmp/UIC_WorkingBanner.h" +#include + +namespace Ui +{ + class WorkingBanner; +} + +class QEventLoop; //////////////////////////////////////////////////////////// // Splash Frame //////////////////////////////////////////////////////////// -class WorkingBanner: public QDialog, private Ui::WorkingBanner +class WorkingBanner: public QDialog { Q_OBJECT @@ -41,6 +48,8 @@ public: void show(const QString &text, QEventLoop *loop); private: + Ui::WorkingBanner *const ui; + QMovie *m_working; bool m_canClose;