File indexing completed on 2024-12-01 03:40:13
0001 #include "kiconeffecttest.h" 0002 0003 #include <kiconeffect.h> 0004 #include <kiconloader.h> 0005 0006 #include <KColorButton> 0007 0008 #include <QApplication> 0009 #include <QGridLayout> 0010 #include <QLabel> 0011 #include <QSlider> 0012 0013 KIconEffectTestWidget::KIconEffectTestWidget(QWidget *parent) 0014 : QScrollArea(parent) 0015 { 0016 setAttribute(Qt::WA_DeleteOnClose); 0017 QWidget *frame = new QWidget(this); 0018 setWidget(frame); 0019 setWidgetResizable(true); 0020 QGridLayout *layout = new QGridLayout(frame); 0021 layout->setColumnStretch(1, 1); 0022 0023 img = QImage(KIconLoader::global()->iconPath(QStringLiteral("application-x-cd-image"), -128)); 0024 QImage tmp; 0025 QSlider *slider; 0026 0027 tmp = img; 0028 KIconEffect::toGray(tmp, 0.0); 0029 lbl[0] = new QLabel(frame); 0030 lbl[0]->setPixmap(QPixmap::fromImage(tmp)); 0031 layout->addWidget(lbl[0], 0, 0, 3, 1); 0032 layout->addWidget(new QLabel(QStringLiteral("Grayscale"), frame), 0, 1); 0033 slider = new QSlider(Qt::Horizontal, frame); 0034 slider->setRange(0, 100); 0035 connect(slider, &QAbstractSlider::valueChanged, this, &KIconEffectTestWidget::slotGray); 0036 layout->addWidget(slider, 1, 1); 0037 0038 tmp = img; 0039 KIconEffect::toMonochrome(tmp, Qt::black, Qt::white, 0.0); 0040 lbl[1] = new QLabel(frame); 0041 lbl[1]->setPixmap(QPixmap::fromImage(tmp)); 0042 layout->addWidget(lbl[1], 4, 0, 3, 1); 0043 layout->addWidget(new QLabel(QStringLiteral("Monochrome"), frame), 4, 1); 0044 slider = new QSlider(Qt::Horizontal, frame); 0045 slider->setRange(0, 100); 0046 connect(slider, &QAbstractSlider::valueChanged, this, &KIconEffectTestWidget::slotMonochrome); 0047 layout->addWidget(slider, 5, 1); 0048 0049 tmp = img; 0050 KIconEffect::deSaturate(tmp, 0.0); 0051 lbl[2] = new QLabel(frame); 0052 lbl[2]->setPixmap(QPixmap::fromImage(tmp)); 0053 layout->addWidget(lbl[2], 8, 0, 3, 1); 0054 layout->addWidget(new QLabel(QStringLiteral("Desaturate"), frame), 8, 1); 0055 slider = new QSlider(Qt::Horizontal, frame); 0056 slider->setRange(0, 100); 0057 connect(slider, &QAbstractSlider::valueChanged, this, &KIconEffectTestWidget::slotDesaturate); 0058 layout->addWidget(slider, 9, 1); 0059 0060 tmp = img; 0061 KIconEffect::toGamma(tmp, 0.0); 0062 lbl[3] = new QLabel(frame); 0063 lbl[3]->setPixmap(QPixmap::fromImage(tmp)); 0064 layout->addWidget(lbl[3], 12, 0, 3, 1); 0065 layout->addWidget(new QLabel(QStringLiteral("Gamma"), frame), 12, 1); 0066 slider = new QSlider(Qt::Horizontal, frame); 0067 slider->setRange(0, 100); 0068 connect(slider, &QAbstractSlider::valueChanged, this, &KIconEffectTestWidget::slotGamma); 0069 layout->addWidget(slider, 13, 1); 0070 0071 tmp = img; 0072 colorizedColor = Qt::blue; 0073 colorizedValue = 0.0; 0074 KIconEffect::colorize(tmp, colorizedColor, colorizedValue); 0075 lbl[4] = new QLabel(frame); 0076 lbl[4]->setPixmap(QPixmap::fromImage(tmp)); 0077 layout->addWidget(lbl[4], 16, 0, 4, 1); 0078 layout->addWidget(new QLabel(QStringLiteral("Colorize"), frame), 16, 1); 0079 slider = new QSlider(Qt::Horizontal, frame); 0080 slider->setRange(0, 100); 0081 connect(slider, &QAbstractSlider::valueChanged, this, &KIconEffectTestWidget::slotColorizeValue); 0082 layout->addWidget(slider, 17, 1); 0083 KColorButton *btn = new KColorButton(colorizedColor, frame); 0084 connect(btn, &KColorButton::changed, this, &KIconEffectTestWidget::slotColorizeColor); 0085 layout->addWidget(btn, 18, 1); 0086 0087 tmp = img; 0088 KIconEffect::semiTransparent(tmp); 0089 lbl[5] = new QLabel(frame); 0090 lbl[5]->setPixmap(QPixmap::fromImage(tmp)); 0091 layout->addWidget(lbl[5], 20, 0, 3, 1); 0092 layout->addWidget(new QLabel(QStringLiteral("Semitransparent"), frame), 20, 1); 0093 0094 layout->setRowStretch(21, 1); 0095 frame->resize(frame->sizeHint()); 0096 } 0097 0098 void KIconEffectTestWidget::slotGray(int value) 0099 { 0100 QImage tmp(img); 0101 KIconEffect::toGray(tmp, value * 0.01); 0102 lbl[0]->setPixmap(QPixmap::fromImage(tmp)); 0103 } 0104 0105 void KIconEffectTestWidget::slotMonochrome(int value) 0106 { 0107 QImage tmp(img); 0108 KIconEffect::toMonochrome(tmp, Qt::black, Qt::white, value * 0.01); 0109 lbl[1]->setPixmap(QPixmap::fromImage(tmp)); 0110 } 0111 0112 void KIconEffectTestWidget::slotDesaturate(int value) 0113 { 0114 QImage tmp(img); 0115 KIconEffect::deSaturate(tmp, value * 0.01); 0116 lbl[2]->setPixmap(QPixmap::fromImage(tmp)); 0117 } 0118 0119 void KIconEffectTestWidget::slotGamma(int value) 0120 { 0121 QImage tmp(img); 0122 KIconEffect::toGamma(tmp, value * 0.01); 0123 lbl[3]->setPixmap(QPixmap::fromImage(tmp)); 0124 } 0125 0126 void KIconEffectTestWidget::slotColorizeColor(const QColor &c) 0127 { 0128 colorizedColor = c; 0129 QImage tmp(img); 0130 KIconEffect::colorize(tmp, colorizedColor, colorizedValue); 0131 lbl[4]->setPixmap(QPixmap::fromImage(tmp)); 0132 } 0133 0134 void KIconEffectTestWidget::slotColorizeValue(int value) 0135 { 0136 colorizedValue = value * 0.01f; 0137 QImage tmp(img); 0138 KIconEffect::colorize(tmp, colorizedColor, colorizedValue); 0139 lbl[4]->setPixmap(QPixmap::fromImage(tmp)); 0140 } 0141 0142 int main(int argc, char **argv) 0143 { 0144 QApplication app(argc, argv); 0145 KIconEffectTestWidget *w = new KIconEffectTestWidget; 0146 w->show(); 0147 return app.exec(); 0148 } 0149 0150 #include "moc_kiconeffecttest.cpp"