From f803788bf75c4958712e96e08f25f39201506e74 Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 12:46:14 +0200 Subject: [PATCH 01/22] remove unused squareimage --- DFTFringe.pro | 2 -- DFTFringe_Dale.pro | 2 -- DFTFringe_QT5.pro | 2 -- squareimage.cpp | 7 ------- squareimage.h | 10 ---------- 5 files changed, 23 deletions(-) delete mode 100644 squareimage.cpp delete mode 100644 squareimage.h diff --git a/DFTFringe.pro b/DFTFringe.pro index 2cb9728a..5405e1b0 100644 --- a/DFTFringe.pro +++ b/DFTFringe.pro @@ -238,7 +238,6 @@ SOURCES += SingleApplication/singleapplication.cpp \ showallcontoursdlg.cpp \ simigramdlg.cpp \ simulationsview.cpp \ - squareimage.cpp \ standastigwizard.cpp \ statsview.cpp \ subtractwavefronatsdlg.cpp \ @@ -363,7 +362,6 @@ HEADERS += bezier/bezier.h \ showallcontoursdlg.h \ simigramdlg.h \ simulationsview.h \ - squareimage.h \ standastigwizard.h \ statsview.h \ subtractwavefronatsdlg.h \ diff --git a/DFTFringe_Dale.pro b/DFTFringe_Dale.pro index b46a68ed..bc79e521 100644 --- a/DFTFringe_Dale.pro +++ b/DFTFringe_Dale.pro @@ -102,7 +102,6 @@ SOURCES += main.cpp \ nullvariationdlg.cpp \ ccswappeddlg.cpp \ foucaultview.cpp \ - squareimage.cpp \ bathastigdlg.cpp \ zernikeeditdlg.cpp \ settingsGeneral2.cpp \ @@ -226,7 +225,6 @@ HEADERS += mainwindow.h \ nullvariationdlg.h \ ccswappeddlg.h \ foucaultview.h \ - squareimage.h \ bathastigdlg.h \ zernikeeditdlg.h \ settingsGeneral2.h \ diff --git a/DFTFringe_QT5.pro b/DFTFringe_QT5.pro index 2ec59040..ed4da912 100644 --- a/DFTFringe_QT5.pro +++ b/DFTFringe_QT5.pro @@ -237,7 +237,6 @@ SOURCES += SingleApplication/singleapplication.cpp \ showallcontoursdlg.cpp \ simigramdlg.cpp \ simulationsview.cpp \ - squareimage.cpp \ standastigwizard.cpp \ statsview.cpp \ subtractwavefronatsdlg.cpp \ @@ -362,7 +361,6 @@ HEADERS += bezier/bezier.h \ showallcontoursdlg.h \ simigramdlg.h \ simulationsview.h \ - squareimage.h \ standastigwizard.h \ statsview.h \ subtractwavefronatsdlg.h \ diff --git a/squareimage.cpp b/squareimage.cpp deleted file mode 100644 index c250bd52..00000000 --- a/squareimage.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include "squareimage.h" - -//in cpp file -squareImage::squareImage( QWidget* parent) - : QLabel(parent) -{ -} diff --git a/squareimage.h b/squareimage.h deleted file mode 100644 index 7adaa8ec..00000000 --- a/squareimage.h +++ /dev/null @@ -1,10 +0,0 @@ -//in header file -#include -class squareImage: public QLabel{ - Q_OBJECT -public: - squareImage( QWidget* parent=0); - int heightForWidth(int w) const {return w;} - //other methods -}; - From 1601e7bd1d3d4f2810dd7d370cd36a6a2492f473 Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 14:30:24 +0200 Subject: [PATCH 02/22] remove unused function --- arbitrarywavwidget.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/arbitrarywavwidget.cpp b/arbitrarywavwidget.cpp index aa806e0f..110bc364 100644 --- a/arbitrarywavwidget.cpp +++ b/arbitrarywavwidget.cpp @@ -45,11 +45,6 @@ void ArbitraryWavWidget::showPrepare() { update(); // redraw } -void ArbitraryWavWidget::setMode(int _mode) { - mode = _mode; - update(); // redraw - } - ArbitraryWavWidget::~ArbitraryWavWidget(){ pts.empty(); } @@ -754,7 +749,7 @@ void ArbitraryWavWidget::prepare(int size) { wf_array[index] = p.y; } } - + // fill in leading points with first filled value int first_valid_entry; for(first_valid_entry=0; first_valid_entry=0; last_valid_entry--) @@ -770,7 +765,7 @@ void ArbitraryWavWidget::prepare(int size) { break; for (int i=last_valid_entry+1; i < wf_array_size; i++) wf_array[i] = wf_array[last_valid_entry]; - + // now fill in gaps with interpolated values for (int i=0; i Date: Fri, 22 Aug 2025 14:33:05 +0200 Subject: [PATCH 03/22] remove astigzommer never used in project history --- DFTFringe.pro | 2 -- DFTFringe_Dale.pro | 2 -- DFTFringe_QT5.pro | 2 -- astigzoomer.cpp | 55 ---------------------------------------------- astigzoomer.h | 19 ---------------- rmsplot.h | 1 - 6 files changed, 81 deletions(-) delete mode 100644 astigzoomer.cpp delete mode 100644 astigzoomer.h diff --git a/DFTFringe.pro b/DFTFringe.pro index 5405e1b0..371f2a18 100644 --- a/DFTFringe.pro +++ b/DFTFringe.pro @@ -154,7 +154,6 @@ SOURCES += SingleApplication/singleapplication.cpp \ astigpolargraph.cpp \ astigscatterplot.cpp \ astigstatsdlg.cpp \ - astigzoomer.cpp \ averagewavefrontfilesdlg.cpp \ batchigramwizard.cpp \ bathastigdlg.cpp \ @@ -277,7 +276,6 @@ HEADERS += bezier/bezier.h \ arbitrarywavwidget.h \ astigscatterplot.h \ astigstatsdlg.h \ - astigzoomer.h \ averagewavefrontfilesdlg.h \ batchigramwizard.h \ bathastigdlg.h \ diff --git a/DFTFringe_Dale.pro b/DFTFringe_Dale.pro index bc79e521..1cdc7f63 100644 --- a/DFTFringe_Dale.pro +++ b/DFTFringe_Dale.pro @@ -121,7 +121,6 @@ SOURCES += main.cpp \ circlefit.cpp \ astigstatsdlg.cpp \ averagewavefrontfilesdlg.cpp \ - astigzoomer.cpp \ astigscatterplot.cpp \ wavefrontfilterdlg.cpp \ myplotpicker.cpp \ @@ -245,7 +244,6 @@ HEADERS += mainwindow.h \ circle.h \ astigstatsdlg.h \ averagewavefrontfilesdlg.h \ - astigzoomer.h \ astigscatterplot.h \ wavefrontfilterdlg.h \ myplotpicker.h \ diff --git a/DFTFringe_QT5.pro b/DFTFringe_QT5.pro index ed4da912..39dda9c8 100644 --- a/DFTFringe_QT5.pro +++ b/DFTFringe_QT5.pro @@ -153,7 +153,6 @@ SOURCES += SingleApplication/singleapplication.cpp \ astigpolargraph.cpp \ astigscatterplot.cpp \ astigstatsdlg.cpp \ - astigzoomer.cpp \ averagewavefrontfilesdlg.cpp \ batchigramwizard.cpp \ bathastigdlg.cpp \ @@ -276,7 +275,6 @@ HEADERS += bezier/bezier.h \ arbitrarywavwidget.h \ astigscatterplot.h \ astigstatsdlg.h \ - astigzoomer.h \ averagewavefrontfilesdlg.h \ batchigramwizard.h \ bathastigdlg.h \ diff --git a/astigzoomer.cpp b/astigzoomer.cpp deleted file mode 100644 index 64310a46..00000000 --- a/astigzoomer.cpp +++ /dev/null @@ -1,55 +0,0 @@ -#include "astigzoomer.h" -#include -#include -#include -#include -#include - -astigZoomer::astigZoomer( QWidget *canvas, QwtPlot * plot ): - QwtPlotZoomer( canvas ),mPlot(plot) -{ - setRubberBandPen( QPen( Qt::lightGray ) ); - setTrackerMode( QwtPlotPicker::AlwaysOn ); -} - - -QwtText astigZoomer::trackerTextF( const QPointF &p ) const -{ - - QString s(""); - const QwtScaleMap xMap = mPlot->canvasMap(2); - const QwtScaleMap yMap = mPlot->canvasMap(QwtPlot::yLeft); - - const double cx = xMap.transform( p.x()); - const double cy = yMap.transform(p.y()); - - const QwtPlotItemList& itmList = mPlot->itemList(); - for ( QwtPlotItemIterator it = itmList.begin(); - it != itmList.end(); ++it ) - { - if (( *it )->rtti() == QwtPlotItem::Rtti_PlotMarker){ - QwtPlotMarker *mark = static_cast( *it ); - QPointF pm = mark->value(); - - double delx = cx - xMap.transform(pm.x()); - double dely = cy - yMap.transform(pm.y()); - double r = qSqrt(delx * delx + dely * dely); - if (r < 4) { - s = mark->title().text(); - break; - } - } - } - - QwtText text( s ); - text.setColor( Qt::black ); - text.setFont(QFont("Arial",12)); - - QColor c = rubberBandPen().color(); - text.setBorderPen( QPen( c ) ); - text.setBorderRadius( 6 ); - c.setAlpha( 170 ); - text.setBackgroundBrush( c ); - - return text; -} diff --git a/astigzoomer.h b/astigzoomer.h deleted file mode 100644 index 1ec6b8f6..00000000 --- a/astigzoomer.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef ASTIGZOOMER_H -#define ASTIGZOOMER_H - -#include -#include -class QwtPlot; -class astigZoomer: public QwtPlotZoomer -{ -public: - QwtPlot * mPlot; - explicit astigZoomer( QWidget *canvas, QwtPlot * plot ); - - -protected: - QwtText trackerTextF( const QPointF &p ) const; - -}; - -#endif // ASTIGZOOMER_H diff --git a/rmsplot.h b/rmsplot.h index 3af66da9..515012df 100644 --- a/rmsplot.h +++ b/rmsplot.h @@ -8,7 +8,6 @@ #include class QwtPlotCurve; -class astigZoomer; class myPlotPicker; class rmsPlot : public QwtPlot { From 5b9b4f7341a46f88d79b3791eed2ab193bc607f2 Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 14:34:20 +0200 Subject: [PATCH 04/22] remove unused batchIntro::shouldFilterFile --- batchigramwizard.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/batchigramwizard.cpp b/batchigramwizard.cpp index 69dea17a..d5c0f200 100644 --- a/batchigramwizard.cpp +++ b/batchigramwizard.cpp @@ -250,9 +250,7 @@ void batchIntro::on_filter(bool flag){ } } } -bool batchIntro::shouldFilterFile(double rms){ - return (filterFile && rms > filterRms); -} + bool batchIntro::shouldFilterWavefront(double rms){ return (filterWavefront && rms > filterRms); } From 0720709cbf3c9ac66fb0f4c0eff3f11755bebcae Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 14:35:04 +0200 Subject: [PATCH 05/22] comment unused --- batchigramwizard.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/batchigramwizard.cpp b/batchigramwizard.cpp index d5c0f200..8efc9435 100644 --- a/batchigramwizard.cpp +++ b/batchigramwizard.cpp @@ -25,7 +25,7 @@ QLabel *batchIgramWizard::memStatus = 0; QCheckBox *batchIgramWizard::makeReviewAvi = 0; QString batchIgramWizard::reviewFileName; QCheckBox *batchIgramWizard::autoOutlineCenter = 0; -QCheckBox *batchIgramWizard::autoOutlineOutside = 0; +//QCheckBox *batchIgramWizard::autoOutlineOutside = 0; batchIgramWizard::batchIgramWizard(const QStringList &files, QWidget *parent, Qt::WindowFlags flags) : QWizard(parent, flags), From 4a1e5b8ae092f8931ed5d8fbe21183c29bd6a828 Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 14:56:31 +0200 Subject: [PATCH 06/22] remove never used orientationmap --- contourview.cpp | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/contourview.cpp b/contourview.cpp index ee302c42..0b51f56e 100644 --- a/contourview.cpp +++ b/contourview.cpp @@ -100,35 +100,7 @@ void contourView::on_pushButton_pressed() { emit showAllContours(); } -#include -#include -cv::Mat orientationMap(const cv::Mat& mag, const cv::Mat& ori, double thresh = 1.0) -{ - cv::Mat oriMap = cv::Mat::zeros(ori.size(), CV_8UC3); - cv::Vec3b red(0, 0, 255); - cv::Vec3b cyan(255, 255, 0); - cv::Vec3b green(0, 255, 0); - cv::Vec3b yellow(0, 255, 255); - for(int i = 0; i < mag.rows*mag.cols; i++) - { - float* magPixel = reinterpret_cast(mag.data + i*sizeof(float)); - if(*magPixel > thresh) - { - float* oriPixel = reinterpret_cast(ori.data + i*sizeof(float)); - cv::Vec3b* mapPixel = reinterpret_cast(oriMap.data + i*3*sizeof(char)); - if(*oriPixel < 90.0) - *mapPixel = red; - else if(*oriPixel >= 90.0 && *oriPixel < 180.0) - *mapPixel = cyan; - else if(*oriPixel >= 180.0 && *oriPixel < 270.0) - *mapPixel = green; - else if(*oriPixel >= 270.0 && *oriPixel < 360.0) - *mapPixel = yellow; - } - } - return oriMap; -} void contourView::on_histogram_clicked() { ps->show(); From 43e3eb7047576d242b5e21725ae9fa7234201a34 Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 14:59:50 +0200 Subject: [PATCH 07/22] remove setter. Direct access is used --- dftcolormap.cpp | 3 --- dftcolormap.h | 1 - 2 files changed, 4 deletions(-) diff --git a/dftcolormap.cpp b/dftcolormap.cpp index 836550da..0786ea6a 100644 --- a/dftcolormap.cpp +++ b/dftcolormap.cpp @@ -24,9 +24,6 @@ QList dftColorMap::userStops; -void dftColorMap::setUserStops(QList &stops) { - dftColorMap::userStops = stops; -} dftColorMap::dftColorMap(int type, wavefront *wf, bool zeroBased, double errorMargin, double scale, diff --git a/dftcolormap.h b/dftcolormap.h index 1f6998bc..43d7d69b 100644 --- a/dftcolormap.h +++ b/dftcolormap.h @@ -28,7 +28,6 @@ class dftColorMap: public QwtLinearColorMap double errorMargin = .125, double scale = 1., QColor less = Qt::black, QColor more = Qt::white); void setRange(double low, double high); - static void setUserStops(QList &stops); wavefront *m_wf; static QList userStops; }; From 0b545eb11bc05ed8667e6f80af0b32e196a08336 Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 15:01:56 +0200 Subject: [PATCH 08/22] remove unused --- foucaultview.cpp | 8 -------- foucaultview.h | 2 -- 2 files changed, 10 deletions(-) diff --git a/foucaultview.cpp b/foucaultview.cpp index 70b6ab43..ff3c3df4 100644 --- a/foucaultview.cpp +++ b/foucaultview.cpp @@ -662,14 +662,6 @@ void foucaultView::on_SaveImageCB_clicked(bool checked) if (!dir.isEmpty()) imageDir = dir; } -bool foucaultView::saveOnlyFoucault(){ - return ui->saveOnlyFouccault->isChecked(); -} - -void foucaultView::on_saveOnlyFouccault_clicked(bool /*checked*/) -{ - -} void foucaultView::on_overlayProfile_stateChanged(int /*arg1*/) { diff --git a/foucaultview.h b/foucaultview.h index 446f7064..23e4be92 100644 --- a/foucaultview.h +++ b/foucaultview.h @@ -68,8 +68,6 @@ private slots: void on_SaveImageCB_clicked(bool checked); - void on_saveOnlyFouccault_clicked(bool checked); - void saveRonchiImage(); void saveFoucaultImage(); From 109ab93abaf035de3949768570f526e5c56e627d Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 15:48:15 +0200 Subject: [PATCH 09/22] remove never used lensdialog --- DFTFringe.pro | 3 - DFTFringe_Dale.pro | 3 - DFTFringe_QT5.pro | 3 - dftfringe_fr.ts | 75 +----------------- lensdialog.cpp | 39 ---------- lensdialog.h | 26 ------- lensdialog.ui | 190 --------------------------------------------- 7 files changed, 1 insertion(+), 338 deletions(-) delete mode 100644 lensdialog.cpp delete mode 100644 lensdialog.h delete mode 100644 lensdialog.ui diff --git a/DFTFringe.pro b/DFTFringe.pro index 371f2a18..5e70d5c1 100644 --- a/DFTFringe.pro +++ b/DFTFringe.pro @@ -189,7 +189,6 @@ SOURCES += SingleApplication/singleapplication.cpp \ imagehisto.cpp \ intensityplot.cpp \ jitteroutlinedlg.cpp \ - lensdialog.cpp \ lensetablemodel.cpp \ main.cpp \ mainwindow.cpp \ @@ -312,7 +311,6 @@ HEADERS += bezier/bezier.h \ imagehisto.h \ intensityplot.h \ jitteroutlinedlg.h \ - lensdialog.h \ lensetablemodel.h \ mainwindow.h \ messagereceiver.h \ @@ -419,7 +417,6 @@ FORMS += arbitrarywavefronthelp.ui \ hotkeysdlg.ui \ igramintensity.ui \ jitteroutlinedlg.ui \ - lensdialog.ui \ mainwindow.ui \ metricsdisplay.ui \ mirrordlg.ui \ diff --git a/DFTFringe_Dale.pro b/DFTFringe_Dale.pro index 1cdc7f63..fb75a0ec 100644 --- a/DFTFringe_Dale.pro +++ b/DFTFringe_Dale.pro @@ -113,7 +113,6 @@ SOURCES += main.cpp \ generatetargetdlg.cpp \ lensetablemodel.cpp \ unwraperrorsview.cpp \ - lensdialog.cpp \ messagereceiver.cpp \ myutils.cpp \ pixelstats.cpp \ @@ -235,7 +234,6 @@ HEADERS += mainwindow.h \ generatetargetdlg.h \ lensetablemodel.h \ unwraperrorsview.h \ - lensdialog.h \ messagereceiver.h \ myutils.h \ pixelstats.h \ @@ -338,7 +336,6 @@ FORMS += mainwindow.ui \ camcalibrationreviewdlg.ui \ generatetargetdlg.ui \ unwraperrorsview.ui \ - lensdialog.ui \ pixelstats.ui \ astigstatsdlg.ui \ averagewavefrontfilesdlg.ui \ diff --git a/DFTFringe_QT5.pro b/DFTFringe_QT5.pro index 39dda9c8..789d12b2 100644 --- a/DFTFringe_QT5.pro +++ b/DFTFringe_QT5.pro @@ -188,7 +188,6 @@ SOURCES += SingleApplication/singleapplication.cpp \ imagehisto.cpp \ intensityplot.cpp \ jitteroutlinedlg.cpp \ - lensdialog.cpp \ lensetablemodel.cpp \ main.cpp \ mainwindow.cpp \ @@ -311,7 +310,6 @@ HEADERS += bezier/bezier.h \ imagehisto.h \ intensityplot.h \ jitteroutlinedlg.h \ - lensdialog.h \ lensetablemodel.h \ mainwindow.h \ messagereceiver.h \ @@ -418,7 +416,6 @@ FORMS += arbitrarywavefronthelp.ui \ hotkeysdlg.ui \ igramintensity.ui \ jitteroutlinedlg.ui \ - lensdialog.ui \ mainwindow.ui \ metricsdisplay.ui \ mirrordlg.ui \ diff --git a/dftfringe_fr.ts b/dftfringe_fr.ts index 81bf2348..7d00aa52 100644 --- a/dftfringe_fr.ts +++ b/dftfringe_fr.ts @@ -2172,79 +2172,6 @@ Try it and if you find no difference in wavefront values then you do not need to - - lensDialog - - - Lens parameters - - - - - Lens Name - - - - - Lens Distortion Matrix - - - - - K1 - - - - - K2 - - - - - P1 - - - - - P2 - - - - - K3 - - - - - K - - - - - Camera Matrix - - - - - Y Focal Length pixels - - - - - X center pixel - - - - - Y center pixel - - - - - X Focal Length pixels - - - makeAverages @@ -3794,7 +3721,7 @@ p, li { white-space: pre-wrap; } You can set a RMS threshold that will delete any loaded wavefronts and optionally any saved wavefronts that have RMS values over the threshold. -You can hover the mouse over a dot on the plots to see the wavefront name. +You can hover the mouse over a dot on the plots to see the wavefront name. You can click on the dot and it will be set as the current displayed wavefront. diff --git a/lensdialog.cpp b/lensdialog.cpp deleted file mode 100644 index b396c26b..00000000 --- a/lensdialog.cpp +++ /dev/null @@ -1,39 +0,0 @@ -#include "lensdialog.h" -#include "ui_lensdialog.h" - -lensDialog::lensDialog(QStringList parms, QWidget *parent) : - QDialog(parent),m_parms(parms), - ui(new Ui::lensDialog) -{ - ui->setupUi(this); - ui->name->setText(parms[0]); - ui->xFv->setText(parms[1]); - ui->yFv->setText(parms[2]); - ui->XFc->setText(parms[3]); - ui->YFc->setText(parms[4]); - ui->K1->setText(parms[5]); - ui->K2->setText(parms[6]); - ui->P1->setText(parms[7]); - ui->P2->setText(parms[8]); - ui->K3->setText(parms[9]); -} - -lensDialog::~lensDialog() -{ - delete ui; -} - -void lensDialog::on_buttonBox_accepted() -{ - m_parms << ui->name->text(); - m_parms << "\n"; - m_parms << ui->xFv->text() + "\n"; - m_parms << ui->yFv->text() + "\n"; - m_parms << ui->XFc->text() + "\n"; - m_parms << ui->YFc->text() + "\n"; - m_parms << ui->K1->text() + "\n"; - m_parms << ui->K2->text() + "\n"; - m_parms << ui->P1->text() + "\n"; - m_parms << ui->P2->text() + "\n"; - m_parms << ui->K3->text() + "\n"; -} diff --git a/lensdialog.h b/lensdialog.h deleted file mode 100644 index c994cfff..00000000 --- a/lensdialog.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef LENSDIALOG_H -#define LENSDIALOG_H - -#include -#include -namespace Ui { -class lensDialog; -} - -class lensDialog : public QDialog -{ - Q_OBJECT - -public: - explicit lensDialog(QStringList parms, QWidget *parent = 0); - ~lensDialog(); - QStringList m_parms; - -private slots: - void on_buttonBox_accepted(); - -private: - Ui::lensDialog *ui; -}; - -#endif // LENSDIALOG_H diff --git a/lensdialog.ui b/lensdialog.ui deleted file mode 100644 index 85c82afa..00000000 --- a/lensdialog.ui +++ /dev/null @@ -1,190 +0,0 @@ - - - lensDialog - - - - 0 - 0 - 524 - 265 - - - - Lens parameters - - - - - - - - Lens Name - - - - - - - - - - - - Lens Distortion Matrix - - - - - - K1 - - - - - - - - - - K2 - - - - - - - - - - P1 - - - - - - - - - - P2 - - - - - - - - - - K3 - - - - - - - K - - - - - - - - - - Camera Matrix - - - - - - Y Focal Length pixels - - - - - - - - - - X center pixel - - - - - - - - - - Y center pixel - - - - - - - - - - X Focal Length pixels - - - - - - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - - - - buttonBox - accepted() - lensDialog - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - lensDialog - reject() - - - 316 - 260 - - - 286 - 274 - - - - - From 4795b6f00d8cae61df0915895ba04cf33d066aed Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 15:54:54 +0200 Subject: [PATCH 10/22] remove unused videosetupdlg --- DFTFringe.pro | 3 - DFTFringe_Dale.pro | 3 - DFTFringe_QT5.pro | 3 - dftfringe_fr.ts | 33 --------- oglview.cpp | 1 - videosetupdlg.cpp | 66 ------------------ videosetupdlg.h | 33 --------- videosetupdlg.ui | 164 --------------------------------------------- 8 files changed, 306 deletions(-) delete mode 100644 videosetupdlg.cpp delete mode 100644 videosetupdlg.h delete mode 100644 videosetupdlg.ui diff --git a/DFTFringe.pro b/DFTFringe.pro index 5e70d5c1..fa1aee6f 100644 --- a/DFTFringe.pro +++ b/DFTFringe.pro @@ -250,7 +250,6 @@ SOURCES += SingleApplication/singleapplication.cpp \ usercolormapdlg.cpp \ userdrawnprofiledlg.cpp \ utilil.cpp \ - videosetupdlg.cpp \ vortexdebug.cpp \ wavefront.cpp \ wavefrontaveragefilterdlg.cpp \ @@ -372,7 +371,6 @@ HEADERS += bezier/bezier.h \ usercolormapdlg.h \ userdrawnprofiledlg.h \ utils.h \ - videosetupdlg.h \ vortex.h \ vortexdebug.h \ wavefront.h \ @@ -465,7 +463,6 @@ FORMS += arbitrarywavefronthelp.ui \ unwraperrorsview.ui \ usercolormapdlg.ui \ userdrawnprofiledlg.ui \ - videosetupdlg.ui \ vortexdebug.ui \ wavefrontaveragefilterdlg.ui \ wavefrontfilterdlg.ui \ diff --git a/DFTFringe_Dale.pro b/DFTFringe_Dale.pro index fb75a0ec..ff05a031 100644 --- a/DFTFringe_Dale.pro +++ b/DFTFringe_Dale.pro @@ -126,7 +126,6 @@ SOURCES += main.cpp \ rmsplot.cpp \ regionedittools.cpp \ reportdlg.cpp \ - videosetupdlg.cpp \ showaliasdlg.cpp \ colorchannel.cpp \ wavefrontaveragefilterdlg.cpp \ @@ -248,7 +247,6 @@ HEADERS += mainwindow.h \ rmsplot.h \ regionedittools.h \ reportdlg.h \ - videosetupdlg.h \ showaliasdlg.h \ colorchannel.h \ wavefrontaveragefilterdlg.h \ @@ -342,7 +340,6 @@ FORMS += mainwindow.ui \ wavefrontfilterdlg.ui \ regionedittools.ui \ reportdlg.ui \ - videosetupdlg.ui \ showaliasdlg.ui \ wavefrontaveragefilterdlg.ui \ rejectedwavefrontsdlg.ui \ diff --git a/DFTFringe_QT5.pro b/DFTFringe_QT5.pro index 789d12b2..c8ee0cee 100644 --- a/DFTFringe_QT5.pro +++ b/DFTFringe_QT5.pro @@ -249,7 +249,6 @@ SOURCES += SingleApplication/singleapplication.cpp \ usercolormapdlg.cpp \ userdrawnprofiledlg.cpp \ utilil.cpp \ - videosetupdlg.cpp \ vortexdebug.cpp \ wavefront.cpp \ wavefrontaveragefilterdlg.cpp \ @@ -371,7 +370,6 @@ HEADERS += bezier/bezier.h \ usercolormapdlg.h \ userdrawnprofiledlg.h \ utils.h \ - videosetupdlg.h \ vortex.h \ vortexdebug.h \ wavefront.h \ @@ -464,7 +462,6 @@ FORMS += arbitrarywavefronthelp.ui \ unwraperrorsview.ui \ usercolormapdlg.ui \ userdrawnprofiledlg.ui \ - videosetupdlg.ui \ vortexdebug.ui \ wavefrontaveragefilterdlg.ui \ wavefrontfilterdlg.ui \ diff --git a/dftfringe_fr.ts b/dftfringe_fr.ts index 7d00aa52..47fe4d3c 100644 --- a/dftfringe_fr.ts +++ b/dftfringe_fr.ts @@ -3610,39 +3610,6 @@ p, li { white-space: pre-wrap; } - - videoSetupDlg - - - Video setup - - - - - angle per step - - - - - Frames per Second - - - - - Full Size - - - - - Size - - - - - X - - - vortexDebug diff --git a/oglview.cpp b/oglview.cpp index 00db28c7..b929f071 100644 --- a/oglview.cpp +++ b/oglview.cpp @@ -26,7 +26,6 @@ #include #include #include -#include "videosetupdlg.h" #include #include #include diff --git a/videosetupdlg.cpp b/videosetupdlg.cpp deleted file mode 100644 index 8c50b589..00000000 --- a/videosetupdlg.cpp +++ /dev/null @@ -1,66 +0,0 @@ -#include "videosetupdlg.h" -#include "ui_videosetupdlg.h" -#include -videoSetupDlg::videoSetupDlg(const QImage &img, QWidget *parent) : - QDialog(parent), - ui(new Ui::videoSetupDlg) -{ - ui->setupUi(this); - - ui->width->setValue(img.width() & 0xFFFFFFFFFFFFFFE); - ui->height->setValue(img.height() & 0xFFFFFFFFFFFFFFE); - QSettings set; - ui->angle->setValue(set.value("vidStepAngle", 5).toDouble()); - ui->fps->setValue(set.value("vidFPS", 10).toInt()); - ui->width->setValue(set.value("vidWidth", 400).toInt()); - ui->height->setValue(set.value("vidHeight", 300).toInt()); - m_imageSize = img.size(); - bool fullSize = set.value("vidFullSize", true).toBool(); - if (fullSize){ - ui->fullSize->setChecked( fullSize); - ui->width->setValue(m_imageSize.width() & 0xffffffffffffffe); - ui->height->setValue(m_imageSize.height() & 0xffffffffffffffe); - ui->width->setEnabled(false); - ui->height->setEnabled(false); - } -} - -videoSetupDlg::~videoSetupDlg() -{ - delete ui; -} -int videoSetupDlg::fps(){ - return ui->fps->value(); -} -int videoSetupDlg::width(){ - return ui->width->value() & 0xfffffffffffffffe; -} -int videoSetupDlg::height(){ - return ui->height->value() & 0xfffffffffffffffe; -} -double videoSetupDlg::angleStep(){ - return ui->angle->value(); -} -void videoSetupDlg::on_buttonBox_accepted(){ - QSettings set; - set.setValue("vidStepAngle", ui->angle->value()); - set.setValue("vidFPS", ui->fps->value()); - set.setValue("vidWidth", ui->width->value()); - set.setValue("vidHeight", ui->height->value()); - set.setValue("vidFullSize", ui->fullSize->isChecked()); -} - - -void videoSetupDlg::on_fullSize_clicked(bool checked) -{ - if (checked){ - ui->width->setValue(m_imageSize.width() & 0xffffffffffffffe); - ui->height->setValue(m_imageSize.height() & 0xffffffffffffffe); - ui->width->setEnabled(false); - ui->height->setEnabled(false); - } - else { - ui->width->setEnabled(true); - ui->height->setEnabled(true); - } -} diff --git a/videosetupdlg.h b/videosetupdlg.h deleted file mode 100644 index dee37456..00000000 --- a/videosetupdlg.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef VIDEOSETUPDLG_H -#define VIDEOSETUPDLG_H - -#include -#include - -namespace Ui { -class videoSetupDlg; -} - -class videoSetupDlg : public QDialog -{ - Q_OBJECT - -public: - explicit videoSetupDlg(const QImage &img, QWidget *parent = 0); - ~videoSetupDlg(); - QImage m_img; - int fps(); - int width(); - int height(); - double angleStep(); - QSize m_imageSize; -private slots: - - void on_buttonBox_accepted(); - void on_fullSize_clicked(bool checked); - -private: - Ui::videoSetupDlg *ui; -}; - -#endif // VIDEOSETUPDLG_H diff --git a/videosetupdlg.ui b/videosetupdlg.ui deleted file mode 100644 index 4b0664ee..00000000 --- a/videosetupdlg.ui +++ /dev/null @@ -1,164 +0,0 @@ - - - videoSetupDlg - - - - 0 - 0 - 552 - 291 - - - - Video setup - - - - - - - - - - angle per step - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - 180.000000000000000 - - - 5.000000000000000 - - - 5.000000000000000 - - - - - - - - - - - Frames per Second - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - 10 - - - - - - - - - - - Full Size - - - - - - - Size - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - 2000 - - - - - - - X - - - Qt::AlignCenter - - - - - - - 6000 - - - 10 - - - - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - - - - buttonBox - accepted() - videoSetupDlg - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - videoSetupDlg - reject() - - - 316 - 260 - - - 286 - 274 - - - - - From 97af22b87b6ea7f7db8bc4d5f73a9c2d8a45d4f2 Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 15:56:14 +0200 Subject: [PATCH 11/22] remove unused surfacepropertiesdlg --- DFTFringe.pro | 3 - DFTFringe_Dale.pro | 3 - DFTFringe_QT5.pro | 3 - dftfringe_fr.ts | 91 ----------- surfacepropertiesdlg.cpp | 231 -------------------------- surfacepropertiesdlg.h | 99 ----------- surfacepropertiesdlg.ui | 344 --------------------------------------- 7 files changed, 774 deletions(-) delete mode 100644 surfacepropertiesdlg.cpp delete mode 100644 surfacepropertiesdlg.h delete mode 100644 surfacepropertiesdlg.ui diff --git a/DFTFringe.pro b/DFTFringe.pro index fa1aee6f..7bf8d965 100644 --- a/DFTFringe.pro +++ b/DFTFringe.pro @@ -244,7 +244,6 @@ SOURCES += SingleApplication/singleapplication.cpp \ surfacegraph.cpp \ surfacelightingproxy.cpp \ surfacemanager.cpp \ - surfacepropertiesdlg.cpp \ transformwavefrontdlg.cpp \ unwraperrorsview.cpp \ usercolormapdlg.cpp \ @@ -365,7 +364,6 @@ HEADERS += bezier/bezier.h \ surfacegraph.h \ surfacelightingproxy.h \ surfacemanager.h \ - surfacepropertiesdlg.h \ transformwavefrontdlg.h \ unwraperrorsview.h \ usercolormapdlg.h \ @@ -458,7 +456,6 @@ FORMS += arbitrarywavefronthelp.ui \ subtractwavefronatsdlg.ui \ surface3dcontrolsdlg.ui \ surfaceanalysistools.ui \ - surfacepropertiesdlg.ui \ transformwavefrontdlg.ui \ unwraperrorsview.ui \ usercolormapdlg.ui \ diff --git a/DFTFringe_Dale.pro b/DFTFringe_Dale.pro index ff05a031..e78c8f39 100644 --- a/DFTFringe_Dale.pro +++ b/DFTFringe_Dale.pro @@ -68,7 +68,6 @@ SOURCES += main.cpp \ wavefrontloader.cpp \ rotationdlg.cpp \ wftstats.cpp \ - surfacepropertiesdlg.cpp \ imagehisto.cpp \ colorchanneldisplay.cpp \ intensityplot.cpp \ @@ -188,7 +187,6 @@ HEADERS += mainwindow.h \ wavefrontloader.h \ rotationdlg.h \ wftstats.h \ - surfacepropertiesdlg.h \ punwrap.h \ imagehisto.h \ colorchanneldisplay.h \ @@ -295,7 +293,6 @@ FORMS += mainwindow.ui \ wavefrontnulldlg.ui \ reviewwindow.ui \ rotationdlg.ui \ - surfacepropertiesdlg.ui \ colorchanneldisplay.ui \ igramintensity.ui \ dftthumb.ui \ diff --git a/DFTFringe_QT5.pro b/DFTFringe_QT5.pro index c8ee0cee..09add55c 100644 --- a/DFTFringe_QT5.pro +++ b/DFTFringe_QT5.pro @@ -243,7 +243,6 @@ SOURCES += SingleApplication/singleapplication.cpp \ surfacegraph.cpp \ surfacelightingproxy.cpp \ surfacemanager.cpp \ - surfacepropertiesdlg.cpp \ transformwavefrontdlg.cpp \ unwraperrorsview.cpp \ usercolormapdlg.cpp \ @@ -364,7 +363,6 @@ HEADERS += bezier/bezier.h \ surfacegraph.h \ surfacelightingproxy.h \ surfacemanager.h \ - surfacepropertiesdlg.h \ transformwavefrontdlg.h \ unwraperrorsview.h \ usercolormapdlg.h \ @@ -457,7 +455,6 @@ FORMS += arbitrarywavefronthelp.ui \ subtractwavefronatsdlg.ui \ surface3dcontrolsdlg.ui \ surfaceanalysistools.ui \ - surfacepropertiesdlg.ui \ transformwavefrontdlg.ui \ unwraperrorsview.ui \ usercolormapdlg.ui \ diff --git a/dftfringe_fr.ts b/dftfringe_fr.ts index 47fe4d3c..8db1633d 100644 --- a/dftfringe_fr.ts +++ b/dftfringe_fr.ts @@ -3387,97 +3387,6 @@ p, li { white-space: pre-wrap; } - - surfacePropertiesDlg - - - 3D surface lighting and material properties - - - - - Lighting properties - - - - - X - - - - - Y - - - - - Z - - - - - - Ambient - - - - - - Diffuse - - - - - - Specular: - - - - - Surface Properties - - - - - shine - - - - - Emission - - - - - Predefined - - - - - Plastic - - - - - Satin - - - - - Brushed Metal - - - - - Ceramic - - - - - Matt - - - unwrapErrorsView diff --git a/surfacepropertiesdlg.cpp b/surfacepropertiesdlg.cpp deleted file mode 100644 index 5a3f007b..00000000 --- a/surfacepropertiesdlg.cpp +++ /dev/null @@ -1,231 +0,0 @@ -/****************************************************************************** -** -** Copyright 2016 Dale Eason -** This file is part of DFTFringe -** is free software: you can redistribute it and/or modify -** it under the terms of the GNU General Public License as published by -** the Free Software Foundation version 3 of the License - -** DFTFringe is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -** GNU General Public License for more details. -** -** You should have received a copy of the GNU General Public License -** along with DFTFringe. If not, see . - -****************************************************************************/ -#include "surfacepropertiesdlg.h" -#include "ui_surfacepropertiesdlg.h" -#include -#include -surfacePropertiesDlg::surfacePropertiesDlg(QWidget *parent) : - QDialog(parent), - ui(new Ui::surfacePropertiesDlg) -{ - ui->setupUi(this); - QSettings settings; - ui->xLight->setValue(settings.value("xlight", -20).toInt()); - ui->yLight->setValue(settings.value("ylight", -20).toInt()); - ui->zLight->setValue(settings.value("zlight", -20).toInt()); - ui->ambientLight->setValue(settings.value("ambientLight", -20).toInt()); - ui->diffuse->setValue(settings.value("diffuseLight",0).toInt()); - ui->specular->setValue(settings.value("specularLight", 0).toInt()); - ui->surfaceAmbient->setValue(settings.value("surfaceAmbient", 0).toInt()); - ui->surfaceDiffuse->setValue(settings.value("surfaceDiffuse", 0).toInt()); - ui->surfaceSpecular->setValue(settings.value("surfaceSpecular",0).toInt()); - ui->surfaceShine->setValue(settings.value("surfaceShine",0).toInt()); -} - -surfacePropertiesDlg::~surfacePropertiesDlg() -{ - delete ui; -} - - -void surfacePropertiesDlg::on_xLight_valueChanged(int value) -{ - QSettings set; - set.setValue("xLight", value); - emit xLightMoved(value); -} - -void surfacePropertiesDlg::on_yLight_valueChanged(int value) -{ - QSettings set; - set.setValue("yLight", value); - emit yLightMoved(value); -} - -void surfacePropertiesDlg::on_zLight_valueChanged(int value) -{ - QSettings set; - set.setValue("zLight", value); - emit zLightMoved(value); -} -void surfacePropertiesDlg::on_ambientLight_valueChanged(int value) -{ - QSettings set; - set.setValue("ambientLight", value); - emit ambientMoved(value); -} - -void surfacePropertiesDlg::on_diffuse_valueChanged(int value) -{ - QSettings set; - set.setValue("diffuseLight", value); - emit diffuseMoved(value); -} - -void surfacePropertiesDlg::on_specular_valueChanged(int value) -{ - QSettings set; - set.setValue("specularLight", value); - emit specularMoved(value); -} - -void surfacePropertiesDlg::on_surfaceAmbient_valueChanged(int value) -{ - QSettings set; - set.setValue("surfaceAmbient", value); - emit surfaceAmbientMoved(value); -} - -void surfacePropertiesDlg::on_surfaceDiffuse_valueChanged(int value) -{ - QSettings set; - set.setValue("surfaceDiffuse", value); - emit surfaceDiffuseMoved(value); -} - -void surfacePropertiesDlg::on_surfaceSpecular_valueChanged(int value) -{ - QSettings set; - set.setValue("surfaceSpucular", value); - emit surfaceSpecularMoved(value); -} - -void surfacePropertiesDlg::on_surfaceShine_valueChanged(int value) -{ - QSettings set; - set.setValue("surfaceShine", value); - emit surfaceShineMoved(value); -} - - -void surfacePropertiesDlg::on_surfaceEmission_valueChanged(int value) -{ - emit surfaceEmitionMove(value); -} - - - -void surfacePropertiesDlg::on_metalFoil_clicked(bool checked) -{ - if (checked){ - ui->xLight->setValue(-38); - ui->yLight->setValue(500); - ui->zLight->setValue(-6); - ui->ambientLight->setValue(9); - ui->diffuse->setValue(50); - ui->specular->setValue(100); - ui->surfaceDiffuse->setValue(0); - ui->surfaceSpecular->setValue(75); - ui->surfaceShine->setValue(25); - update(); - } -} - -void surfacePropertiesDlg::on_glass_clicked(bool checked) -{ - if (checked) - { - ui->xLight->setValue(-16); - ui->yLight->setValue(269); - ui->zLight->setValue(-6); - ui->ambientLight->setValue(14); - ui->diffuse->setValue(52); - ui->specular->setValue(100); - ui->surfaceDiffuse->setValue(44); - ui->surfaceSpecular->setValue(79); - ui->surfaceShine->setValue(104); - update(); - } -} - -void surfacePropertiesDlg::on_matt_clicked(bool checked) -{ - if (checked){ - ui->xLight->setValue(-25); - ui->yLight->setValue(40); - ui->zLight->setValue(4); - ui->ambientLight->setValue(23); - ui->diffuse->setValue(52); - ui->specular->setValue(29); - ui->surfaceDiffuse->setValue(99); - ui->surfaceSpecular->setValue(15); - ui->surfaceShine->setValue(128); - update(); - } -} - - - -void surfacePropertiesDlg::on_buttonBox_accepted() -{ - qDebug() << "Params"; - qDebug() << ui->xLight->value() << " " << ui->yLight->value() << " " << ui->zLight->value(); - qDebug() <<"ambient light" << ui->ambientLight->value() << " diff " << ui->diffuse->value() << " spec " << ui->specular->value(); - qDebug() << "sur amb " << ui->surfaceAmbient->value() << " surdiff " << ui->surfaceDiffuse->value() << " sur spec" << ui->surfaceSpecular->value(); - qDebug() << ui->surfaceShine->value(); -} - - - -void surfacePropertiesDlg::on_Satin_clicked(bool checked) -{ if (checked){ - ui->xLight->setValue(-26); - ui->yLight->setValue(432); - ui->zLight->setValue(-18); - ui->ambientLight->setValue(17); - ui->diffuse->setValue(0); - ui->specular->setValue(74); - ui->surfaceDiffuse->setValue(94); - ui->surfaceSpecular->setValue(61); - ui->surfaceShine->setValue(30); - update(); - } - -} - -void surfacePropertiesDlg::on_plastic_clicked(bool checked) -{ - if (checked){ - ui->xLight->setValue(-25); - ui->yLight->setValue(462); - ui->zLight->setValue(4); - ui->ambientLight->setValue(28); - ui->diffuse->setValue(0); - ui->specular->setValue(100); - ui->surfaceDiffuse->setValue(0); - ui->surfaceSpecular->setValue(61); - ui->surfaceShine->setValue(48); - update(); - } -} - - -void surfacePropertiesDlg::on_red_valueChanged(int value) -{ - emit red(value); -} - -void surfacePropertiesDlg::on_green_valueChanged(int value) -{ - emit green(value); -} - -void surfacePropertiesDlg::on_blue_valueChanged(int value) -{ - emit blue(value); -} diff --git a/surfacepropertiesdlg.h b/surfacepropertiesdlg.h deleted file mode 100644 index 3b312dc8..00000000 --- a/surfacepropertiesdlg.h +++ /dev/null @@ -1,99 +0,0 @@ -/****************************************************************************** -** -** Copyright 2016 Dale Eason -** This file is part of DFTFringe -** is free software: you can redistribute it and/or modify -** it under the terms of the GNU General Public License as published by -** the Free Software Foundation version 3 of the License - -** DFTFringe is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -** GNU General Public License for more details. -** -** You should have received a copy of the GNU General Public License -** along with DFTFringe. If not, see . - -****************************************************************************/ -#ifndef SURFACEPROPERTIESDLG_H -#define SURFACEPROPERTIESDLG_H - -#include - -namespace Ui { -class surfacePropertiesDlg; -} - -class surfacePropertiesDlg : public QDialog -{ - Q_OBJECT - -public: - explicit surfacePropertiesDlg(QWidget *parent = 0); - ~surfacePropertiesDlg(); -signals: - void xLightMoved(int value); - void yLightMoved(int value); - void zLightMoved(int value); - void ambientMoved(int value); - void diffuseMoved(int value); - void specularMoved(int value); - void surfaceDiffuseMoved(int value); - void surfaceSpecularMoved(int value); - void surfaceAmbientMoved(int value); - void surfaceShineMoved(int value); - void surfaceEmitionMove(int value); - void silk(); - void glass(); - void metalFoil(); - void matt(); - void red(int); - void green(int); - void blue(int); - -private slots: - void on_specular_valueChanged(int value); - - void on_surfaceAmbient_valueChanged(int value); - - void on_surfaceDiffuse_valueChanged(int value); - - void on_surfaceSpecular_valueChanged(int value); - - void on_metalFoil_clicked(bool checked); - - void on_glass_clicked(bool checked); - - void on_matt_clicked(bool checked); - - void on_surfaceShine_valueChanged(int value); - - void on_surfaceEmission_valueChanged(int value); - - void on_buttonBox_accepted(); - - void on_ambientLight_valueChanged(int value); - - void on_xLight_valueChanged(int value); - - void on_yLight_valueChanged(int value); - - void on_zLight_valueChanged(int value); - - void on_diffuse_valueChanged(int value); - - void on_Satin_clicked(bool checked); - - void on_plastic_clicked(bool checked); - - void on_red_valueChanged(int value); - - void on_green_valueChanged(int value); - - void on_blue_valueChanged(int value); - -private: - Ui::surfacePropertiesDlg *ui; -}; - -#endif // SURFACEPROPERTIESDLG_H diff --git a/surfacepropertiesdlg.ui b/surfacepropertiesdlg.ui deleted file mode 100644 index 6232124f..00000000 --- a/surfacepropertiesdlg.ui +++ /dev/null @@ -1,344 +0,0 @@ - - - surfacePropertiesDlg - - - - 0 - 0 - 599 - 380 - - - - 3D surface lighting and material properties - - - - - - - - Lighting properties - - - - - - X - - - - - - - -100 - - - 100 - - - Qt::Horizontal - - - - - - - Y - - - - - - - 0 - - - 500 - - - Qt::Horizontal - - - - - - - Z - - - - - - - -50 - - - 50 - - - Qt::Horizontal - - - - - - - Ambient - - - - - - - 0 - - - 100 - - - Qt::Horizontal - - - - - - - Diffuse - - - - - - - 100 - - - Qt::Horizontal - - - - - - - Specular: - - - - - - - 0 - - - 100 - - - Qt::Horizontal - - - - - - - - - - Surface Properties - - - - - - Ambient - - - - - - - 100 - - - Qt::Horizontal - - - - - - - Diffuse - - - - - - - Qt::Horizontal - - - - - - - Specular: - - - - - - - Qt::Horizontal - - - - - - - shine - - - - - - - 128 - - - Qt::Horizontal - - - - - - - Emission - - - - - - - Qt::Horizontal - - - - - - - Qt::Horizontal - - - - - - - Qt::Horizontal - - - - - - - Qt::Horizontal - - - - - - - - - - - - Predefined - - - - - - Plastic - - - - - - - Satin - - - - - - - Brushed Metal - - - - - - - Ceramic - - - - - - - Matt - - - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - - - - buttonBox - accepted() - surfacePropertiesDlg - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - surfacePropertiesDlg - reject() - - - 316 - 260 - - - 286 - 274 - - - - - From bf80fdcaac882e89a906e255028db28adfde3822 Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 16:00:15 +0200 Subject: [PATCH 12/22] remove wavefrontloader unused since 1.13 --- DFTFringe.pro | 2 - DFTFringe_Dale.pro | 2 - DFTFringe_QT5.pro | 2 - mainwindow.h | 1 - wavefrontloader.cpp | 106 -------------------------------------------- wavefrontloader.h | 61 ------------------------- 6 files changed, 174 deletions(-) delete mode 100644 wavefrontloader.cpp delete mode 100644 wavefrontloader.h diff --git a/DFTFringe.pro b/DFTFringe.pro index 7bf8d965..b5e87d0b 100644 --- a/DFTFringe.pro +++ b/DFTFringe.pro @@ -253,7 +253,6 @@ SOURCES += SingleApplication/singleapplication.cpp \ wavefront.cpp \ wavefrontaveragefilterdlg.cpp \ wavefrontfilterdlg.cpp \ - wavefrontloader.cpp \ wftexaminer.cpp \ wftstats.cpp \ zernikedlg.cpp \ @@ -374,7 +373,6 @@ HEADERS += bezier/bezier.h \ wavefront.h \ wavefrontaveragefilterdlg.h \ wavefrontfilterdlg.h \ - wavefrontloader.h \ wftexaminer.h \ wftstats.h \ zernikedlg.h \ diff --git a/DFTFringe_Dale.pro b/DFTFringe_Dale.pro index e78c8f39..0f009d45 100644 --- a/DFTFringe_Dale.pro +++ b/DFTFringe_Dale.pro @@ -65,7 +65,6 @@ SOURCES += main.cpp \ zernikes.cpp \ metricsdisplay.cpp \ reviewwindow.cpp \ - wavefrontloader.cpp \ rotationdlg.cpp \ wftstats.cpp \ imagehisto.cpp \ @@ -184,7 +183,6 @@ HEADERS += mainwindow.h \ metricsdisplay.h \ reviewwindow.h \ vortex.h \ - wavefrontloader.h \ rotationdlg.h \ wftstats.h \ punwrap.h \ diff --git a/DFTFringe_QT5.pro b/DFTFringe_QT5.pro index 09add55c..708004d5 100644 --- a/DFTFringe_QT5.pro +++ b/DFTFringe_QT5.pro @@ -252,7 +252,6 @@ SOURCES += SingleApplication/singleapplication.cpp \ wavefront.cpp \ wavefrontaveragefilterdlg.cpp \ wavefrontfilterdlg.cpp \ - wavefrontloader.cpp \ wftexaminer.cpp \ wftstats.cpp \ zernikedlg.cpp \ @@ -373,7 +372,6 @@ HEADERS += bezier/bezier.h \ wavefront.h \ wavefrontaveragefilterdlg.h \ wavefrontfilterdlg.h \ - wavefrontloader.h \ wftexaminer.h \ wftstats.h \ zernikedlg.h \ diff --git a/mainwindow.h b/mainwindow.h index 5e13be61..59533e4d 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -35,7 +35,6 @@ #include "metricsdisplay.h" #include "reviewwindow.h" #include "settings2.h" -#include "wavefrontloader.h" #include "colorchanneldisplay.h" #include "igramintensity.h" #include "vortexdebug.h" diff --git a/wavefrontloader.cpp b/wavefrontloader.cpp deleted file mode 100644 index 7a1b51bd..00000000 --- a/wavefrontloader.cpp +++ /dev/null @@ -1,106 +0,0 @@ -/****************************************************************************** -** -** Copyright 2016 Dale Eason -** This file is part of DFTFringe -** is free software: you can redistribute it and/or modify -** it under the terms of the GNU General Public License as published by -** the Free Software Foundation version 3 of the License - -** DFTFringe is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -** GNU General Public License for more details. -** -** You should have received a copy of the GNU General Public License -** along with DFTFringe. If not, see . - -****************************************************************************/ -#include "wavefrontloader.h" -#include "utils.h" -waveFrontLoader::waveFrontLoader(QObject *parent) : - QObject(parent), done(true),shouldCancel(false) -{ - pd = new QProgressDialog(" Loading wavefronts in PRogress.", "Cancel", 0, 100); - connect(pd, &QProgressDialog::canceled, this, &waveFrontLoader::cancel); - connect(this, &waveFrontLoader::status, pd, &QProgressDialog::setValue); - connect(this, &waveFrontLoader::progressRange, pd, &QProgressDialog::setRange); - connect(this, &waveFrontLoader::currentWavefront, pd, &QProgressDialog::setLabelText); -} - -void waveFrontLoader::addWavefront(const QString &filename){ - mutex.lock(); - m_list << filename; - mutex.unlock(); -} - -void waveFrontLoader::cancel(){ - shouldCancel = true; - qDebug() << "trying to cancel"; -} - -void waveFrontLoader::loadx(const QStringList &list, SurfaceManager *sm){ - m_list = list; - loadx(sm); -} - -void waveFrontLoader::loadx( SurfaceManager *sm){ - - shouldCancel = false; - int prog = 0; - int size = m_list.size(); - - emit status(0); - //bool mirrorConfigChanged = false; - done = false; - - emit progressRange(0, size); - sm->okToUpdateSurfacesOnGenerateComplete = false; - try { - while (m_list.size() > 0){ - int left = showmem(); - qDebug() << left; - if (left < 300){ - qDebug() << "low memory"; - sm->okToContinue = -1; - emit memoryLow(); - while(sm->okToContinue == -1){} - qDebug() << "continue code" << sm->okToContinue; - if (sm->okToContinue == QMessageBox::No) - { - qDebug() << "Abort load"; - break; - } - qDebug() << "Continue load"; - - } - mutex.lock(); - QString file = m_list.front(); - m_list.removeAt(0); - mutex.unlock(); - - if (pd->wasCanceled()) - break; - - emit currentWavefront(file); - - emit status(++prog); - /*mirrorConfigChanged |= */sm->loadWavefront(file); - } - } - catch (const std::bad_alloc &ex) - { - // clean up here, e.g. save the session - // and close all config files. - - return; - } - - emit loadComplete(); - sm->okToUpdateSurfacesOnGenerateComplete = true; - done = true; - emit progressRange(0, 1); - emit status(0); - emit status(1); - -} - diff --git a/wavefrontloader.h b/wavefrontloader.h deleted file mode 100644 index dc0474d1..00000000 --- a/wavefrontloader.h +++ /dev/null @@ -1,61 +0,0 @@ -/****************************************************************************** -** -** Copyright 2016 Dale Eason -** This file is part of DFTFringe -** is free software: you can redistribute it and/or modify -** it under the terms of the GNU General Public License as published by -** the Free Software Foundation version 3 of the License - -** DFTFringe is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -** GNU General Public License for more details. -** -** You should have received a copy of the GNU General Public License -** along with DFTFringe. If not, see . - -****************************************************************************/ -#ifndef WAVEFRONTLOADER_H -#define WAVEFRONTLOADER_H - -#include -#include -#include -#include "surfacemanager.h" -#include - -class waveFrontLoader : public QObject -{ - Q_OBJECT -public: - explicit waveFrontLoader(QObject *parent = 0); - void addWavefront(const QString &filename); - bool done; -signals: - void status(int); - void memoryLow(); - void progressRange(int,int); - void currentWavefront(QString); - void showMessage(QString); - void diameterChangedSig(double); - void loadComplete(); - -public slots: - void loadx(SurfaceManager *sm); - void loadx(const QStringList &list, SurfaceManager *sm); - void cancel(); - - - -private: - QProgressDialog *pd; - bool shouldCancel; - QMutex sync; - QWaitCondition pauseCond; - bool pause; - int messageResp; - QMutex mutex; - QStringList m_list; -}; - -#endif // WAVEFRONTLOADER_H From 7bcaffaef7f87e55894fb957a54ad7ee2dbec3ed Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 16:07:53 +0200 Subject: [PATCH 13/22] remove never used psiresizeimagesdlg --- DFTFringe.pro | 3 - DFTFringe_Dale.pro | 3 - DFTFringe_QT5.pro | 3 - dftarea.cpp | 2 +- psiresizeimagesdlg.cpp | 32 ---------- psiresizeimagesdlg.h | 25 -------- psiresizeimagesdlg.ui | 131 ----------------------------------------- 7 files changed, 1 insertion(+), 198 deletions(-) delete mode 100644 psiresizeimagesdlg.cpp delete mode 100644 psiresizeimagesdlg.h delete mode 100644 psiresizeimagesdlg.ui diff --git a/DFTFringe.pro b/DFTFringe.pro index b5e87d0b..f8f8e29c 100644 --- a/DFTFringe.pro +++ b/DFTFringe.pro @@ -214,7 +214,6 @@ SOURCES += SingleApplication/singleapplication.cpp \ psfplot.cpp \ psi_dlg.cpp \ psiphasedisplay.cpp \ - psiresizeimagesdlg.cpp \ psitiltoptions.cpp \ punwrap.cpp \ regionedittools.cpp \ @@ -333,7 +332,6 @@ HEADERS += bezier/bezier.h \ psfplot.h \ psi_dlg.h \ psiphasedisplay.h \ - psiresizeimagesdlg.h \ psitiltoptions.h \ punwrap.h \ regionedittools.h \ @@ -429,7 +427,6 @@ FORMS += arbitrarywavefronthelp.ui \ psfplot.ui \ psi_dlg.ui \ psiphasedisplay.ui \ - psiresizeimagesdlg.ui \ psitiltoptions.ui \ regionedittools.ui \ rejectedwavefrontsdlg.ui \ diff --git a/DFTFringe_Dale.pro b/DFTFringe_Dale.pro index 0f009d45..d18629e4 100644 --- a/DFTFringe_Dale.pro +++ b/DFTFringe_Dale.pro @@ -46,7 +46,6 @@ SOURCES += main.cpp \ percentcorrectiondlg.cpp \ profileplot.cpp \ profileplotpicker.cpp \ - psiresizeimagesdlg.cpp \ settingsigramimportconfig.cpp \ surface3dcontrolsdlg.cpp \ surfacegraph.cpp \ @@ -163,7 +162,6 @@ HEADERS += mainwindow.h \ percentcorrectiondlg.h \ profileplot.h \ profileplotpicker.h \ - psiresizeimagesdlg.h \ settingsigramimportconfig.h \ surface3dcontrolsdlg.h \ surfacegraph.h \ @@ -280,7 +278,6 @@ FORMS += mainwindow.ui \ profilearea.ui \ profileplot.ui \ contourtools.ui \ - psiresizeimagesdlg.ui \ settingsigramimportconfig.ui \ surface3dcontrolsdlg.ui \ surfaceanalysistools.ui \ diff --git a/DFTFringe_QT5.pro b/DFTFringe_QT5.pro index 708004d5..46f20efb 100644 --- a/DFTFringe_QT5.pro +++ b/DFTFringe_QT5.pro @@ -213,7 +213,6 @@ SOURCES += SingleApplication/singleapplication.cpp \ psfplot.cpp \ psi_dlg.cpp \ psiphasedisplay.cpp \ - psiresizeimagesdlg.cpp \ psitiltoptions.cpp \ punwrap.cpp \ regionedittools.cpp \ @@ -332,7 +331,6 @@ HEADERS += bezier/bezier.h \ psfplot.h \ psi_dlg.h \ psiphasedisplay.h \ - psiresizeimagesdlg.h \ psitiltoptions.h \ punwrap.h \ regionedittools.h \ @@ -428,7 +426,6 @@ FORMS += arbitrarywavefronthelp.ui \ psfplot.ui \ psi_dlg.ui \ psiphasedisplay.ui \ - psiresizeimagesdlg.ui \ psitiltoptions.ui \ regionedittools.ui \ rejectedwavefrontsdlg.ui \ diff --git a/dftarea.cpp b/dftarea.cpp index b1f70d18..298d4c6b 100644 --- a/dftarea.cpp +++ b/dftarea.cpp @@ -1175,7 +1175,7 @@ void DFTArea::doPSIstep3(){ } -#include "psiresizeimagesdlg.h" + cv::Mat DFTArea::PSILoadFullImages(){ int cnt = 0; cv::Mat data; diff --git a/psiresizeimagesdlg.cpp b/psiresizeimagesdlg.cpp deleted file mode 100644 index 46cb7a1b..00000000 --- a/psiresizeimagesdlg.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "psiresizeimagesdlg.h" -#include "ui_psiresizeimagesdlg.h" -#include -#include -PSIResizeImagesDlg::PSIResizeImagesDlg(int resize,int max, QWidget *parent) : - QDialog(parent), - ui(new Ui::PSIResizeImagesDlg) -{ - ui->setupUi(this); - QSettings set; - ui->m_resize->setMaximum(max); - ui->CurrentSize->setText(QString("%1").arg(max)); - ui->m_resize->setValue(resize); -} - -int PSIResizeImagesDlg::getSize(){ - return ui->m_resize->value(); -} - -PSIResizeImagesDlg::~PSIResizeImagesDlg() -{ - delete ui; -} - -void PSIResizeImagesDlg::on_m_resize_valueChanged(int arg1) -{ - QSettings set; - int v = (arg1/100)*100; - set.setValue("PSIResize", v); - ui->m_resize->setValue(v); -} - diff --git a/psiresizeimagesdlg.h b/psiresizeimagesdlg.h deleted file mode 100644 index 8c2fe7aa..00000000 --- a/psiresizeimagesdlg.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef PSIRESIZEIMAGESDLG_H -#define PSIRESIZEIMAGESDLG_H - -#include - -namespace Ui { -class PSIResizeImagesDlg; -} - -class PSIResizeImagesDlg : public QDialog -{ - Q_OBJECT - -public: - explicit PSIResizeImagesDlg(int newSize, int max, QWidget *parent = nullptr); - ~PSIResizeImagesDlg(); - int getSize(); -private slots: - void on_m_resize_valueChanged(int arg1); - -private: - Ui::PSIResizeImagesDlg *ui; -}; - -#endif // PSIRESIZEIMAGESDLG_H diff --git a/psiresizeimagesdlg.ui b/psiresizeimagesdlg.ui deleted file mode 100644 index 86ce89a9..00000000 --- a/psiresizeimagesdlg.ui +++ /dev/null @@ -1,131 +0,0 @@ - - - PSIResizeImagesDlg - - - - 0 - 0 - 400 - 181 - - - - Resize PSI Images - - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Segoe UI'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The first image is larger than 1000 pixels wide. It will speed up the process if you resize it to a smaller size. However it can be resized too small and make the phase esstimation process fail. </p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> This will only resize image for the phase estimation process and not the PSI surface analysis phase.</p></body></html> - - - - - - - - - Current width: - - - - - - - TextLabel - - - - - - - - - - - Resize Image widths to: - - - - - - - 600 - - - 5000 - - - 200 - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - - - - buttonBox - accepted() - PSIResizeImagesDlg - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - PSIResizeImagesDlg - reject() - - - 316 - 260 - - - 286 - 274 - - - - - From 12f5df17cae70827d6b42667e91fbd7c35619e6d Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 16:11:21 +0200 Subject: [PATCH 14/22] remove never used renameWavefrontDlg --- DFTFringe.pro | 3 -- DFTFringe_Dale.pro | 3 -- DFTFringe_QT5.pro | 3 -- dftfringe_fr.ts | 13 ------- renamewavefrontdlg.cpp | 35 ------------------- renamewavefrontdlg.h | 40 ---------------------- renamewavefrontdlg.ui | 74 ---------------------------------------- surfaceanalysistools.cpp | 1 - 8 files changed, 172 deletions(-) delete mode 100644 renamewavefrontdlg.cpp delete mode 100644 renamewavefrontdlg.h delete mode 100644 renamewavefrontdlg.ui diff --git a/DFTFringe.pro b/DFTFringe.pro index f8f8e29c..200570d1 100644 --- a/DFTFringe.pro +++ b/DFTFringe.pro @@ -218,7 +218,6 @@ SOURCES += SingleApplication/singleapplication.cpp \ punwrap.cpp \ regionedittools.cpp \ rejectedwavefrontsdlg.cpp \ - renamewavefrontdlg.cpp \ reportdlg.cpp \ reviewwindow.cpp \ rmsplot.cpp \ @@ -336,7 +335,6 @@ HEADERS += bezier/bezier.h \ punwrap.h \ regionedittools.h \ rejectedwavefrontsdlg.h \ - renamewavefrontdlg.h \ reportdlg.h \ reviewwindow.h \ rmsplot.h \ @@ -430,7 +428,6 @@ FORMS += arbitrarywavefronthelp.ui \ psitiltoptions.ui \ regionedittools.ui \ rejectedwavefrontsdlg.ui \ - renamewavefrontdlg.ui \ reportdlg.ui \ reviewwindow.ui \ rotationdlg.ui \ diff --git a/DFTFringe_Dale.pro b/DFTFringe_Dale.pro index d18629e4..891703fd 100644 --- a/DFTFringe_Dale.pro +++ b/DFTFringe_Dale.pro @@ -88,7 +88,6 @@ SOURCES += main.cpp \ psfplot.cpp \ standastigwizard.cpp \ counterrotationdlg.cpp \ - renamewavefrontdlg.cpp \ subtractwavefronatsdlg.cpp \ helpdlg.cpp \ settingsprofile.cpp \ @@ -205,7 +204,6 @@ HEADERS += mainwindow.h \ psfplot.h \ standastigwizard.h \ counterrotationdlg.h \ - renamewavefrontdlg.h \ subtractwavefronatsdlg.h \ helpdlg.h \ settingsprofile.h \ @@ -306,7 +304,6 @@ FORMS += mainwindow.ui \ psfplot.ui \ standastigwizard.ui \ counterrotationdlg.ui \ - renamewavefrontdlg.ui \ subtractwavefronatsdlg.ui \ helpdlg.ui \ settingsprofile.ui \ diff --git a/DFTFringe_QT5.pro b/DFTFringe_QT5.pro index 46f20efb..94866ca5 100644 --- a/DFTFringe_QT5.pro +++ b/DFTFringe_QT5.pro @@ -217,7 +217,6 @@ SOURCES += SingleApplication/singleapplication.cpp \ punwrap.cpp \ regionedittools.cpp \ rejectedwavefrontsdlg.cpp \ - renamewavefrontdlg.cpp \ reportdlg.cpp \ reviewwindow.cpp \ rmsplot.cpp \ @@ -335,7 +334,6 @@ HEADERS += bezier/bezier.h \ punwrap.h \ regionedittools.h \ rejectedwavefrontsdlg.h \ - renamewavefrontdlg.h \ reportdlg.h \ reviewwindow.h \ rmsplot.h \ @@ -429,7 +427,6 @@ FORMS += arbitrarywavefronthelp.ui \ psitiltoptions.ui \ regionedittools.ui \ rejectedwavefrontsdlg.ui \ - renamewavefrontdlg.ui \ reportdlg.ui \ reviewwindow.ui \ rotationdlg.ui \ diff --git a/dftfringe_fr.ts b/dftfringe_fr.ts index 8db1633d..b2c33dc8 100644 --- a/dftfringe_fr.ts +++ b/dftfringe_fr.ts @@ -2742,19 +2742,6 @@ p, li { white-space: pre-wrap; } - - renameWavefrontDlg - - - Rename Wavefront - - - - - Enter new wavefront name: - - - reviewWindow diff --git a/renamewavefrontdlg.cpp b/renamewavefrontdlg.cpp deleted file mode 100644 index f4694107..00000000 --- a/renamewavefrontdlg.cpp +++ /dev/null @@ -1,35 +0,0 @@ -/****************************************************************************** -** -** Copyright 2016 Dale Eason -** This file is part of DFTFringe -** is free software: you can redistribute it and/or modify -** it under the terms of the GNU General Public License as published by -** the Free Software Foundation version 3 of the License - -** DFTFringe is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -** GNU General Public License for more details. -** -** You should have received a copy of the GNU General Public License -** along with DFTFringe. If not, see . - -****************************************************************************/ -#include "renamewavefrontdlg.h" -#include "ui_renamewavefrontdlg.h" - -renameWavefrontDlg::renameWavefrontDlg(const QString &name, QWidget *parent) : - QDialog(parent), - ui(new Ui::renameWavefrontDlg) -{ - ui->setupUi(this); - ui->name->setText(name); -} - -renameWavefrontDlg::~renameWavefrontDlg() -{ - delete ui; -} -QString renameWavefrontDlg::name(){ - return ui->name->text(); -} diff --git a/renamewavefrontdlg.h b/renamewavefrontdlg.h deleted file mode 100644 index 74ad77df..00000000 --- a/renamewavefrontdlg.h +++ /dev/null @@ -1,40 +0,0 @@ -/****************************************************************************** -** -** Copyright 2016 Dale Eason -** This file is part of DFTFringe -** is free software: you can redistribute it and/or modify -** it under the terms of the GNU General Public License as published by -** the Free Software Foundation version 3 of the License - -** DFTFringe is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -** GNU General Public License for more details. -** -** You should have received a copy of the GNU General Public License -** along with DFTFringe. If not, see . - -****************************************************************************/ -#ifndef RENAMEWAVEFRONTDLG_H -#define RENAMEWAVEFRONTDLG_H - -#include - -namespace Ui { -class renameWavefrontDlg; -} - -class renameWavefrontDlg : public QDialog -{ - Q_OBJECT - -public: - explicit renameWavefrontDlg(const QString &name, QWidget *parent = 0); - ~renameWavefrontDlg(); - QString name(); - -private: - Ui::renameWavefrontDlg *ui; -}; - -#endif // RENAMEWAVEFRONTDLG_H diff --git a/renamewavefrontdlg.ui b/renamewavefrontdlg.ui deleted file mode 100644 index 934748c6..00000000 --- a/renamewavefrontdlg.ui +++ /dev/null @@ -1,74 +0,0 @@ - - - renameWavefrontDlg - - - - 0 - 0 - 400 - 86 - - - - Rename Wavefront - - - - - - Enter new wavefront name: - - - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - - - - buttonBox - accepted() - renameWavefrontDlg - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - renameWavefrontDlg - reject() - - - 316 - 260 - - - 286 - 274 - - - - - diff --git a/surfaceanalysistools.cpp b/surfaceanalysistools.cpp index 3c368aa9..8877a35e 100644 --- a/surfaceanalysistools.cpp +++ b/surfaceanalysistools.cpp @@ -25,7 +25,6 @@ #include #include #include "mirrordlg.h" -#include "renamewavefrontdlg.h" #include surfaceAnalysisTools *surfaceAnalysisTools::m_Instance = NULL; From 1d8887269a0b9be148c8024e219e595360eca3e1 Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 16:14:08 +0200 Subject: [PATCH 15/22] remove never used SaveWaveDlg --- DFTFringe.pro | 3 -- DFTFringe_Dale.pro | 3 -- DFTFringe_QT5.pro | 3 -- savewavedlg.cpp | 47 ------------------ savewavedlg.h | 46 ----------------- savewavedlg.ui | 120 --------------------------------------------- 6 files changed, 222 deletions(-) delete mode 100644 savewavedlg.cpp delete mode 100644 savewavedlg.h delete mode 100644 savewavedlg.ui diff --git a/DFTFringe.pro b/DFTFringe.pro index 200570d1..12edf1d5 100644 --- a/DFTFringe.pro +++ b/DFTFringe.pro @@ -222,7 +222,6 @@ SOURCES += SingleApplication/singleapplication.cpp \ reviewwindow.cpp \ rmsplot.cpp \ rotationdlg.cpp \ - savewavedlg.cpp \ settings2.cpp \ settingsdebug.cpp \ settingsdft.cpp \ @@ -339,7 +338,6 @@ HEADERS += bezier/bezier.h \ reviewwindow.h \ rmsplot.h \ rotationdlg.h \ - savewavedlg.h \ settings2.h \ settingsdebug.h \ settingsdft.h \ @@ -431,7 +429,6 @@ FORMS += arbitrarywavefronthelp.ui \ reportdlg.ui \ reviewwindow.ui \ rotationdlg.ui \ - savewavedlg.ui \ settings2.ui \ settingsdebug.ui \ settingsdft.ui \ diff --git a/DFTFringe_Dale.pro b/DFTFringe_Dale.pro index 891703fd..6ee56b15 100644 --- a/DFTFringe_Dale.pro +++ b/DFTFringe_Dale.pro @@ -75,7 +75,6 @@ SOURCES += main.cpp \ simigramdlg.cpp \ punwrap.cpp \ wftexaminer.cpp \ - savewavedlg.cpp \ usercolormapdlg.cpp \ colormapviewerdlg.cpp \ oglview.cpp \ @@ -191,7 +190,6 @@ HEADERS += mainwindow.h \ vortexdebug.h \ simigramdlg.h \ wftexaminer.h \ - savewavedlg.h \ usercolormapdlg.h \ colormapviewerdlg.h \ oglview.h \ @@ -292,7 +290,6 @@ FORMS += mainwindow.ui \ vortexdebug.ui \ simigramdlg.ui \ wftexaminer.ui \ - savewavedlg.ui \ usercolormapdlg.ui \ colormapviewerdlg.ui \ settingsigram.ui \ diff --git a/DFTFringe_QT5.pro b/DFTFringe_QT5.pro index 94866ca5..e6f168c4 100644 --- a/DFTFringe_QT5.pro +++ b/DFTFringe_QT5.pro @@ -221,7 +221,6 @@ SOURCES += SingleApplication/singleapplication.cpp \ reviewwindow.cpp \ rmsplot.cpp \ rotationdlg.cpp \ - savewavedlg.cpp \ settings2.cpp \ settingsdebug.cpp \ settingsdft.cpp \ @@ -338,7 +337,6 @@ HEADERS += bezier/bezier.h \ reviewwindow.h \ rmsplot.h \ rotationdlg.h \ - savewavedlg.h \ settings2.h \ settingsdebug.h \ settingsdft.h \ @@ -430,7 +428,6 @@ FORMS += arbitrarywavefronthelp.ui \ reportdlg.ui \ reviewwindow.ui \ rotationdlg.ui \ - savewavedlg.ui \ settings2.ui \ settingsdebug.ui \ settingsdft.ui \ diff --git a/savewavedlg.cpp b/savewavedlg.cpp deleted file mode 100644 index 400d46ed..00000000 --- a/savewavedlg.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/****************************************************************************** -** -** Copyright 2016 Dale Eason -** This file is part of DFTFringe -** is free software: you can redistribute it and/or modify -** it under the terms of the GNU General Public License as published by -** the Free Software Foundation version 3 of the License - -** DFTFringe is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -** GNU General Public License for more details. -** -** You should have received a copy of the GNU General Public License -** along with DFTFringe. If not, see . - -****************************************************************************/ -#include "savewavedlg.h" -#include "ui_savewavedlg.h" -#include -SaveWaveDlg::SaveWaveDlg(const QString &lastPath, QWidget *parent) : - QDialog(parent),lastPath(lastPath), - ui(new Ui::SaveWaveDlg) -{ - ui->setupUi(this); - ui->lineEdit->setText(lastPath); -} - -SaveWaveDlg::~SaveWaveDlg() -{ - delete ui; -} - -void SaveWaveDlg::on_normalRb_clicked(bool) -{ - -} - -void SaveWaveDlg::on_browsePB_clicked() -{ - fileName = QFileDialog::getSaveFileName(0, - tr("Write wave font file"), lastPath, - tr("wft (*.wft)")); - if (fileName.isEmpty()) - return; - ui->lineEdit->setText(fileName); -} diff --git a/savewavedlg.h b/savewavedlg.h deleted file mode 100644 index b39205fc..00000000 --- a/savewavedlg.h +++ /dev/null @@ -1,46 +0,0 @@ -/****************************************************************************** -** -** Copyright 2016 Dale Eason -** This file is part of DFTFringe -** is free software: you can redistribute it and/or modify -** it under the terms of the GNU General Public License as published by -** the Free Software Foundation version 3 of the License - -** DFTFringe is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -** GNU General Public License for more details. -** -** You should have received a copy of the GNU General Public License -** along with DFTFringe. If not, see . - -****************************************************************************/ -#ifndef SAVEWAVEDLG_H -#define SAVEWAVEDLG_H - -#include - -namespace Ui { -class SaveWaveDlg; -} - -class SaveWaveDlg : public QDialog -{ - Q_OBJECT - -public: - explicit SaveWaveDlg(const QString &lastPath, QWidget *parent = 0); - ~SaveWaveDlg(); - QString fileName; - QString lastPath; - -private slots: - void on_normalRb_clicked(bool); - - void on_browsePB_clicked(); - -private: - Ui::SaveWaveDlg *ui; -}; - -#endif // SAVEWAVEDLG_H diff --git a/savewavedlg.ui b/savewavedlg.ui deleted file mode 100644 index bb12b024..00000000 --- a/savewavedlg.ui +++ /dev/null @@ -1,120 +0,0 @@ - - - SaveWaveDlg - - - - 0 - 0 - 587 - 182 - - - - Dialog - - - - - 110 - 90 - 341 - 32 - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - 50 - 50 - 431 - 20 - - - - - - - 500 - 50 - 75 - 23 - - - - Browse - - - - - - 60 - 100 - 82 - 17 - - - - Normal - - - true - - - - - - 60 - 120 - 82 - 17 - - - - Nulled - - - - - - - buttonBox - accepted() - SaveWaveDlg - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - SaveWaveDlg - reject() - - - 316 - 260 - - - 286 - 274 - - - - - From 1238e189f8705feabe354d07e508f9af14564b8f Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 16:14:46 +0200 Subject: [PATCH 16/22] remove missed translation --- dftfringe_fr.ts | 33 --------------------------------- 1 file changed, 33 deletions(-) diff --git a/dftfringe_fr.ts b/dftfringe_fr.ts index b2c33dc8..8504ff87 100644 --- a/dftfringe_fr.ts +++ b/dftfringe_fr.ts @@ -1194,39 +1194,6 @@ - - SaveWaveDlg - - - Dialog - - - - - Browse - - - - - Normal - - - - - Nulled - - - - - Write wave font file - - - - - wft (*.wft) - - - Settings2 From b4200c8665ff1b5d4137505b4e77c87c88a63631 Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 16:21:45 +0200 Subject: [PATCH 17/22] remove help file that is less complete than current readme --- buildingDFTFringe64.txt | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 buildingDFTFringe64.txt diff --git a/buildingDFTFringe64.txt b/buildingDFTFringe64.txt deleted file mode 100644 index cbe95db1..00000000 --- a/buildingDFTFringe64.txt +++ /dev/null @@ -1,16 +0,0 @@ -install cmake -Set cmake into system path -Set Qt\tools\bin into system path -Set Qt\Tools\mingw810_64\x86_64-w64-mingw32\bin into system path -build OpenCV - use CMake - set source to be OpenCV directory, set bin directory, set mingw Makefiles as generator - configure then configure again - generate - change to bin directory and type mingw32-make -j4 - -install QWT source - use Qt to build Qwt from it's .pro file. -instal Qwt into path -build libblas -build lpack -build DFTFringe using Qt creator using it's .pro file. From 57b149a1f588deab47ca91a76c8027e23be9f7e5 Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 16:38:01 +0200 Subject: [PATCH 18/22] remove old build documentation --- How to Build DFTFringe.pdf | Bin 199588 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 How to Build DFTFringe.pdf diff --git a/How to Build DFTFringe.pdf b/How to Build DFTFringe.pdf deleted file mode 100644 index 883963c73a765b693d1dcc9fede0ee1cdfabec59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199588 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 Date: Fri, 22 Aug 2025 18:34:20 +0200 Subject: [PATCH 19/22] remove old helptext.txt --- DFTFringe_Dale.pro | 1 - helptext.txt | 100 --------------------------------------------- 2 files changed, 101 deletions(-) delete mode 100644 helptext.txt diff --git a/DFTFringe_Dale.pro b/DFTFringe_Dale.pro index 6ee56b15..50df7c25 100644 --- a/DFTFringe_Dale.pro +++ b/DFTFringe_Dale.pro @@ -408,7 +408,6 @@ DEFINES += QAPPLICATION_CLASS=QApplication DEFINES += DALE_DO_NOT_LOG DISTFILES += \ buildingDFTFringe64.txt \ - helptext.txt \ ColorMaps/Dale1.cmp \ ColorMaps/Dale2.cmp \ ColorMaps/Dale3.cmp \ diff --git a/helptext.txt b/helptext.txt deleted file mode 100644 index 7f59263d..00000000 --- a/helptext.txt +++ /dev/null @@ -1,100 +0,0 @@ - /* how to make a gif player - QMovie *movie = new QMovie("C:\\Users\\DOE\\Videos\\a.gif"); - QLabel *processLabel = new QLabel(this); - processLabel->setMovie(movie); - movie->start(); - */ - -Quick overview - Why a new version of OpenFringe - To be able to modify it using modern software tools. - What is DFTFringe - Successor to OpenFringe with modern Uers interface. - Focuses on the most used Features of OpenFringe. - New features - stats. - - -Quick start Guide. - Setup the Mirror data in the MirrorDialog. - Load an interferogram. - Outline it - Analyze it. - -Mirror dialog in depth. -Outlining mirror in depth. - mouse - zoom - undo - crop/not crop - -New features in Depth. - -Using DFTFringe to inspect interferogram intensity and gamma correction effects. - -DFTFringe has tools to help you determine the right exposue for your interferograms. -SO first off lets make a well exposed interferogram of a perfect mirror. -Go to the simulations view and make an igram. -We can look at an intensity plot across the igram. -See that the intensity has a sinusodal variation. -Use the compass knob to vary to change the angle of the sample diameter. - -We can also look at each color channel. In this case only the red channel has any information. -A interferogram taken with a red laser should look similar. - -If we turn on the DFT thumb nail display we can see the DFT used by the program to analyze the surface. -We can see the 2 sidelobes look nice without any extra ones outside of them. - -Ok now lets load a real world interferogram taken with a web cam and that was over exposed. - -Here we see that the red channel is completly maxed out and information spills over into the -other color channels. - -There are some other intersting things in this plot that I will come back -to later when I discuss Gamma correction. - -Now lets look at a few other interferograms. - - - - - - -Hello I'm Dale Eason and this is a Quick start guide for DFT Fringe the successor to OpenFringe. - -If you are fimiliar with OPenFringe then a lot of this will be familiar to you. However some -things work differently so I hope it will be useful to you as well. - -For detailed info on each of the steps see other help videos. - -DFTfringe is a program used to anayze interferograms of Telescope Optics - -I assume you alaready have interferograms stored as images on your computer. - -So lets get started. - -First input the mirror and laser data using the configuration dialog. Here is an example I already filled out. - -Second Open an interferogram and outline the mirror in it. - -Outlining is a bit easier than in OPenFringe I think. - -When the outline is complete press the done button. - -At this point you can simply press the "Compute surface button." - -Now you have your first anlaysis completed. - - -See the other videos for more information. - -Thank you for watching and happy analizing. - - - - - - - - - From 150948b5118790a214250fc85989b9f889c2d35c Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 18:39:25 +0200 Subject: [PATCH 20/22] remove unused profilearea.ui --- DFTFringe.pro | 2 -- DFTFringe_Dale.pro | 1 - DFTFringe_QT5.pro | 2 -- dftfringe_fr.ts | 8 -------- profilearea.ui | 19 ------------------- 5 files changed, 32 deletions(-) delete mode 100644 profilearea.ui diff --git a/DFTFringe.pro b/DFTFringe.pro index 12edf1d5..7d91049e 100644 --- a/DFTFringe.pro +++ b/DFTFringe.pro @@ -418,7 +418,6 @@ FORMS += arbitrarywavefronthelp.ui \ pdfcalibrationdlg.ui \ percentcorrectiondlg.ui \ pixelstats.ui \ - profilearea.ui \ profileplot.ui \ psfplot.ui \ psi_dlg.ui \ @@ -536,7 +535,6 @@ DISTFILES += buildingDFTFringe64.txt \ ColorMaps/spring.cmp \ COPYING.LESSER.txt \ COPYING.txt \ - helptext.txt \ README.md \ RevisionHistory.html diff --git a/DFTFringe_Dale.pro b/DFTFringe_Dale.pro index 50df7c25..0c3323c0 100644 --- a/DFTFringe_Dale.pro +++ b/DFTFringe_Dale.pro @@ -271,7 +271,6 @@ FORMS += mainwindow.ui \ oglrendered.ui \ pdfcalibrationdlg.ui \ percentcorrectiondlg.ui \ - profilearea.ui \ profileplot.ui \ contourtools.ui \ settingsigramimportconfig.ui \ diff --git a/DFTFringe_QT5.pro b/DFTFringe_QT5.pro index e6f168c4..ad72434a 100644 --- a/DFTFringe_QT5.pro +++ b/DFTFringe_QT5.pro @@ -417,7 +417,6 @@ FORMS += arbitrarywavefronthelp.ui \ pdfcalibrationdlg.ui \ percentcorrectiondlg.ui \ pixelstats.ui \ - profilearea.ui \ profileplot.ui \ psfplot.ui \ psi_dlg.ui \ @@ -535,7 +534,6 @@ DISTFILES += buildingDFTFringe64.txt \ ColorMaps/spring.cmp \ COPYING.LESSER.txt \ COPYING.txt \ - helptext.txt \ README.md \ RevisionHistory.html diff --git a/dftfringe_fr.ts b/dftfringe_fr.ts index 8504ff87..0fd5214e 100644 --- a/dftfringe_fr.ts +++ b/dftfringe_fr.ts @@ -2670,14 +2670,6 @@ p, li { white-space: pre-wrap; } - - profileArea - - - Form - - - psfPlot diff --git a/profilearea.ui b/profilearea.ui deleted file mode 100644 index f8b95e3b..00000000 --- a/profilearea.ui +++ /dev/null @@ -1,19 +0,0 @@ - - - profileArea - - - - 0 - 0 - 400 - 300 - - - - Form - - - - - From 4b29f5b7d1f51d44bfd08086ba56f864111969b6 Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 18:49:34 +0200 Subject: [PATCH 21/22] rename utilil to utils and delete unused vortex.h --- DFTFringe.pro | 3 +-- DFTFringe_Dale.pro | 3 +-- DFTFringe_QT5.pro | 3 +-- dftarea.cpp | 1 - dfttools.cpp | 1 - utilil.cpp => utils.cpp | 0 utils.h | 2 +- vortex.h | 25 ------------------------- 8 files changed, 4 insertions(+), 34 deletions(-) rename utilil.cpp => utils.cpp (100%) delete mode 100644 vortex.h diff --git a/DFTFringe.pro b/DFTFringe.pro index 7d91049e..3af266a4 100644 --- a/DFTFringe.pro +++ b/DFTFringe.pro @@ -245,7 +245,7 @@ SOURCES += SingleApplication/singleapplication.cpp \ unwraperrorsview.cpp \ usercolormapdlg.cpp \ userdrawnprofiledlg.cpp \ - utilil.cpp \ + utils.cpp \ vortexdebug.cpp \ wavefront.cpp \ wavefrontaveragefilterdlg.cpp \ @@ -362,7 +362,6 @@ HEADERS += bezier/bezier.h \ usercolormapdlg.h \ userdrawnprofiledlg.h \ utils.h \ - vortex.h \ vortexdebug.h \ wavefront.h \ wavefrontaveragefilterdlg.h \ diff --git a/DFTFringe_Dale.pro b/DFTFringe_Dale.pro index 0c3323c0..a0030f0d 100644 --- a/DFTFringe_Dale.pro +++ b/DFTFringe_Dale.pro @@ -111,7 +111,7 @@ SOURCES += main.cpp \ messagereceiver.cpp \ myutils.cpp \ pixelstats.cpp \ - utilil.cpp \ + utils.cpp \ circlefit.cpp \ astigstatsdlg.cpp \ averagewavefrontfilesdlg.cpp \ @@ -178,7 +178,6 @@ HEADERS += mainwindow.h \ zernikes.h \ metricsdisplay.h \ reviewwindow.h \ - vortex.h \ rotationdlg.h \ wftstats.h \ punwrap.h \ diff --git a/DFTFringe_QT5.pro b/DFTFringe_QT5.pro index ad72434a..ab80277c 100644 --- a/DFTFringe_QT5.pro +++ b/DFTFringe_QT5.pro @@ -244,7 +244,7 @@ SOURCES += SingleApplication/singleapplication.cpp \ unwraperrorsview.cpp \ usercolormapdlg.cpp \ userdrawnprofiledlg.cpp \ - utilil.cpp \ + utils.cpp \ vortexdebug.cpp \ wavefront.cpp \ wavefrontaveragefilterdlg.cpp \ @@ -361,7 +361,6 @@ HEADERS += bezier/bezier.h \ usercolormapdlg.h \ userdrawnprofiledlg.h \ utils.h \ - vortex.h \ vortexdebug.h \ wavefront.h \ wavefrontaveragefilterdlg.h \ diff --git a/dftarea.cpp b/dftarea.cpp index 298d4c6b..55f9c505 100644 --- a/dftarea.cpp +++ b/dftarea.cpp @@ -18,7 +18,6 @@ #include "dftarea.h" #include "ui_dftarea.h" #include "dfttools.h" -#include "vortex.h" #include #include "punwrap.h" #include "zernikeprocess.h" diff --git a/dfttools.cpp b/dfttools.cpp index 4dc607a6..c2d0ee76 100644 --- a/dfttools.cpp +++ b/dfttools.cpp @@ -17,7 +17,6 @@ ****************************************************************************/ #include "dfttools.h" #include "ui_dfttools.h" -#include "vortex.h" #include #include "settings2.h" #include "dftarea.h" diff --git a/utilil.cpp b/utils.cpp similarity index 100% rename from utilil.cpp rename to utils.cpp diff --git a/utils.h b/utils.h index 900f0d47..bb6c2555 100644 --- a/utils.h +++ b/utils.h @@ -1,5 +1,5 @@ #ifndef UTILS_H #define UTILS_H int showmem(const QString &title = ""); -extern double outputLambda; +extern double outputLambda; //TODO nothing to do here. But there are many other occurences #endif // UTILS_H diff --git a/vortex.h b/vortex.h deleted file mode 100644 index 9bcdb10d..00000000 --- a/vortex.h +++ /dev/null @@ -1,25 +0,0 @@ -/****************************************************************************** -** -** Copyright 2016 Dale Eason -** This file is part of DFTFringe -** is free software: you can redistribute it and/or modify -** it under the terms of the GNU General Public License as published by -** the Free Software Foundation version 3 of the License - -** DFTFringe is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -** GNU General Public License for more details. -** -** You should have received a copy of the GNU General Public License -** along with DFTFringe. If not, see . - -****************************************************************************/ -#ifndef VORTEX_H -#define VORTEX_H -#include - -void vortex(cv::Mat &dft, const char *ext, - double low, double smooth, - double *phase, const char *what); -#endif // VORTEX_H From 8fe9094f0aa50ee7d12377c111ec47a462080f0d Mon Sep 17 00:00:00 2001 From: Julien Staub Date: Fri, 22 Aug 2025 18:51:52 +0200 Subject: [PATCH 22/22] remove unused wavefrontnulldlg.ui --- DFTFringe.pro | 1 - DFTFringe_Dale.pro | 1 - DFTFringe_QT5.pro | 1 - dftfringe_fr.ts | 13 --------- wavefrontnulldlg.ui | 70 --------------------------------------------- 5 files changed, 86 deletions(-) delete mode 100644 wavefrontnulldlg.ui diff --git a/DFTFringe.pro b/DFTFringe.pro index 3af266a4..7688032c 100644 --- a/DFTFringe.pro +++ b/DFTFringe.pro @@ -450,7 +450,6 @@ FORMS += arbitrarywavefronthelp.ui \ vortexdebug.ui \ wavefrontaveragefilterdlg.ui \ wavefrontfilterdlg.ui \ - wavefrontnulldlg.ui \ wftexaminer.ui \ zernikedlg.ui \ zernikeeditdlg.ui \ diff --git a/DFTFringe_Dale.pro b/DFTFringe_Dale.pro index a0030f0d..0336720d 100644 --- a/DFTFringe_Dale.pro +++ b/DFTFringe_Dale.pro @@ -279,7 +279,6 @@ FORMS += mainwindow.ui \ userdrawnprofiledlg.ui \ zernikedlg.ui \ mirrordlg.ui \ - wavefrontnulldlg.ui \ reviewwindow.ui \ rotationdlg.ui \ colorchanneldisplay.ui \ diff --git a/DFTFringe_QT5.pro b/DFTFringe_QT5.pro index ab80277c..d5634393 100644 --- a/DFTFringe_QT5.pro +++ b/DFTFringe_QT5.pro @@ -449,7 +449,6 @@ FORMS += arbitrarywavefronthelp.ui \ vortexdebug.ui \ wavefrontaveragefilterdlg.ui \ wavefrontfilterdlg.ui \ - wavefrontnulldlg.ui \ wftexaminer.ui \ zernikedlg.ui \ zernikeeditdlg.ui \ diff --git a/dftfringe_fr.ts b/dftfringe_fr.ts index 0fd5214e..e6b0dc93 100644 --- a/dftfringe_fr.ts +++ b/dftfringe_fr.ts @@ -3518,19 +3518,6 @@ p, li { white-space: pre-wrap; } - - waveFrontNullDlg - - - Wavefront Null Enables - - - - - <html><head/><body><p>Specifies what to remove from the wavefront. Normally this is the first 8 Zernike terms.</p><p>Except the x and y astig.</p></body></html> - - - wavefrontFilterDlg diff --git a/wavefrontnulldlg.ui b/wavefrontnulldlg.ui deleted file mode 100644 index 25575557..00000000 --- a/wavefrontnulldlg.ui +++ /dev/null @@ -1,70 +0,0 @@ - - - waveFrontNullDlg - - - - 0 - 0 - 265 - 501 - - - - Wavefront Null Enables - - - <html><head/><body><p>Specifies what to remove from the wavefront. Normally this is the first 8 Zernike terms.</p><p>Except the x and y astig.</p></body></html> - - - - - - - - - Qt::Vertical - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - - - - buttonBox - accepted() - waveFrontNullDlg - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - waveFrontNullDlg - reject() - - - 316 - 260 - - - 286 - 274 - - - - -