Skip to content

Commit 370984f

Browse files
authored
Merge pull request #334 from githubdoe/DOE/JST/averageProfileOld
added blink compare to ronchi compare
2 parents 5f8fdc3 + 2bf27ea commit 370984f

File tree

3 files changed

+63
-14
lines changed

3 files changed

+63
-14
lines changed

profileplot.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -623,7 +623,7 @@ std::vector<double> compute_average_radial_profile(
623623

624624
void ProfilePlot::populate()
625625
{
626-
qDebug() << "Populate";
626+
627627
m_plot->detachItems(QwtPlotItem::Rtti_PlotItem);
628628
compass->setGeometry(QRect(80,80,70,70));
629629
QString tmp("nanometers");

ronchicomparedialog.cpp

Lines changed: 52 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ RonchiCompareDialog::RonchiCompareDialog(const QImage& img1, const QString& name
1919
resize(dlgW, dlgH);
2020
// Main layout for the dialog
2121
QVBoxLayout* mainLayout = new QVBoxLayout(this);
22+
QHBoxLayout* blinkLayout = new QHBoxLayout();
2223

2324
// 1. Color Legend Labels at the top
2425
QHBoxLayout* legendLayout = new QHBoxLayout();
@@ -48,19 +49,29 @@ RonchiCompareDialog::RonchiCompareDialog(const QImage& img1, const QString& name
4849
mainLayout->addWidget(m_displayLabel, 1);
4950

5051
// 3. Controls Area
51-
mainLayout->addWidget(new QLabel(tr("Blend Ratio (Slide to compare difference):")));
52-
53-
QSlider* slider = new QSlider(Qt::Horizontal);
54-
slider->setRange(0, 100);
55-
slider->setValue(50);
56-
mainLayout->addWidget(slider);
57-
58-
QPushButton* saveBtn = new QPushButton(tr("Save This Comparison Image"));
59-
mainLayout->addWidget(saveBtn);
52+
mainLayout->addWidget(m_info = new QLabel(tr("Blend Ratio (Slide to compare difference):")));
53+
m_info->setAlignment(Qt::AlignCenter);
54+
m_info->setStyleSheet("font-weight: bold; font-size: 24px; color: #4CAF50; padding: 5px;");
55+
m_slider = new QSlider(Qt::Horizontal);
56+
m_slider->setRange(0, 100);
57+
m_slider->setValue(50);
58+
mainLayout->addWidget(m_slider);
59+
60+
m_saveBtn = new QPushButton(tr("Save This Comparison Image"));
61+
QPushButton* blinkBtn = new QPushButton(tr("Blink"));
62+
mainLayout->addWidget(m_saveBtn);
63+
64+
blinkLayout->addSpacerItem( new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Expanding));
65+
blinkLayout->addWidget(blinkBtn);
66+
blinkLayout->addSpacerItem( new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Expanding));
67+
mainLayout->addLayout(blinkLayout);
68+
blinkTimer = new QTimer(this);
6069

6170
// Signal/Slot Connections
62-
connect(slider, &QSlider::valueChanged, this, &RonchiCompareDialog::updateOverlay);
63-
connect(saveBtn, &QPushButton::clicked, this, &RonchiCompareDialog::onSaveClicked);
71+
connect(m_slider, &QSlider::valueChanged, this, &RonchiCompareDialog::updateOverlay);
72+
connect(m_saveBtn, &QPushButton::clicked, this, &RonchiCompareDialog::onSaveClicked);
73+
connect(blinkBtn, &QPushButton::clicked, this, &RonchiCompareDialog::startBlink);
74+
connect(blinkTimer, &QTimer::timeout, this, &RonchiCompareDialog::blink);
6475

6576
// Perform initial render
6677
updateOverlay(50);
@@ -72,6 +83,36 @@ RonchiCompareDialog::~RonchiCompareDialog()
7283
// Destructor implementation to satisfy vtable requirements
7384
}
7485

86+
void RonchiCompareDialog::startBlink(){
87+
if (blinking){
88+
blinkTimer->stop();
89+
updateOverlay(50);
90+
blinking = false;
91+
m_slider->show();
92+
m_saveBtn->show();
93+
m_info->setText(tr("Blend Ratio (Slide to compare difference):"));
94+
}
95+
else {
96+
blinking = true;
97+
blinkTimer->start(300);
98+
m_slider->hide();
99+
m_saveBtn->hide();
100+
}
101+
}
102+
103+
void RonchiCompareDialog::blink(){
104+
blinkone = !blinkone;
105+
if (blinkone){
106+
m_displayLabel->setPixmap(QPixmap::fromImage(m_q1));
107+
m_info->setText(m_baseLabel->text());
108+
}
109+
else {
110+
m_displayLabel->setPixmap(QPixmap::fromImage(m_q2));
111+
m_info->setText(m_compLabel->text());
112+
}
113+
blinkTimer->start(300);
114+
}
115+
75116
cv::Mat RonchiCompareDialog::qImageToMat(const QImage& image)
76117
{
77118
// Force conversion to 4-channel ARGB to ensure predictable memory layout for OpenCV

ronchicomparedialog.h

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
#include <QLabel>
77
#include <QSlider>
88
#include <opencv2/opencv.hpp>
9-
9+
#include <QTimer>
10+
#include <QSlider>
1011
class RonchiCompareDialog : public QDialog {
1112
Q_OBJECT
1213

@@ -18,17 +19,24 @@ class RonchiCompareDialog : public QDialog {
1819
private slots:
1920
void updateOverlay(int val);
2021
void onSaveClicked();
22+
void startBlink();
23+
void blink();
2124

2225
private:
2326
cv::Mat qImageToMat(const QImage& image);
2427

2528
QImage m_q1;
2629
QImage m_q2;
2730
cv::Mat m_currentMat;
28-
31+
QSlider *m_slider;
2932
QLabel* m_displayLabel;
3033
QLabel* m_baseLabel;
3134
QLabel* m_compLabel;
35+
QLabel* m_info;
36+
bool blinkone = true;
37+
bool blinking = false;
38+
QTimer *blinkTimer;
39+
QPushButton* m_saveBtn;
3240
};
3341

3442
#endif // RONCHICOMPAREDIALOG_H

0 commit comments

Comments
 (0)