improve waiting dialog when open a project

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5295 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun
2018-04-04 15:07:52 +00:00
parent fb47a18b69
commit f0c0e7c5d5
6 changed files with 157 additions and 54 deletions

View File

@@ -20,6 +20,8 @@
#include "ui_dialogwaiting.h"
#include <QPushButton>
DialogWaiting *DialogWaiting::m_static_dialog = nullptr;
/**
* @brief DialogWaiting::DialogWaiting
* @param parent
@@ -70,8 +72,7 @@ void DialogWaiting::setProgressBarRange(int min, int max){
* @param val is the string of action
*/
void DialogWaiting::setTitle(const QString& val){
QString title="<b> "+val+" </b>";
ui->labelTitle->setText(title);
ui->labelTitle->setText(val);
}
/**
@@ -82,3 +83,12 @@ void DialogWaiting::setDetail(const QString& val){
ui->label_detail->setText(val);
}
/**
* @brief DialogWaiting::progressBarValue
* @return The current vcalue of the progress bar
*/
int DialogWaiting::progressBarValue() const
{
ui->progressBar->value();
}

View File

@@ -20,6 +20,7 @@
#define DIALOGWAITING_H
#include <QDialog>
#include <QMutex>
namespace Ui {
class DialogWaiting;
@@ -28,19 +29,56 @@ namespace Ui {
class DialogWaiting : public QDialog
{
Q_OBJECT
public:
explicit DialogWaiting(QWidget *parent = nullptr);
~DialogWaiting() override;
void setProgressBar(int val);
void setProgressBarRange(int min, int max);
void setProgressReset();
void setTitle(const QString& val);
void setDetail(const QString& val);
public:
static DialogWaiting* instance(QWidget *parent = nullptr)
{
static QMutex mutex;
if(!m_static_dialog)
{
mutex.lock();
if(!m_static_dialog)
m_static_dialog = new DialogWaiting(parent);
mutex.unlock();
}
return m_static_dialog;
}
static bool hasInstance()
{
if(m_static_dialog == nullptr)
return false;
else
return true;
}
static void dropInstance()
{
static QMutex mutex;
if(m_static_dialog)
{
mutex.lock();
m_static_dialog->deleteLater();
m_static_dialog = nullptr;
mutex.unlock();
}
}
private:
Ui::DialogWaiting *ui;
static DialogWaiting *m_static_dialog;
public:
explicit DialogWaiting(QWidget *parent = nullptr);
~DialogWaiting() override;
void setProgressBar(int val);
void setProgressBarRange(int min, int max);
void setProgressReset();
void setTitle(const QString& val);
void setDetail(const QString& val);
int progressBarValue() const;
private:
Ui::DialogWaiting *ui;
};
#endif // DIALOGWAITING_H