logplus/BaseFun/src/DepthProgress.cpp
2025-10-29 17:23:30 +08:00

321 lines
7.8 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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