Fix: In order to ensure the "correct" ordering, *all* threads need to wait for the...
[LameXP.git] / src / Dialog_WorkingBanner.h
blob1e0dea409d89ef1d7a9ca848e9e777b893523454
1 ///////////////////////////////////////////////////////////////////////////////
2 // LameXP - Audio Encoder Front-End
3 // Copyright (C) 2004-2012 LoRd_MuldeR <MuldeR2@GMX.de>
4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 2 of the License, or
8 // (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License along
16 // with this program; if not, write to the Free Software Foundation, Inc.,
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 // http://www.gnu.org/licenses/gpl-2.0.txt
20 ///////////////////////////////////////////////////////////////////////////////
22 #pragma once
24 #include "../tmp/UIC_WorkingBanner.h"
26 ////////////////////////////////////////////////////////////
27 // Splash Frame
28 ////////////////////////////////////////////////////////////
30 class WorkingBanner: public QDialog, private Ui::WorkingBanner
32 Q_OBJECT
34 public:
35 WorkingBanner(QWidget *parent = 0);
36 ~WorkingBanner(void);
38 void show(const QString &text);
39 void show(const QString &text, QThread *thread);
40 void show(const QString &text, QEventLoop *loop);
42 private:
43 QMovie *m_working;
44 bool m_canClose;
45 void updateProgress(void);
47 public slots:
48 void setText(const QString &text);
49 void setProgressMax(unsigned int max);
50 void setProgressVal(unsigned int val);
51 bool close(void);
53 signals:
54 void userAbort(void);
56 protected:
57 void keyPressEvent(QKeyEvent *event);
58 void keyReleaseEvent(QKeyEvent *event);
59 void closeEvent(QCloseEvent *event);
60 bool winEvent(MSG *message, long *result);
62 QLabel *m_progress;
63 QFontMetrics *m_metrics;
64 unsigned int m_progressMax;
65 unsigned int m_progressVal;
66 unsigned int m_progressInt;