libjxl

FORK: libjxl patches used on blog
git clone https://git.neptards.moe/blog/libjxl.git
Log | Files | Refs | Submodules | README | LICENSE

split_image_view.cc (2391B)


      1 // Copyright (c) the JPEG XL Project Authors. All rights reserved.
      2 //
      3 // Use of this source code is governed by a BSD-style
      4 // license that can be found in the LICENSE file.
      5 
      6 #include "tools/comparison_viewer/split_image_view.h"
      7 
      8 #include <utility>
      9 
     10 #include <QLabel>
     11 
     12 #include "tools/comparison_viewer/split_image_renderer.h"
     13 
     14 namespace jpegxl {
     15 namespace tools {
     16 
     17 SplitImageView::SplitImageView(QWidget* const parent) : QWidget(parent) {
     18   ui_.setupUi(this);
     19 
     20   ui_.splitImageRenderer->setRenderingSettings(settings_.renderingSettings());
     21 
     22   connect(ui_.middleWidthSlider, &QSlider::valueChanged,
     23           [this](const int value) {
     24             ui_.middleWidthDisplayLabel->setText(tr("%L1%").arg(value));
     25           });
     26   connect(ui_.middleWidthSlider, &QSlider::valueChanged, ui_.splitImageRenderer,
     27           &SplitImageRenderer::setMiddleWidthPercent);
     28 
     29   connect(ui_.zoomLevelSlider, &QSlider::valueChanged, [this](const int value) {
     30     if (value >= 0) {
     31       ui_.zoomLevelDisplayLabel->setText(tr("&times;%L1").arg(1 << value));
     32       ui_.splitImageRenderer->setZoomLevel(1 << value);
     33     } else {
     34       ui_.zoomLevelDisplayLabel->setText(tr("&times;1/%L1").arg(1 << -value));
     35       ui_.splitImageRenderer->setZoomLevel(1. / (1 << -value));
     36     }
     37   });
     38 
     39   connect(ui_.splitImageRenderer,
     40           &SplitImageRenderer::zoomLevelIncreaseRequested, [this]() {
     41             ui_.zoomLevelSlider->triggerAction(
     42                 QAbstractSlider::SliderSingleStepAdd);
     43           });
     44   connect(ui_.splitImageRenderer,
     45           &SplitImageRenderer::zoomLevelDecreaseRequested, [this]() {
     46             ui_.zoomLevelSlider->triggerAction(
     47                 QAbstractSlider::SliderSingleStepSub);
     48           });
     49 
     50   connect(ui_.splitImageRenderer, &SplitImageRenderer::renderingModeChanged,
     51           this, &SplitImageView::renderingModeChanged);
     52 }
     53 
     54 void SplitImageView::setLeftImage(QImage image) {
     55   ui_.splitImageRenderer->setLeftImage(std::move(image));
     56 }
     57 
     58 void SplitImageView::setRightImage(QImage image) {
     59   ui_.splitImageRenderer->setRightImage(std::move(image));
     60 }
     61 
     62 void SplitImageView::setMiddleImage(QImage image) {
     63   ui_.splitImageRenderer->setMiddleImage(std::move(image));
     64 }
     65 
     66 void SplitImageView::on_settingsButton_clicked() {
     67   if (settings_.exec()) {
     68     ui_.splitImageRenderer->setRenderingSettings(settings_.renderingSettings());
     69   }
     70 }
     71 
     72 }  // namespace tools
     73 }  // namespace jpegxl