Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion profileplot.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -623,7 +623,7 @@ std::vector<double> 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");
Expand Down
63 changes: 52 additions & 11 deletions ronchicomparedialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -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);

QPushButton* saveBtn = new QPushButton(tr("Save This Comparison Image"));
mainLayout->addWidget(saveBtn);
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);

m_saveBtn = new QPushButton(tr("Save This Comparison Image"));
QPushButton* blinkBtn = new QPushButton(tr("Blink"));
mainLayout->addWidget(m_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(saveBtn, &QPushButton::clicked, this, &RonchiCompareDialog::onSaveClicked);
connect(m_slider, &QSlider::valueChanged, this, &RonchiCompareDialog::updateOverlay);
connect(m_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);
Expand All @@ -72,6 +83,36 @@ RonchiCompareDialog::~RonchiCompareDialog()
// Destructor implementation to satisfy vtable requirements
}

void RonchiCompareDialog::startBlink(){
if (blinking){
blinkTimer->stop();
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();
}
}

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
Expand Down
12 changes: 10 additions & 2 deletions ronchicomparedialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
#include <QLabel>
#include <QSlider>
#include <opencv2/opencv.hpp>

#include <QTimer>
#include <QSlider>
class RonchiCompareDialog : public QDialog {
Q_OBJECT

Expand All @@ -18,17 +19,24 @@ class RonchiCompareDialog : public QDialog {
private slots:
void updateOverlay(int val);
void onSaveClicked();
void startBlink();
void blink();

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

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;
QPushButton* m_saveBtn;
};

#endif // RONCHICOMPAREDIALOG_H
Loading