// public override [base QWidget] void kpTransformPreviewDialog::setUpdatesEnabled (bool enable) { QDialog::setUpdatesEnabled (enable); if (enable) slotUpdateWithWaitCursor (); }
// private void kpTransformPreviewDialog::createPreviewGroupBox () { m_previewGroupBox = new QGroupBox (i18n ("Preview"), mainWidget ()); m_previewPixmapLabel = new kpResizeSignallingLabel (m_previewGroupBox); m_previewPixmapLabel->setMinimumSize (150, 110); connect (m_previewPixmapLabel, SIGNAL (resized ()), this, SLOT (updatePreview ())); QPushButton *updatePushButton = new QPushButton (i18n ("&Update"), m_previewGroupBox); connect (updatePushButton, SIGNAL (clicked ()), this, SLOT (slotUpdateWithWaitCursor ())); QVBoxLayout *previewLayout = new QVBoxLayout (m_previewGroupBox); previewLayout->addWidget (m_previewPixmapLabel, 1/*stretch*/); previewLayout->addWidget (updatePushButton, 0/*stretch*/, Qt::AlignHCenter); }
kpEffectsDialog::kpEffectsDialog (bool actOnSelection, kpMainWindow *parent, const char *name) : kpToolPreviewDialog (kpToolPreviewDialog::Preview, true/*reserve top row*/, QString::null/*caption*/, QString::null/*afterActionText (no Dimensions Group Box)*/, actOnSelection, parent, name), m_delayedUpdateTimer (new QTimer (this)), m_effectsComboBox (0), m_settingsGroupBox (0), m_settingsLayout (0), m_colorEffectWidget (0) { #if DEBUG_KP_EFFECTS_DIALOG kdDebug () << "kpEffectsDialog::kpEffectsDialog()" << endl; #endif if (actOnSelection) setCaption (i18n ("More Image Effects (Selection)")); else setCaption (i18n ("More Image Effects")); connect (m_delayedUpdateTimer, SIGNAL (timeout ()), this, SLOT (slotUpdateWithWaitCursor ())); QHBox *effectContainer = new QHBox (mainWidget ()); effectContainer->setSpacing (spacingHint () * 4 /*need more space for QGroupBox titles*/); effectContainer->setMargin (0); QLabel *label = new QLabel (i18n ("&Effect:"), effectContainer); m_effectsComboBox = new KComboBox (effectContainer); m_effectsComboBox->insertItem (i18n ("Balance")); m_effectsComboBox->insertItem (i18n ("Emboss")); m_effectsComboBox->insertItem (i18n ("Flatten")); m_effectsComboBox->insertItem (i18n ("Invert")); m_effectsComboBox->insertItem (i18n ("Reduce Colors")); m_effectsComboBox->insertItem (i18n ("Soften & Sharpen")); label->setBuddy (m_effectsComboBox); effectContainer->setStretchFactor (m_effectsComboBox, 1); addCustomWidgetToFront (effectContainer); m_settingsGroupBox = new QGroupBox (mainWidget ()); m_settingsLayout = new QVBoxLayout (m_settingsGroupBox, marginHint () * 2, spacingHint ()); addCustomWidgetToBack (m_settingsGroupBox); connect (m_effectsComboBox, SIGNAL (activated (int)), this, SLOT (selectEffect (int))); selectEffect (0); resize (s_lastWidth, s_lastHeight); #if DEBUG_KP_EFFECTS_DIALOG kdDebug () << "\tabout to slotUpdate()" << endl; #endif slotUpdate (); }
// public slot void kpEffectsDialog::selectEffect (int which) { #if DEBUG_KP_EFFECTS_DIALOG kdDebug () << "kpEffectsDialog::selectEffect(" << which << ")" << endl; #endif if (which < 0 || which >= m_effectsComboBox->count ()) { return; } if (which != m_effectsComboBox->currentItem ()) m_effectsComboBox->setCurrentItem (which); delete m_colorEffectWidget; m_colorEffectWidget = 0; m_settingsGroupBox->setCaption (QString::null); #define CREATE_EFFECT_WIDGET(name) \ m_colorEffectWidget = new name (m_actOnSelection, \ m_mainWindow, \ m_settingsGroupBox) switch (which) { case 0: CREATE_EFFECT_WIDGET (kpEffectBalanceWidget); break; case 1: CREATE_EFFECT_WIDGET (kpEffectEmbossWidget); break; case 2: CREATE_EFFECT_WIDGET (kpEffectFlattenWidget); break; case 3: CREATE_EFFECT_WIDGET (kpEffectInvertWidget); break; case 4: CREATE_EFFECT_WIDGET (kpEffectReduceColorsWidget); break; case 5: CREATE_EFFECT_WIDGET (kpEffectBlurSharpenWidget); break; } #undef CREATE_EFFECT_WIDGET if (m_colorEffectWidget) { #if DEBUG_KP_EFFECTS_DIALOG kdDebug () << "\twidget exists for effect #" << endl; #endif m_settingsGroupBox->setTitle (m_colorEffectWidget->caption ()); // Don't resize the preview when showing the widget: // TODO: actually work QSize previewGroupBoxMinSize = m_previewGroupBox->minimumSize (); QSize previewGroupBoxMaxSize = m_previewGroupBox->maximumSize (); QLayout::ResizeMode previewGroupBoxResizeMode = m_previewGroupBox->layout () ? m_previewGroupBox->layout ()->resizeMode () : QLayout::Auto; #if DEBUG_KP_EFFECTS_DIALOG kdDebug () << "\tpreviewGroupBox: minSize=" << previewGroupBoxMinSize << " maxSize=" << previewGroupBoxMaxSize << " size=" << m_previewGroupBox->size () << " layout=" << m_previewGroupBox->layout () << " resizeMode=" << previewGroupBoxResizeMode << endl; #endif if (m_previewGroupBox->layout ()) m_previewGroupBox->layout ()->setResizeMode (QLayout::FreeResize); #if DEBUG_KP_EFFECTS_DIALOG kdDebug () << "\tafter set resizeMode, previewGroupBox.size=" << m_previewGroupBox->size () << endl; #endif m_previewGroupBox->setFixedSize (m_previewGroupBox->size ()); #if DEBUG_KP_EFFECTS_DIALOG kdDebug () << "\tafter set fixedSize, previewGroupBox.size=" << m_previewGroupBox->size () << endl; #endif // Show widget m_settingsLayout->addWidget (m_colorEffectWidget); #if DEBUG_KP_EFFECTS_DIALOG kdDebug () << "\tafter addWidget, previewGroupBox.size=" << m_previewGroupBox->size () << endl; #endif m_colorEffectWidget->show (); #if DEBUG_KP_EFFECTS_DIALOG kdDebug () << "\tafter addWidget show, previewGroupBox.size=" << m_previewGroupBox->size () << endl; #endif m_previewGroupBox->setMinimumSize (previewGroupBoxMinSize); m_previewGroupBox->setMaximumSize (previewGroupBoxMaxSize); #if DEBUG_KP_EFFECTS_DIALOG kdDebug () << "\tafter set fixedSize, previewGroupBox.size=" << m_previewGroupBox->size () << endl; #endif if (m_previewGroupBox->layout ()) m_previewGroupBox->layout ()->setResizeMode (previewGroupBoxResizeMode); #if DEBUG_KP_EFFECTS_DIALOG kdDebug () << "\tafter restore resizeMode, previewGroupBox.size=" << m_previewGroupBox->size () << endl; #endif connect (m_colorEffectWidget, SIGNAL (settingsChangedNoWaitCursor ()), this, SLOT (slotUpdate ())); connect (m_colorEffectWidget, SIGNAL (settingsChanged ()), this, SLOT (slotUpdateWithWaitCursor ())); connect (m_colorEffectWidget, SIGNAL (settingsChangedDelayed ()), this, SLOT (slotDelayedUpdate ())); slotUpdateWithWaitCursor (); #if DEBUG_KP_EFFECTS_DIALOG kdDebug () << "\tafter slotUpdateWithWaitCursor, previewGroupBox.size=" << m_previewGroupBox->size () << endl; #endif } }