SVN commit 684355 by cgilles:
digiKam from trunk : BCG tool is now ported to KDE4 CCMAIL: [hidden email] M +1 -1 CMakeLists.txt M +71 -71 imageeffect_bcg.cpp M +9 -10 imageplugin_core.cpp --- trunk/extragear/graphics/digikam/imageplugins/coreplugin/CMakeLists.txt #684354:684355 @@ -42,7 +42,7 @@ SET(digikamimageplugin_core_PART_SRCS ${liblapack_SRCS} ${CMAKE_SOURCE_DIR}/digikam/imageplugins/coreplugin/imageplugin_core.cpp -# ${CMAKE_SOURCE_DIR}/digikam/imageplugins/coreplugin/imageeffect_bcg.cpp + ${CMAKE_SOURCE_DIR}/digikam/imageplugins/coreplugin/imageeffect_bcg.cpp # ${CMAKE_SOURCE_DIR}/digikam/imageplugins/coreplugin/imageeffect_rgb.cpp # ${CMAKE_SOURCE_DIR}/digikam/imageplugins/coreplugin/imageeffect_blur.cpp # ${CMAKE_SOURCE_DIR}/digikam/imageplugins/coreplugin/imageeffect_autocorrection.cpp --- trunk/extragear/graphics/digikam/imageplugins/coreplugin/imageeffect_bcg.cpp #684354:684355 @@ -25,24 +25,16 @@ // Qt includes. -#include <qcolor.h> -#include <q3groupbox.h> -#include <q3hgroupbox.h> -#include <q3vgroupbox.h> -#include <Q3HButtonGroup> -#include <qlabel.h> - -#include <qlayout.h> -#include <q3frame.h> -#include <qlabel.h> -#include <qpushbutton.h> -#include <qcheckbox.h> -#include <qcombobox.h> - -#include <qtooltip.h> -//Added by qt3to4: -#include <Q3HBoxLayout> -#include <Q3GridLayout> +#include <QColor> +#include <QGroupBox> +#include <QButtonGroup> +#include <QLabel> +#include <QFrame> +#include <QPushButton> +#include <QCheckBox> +#include <QComboBox> +#include <QHBoxLayout> +#include <QGridLayout> #include <QPixmap> // KDE includes. @@ -80,7 +72,7 @@ m_destinationPreviewData = 0L; setHelp("bcgadjusttool.anchor", "digikam"); - m_previewWidget = new Digikam::ImageWidget("bcgadjust Tool Dialog", plainPage(), + m_previewWidget = new Digikam::ImageWidget("bcgadjust Tool Dialog", mainWidget(), i18n("<p>Here you can see the image " "brightness-contrast-gamma adjustments preview. " "You can pick color on image " @@ -89,55 +81,56 @@ // ------------------------------------------------------------- - QWidget *gboxSettings = new QWidget(plainPage()); - Q3GridLayout* gridSettings = new Q3GridLayout( gboxSettings, 9, 4, spacingHint()); + QWidget *gboxSettings = new QWidget(mainWidget()); + QGridLayout* gridSettings = new QGridLayout( gboxSettings ); QLabel *label1 = new QLabel(i18n("Channel:"), gboxSettings); label1->setAlignment ( Qt::AlignRight | Qt::AlignVCenter ); - m_channelCB = new QComboBox( false, gboxSettings ); - m_channelCB->insertItem( i18n("Luminosity") ); - m_channelCB->insertItem( i18n("Red") ); - m_channelCB->insertItem( i18n("Green") ); - m_channelCB->insertItem( i18n("Blue") ); + m_channelCB = new QComboBox( gboxSettings ); + m_channelCB->addItem( i18n("Luminosity") ); + m_channelCB->addItem( i18n("Red") ); + m_channelCB->addItem( i18n("Green") ); + m_channelCB->addItem( i18n("Blue") ); m_channelCB->setWhatsThis( i18n("<p>Select here the histogram channel to display:<p>" - "<b>Luminosity</b>: display the image's luminosity values.<p>" - "<b>Red</b>: display the red image-channel values.<p>" - "<b>Green</b>: display the green image-channel values.<p>" - "<b>Blue</b>: display the blue image-channel values.<p>")); + "<b>Luminosity</b>: display the image's luminosity values.<p>" + "<b>Red</b>: display the red image-channel values.<p>" + "<b>Green</b>: display the green image-channel values.<p>" + "<b>Blue</b>: display the blue image-channel values.<p>")); - m_scaleBG = new Q3HButtonGroup(gboxSettings); - m_scaleBG->setExclusive(true); - m_scaleBG->setFrameShape(QFrame::NoFrame); - m_scaleBG->setInsideMargin( 0 ); - m_scaleBG->setWhatsThis( i18n("<p>Select here the histogram scale.<p>" - "If the image's maximal counts are small, you can use the linear scale.<p>" - "Logarithmic scale can be used when the maximal counts are big; " - "if it is used, all values (small and large) will be visible on the graph.")); + QWidget *scaleBox = new QWidget(gboxSettings); + QHBoxLayout *hlay = new QHBoxLayout(scaleBox); + m_scaleBG = new QButtonGroup(scaleBox); + scaleBox->setWhatsThis(i18n("<p>Select here the histogram scale.<p>" + "If the image's maximal counts are small, you can use the linear scale.<p>" + "Logarithmic scale can be used when the maximal counts are big; " + "if it is used, all values (small and large) will be visible on the graph.")); - QPushButton *linHistoButton = new QPushButton( m_scaleBG ); + QPushButton *linHistoButton = new QPushButton( scaleBox ); linHistoButton->setToolTip( i18n( "<p>Linear" ) ); - m_scaleBG->insert(linHistoButton, Digikam::HistogramWidget::LinScaleHistogram); - KGlobal::dirs()->addResourceType("histogram-lin", KGlobal::dirs()->kde_default("data") + "digikam/data"); - QString directory = KGlobal::dirs()->findResourceDir("histogram-lin", "histogram-lin.png"); - linHistoButton->setPixmap( QPixmap( directory + "histogram-lin.png" ) ); - linHistoButton->setToggleButton(true); + linHistoButton->setIcon(QPixmap(KStandardDirs::locate("data", "digikam/data/histogram-lin.png"))); + linHistoButton->setCheckable(true); + m_scaleBG->addButton(linHistoButton, Digikam::HistogramWidget::LinScaleHistogram); - QPushButton *logHistoButton = new QPushButton( m_scaleBG ); + QPushButton *logHistoButton = new QPushButton( scaleBox ); logHistoButton->setToolTip( i18n( "<p>Logarithmic" ) ); - m_scaleBG->insert(logHistoButton, Digikam::HistogramWidget::LogScaleHistogram); - KGlobal::dirs()->addResourceType("histogram-log", KGlobal::dirs()->kde_default("data") + "digikam/data"); - directory = KGlobal::dirs()->findResourceDir("histogram-log", "histogram-log.png"); - logHistoButton->setPixmap( QPixmap( directory + "histogram-log.png" ) ); - logHistoButton->setToggleButton(true); + logHistoButton->setIcon(QPixmap(KStandardDirs::locate("data", "digikam/data/histogram-log.png"))); + logHistoButton->setCheckable(true); + m_scaleBG->addButton(logHistoButton, Digikam::HistogramWidget::LogScaleHistogram); + + hlay->setMargin(0); + hlay->setSpacing(0); + hlay->addWidget(linHistoButton); + hlay->addWidget(logHistoButton); - Q3HBoxLayout* l1 = new Q3HBoxLayout(); + m_scaleBG->setExclusive(true); + logHistoButton->setChecked(true); + + QHBoxLayout* l1 = new QHBoxLayout(); l1->addWidget(label1); l1->addWidget(m_channelCB); l1->addStretch(10); - l1->addWidget(m_scaleBG); + l1->addWidget(scaleBox); - gridSettings->addMultiCellLayout(l1, 0, 0, 0, 4); - // ------------------------------------------------------------- KVBox *histoBox = new KVBox(gboxSettings); @@ -150,8 +143,6 @@ m_hGradient = new Digikam::ColorGradientWidget( Digikam::ColorGradientWidget::Horizontal, 10, histoBox ); m_hGradient->setColors( QColor( "black" ), QColor( "white" ) ); - gridSettings->addMultiCellWidget(histoBox, 1, 2, 0, 4); - // ------------------------------------------------------------- QLabel *label2 = new QLabel(i18n("Brightness:"), gboxSettings); @@ -159,16 +150,12 @@ m_bInput->setRange(-100, 100, 1, true); m_bInput->setValue(0); m_bInput->setWhatsThis( i18n("<p>Set here the brightness adjustment of the image.")); - gridSettings->addMultiCellWidget(label2, 3, 3, 0, 4); - gridSettings->addMultiCellWidget(m_bInput, 4, 4, 0, 4); QLabel *label3 = new QLabel(i18n("Contrast:"), gboxSettings); m_cInput = new KIntNumInput(gboxSettings); m_cInput->setRange(-100, 100, 1, true); m_cInput->setValue(0); m_cInput->setWhatsThis( i18n("<p>Set here the contrast adjustment of the image.")); - gridSettings->addMultiCellWidget(label3, 5, 5, 0, 4); - gridSettings->addMultiCellWidget(m_cInput, 6, 6, 0, 4); QLabel *label4 = new QLabel(i18n("Gamma:"), gboxSettings); m_gInput = new KDoubleNumInput(gboxSettings); @@ -176,10 +163,21 @@ m_gInput->setRange(0.1, 3.0, 0.01, true); m_gInput->setValue(1.0); m_gInput->setWhatsThis( i18n("<p>Set here the gamma adjustment of the image.")); + + // ------------------------------------------------------------- + + gridSettings->addMultiCellLayout(l1, 0, 0, 0, 4); + gridSettings->addMultiCellWidget(histoBox, 1, 2, 0, 4); + gridSettings->addMultiCellWidget(label2, 3, 3, 0, 4); + gridSettings->addMultiCellWidget(m_bInput, 4, 4, 0, 4); + gridSettings->addMultiCellWidget(label3, 5, 5, 0, 4); + gridSettings->addMultiCellWidget(m_cInput, 6, 6, 0, 4); gridSettings->addMultiCellWidget(label4, 7, 7, 0, 4); gridSettings->addMultiCellWidget(m_gInput, 8, 8, 0, 4); + gridSettings->setRowStretch(9, 10); + gridSettings->setMargin(spacingHint()); + gridSettings->setSpacing(spacingHint()); - gridSettings->setRowStretch(9, 10); setUserAreaWidget(gboxSettings); // ------------------------------------------------------------- @@ -187,7 +185,7 @@ connect(m_channelCB, SIGNAL(activated(int)), this, SLOT(slotChannelChanged(int))); - connect(m_scaleBG, SIGNAL(released(int)), + connect(m_scaleBG, SIGNAL(buttonReleased(int)), this, SLOT(slotScaleChanged(int))); connect(m_previewWidget, SIGNAL(spotPositionChangedFromTarget( const Digikam::DColor &, const QPoint & )), @@ -246,13 +244,13 @@ break; } - m_histogramWidget->repaint(false); + m_histogramWidget->repaint(); } void ImageEffect_BCG::slotScaleChanged(int scale) { m_histogramWidget->m_scaleType = scale; - m_histogramWidget->repaint(false); + m_histogramWidget->repaint(); } void ImageEffect_BCG::slotColorSelectedFromTarget( const Digikam::DColor &color ) @@ -264,21 +262,24 @@ { KSharedConfig::Ptr config = KGlobal::config(); KConfigGroup group = config->group("bcgadjust Tool Dialog"); - m_channelCB->setCurrentItem(group.readEntry("Histogram Channel", 0)); // Luminosity. - m_scaleBG->setButton(group.readEntry("Histogram Scale", Digikam::HistogramWidget::LogScaleHistogram)); + + m_channelCB->setCurrentIndex(group.readEntry("Histogram Channel", 0)); // Luminosity. + m_scaleBG->button(group.readEntry("Histogram Scale", + (int)Digikam::HistogramWidget::LogScaleHistogram))->setChecked(true); + m_bInput->setValue(group.readEntry("BrightnessAjustment", 0)); m_cInput->setValue(group.readEntry("ContrastAjustment", 0)); m_gInput->setValue(group.readEntry("GammaAjustment", 1.0)); - slotChannelChanged(m_channelCB->currentItem()); - slotScaleChanged(m_scaleBG->selectedId()); + slotChannelChanged(m_channelCB->currentIndex()); + slotScaleChanged(m_scaleBG->checkedId()); } void ImageEffect_BCG::writeUserSettings() { KSharedConfig::Ptr config = KGlobal::config(); KConfigGroup group = config->group("bcgadjust Tool Dialog"); - group.writeEntry("Histogram Channel", m_channelCB->currentItem()); - group.writeEntry("Histogram Scale", m_scaleBG->selectedId()); + group.writeEntry("Histogram Channel", m_channelCB->currentIndex()); + group.writeEntry("Histogram Scale", m_scaleBG->checkedId()); group.writeEntry("BrightnessAjustment", m_bInput->value()); group.writeEntry("ContrastAjustment", m_cInput->value()); group.writeEntry("GammaAjustment", m_gInput->value()); @@ -353,4 +354,3 @@ } } // NameSpace DigikamImagesPluginCore - --- trunk/extragear/graphics/digikam/imageplugins/coreplugin/imageplugin_core.cpp #684354:684355 @@ -73,11 +73,14 @@ actionCollection(), "implugcore_redeye"); m_redeyeAction->setWhatsThis( i18n( "This filter can be used to correct red eyes in a photo. " "Select a region including the eyes to use this option.") ); +*/ - m_BCGAction = new KAction(i18n("Brightness/Contrast/Gamma..."), "contrast", 0, - this, SLOT(slotBCG()), - actionCollection(), "implugcore_bcg"); + m_BCGAction = new KAction(KIcon("contrast"), i18n("Brightness/Contrast/Gamma..."), this); + actionCollection()->addAction("implugcore_bcg", m_BCGAction ); + connect(m_BCGAction, SIGNAL(triggered(bool) ), + this, SLOT(slotBCG())); +/* m_HSLAction = new KAction(i18n("Hue/Saturation/Lightness..."), "adjusthsl", Qt::CTRL+Qt::Key_U, // NOTE: Photoshop 7 use CTRL+U. this, SLOT(slotHSL()), @@ -97,20 +100,16 @@ m_invertAction = new KAction(KIcon("invertimage"), i18n("Invert"), this); m_invertAction->setShortcut(QKeySequence(Qt::CTRL+Qt::Key_I)); // NOTE: Photoshop 7 use CTRL+I. actionCollection()->addAction("implugcore_invert", m_invertAction ); - connect(m_invertAction, SIGNAL(triggered(bool) ), this, SLOT(slotInvert())); - m_convertTo8Bits = new KAction(KIcon("depth16to8"), i18n("8 bits"), this); actionCollection()->addAction("implugcore_convertto8bits", m_convertTo8Bits ); - connect(m_convertTo8Bits, SIGNAL(triggered(bool) ), this, SLOT(slotConvertTo8Bits())); m_convertTo16Bits = new KAction(KIcon("depth8to16"), i18n("16 bits"), this); actionCollection()->addAction("implugcore_convertto16bits", m_convertTo16Bits ); - connect(m_convertTo16Bits, SIGNAL(triggered(bool) ), this, SLOT(slotConvertTo16Bits())); @@ -153,9 +152,9 @@ m_convertTo8Bits->setEnabled(enable); m_convertTo16Bits->setEnabled(enable); m_invertAction->setEnabled(enable); + m_BCGAction->setEnabled(enable); /* m_redeyeAction->setEnabled(enable); - m_BCGAction->setEnabled(enable); m_HSLAction->setEnabled(enable); m_RGBAction->setEnabled(enable); m_autoCorrectionAction->setEnabled(enable); @@ -224,8 +223,8 @@ void ImagePlugin_Core::slotBCG() { -/* DigikamImagesPluginCore::ImageEffect_BCG dlg(parentWidget()); - dlg.exec();*/ + DigikamImagesPluginCore::ImageEffect_BCG dlg(parentWidget()); + dlg.exec(); } void ImagePlugin_Core::slotBlur() _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
Free forum by Nabble | Edit this page |