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);
|
||
}
|
||
}
|
||
}
|