File indexing completed on 2024-05-26 04:32:36
0001 /* 0002 * SPDX-FileCopyrightText: 2014 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "black_white_point_chooser.h" 0008 0009 #include "klocalizedstring.h" 0010 0011 #include "kis_global.h" 0012 0013 #include <QApplication> 0014 #include <QDesktopWidget> 0015 0016 #include <QFormLayout> 0017 #include "kis_slider_spin_box.h" 0018 0019 0020 BlackWhitePointChooser::BlackWhitePointChooser(QWidget* parent) 0021 : QFrame(parent, Qt::Popup) 0022 { 0023 setFrameStyle(QFrame::Panel|QFrame::Raised); 0024 0025 m_black = new KisDoubleSliderSpinBox(this); 0026 m_black->setRange(0.0, 10000, 4); 0027 m_black->setValue(0.0); 0028 m_black->setSingleStep(0.01); 0029 m_black->setMinimumWidth(120); 0030 m_black->setExponentRatio(6.0); 0031 0032 m_white = new KisDoubleSliderSpinBox(this); 0033 m_white->setRange(0.0, 10000, 4); 0034 m_white->setValue(1.0); 0035 m_white->setSingleStep(0.01); 0036 m_white->setMinimumWidth(120); 0037 m_white->setExponentRatio(6.0); 0038 0039 connect(m_black, SIGNAL(valueChanged(qreal)), SIGNAL(sigBlackPointChanged(qreal))); 0040 connect(m_white, SIGNAL(valueChanged(qreal)), SIGNAL(sigWhitePointChanged(qreal))); 0041 0042 QFormLayout *layout = new QFormLayout(this); 0043 layout->addRow(i18n("Black:"), m_black); 0044 layout->addRow(i18n("White:"), m_white); 0045 } 0046 0047 BlackWhitePointChooser::~BlackWhitePointChooser() 0048 { 0049 } 0050 0051 void BlackWhitePointChooser::showPopup(const QPoint &basePoint) 0052 { 0053 show(); 0054 0055 QSize popupSize = size(); 0056 QRect popupRect(basePoint - QPoint(0, popupSize.height()), popupSize); 0057 QRect screenRect = QApplication::desktop()->availableGeometry(this); 0058 0059 popupRect = kisEnsureInRect(popupRect, screenRect); 0060 setGeometry(popupRect); 0061 } 0062 0063 qreal BlackWhitePointChooser::blackPoint() const 0064 { 0065 return m_black->value(); 0066 } 0067 0068 void BlackWhitePointChooser::setBlackPoint(qreal bp) 0069 { 0070 m_black->setValue(bp); 0071 } 0072 0073 qreal BlackWhitePointChooser::whitePoint() const 0074 { 0075 return m_white->value(); 0076 } 0077 0078 void BlackWhitePointChooser::setWhitePoint(qreal wp) 0079 { 0080 m_white->setValue(wp); 0081 }