101 lines
3.1 KiB
C++
101 lines
3.1 KiB
C++
#include "widget_imgproc_sidebar.h"
|
|
#include "ui_widget_imgproc_sidebar.h"
|
|
#include <QPalette>
|
|
#include <QPainter>
|
|
#include "app_cfg.h"
|
|
|
|
Widget_Imgproc_SideBar::Widget_Imgproc_SideBar(QWidget *parent) :
|
|
QWidget(parent),
|
|
ui(new Ui::Widget_Imgproc_SideBar)
|
|
, m_curImage(NULL)
|
|
{
|
|
ui->setupUi(this);
|
|
ui->pbtn_ok->setEnabled(false);
|
|
|
|
connect(ui->slider_brightness, SIGNAL(valueChanged(int)), ui->spin_brightness, SLOT(setValue(int)));
|
|
connect(ui->slider_contrast, SIGNAL(valueChanged(int)), ui->spin_contrast, SLOT(setValue(int)));
|
|
}
|
|
|
|
Widget_Imgproc_SideBar::~Widget_Imgproc_SideBar()
|
|
{
|
|
if (m_curImage != nullptr)
|
|
{
|
|
HGBase_DestroyImage(m_curImage);
|
|
}
|
|
delete ui;
|
|
}
|
|
|
|
void Widget_Imgproc_SideBar::setImage(HGImage image)
|
|
{
|
|
HGBase_DestroyImage(m_curImage);
|
|
HGBase_CloneImage(image, 0, 0, &m_curImage);
|
|
on_pbtn_restoreDefault_clicked();
|
|
}
|
|
|
|
void Widget_Imgproc_SideBar::enableUI(bool enable)
|
|
{
|
|
ui->pbtn_ok->setEnabled(enable);
|
|
}
|
|
|
|
void Widget_Imgproc_SideBar::paintEvent(QPaintEvent *e)
|
|
{
|
|
(void)e;
|
|
QPainter p(this);
|
|
p.fillRect(0, 0, this->width(), this->height(), qRgb(240, 240, 240));
|
|
p.setPen(QColor("gray"));
|
|
p.drawRect(0, 0, width() -1, height() -1);
|
|
}
|
|
|
|
void Widget_Imgproc_SideBar::on_spin_brightness_valueChanged(int arg1)
|
|
{
|
|
ui->slider_brightness->setValue(arg1);
|
|
emit applyToImage(m_curImage, ui->spin_brightness->value(), ui->spin_contrast->value(),
|
|
ui->dspin_gamma->value(), ui->checkBox_enhanceText->isChecked());
|
|
}
|
|
|
|
void Widget_Imgproc_SideBar::on_spin_contrast_valueChanged(int arg1)
|
|
{
|
|
ui->slider_contrast->setValue(arg1);
|
|
emit applyToImage(m_curImage, ui->spin_brightness->value(), ui->spin_contrast->value(),
|
|
ui->dspin_gamma->value(), ui->checkBox_enhanceText->isChecked());
|
|
}
|
|
|
|
void Widget_Imgproc_SideBar::on_dspin_gamma_valueChanged(double arg1)
|
|
{
|
|
ui->slider_gamma->setValue(static_cast<int>(arg1 * 100));
|
|
emit applyToImage(m_curImage, ui->spin_brightness->value(), ui->spin_contrast->value(),
|
|
ui->dspin_gamma->value(), ui->checkBox_enhanceText->isChecked());
|
|
}
|
|
|
|
void Widget_Imgproc_SideBar::on_slider_gamma_valueChanged(int value)
|
|
{
|
|
ui->dspin_gamma->setValue(static_cast<double>(value / 100.0));
|
|
emit applyToImage(m_curImage, ui->spin_brightness->value(), ui->spin_contrast->value(),
|
|
ui->dspin_gamma->value(), ui->checkBox_enhanceText->isChecked());
|
|
}
|
|
|
|
void Widget_Imgproc_SideBar::on_pbtn_restoreDefault_clicked()
|
|
{
|
|
ui->spin_brightness->setValue(0);
|
|
ui->spin_contrast->setValue(0);
|
|
ui->dspin_gamma->setValue(1.0);
|
|
ui->checkBox_enhanceText->setChecked(false);
|
|
}
|
|
|
|
void Widget_Imgproc_SideBar::on_pbtn_ok_clicked()
|
|
{
|
|
emit finish(true);
|
|
}
|
|
|
|
void Widget_Imgproc_SideBar::on_pbtn_cancel_clicked()
|
|
{
|
|
on_pbtn_restoreDefault_clicked();
|
|
emit finish(false);
|
|
}
|
|
|
|
void Widget_Imgproc_SideBar::on_checkBox_enhanceText_toggled(bool checked)
|
|
{
|
|
emit applyToImage(m_curImage, ui->spin_brightness->value(), ui->spin_contrast->value(),
|
|
ui->dspin_gamma->value(), ui->checkBox_enhanceText->isChecked());
|
|
}
|