321 lines
7.8 KiB
C++
321 lines
7.8 KiB
C++
|
|
#include "DepthProgress.h"
|
|||
|
|
#include <QApplication>
|
|||
|
|
#include "geometryutils.h"
|
|||
|
|
DepthProgress::DepthProgress(){
|
|||
|
|
progerssBar=NULL;
|
|||
|
|
label=NULL;
|
|||
|
|
progerssBar = new QProgressBar;
|
|||
|
|
label= new QLabel;
|
|||
|
|
label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
|||
|
|
|
|||
|
|
m_Name="";//notifyMsg;
|
|||
|
|
progerssBar->setMaximumWidth(200);
|
|||
|
|
progerssBar->setFixedWidth(200);
|
|||
|
|
label->setFixedWidth(300);
|
|||
|
|
// ::GetStatusBar()->addPermanentWidget(label);
|
|||
|
|
// ::GetStatusBar()->addPermanentWidget(progerssBar,1);
|
|||
|
|
}
|
|||
|
|
DepthProgress::~DepthProgress()
|
|||
|
|
{
|
|||
|
|
if(progerssBar){
|
|||
|
|
delete progerssBar;
|
|||
|
|
progerssBar=NULL;
|
|||
|
|
}
|
|||
|
|
if(label){
|
|||
|
|
delete label;
|
|||
|
|
label=NULL;
|
|||
|
|
}
|
|||
|
|
// if(SystemExiting()) {
|
|||
|
|
// progerssBar=NULL;
|
|||
|
|
// label=NULL;
|
|||
|
|
// return;//特殊处理 目前各个模块退出时,系统已经释放了progressbar
|
|||
|
|
// }
|
|||
|
|
if(progerssBar) {
|
|||
|
|
progerssBar=NULL;
|
|||
|
|
label=NULL;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
bool DepthProgress::CreatProgress(float sdep,float edep,const char* notifyMsg)
|
|||
|
|
{
|
|||
|
|
if(progerssBar==NULL) {
|
|||
|
|
progerssBar = new QProgressBar;
|
|||
|
|
label= new QLabel;
|
|||
|
|
m_Name="";//notifyMsg;
|
|||
|
|
progerssBar->setMaximumWidth(200);
|
|||
|
|
progerssBar->setFixedWidth(200);
|
|||
|
|
label->setFixedWidth(300);
|
|||
|
|
label->setAlignment(Qt::AlignRight);
|
|||
|
|
// ::GetStatusBar()->addPermanentWidget(label);
|
|||
|
|
// ::GetStatusBar()->addPermanentWidget(progerssBar,1);
|
|||
|
|
}
|
|||
|
|
progerssBar->setRange(sdep,edep);
|
|||
|
|
m_Name=notifyMsg;
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
bool DepthProgress::SetDepth(float sdep)
|
|||
|
|
{
|
|||
|
|
if(!progerssBar||!label) return false;
|
|||
|
|
progerssBar->setValue(sdep);
|
|||
|
|
label->setText(m_Name);
|
|||
|
|
QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
bool DepthProgress::CheckCancle()
|
|||
|
|
{
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
bool DepthProgress::DelProgress()
|
|||
|
|
{
|
|||
|
|
if(progerssBar){
|
|||
|
|
delete progerssBar;
|
|||
|
|
progerssBar=NULL;
|
|||
|
|
}
|
|||
|
|
if(label){
|
|||
|
|
delete label;
|
|||
|
|
label=NULL;
|
|||
|
|
}
|
|||
|
|
// if(SystemExiting()) {
|
|||
|
|
// progerssBar=NULL;
|
|||
|
|
// label=NULL;
|
|||
|
|
// return true;//特殊处理 目前各个模块退出时,系统已经释放了progressbar
|
|||
|
|
// }
|
|||
|
|
if(progerssBar) {
|
|||
|
|
progerssBar=NULL;
|
|||
|
|
label=NULL;
|
|||
|
|
}
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
bool DepthProgress::DelProgress1()
|
|||
|
|
{
|
|||
|
|
if(progerssBar){
|
|||
|
|
delete progerssBar;
|
|||
|
|
progerssBar=NULL;
|
|||
|
|
}
|
|||
|
|
if(label){
|
|||
|
|
delete label;
|
|||
|
|
label=NULL;
|
|||
|
|
}
|
|||
|
|
// if(SystemExiting()) {
|
|||
|
|
// progerssBar=NULL;
|
|||
|
|
// label=NULL;
|
|||
|
|
// return true;//特殊处理 目前各个模块退出时,系统已经释放了progressbar
|
|||
|
|
// }
|
|||
|
|
if(progerssBar) {
|
|||
|
|
progerssBar=NULL;
|
|||
|
|
label=NULL;
|
|||
|
|
}
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
void DepthProgress::SetShowName(const char * Name)
|
|||
|
|
{
|
|||
|
|
m_Name=Name;
|
|||
|
|
}
|
|||
|
|
DiDepthProgress::DiDepthProgress()
|
|||
|
|
{
|
|||
|
|
m_Name.clear();
|
|||
|
|
progerssBarList.clear();
|
|||
|
|
labelList.clear();
|
|||
|
|
/*
|
|||
|
|
//0
|
|||
|
|
QProgressBar *progerssBar = new QProgressBar;
|
|||
|
|
progerssBar->setFixedWidth(200);
|
|||
|
|
progerssBarList.push_back(progerssBar);
|
|||
|
|
QLabel *label= new QLabel;
|
|||
|
|
label->setFixedWidth(300);
|
|||
|
|
label->setObjectName("ProgressBarHint");
|
|||
|
|
label->setAlignment(Qt::AlignRight);
|
|||
|
|
|
|||
|
|
labelList.push_back(label);
|
|||
|
|
|
|||
|
|
::GetStatusBar()->addPermanentWidget(label);
|
|||
|
|
::GetStatusBar()->addPermanentWidget(progerssBar);
|
|||
|
|
label->setMaximumWidth(300);
|
|||
|
|
progerssBar->setMaximumWidth(200);
|
|||
|
|
label->setVisible(false);
|
|||
|
|
progerssBar->setValue(false);
|
|||
|
|
//////////////////////
|
|||
|
|
//1
|
|||
|
|
progerssBar = new QProgressBar;
|
|||
|
|
progerssBar->setFixedWidth(300);
|
|||
|
|
progerssBarList.push_back(progerssBar);
|
|||
|
|
label= new QLabel;
|
|||
|
|
label->setFixedWidth(300);
|
|||
|
|
label->setObjectName("ProgressBarHint");
|
|||
|
|
label->setAlignment(Qt::AlignRight);
|
|||
|
|
|
|||
|
|
labelList.push_back(label);
|
|||
|
|
|
|||
|
|
::GetStatusBar()->addPermanentWidget(label);
|
|||
|
|
::GetStatusBar()->addPermanentWidget(progerssBar);
|
|||
|
|
label->setMaximumWidth(300);
|
|||
|
|
progerssBar->setMaximumWidth(200);
|
|||
|
|
label->setVisible(false);
|
|||
|
|
progerssBar->setValue(false);
|
|||
|
|
*/
|
|||
|
|
}
|
|||
|
|
DiDepthProgress::~DiDepthProgress()
|
|||
|
|
{
|
|||
|
|
foreach(QProgressBar *progerssBar,progerssBarList) {
|
|||
|
|
delete progerssBar;
|
|||
|
|
}
|
|||
|
|
foreach(QLabel *label,labelList) {
|
|||
|
|
delete label;
|
|||
|
|
}
|
|||
|
|
progerssBarList.clear();
|
|||
|
|
labelList.clear();
|
|||
|
|
// if(SystemExiting()) return;//特殊处理 目前各个模块退出时,系统已经释放了progressbar
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
bool DiDepthProgress::SetRange(float sdep,float edep,int Index)
|
|||
|
|
{
|
|||
|
|
if(progerssBarList.size()>Index) {
|
|||
|
|
QLabel *label=labelList[Index];
|
|||
|
|
QProgressBar *progerssBar=progerssBarList[Index];
|
|||
|
|
progerssBar->setRange(sdep,edep);
|
|||
|
|
if(!label->isVisible()) {
|
|||
|
|
label->setVisible(true);
|
|||
|
|
progerssBar->setValue(true);
|
|||
|
|
}
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
bool DiDepthProgress::CreatProgress(float sdep,float edep,const char* notifyMsg,int Index)
|
|||
|
|
{
|
|||
|
|
if(progerssBarList.size()<=Index) {
|
|||
|
|
for(int i=progerssBarList.size();i<=Index;i++){
|
|||
|
|
QProgressBar*progerssBar = new QProgressBar;
|
|||
|
|
progerssBar->setFixedWidth(200);
|
|||
|
|
progerssBarList.push_back(progerssBar);
|
|||
|
|
QLabel *label= new QLabel;
|
|||
|
|
label->setFixedWidth(300);
|
|||
|
|
label->setObjectName("ProgressBarHint");
|
|||
|
|
label->setAlignment(Qt::AlignRight);
|
|||
|
|
|
|||
|
|
labelList.push_back(label);
|
|||
|
|
|
|||
|
|
// ::GetStatusBar()->addPermanentWidget(label);
|
|||
|
|
// ::GetStatusBar()->addPermanentWidget(progerssBar);
|
|||
|
|
label->setMaximumWidth(300);
|
|||
|
|
progerssBar->setMaximumWidth(200);
|
|||
|
|
if(i<Index) {
|
|||
|
|
progerssBar->setVisible(false);
|
|||
|
|
label->setVisible(false);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else {
|
|||
|
|
QProgressBar *progerssBar=progerssBarList[Index];
|
|||
|
|
QLabel *label=labelList[Index];
|
|||
|
|
progerssBar->setVisible(true);
|
|||
|
|
label->setVisible(true);
|
|||
|
|
}
|
|||
|
|
progerssBarList[Index]->setRange(sdep,edep);
|
|||
|
|
SetShowName(notifyMsg,Index);
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
bool DiDepthProgress::CreatProgress(float sdep,float edep,const char* notifyMsg)
|
|||
|
|
{
|
|||
|
|
if(progerssBarList.size()<=0) {
|
|||
|
|
QProgressBar*progerssBar = new QProgressBar;
|
|||
|
|
progerssBar->setFixedWidth(200);
|
|||
|
|
progerssBarList.push_back(progerssBar);
|
|||
|
|
QLabel *label= new QLabel;
|
|||
|
|
label->setFixedWidth(300);
|
|||
|
|
label->setObjectName("ProgressBarHint");
|
|||
|
|
label->setAlignment(Qt::AlignRight);
|
|||
|
|
|
|||
|
|
labelList.push_back(label);
|
|||
|
|
|
|||
|
|
// ::GetStatusBar()->addPermanentWidget(label);
|
|||
|
|
// ::GetStatusBar()->addPermanentWidget(progerssBar);
|
|||
|
|
label->setMaximumWidth(300);
|
|||
|
|
progerssBar->setMaximumWidth(200);
|
|||
|
|
}
|
|||
|
|
/*
|
|||
|
|
if(progerssBarList.size()<=1) {
|
|||
|
|
QProgressBar*progerssBar = new QProgressBar;
|
|||
|
|
progerssBar->setFixedWidth(200);
|
|||
|
|
progerssBarList.push_back(progerssBar);
|
|||
|
|
QLabel *label= new QLabel;
|
|||
|
|
label->setFixedWidth(200);
|
|||
|
|
label->setObjectName("ProgressBarHint");
|
|||
|
|
label->setAlignment(Qt::AlignRight);
|
|||
|
|
|
|||
|
|
labelList.push_back(label);
|
|||
|
|
|
|||
|
|
::GetStatusBar()->addPermanentWidget(label);
|
|||
|
|
::GetStatusBar()->addPermanentWidget(progerssBar);
|
|||
|
|
label->setMaximumWidth(300);
|
|||
|
|
progerssBar->setMaximumWidth(200);
|
|||
|
|
}
|
|||
|
|
*/
|
|||
|
|
SetRange(sdep,edep,0);
|
|||
|
|
// SetRange(sdep,edep,1);
|
|||
|
|
SetShowName(notifyMsg,0);
|
|||
|
|
// SetShowName(notifyMsg,1);
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
bool DiDepthProgress::SetDepth(float sdep,int Index)
|
|||
|
|
{
|
|||
|
|
if(progerssBarList.size()>Index) {
|
|||
|
|
QProgressBar *progerssBar=progerssBarList[Index];
|
|||
|
|
progerssBar->setValue(sdep);
|
|||
|
|
QLabel *label=labelList[Index];
|
|||
|
|
label->setText(m_Name[Index]);
|
|||
|
|
QApplication::processEvents();
|
|||
|
|
}
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
bool DiDepthProgress::CheckCancle(){return false;}
|
|||
|
|
bool DiDepthProgress::DelProgress(int Index)
|
|||
|
|
{
|
|||
|
|
if(progerssBarList.size()>Index) {
|
|||
|
|
if(Index<0) return false;
|
|||
|
|
QProgressBar *progerssBar=progerssBarList[Index];
|
|||
|
|
QLabel *label=labelList[Index];
|
|||
|
|
// progerssBarList.removeAt(Index);
|
|||
|
|
// labelList.removeAt(Index);
|
|||
|
|
progerssBar->setVisible(false);
|
|||
|
|
label->setVisible(false);
|
|||
|
|
//delete progerssBar;
|
|||
|
|
//delete label;
|
|||
|
|
}
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
bool DiDepthProgress::DelProgress()
|
|||
|
|
{
|
|||
|
|
int count=progerssBarList.size();
|
|||
|
|
for(int i=0;i<count;i++) {
|
|||
|
|
QProgressBar *progerssBar=progerssBarList[0];
|
|||
|
|
QLabel *label=labelList[0];
|
|||
|
|
progerssBarList.removeAt(0);
|
|||
|
|
labelList.removeAt(0);
|
|||
|
|
delete progerssBar;
|
|||
|
|
delete label;
|
|||
|
|
}
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void DiDepthProgress::SetShowName(const char * Name,int Index)
|
|||
|
|
{
|
|||
|
|
if(progerssBarList.size()<=Index) return;
|
|||
|
|
if(m_Name.size()<Index+1) {
|
|||
|
|
int i0=m_Name.size();
|
|||
|
|
for(int i=i0;i<Index+1;i++) m_Name.push_back("");
|
|||
|
|
}
|
|||
|
|
m_Name[Index]=Name;
|
|||
|
|
if(progerssBarList.size()>Index) {
|
|||
|
|
QLabel *label=labelList[Index];
|
|||
|
|
if(label) label->setText(Name);
|
|||
|
|
if(!label->isVisible()) {
|
|||
|
|
label->setVisible(true);
|
|||
|
|
progerssBarList[Index]->setValue(true);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|