48
50
m_aspectRatio = m_width / m_height;
50
52
m_page = new WdgImageSize(this);
51
54
m_page->layout()->setMargin(0);
52
55
Q_CHECK_PTR(m_page);
53
56
m_page->setObjectName("image_size");
55
58
m_page->intPixelWidth->setValue(width);
59
m_page->intPixelWidth->setFocus();
56
60
m_page->intPixelHeight->setValue(height);
58
62
m_page->cmbFilterType->setIDList(KisFilterStrategyRegistry::instance()->listKeys());
64
68
m_page->doubleResolution->setValue(72.0 * resolution);
66
m_page->cmbInteractor->addItem(i18n("Size in Pixels"));
67
m_page->cmbInteractor->addItem(i18n("Print Size"));
70
m_page->lock_pixel->nominateSiblings(m_page->lock_resolution, m_page->lock_print);
71
m_page->lock_print->nominateSiblings(m_page->lock_pixel, m_page->lock_resolution);
72
m_page->lock_resolution->nominateSiblings(m_page->lock_pixel, m_page->lock_print);
73
m_page->lock_resolution->lock();
69
75
slotAspectChanged(true);
77
83
setMainWidget(m_page);
78
84
resize(m_page->sizeHint());
80
connect(m_page->chkAffectResolution, SIGNAL(toggled(bool)),
81
this, SLOT(slotProtectChanged()));
83
86
connect(m_page->aspectPixels, SIGNAL(keepAspectRatioChanged(bool)),
84
87
this, SLOT(slotAspectChanged(bool)));
86
89
connect(m_page->aspectPhysical, SIGNAL(keepAspectRatioChanged(bool)),
87
90
this, SLOT(slotAspectChanged(bool)));
89
connect(m_page->cmbInteractor, SIGNAL(currentIndexChanged(int)),
92
connect(m_page->lock_pixel, SIGNAL(lockStateChanged(bool)),
93
this, SLOT(slotProtectChanged()));
95
connect(m_page->lock_print, SIGNAL(lockStateChanged(bool)),
96
this, SLOT(slotProtectChanged()));
98
connect(m_page->lock_resolution, SIGNAL(lockStateChanged(bool)),
90
99
this, SLOT(slotProtectChanged()));
92
101
connect(m_page->intPixelWidth, SIGNAL(valueChanged(int)),
278
290
KoUnit unit = KoUnit((KoUnit::Unit)m_page->cmbWidthUnit->currentIndex());
279
291
m_width = unit.fromUserValue(w);
281
if (!m_page->chkAffectResolution->isChecked()) {
293
if (m_page->lock_resolution->isLocked()) { // !m_page->chkAffectResolution->isChecked()) {
282
294
m_page->intPixelWidth->setValue(int(0.5 + m_width*m_page->doubleResolution->value() / 72.0));
295
m_page->doublePercentageWidth->setValue(100.0 * m_page->intPixelWidth->value() / m_origW);
284
297
m_page->doubleResolution->setValue(72*m_page->intPixelWidth->value() / m_width);
285
298
// since we only have one resolution parameter we need to recalculate the physical height
311
325
KoUnit unit = KoUnit((KoUnit::Unit)m_page->cmbHeightUnit->currentIndex());
312
326
m_height = unit.fromUserValue(h);
314
if (!m_page->chkAffectResolution->isChecked()) {
328
if (m_page->lock_resolution->isLocked()) { // !m_page->chkAffectResolution->isChecked()) {
315
329
m_page->intPixelHeight->setValue(int(0.5 + m_height*m_page->doubleResolution->value() / 72.0));
330
m_page->doublePercentageHeight->setValue(100.0 * m_page->intPixelHeight->value() / m_origH);
317
332
m_page->doubleResolution->setValue(72*m_page->intPixelHeight->value() / m_height);
378
void DlgImageSize::slotResolutionChanged(double r)
383
if (m_page->lock_print->isLocked()) {
384
m_page->intPixelHeight->setValue(int(0.5 + m_height*m_page->doubleResolution->value() / 72.0));
385
m_page->doublePercentageHeight->setValue(100.0 * m_page->intPixelHeight->value() / m_origH);
386
m_page->intPixelWidth->setValue(int(0.5 + m_width*m_page->doubleResolution->value() / 72.0));
387
m_page->doublePercentageWidth->setValue(100.0 * m_page->intPixelWidth->value() / m_origW);
389
m_width = 72 * m_page->intPixelWidth->value() / m_page->doubleResolution->value();
390
m_height = 72 * m_page->intPixelHeight->value() / m_page->doubleResolution->value();
392
KoUnit unit = KoUnit((KoUnit::Unit)m_page->cmbWidthUnit->currentIndex());
393
m_page->doublePhysicalWidth->setValue(unit.toUserValue(m_width));
394
m_page->doublePhysicalHeight->setValue(unit.toUserValue(m_height));
362
400
void DlgImageSize::slotProtectChanged()
364
if (m_page->chkAffectResolution->isChecked()) {
365
m_page->intPixelWidth->setEnabled(m_page->cmbInteractor->currentIndex() == 0);
366
m_page->intPixelHeight->setEnabled(m_page->cmbInteractor->currentIndex() == 0);
367
m_page->doublePhysicalWidth->setEnabled(m_page->cmbInteractor->currentIndex() == 1);
368
m_page->doublePhysicalHeight->setEnabled(m_page->cmbInteractor->currentIndex() == 1);
369
m_page->doubleResolution->setEnabled(true);
370
m_page->cmbInteractor->setEnabled(true);
371
m_page->labelInteractor->setEnabled(true);
373
m_page->intPixelWidth->setEnabled(true);
374
m_page->intPixelHeight->setEnabled(true);
375
m_page->doublePhysicalWidth->setEnabled(true);
376
m_page->doublePhysicalHeight->setEnabled(true);
377
m_page->doubleResolution->setEnabled(false);
378
m_page->cmbInteractor->setEnabled(false);
379
m_page->labelInteractor->setEnabled(false);
402
m_page->labelWidth->setEnabled(!m_page->lock_pixel->isLocked());
403
m_page->intPixelWidth->setEnabled(!m_page->lock_pixel->isLocked());
404
m_page->cmbWidthPixelUnit->setEnabled(!m_page->lock_pixel->isLocked());
405
m_page->labelHeight->setEnabled(!m_page->lock_pixel->isLocked());
406
m_page->intPixelHeight->setEnabled(!m_page->lock_pixel->isLocked());
407
m_page->cmbHeightPixelUnit->setEnabled(!m_page->lock_pixel->isLocked());
408
m_page->doublePercentageWidth->setEnabled(!m_page->lock_pixel->isLocked());
409
m_page->doublePercentageHeight->setEnabled(!m_page->lock_pixel->isLocked());
410
m_page->labelFilter->setEnabled(!m_page->lock_pixel->isLocked());
411
m_page->cmbFilterType->setEnabled(!m_page->lock_pixel->isLocked());
412
m_page->aspectPixels->setEnabled(!m_page->lock_pixel->isLocked());
413
m_page->labelPhysicalWidth->setEnabled(!m_page->lock_print->isLocked());
414
m_page->doublePhysicalWidth->setEnabled(!m_page->lock_print->isLocked());
415
m_page->cmbWidthUnit->setEnabled(!m_page->lock_print->isLocked());
416
m_page->labelPhysicalHeight->setEnabled(!m_page->lock_print->isLocked());
417
m_page->doublePhysicalHeight->setEnabled(!m_page->lock_print->isLocked());
418
m_page->cmbHeightUnit->setEnabled(!m_page->lock_print->isLocked());
419
m_page->aspectPhysical->setEnabled(!m_page->lock_pixel->isLocked());
420
m_page->labelResolution->setEnabled(!m_page->lock_resolution->isLocked());
421
m_page->doubleResolution->setEnabled(!m_page->lock_resolution->isLocked());
422
m_page->labelResolutionUnit->setEnabled(!m_page->lock_resolution->isLocked());
383
425
void DlgImageSize::slotAspectChanged(bool keep)