From cc787786b5fc02b16e50db38425e57ae682a888f Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Wed, 20 Aug 2025 14:36:29 +0200 Subject: [PATCH 1/3] fix forever loading cursor during batch processing --- mainwindow.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mainwindow.cpp b/mainwindow.cpp index 9ad4bb0e..00a6b597 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1147,9 +1147,11 @@ void MainWindow::batchProcess(QStringList fileList){ //QObject().thread()->msleep(1000); ui->SelectOutSideOutline->setChecked(true); if (!batchIgramWizard::autoCb->isChecked()){ + this->setCursor(Qt::ArrowCursor); while (m_inBatch && !m_OutlineDoneInBatch && !m_skipItem) { QApplication::processEvents(); } + this->setCursor(Qt::WaitCursor); } if (m_skipItem){ cnt++; @@ -1165,9 +1167,11 @@ void MainWindow::batchProcess(QStringList fileList){ m_batchMakeSurfaceReady = false; if (!batchIgramWizard::autoCb->isChecked() && !m_skipItem){ + this->setCursor(Qt::ArrowCursor); while (m_inBatch && !m_batchMakeSurfaceReady && !m_skipItem) { QApplication::processEvents(); } + this->setCursor(Qt::WaitCursor); } if (m_skipItem){ m_skipItem = false; From 8a7dfa633a502a52257d949c4a3a9a3ca143ab92 Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Wed, 20 Aug 2025 14:54:14 +0200 Subject: [PATCH 2/3] remove unused variable and mute false positive --- dftarea.cpp | 4 +++- outlinestatsdlg.cpp | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/dftarea.cpp b/dftarea.cpp index 232db75c..89d2c5c0 100644 --- a/dftarea.cpp +++ b/dftarea.cpp @@ -140,7 +140,9 @@ DFTArea::DFTArea(QWidget *mparent, IgramArea *ip, DFTTools * tools, vortexDebug QSettings set; m_center_filter = set.value("DFT Center Filter", 10).toDouble(); qDebug() << "init center" << m_center_filter; - emit updateFilterSize(m_center_filter); + // TODO I muted clazy warning as this is a false positive. + // It might be good to find a different way to call setCenterFilterValue + emit updateFilterSize(m_center_filter); // clazy:exclude=incorrect-emit installEventFilter(this); /* diff --git a/outlinestatsdlg.cpp b/outlinestatsdlg.cpp index 47b3f226..247289b0 100644 --- a/outlinestatsdlg.cpp +++ b/outlinestatsdlg.cpp @@ -279,7 +279,6 @@ void outlineStatsDlg::on_pushButton_clicked() break; } outside = readCircle(file); - CircleOutline sideLobe = readCircle(file); if ((file.tellg() > 0) && (fsize > file.tellg())) { if (file.peek() != 'P'){ From c9c401833fd82ce22bc49fbcf18eb745ec5636e5 Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Wed, 20 Aug 2025 19:04:37 +0200 Subject: [PATCH 3/3] better fix --- mainwindow.cpp | 12 ++++++------ surfacemanager.cpp | 9 +++++++-- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index 00a6b597..58cabc08 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1105,7 +1105,7 @@ void MainWindow::batchProcess(QStringList fileList){ m_contourView->getPlot()->blockSignals(true); QSettings settings; bool shouldBeep = settings.value("RMSBeep>", true).toBool(); - this->setCursor(Qt::WaitCursor); + QApplication::setOverrideCursor(Qt::WaitCursor); batchIgramWizard::goPb->setEnabled(false); batchIgramWizard::addFiles->setEnabled(false); batchIgramWizard::skipFile->setEnabled(true); @@ -1147,11 +1147,11 @@ void MainWindow::batchProcess(QStringList fileList){ //QObject().thread()->msleep(1000); ui->SelectOutSideOutline->setChecked(true); if (!batchIgramWizard::autoCb->isChecked()){ - this->setCursor(Qt::ArrowCursor); + QApplication::restoreOverrideCursor(); while (m_inBatch && !m_OutlineDoneInBatch && !m_skipItem) { QApplication::processEvents(); } - this->setCursor(Qt::WaitCursor); + QApplication::setOverrideCursor(Qt::WaitCursor); } if (m_skipItem){ cnt++; @@ -1167,11 +1167,11 @@ void MainWindow::batchProcess(QStringList fileList){ m_batchMakeSurfaceReady = false; if (!batchIgramWizard::autoCb->isChecked() && !m_skipItem){ - this->setCursor(Qt::ArrowCursor); + QApplication::restoreOverrideCursor(); while (m_inBatch && !m_batchMakeSurfaceReady && !m_skipItem) { QApplication::processEvents(); } - this->setCursor(Qt::WaitCursor); + QApplication::setOverrideCursor(Qt::WaitCursor); } if (m_skipItem){ m_skipItem = false; @@ -1301,7 +1301,7 @@ void MainWindow::batchProcess(QStringList fileList){ batchIgramWizard::addFiles->setEnabled(true); batchIgramWizard::skipFile->setEnabled(false); - this->setCursor(Qt::ArrowCursor); + QApplication::restoreOverrideCursor(); m_contourView->getPlot()->blockSignals(false); } diff --git a/surfacemanager.cpp b/surfacemanager.cpp index 9bcb05b0..8813c753 100644 --- a/surfacemanager.cpp +++ b/surfacemanager.cpp @@ -379,9 +379,14 @@ void SurfaceManager::generateSurfacefromWavefront(wavefront * wf){ if (!m_ignoreInverse && (md->cc != 0.0) && md->cc * wf->InputZerns[8] < 0.){ bool reverse = false; if (m_askAboutReverse){ - if (QMessageBox::Yes == QMessageBox::question(0,"should invert?","Wavefront seems inverted. Do you want to invert it?")) + // Temporarily restore cursor so QMessageBox does not show waitCursor + // QGuiApplication::setOverrideCursor do stack so we will go back to previous state (any state) + QGuiApplication::setOverrideCursor(QCursor(Qt::ArrowCursor)); + bool msgResult = (QMessageBox::Yes == QMessageBox::question(0,"should invert?","Wavefront seems inverted. Do you want to invert it?")); + QGuiApplication::restoreOverrideCursor(); + if (msgResult) { - reverse = true; + reverse = true; m_askAboutReverse = false; }else {