From 9dbdb6a88b9969e763075008e8f0fa871f244b5a Mon Sep 17 00:00:00 2001 From: Dale Eason Date: Wed, 14 Jan 2026 19:54:04 -0600 Subject: [PATCH 1/2] added blink compare to ronchi compare --- ronchicomparedialog.cpp | 53 +++++++++++++++++++++++++++++++++++------ ronchicomparedialog.h | 11 +++++++-- 2 files changed, 55 insertions(+), 9 deletions(-) diff --git a/ronchicomparedialog.cpp b/ronchicomparedialog.cpp index 3a8ab367..e5d2c418 100644 --- a/ronchicomparedialog.cpp +++ b/ronchicomparedialog.cpp @@ -19,6 +19,7 @@ RonchiCompareDialog::RonchiCompareDialog(const QImage& img1, const QString& name resize(dlgW, dlgH); // Main layout for the dialog QVBoxLayout* mainLayout = new QVBoxLayout(this); + QHBoxLayout* blinkLayout = new QHBoxLayout(); // 1. Color Legend Labels at the top QHBoxLayout* legendLayout = new QHBoxLayout(); @@ -48,19 +49,29 @@ RonchiCompareDialog::RonchiCompareDialog(const QImage& img1, const QString& name mainLayout->addWidget(m_displayLabel, 1); // 3. Controls Area - mainLayout->addWidget(new QLabel(tr("Blend Ratio (Slide to compare difference):"))); - - QSlider* slider = new QSlider(Qt::Horizontal); - slider->setRange(0, 100); - slider->setValue(50); - mainLayout->addWidget(slider); + mainLayout->addWidget(m_info = new QLabel(tr("Blend Ratio (Slide to compare difference):"))); + m_info->setAlignment(Qt::AlignCenter); + m_info->setStyleSheet("font-weight: bold; font-size: 24px; color: #4CAF50; padding: 5px;"); + m_slider = new QSlider(Qt::Horizontal); + m_slider->setRange(0, 100); + m_slider->setValue(50); + mainLayout->addWidget(m_slider); QPushButton* saveBtn = new QPushButton(tr("Save This Comparison Image")); + QPushButton* blinkBtn = new QPushButton(tr("Blink")); mainLayout->addWidget(saveBtn); + blinkLayout->addSpacerItem( new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Expanding)); + blinkLayout->addWidget(blinkBtn); + blinkLayout->addSpacerItem( new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Expanding)); + mainLayout->addLayout(blinkLayout); + blinkTimer = new QTimer(this); + // Signal/Slot Connections - connect(slider, &QSlider::valueChanged, this, &RonchiCompareDialog::updateOverlay); + connect(m_slider, &QSlider::valueChanged, this, &RonchiCompareDialog::updateOverlay); connect(saveBtn, &QPushButton::clicked, this, &RonchiCompareDialog::onSaveClicked); + connect(blinkBtn, &QPushButton::clicked, this, &RonchiCompareDialog::startBlink); + connect(blinkTimer, &QTimer::timeout, this, &RonchiCompareDialog::blink); // Perform initial render updateOverlay(50); @@ -72,6 +83,34 @@ RonchiCompareDialog::~RonchiCompareDialog() // Destructor implementation to satisfy vtable requirements } +void RonchiCompareDialog::startBlink(){ + if (blinking){ + blinkTimer->stop(); + updateOverlay(50); + blinking = false; + m_slider->show(); + m_info->setText(tr("Blend Ratio (Slide to compare difference):")); + } + else { + blinking = true; + blinkTimer->start(300); + m_slider->hide(); + } +} + +void RonchiCompareDialog::blink(){ + blinkone = !blinkone; + if (blinkone){ + m_displayLabel->setPixmap(QPixmap::fromImage(m_q1)); + m_info->setText(m_baseLabel->text()); + } + else { + m_displayLabel->setPixmap(QPixmap::fromImage(m_q2)); + m_info->setText(m_compLabel->text()); + } + blinkTimer->start(300); +} + cv::Mat RonchiCompareDialog::qImageToMat(const QImage& image) { // Force conversion to 4-channel ARGB to ensure predictable memory layout for OpenCV diff --git a/ronchicomparedialog.h b/ronchicomparedialog.h index c3041ae0..3db8b467 100644 --- a/ronchicomparedialog.h +++ b/ronchicomparedialog.h @@ -6,7 +6,8 @@ #include #include #include - +#include +#include class RonchiCompareDialog : public QDialog { Q_OBJECT @@ -18,6 +19,8 @@ class RonchiCompareDialog : public QDialog { private slots: void updateOverlay(int val); void onSaveClicked(); + void startBlink(); + void blink(); private: cv::Mat qImageToMat(const QImage& image); @@ -25,10 +28,14 @@ private slots: QImage m_q1; QImage m_q2; cv::Mat m_currentMat; - + QSlider *m_slider; QLabel* m_displayLabel; QLabel* m_baseLabel; QLabel* m_compLabel; + QLabel* m_info; + bool blinkone = true; + bool blinking = false; + QTimer *blinkTimer; }; #endif // RONCHICOMPAREDIALOG_H From 2bf27ea6416ab1d287f4798f5894b2deddcac618 Mon Sep 17 00:00:00 2001 From: Dale Eason Date: Wed, 14 Jan 2026 22:12:31 -0600 Subject: [PATCH 2/2] removed debug hide save button during blink --- profileplot.cpp | 2 +- ronchicomparedialog.cpp | 8 +++++--- ronchicomparedialog.h | 1 + 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/profileplot.cpp b/profileplot.cpp index eb61f736..e0f5930c 100644 --- a/profileplot.cpp +++ b/profileplot.cpp @@ -623,7 +623,7 @@ std::vector compute_average_radial_profile( void ProfilePlot::populate() { -qDebug() << "Populate"; + m_plot->detachItems(QwtPlotItem::Rtti_PlotItem); compass->setGeometry(QRect(80,80,70,70)); QString tmp("nanometers"); diff --git a/ronchicomparedialog.cpp b/ronchicomparedialog.cpp index e5d2c418..b0b6b948 100644 --- a/ronchicomparedialog.cpp +++ b/ronchicomparedialog.cpp @@ -57,9 +57,9 @@ RonchiCompareDialog::RonchiCompareDialog(const QImage& img1, const QString& name m_slider->setValue(50); mainLayout->addWidget(m_slider); - QPushButton* saveBtn = new QPushButton(tr("Save This Comparison Image")); + m_saveBtn = new QPushButton(tr("Save This Comparison Image")); QPushButton* blinkBtn = new QPushButton(tr("Blink")); - mainLayout->addWidget(saveBtn); + mainLayout->addWidget(m_saveBtn); blinkLayout->addSpacerItem( new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Expanding)); blinkLayout->addWidget(blinkBtn); @@ -69,7 +69,7 @@ RonchiCompareDialog::RonchiCompareDialog(const QImage& img1, const QString& name // Signal/Slot Connections connect(m_slider, &QSlider::valueChanged, this, &RonchiCompareDialog::updateOverlay); - connect(saveBtn, &QPushButton::clicked, this, &RonchiCompareDialog::onSaveClicked); + connect(m_saveBtn, &QPushButton::clicked, this, &RonchiCompareDialog::onSaveClicked); connect(blinkBtn, &QPushButton::clicked, this, &RonchiCompareDialog::startBlink); connect(blinkTimer, &QTimer::timeout, this, &RonchiCompareDialog::blink); @@ -89,12 +89,14 @@ void RonchiCompareDialog::startBlink(){ updateOverlay(50); blinking = false; m_slider->show(); + m_saveBtn->show(); m_info->setText(tr("Blend Ratio (Slide to compare difference):")); } else { blinking = true; blinkTimer->start(300); m_slider->hide(); + m_saveBtn->hide(); } } diff --git a/ronchicomparedialog.h b/ronchicomparedialog.h index 3db8b467..5dc11a3d 100644 --- a/ronchicomparedialog.h +++ b/ronchicomparedialog.h @@ -36,6 +36,7 @@ private slots: bool blinkone = true; bool blinking = false; QTimer *blinkTimer; + QPushButton* m_saveBtn; }; #endif // RONCHICOMPAREDIALOG_H