20#include <tqcombobox.h>
23#include <tqwidgetstack.h>
24#include <tqcheckbox.h>
27#include <kimageeffect.h>
30#include <kcolorbutton.h>
32#include "KPrImageEffectDia.h"
34KPrImageEffectDia::KPrImageEffectDia(TQWidget * parent,
const char * name):
35 KDialogBase(parent, name, true, i18n(
"Image Effect"), Ok|Cancel, Ok)
40 m_param1 = TQVariant();
41 m_param2 = TQVariant();
42 m_param3 = TQVariant();
44 base =
new EffectBrowserBase(
this,
"effect_base");
50 connect((TQWidget *)base->m_effectCombo, TQ_SIGNAL(activated(
int)),
51 this, TQ_SLOT(effectChanged(
int)));
53 connect(
this, TQ_SIGNAL(okClicked()),
54 this, TQ_SLOT(okClicked()));
57KPrImageEffectDia::~KPrImageEffectDia()
62void KPrImageEffectDia::effectChanged(
int eff)
64 TQImage _tmpImage = m_origpix.convertToImage();
67 m_param1 = TQVariant();
68 m_param2 = TQVariant();
69 m_param3 = TQVariant();
71 m_effect =
static_cast<ImageEffect
>(eff);
74 case IE_CHANNEL_INTENSITY: {
75 m_param1 = TQVariant(base->chanInt_value->value());
76 m_param2 = TQVariant(base->chanInt_component->currentItem());
77 _tmpImage = KImageEffect::channelIntensity(_tmpImage, m_param1.toDouble()/100.0,
78 static_cast<KImageEffect::RGBComponent
>(m_param2.toInt()));
82 m_param1 = TQVariant(base->fade_value->value());
83 m_param2 = TQVariant(base->fade_color->color());
84 _tmpImage = KImageEffect::fade(_tmpImage, m_param1.toDouble(), m_param2.toColor());
88 m_param1 = TQVariant(base->flatten_color1->color());
89 m_param2 = TQVariant(base->flatten_color2->color());
90 _tmpImage = KImageEffect::flatten(_tmpImage, m_param1.toColor(), m_param2.toColor());
94 m_param1 = TQVariant(base->intensity_value->value());
95 _tmpImage = KImageEffect::intensity(_tmpImage, m_param1.toDouble()/100.0);
99 m_param1 = TQVariant(base->desaturate_value->value());
100 _tmpImage = KImageEffect::desaturate(_tmpImage, m_param1.toDouble());
104 m_param1 = TQVariant(base->contrast_value->value());
105 _tmpImage = KImageEffect::contrast(_tmpImage, m_param1.toInt());
109 KImageEffect::normalize(_tmpImage);
113 KImageEffect::equalize(_tmpImage);
117 m_param1 = TQVariant(base->threshold_value->value());
118 KImageEffect::threshold(_tmpImage, m_param1.toInt());
122 m_param1 = TQVariant(base->solarize_value->value());
123 KImageEffect::solarize(_tmpImage, m_param1.toDouble());
127 _tmpImage = KImageEffect::emboss(_tmpImage);
131 _tmpImage = KImageEffect::despeckle(_tmpImage);
135 m_param1 = TQVariant(base->charcoal_value->value());
136 _tmpImage = KImageEffect::charcoal(_tmpImage, m_param1.toDouble());
140 m_param1 = TQVariant(base->noise_type->currentItem());
141 _tmpImage = KImageEffect::addNoise(_tmpImage,
static_cast<KImageEffect::NoiseType
>(m_param1.toInt()));
145 m_param1 = TQVariant(base->blur_value->value());
146 _tmpImage = KImageEffect::blur(_tmpImage, m_param1.toDouble());
150 m_param1 = TQVariant(base->edge_value->value());
151 _tmpImage = KImageEffect::edge(_tmpImage, m_param1.toDouble());
155 m_param1 = TQVariant(base->implode_value->value());
156 _tmpImage = KImageEffect::implode(_tmpImage, m_param1.toDouble());
160 m_param1 = TQVariant(base->oilPaint_radius->value());
161 _tmpImage = KImageEffect::oilPaint(_tmpImage, m_param1.toInt());
165 m_param1 = TQVariant(base->sharpen_value->value());
166 _tmpImage = KImageEffect::sharpen(_tmpImage, m_param1.toDouble());
170 m_param1 = TQVariant(base->spread_value->value());
171 _tmpImage = KImageEffect::spread(_tmpImage, m_param1.toInt());
175 m_param1 = TQVariant(base->shade_color->isChecked());
176 m_param2 = TQVariant(base->shade_azimuth->value());
177 m_param3 = TQVariant(base->shade_elevation->value());
178 _tmpImage = KImageEffect::shade(_tmpImage, m_param1.toBool(), m_param2.toDouble(), m_param3.toDouble());
182 m_param1 = TQVariant(base->swirl_value->value());
183 _tmpImage = KImageEffect::swirl(_tmpImage, m_param1.toDouble());
187 m_param1 = TQVariant(base->wave_amplitude->value());
188 m_param2 = TQVariant(base->wave_length->value());
189 _tmpImage = KImageEffect::wave(_tmpImage, m_param1.toDouble(), m_param2.toDouble());
197 m_pix.convertFromImage(_tmpImage);
202void KPrImageEffectDia::okClicked()
208void KPrImageEffectDia::setPixmap(TQPixmap pix)
216void KPrImageEffectDia::updatePreview()
218 base->m_previewLabel->setPixmap(m_pix);
219 base->m_previewLabel->repaint(
false);
222void KPrImageEffectDia::setEffect(ImageEffect eff, TQVariant p1, TQVariant p2, TQVariant p3)
230 case IE_CHANNEL_INTENSITY: {
231 base->chanInt_value->setValue(m_param1.toInt());
232 base->chanInt_component->setCurrentItem(m_param2.toInt());
236 base->fade_value->setValue(m_param1.toDouble());
237 base->fade_color->setColor(m_param2.toColor());
241 base->flatten_color1->setColor(m_param1.toColor());
242 base->flatten_color2->setColor(m_param2.toColor());
246 base->intensity_value->setValue(m_param1.toInt());
249 case IE_DESATURATE: {
250 base->desaturate_value->setValue(m_param1.toDouble());
254 base->contrast_value->setValue(m_param1.toInt());
258 base->threshold_value->setValue(m_param1.toInt());
262 base->solarize_value->setValue(m_param1.toDouble());
266 base->charcoal_value->setValue(m_param1.toDouble());
270 base->noise_type->setCurrentItem(m_param1.toInt());
274 base->blur_value->setValue(m_param1.toDouble());
278 base->edge_value->setValue(m_param1.toDouble());
282 base->implode_value->setValue(m_param1.toDouble());
286 base->oilPaint_radius->setValue(m_param1.toInt());
290 base->sharpen_value->setValue(m_param1.toDouble());
294 base->spread_value->setValue(m_param1.toInt());
298 base->shade_color->setChecked(m_param1.toBool());
299 base->shade_azimuth->setValue(m_param2.toDouble());
300 base->shade_elevation->setValue(m_param3.toDouble());
304 base->swirl_value->setValue(m_param1.toDouble());
308 base->wave_amplitude->setValue(m_param1.toDouble());
309 base->wave_length->setValue(m_param2.toDouble());
324 base->m_effectCombo->setCurrentItem(
static_cast<int>(m_effect));
325 base->m_widgetStack->raiseWidget(
static_cast<int>(m_effect));
328void KPrImageEffectDia::showEvent(TQShowEvent * e)
330 KDialogBase::showEvent(e);
331 effectChanged((
int)m_effect);
334void KPrImageEffectDia::setupSignals()
336 connect((TQWidget *)base->chanInt_value, TQ_SIGNAL(valueChanged(
int)),
337 this, TQ_SLOT(effectParamChanged()));
338 connect((TQWidget *)base->chanInt_component, TQ_SIGNAL(activated(
int)),
339 this, TQ_SLOT(effectParamChanged()));
341 connect((TQWidget *)base->fade_value, TQ_SIGNAL(valueChanged(
double)),
342 this, TQ_SLOT(effectParamChanged()));
343 connect((TQWidget *)base->fade_color, TQ_SIGNAL(changed(
const TQColor&)),
344 this, TQ_SLOT(effectParamChanged()));
346 connect((TQWidget *)base->flatten_color1, TQ_SIGNAL(changed(
const TQColor&)),
347 this, TQ_SLOT(effectParamChanged()));
348 connect((TQWidget *)base->flatten_color2, TQ_SIGNAL(changed(
const TQColor&)),
349 this, TQ_SLOT(effectParamChanged()));
351 connect((TQWidget *)base->intensity_value, TQ_SIGNAL(valueChanged(
int)),
352 this, TQ_SLOT(effectParamChanged()));
354 connect((TQWidget *)base->desaturate_value, TQ_SIGNAL(valueChanged(
double)),
355 this, TQ_SLOT(effectParamChanged()));
357 connect((TQWidget *)base->contrast_value, TQ_SIGNAL(valueChanged(
int)),
358 this, TQ_SLOT(effectParamChanged()));
360 connect((TQWidget *)base->threshold_value, TQ_SIGNAL(valueChanged(
int)),
361 this, TQ_SLOT(effectParamChanged()));
363 connect((TQWidget *)base->solarize_value, TQ_SIGNAL(valueChanged(
double)),
364 this, TQ_SLOT(effectParamChanged()));
366 connect((TQWidget *)base->charcoal_value, TQ_SIGNAL(valueChanged(
double)),
367 this, TQ_SLOT(effectParamChanged()));
369 connect((TQWidget *)base->noise_type, TQ_SIGNAL(activated(
int)),
370 this, TQ_SLOT(effectParamChanged()));
372 connect((TQWidget *)base->blur_value, TQ_SIGNAL(valueChanged(
double)),
373 this, TQ_SLOT(effectParamChanged()));
375 connect((TQWidget *)base->edge_value, TQ_SIGNAL(valueChanged(
double)),
376 this, TQ_SLOT(effectParamChanged()));
378 connect((TQWidget *)base->implode_value, TQ_SIGNAL(valueChanged(
double)),
379 this, TQ_SLOT(effectParamChanged()));
381 connect((TQWidget *)base->oilPaint_radius, TQ_SIGNAL(valueChanged(
int)),
382 this, TQ_SLOT(effectParamChanged()));
384 connect((TQWidget *)base->sharpen_value, TQ_SIGNAL(valueChanged(
double)),
385 this, TQ_SLOT(effectParamChanged()));
387 connect((TQWidget *)base->spread_value, TQ_SIGNAL(valueChanged(
int)),
388 this, TQ_SLOT(effectParamChanged()));
390 connect((TQWidget *)base->shade_color, TQ_SIGNAL(toggled(
bool)),
391 this, TQ_SLOT(effectParamChanged()));
392 connect((TQWidget *)base->shade_elevation, TQ_SIGNAL(valueChanged(
double)),
393 this, TQ_SLOT(effectParamChanged()));
394 connect((TQWidget *)base->shade_azimuth, TQ_SIGNAL(valueChanged(
double)),
395 this, TQ_SLOT(effectParamChanged()));
397 connect((TQWidget *)base->swirl_value, TQ_SIGNAL(valueChanged(
double)),
398 this, TQ_SLOT(effectParamChanged()));
400 connect((TQWidget *)base->wave_amplitude, TQ_SIGNAL(valueChanged(
double)),
401 this, TQ_SLOT(effectParamChanged()));
402 connect((TQWidget *)base->wave_length, TQ_SIGNAL(valueChanged(
double)),
403 this, TQ_SLOT(effectParamChanged()));
406void KPrImageEffectDia::effectParamChanged()
408 effectChanged(base->m_effectCombo->currentItem());
411#include "KPrImageEffectDia.moc"