[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [digikam] utilities/cameragui: move camera advanced settings widget
From:       Gilles Caulier <caulier.gilles () gmail ! com>
Date:       2011-08-12 11:41:45
Message-ID: 20110812114145.711FEA60A4 () git ! kde ! org
[Download RAW message or body]

Git commit b792081abd2eb163867238b34d83e2dc90204e65 by Gilles Caulier.
Committed on 12/08/2011 at 13:40.
Pushed by cgilles into branch 'master'.

move camera advanced settings widget implementation to a dedicated class

M  +1    -0    utilities/cameragui/CMakeLists.txt
M  +3    -23   utilities/cameragui/main/cameraui_p.h
M  +21   -95   utilities/cameragui/main/cameraui.cpp
M  +3    -5    utilities/cameragui/main/cameraui.h
M  +5    -4    utilities/cameragui/views/cameraiconview.cpp
A  +74   -0    utilities/cameragui/widgets/advancedsettings.h     [License: GPL \
(v2+)] A  +196  -0    utilities/cameragui/widgets/advancedsettings.cpp     [License: \
GPL (v2+)]

http://commits.kde.org/digikam/b792081abd2eb163867238b34d83e2dc90204e65

diff --git a/utilities/cameragui/CMakeLists.txt b/utilities/cameragui/CMakeLists.txt
index e414d1e..8146f17 100644
--- a/utilities/cameragui/CMakeLists.txt
+++ b/utilities/cameragui/CMakeLists.txt
@@ -20,6 +20,7 @@ SET(libcameragui_SRCS
     ${CMAKE_CURRENT_SOURCE_DIR}/widgets/freespacewidget.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/widgets/renamecustomizer.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/widgets/albumcustomizer.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/widgets/advancedsettings.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/main/cameraui.cpp
 
     ${CMAKE_CURRENT_SOURCE_DIR}/q3support/icongroupitem.cpp
diff --git a/utilities/cameragui/main/cameraui.cpp \
b/utilities/cameragui/main/cameraui.cpp index 6935766..63f32bf 100644
--- a/utilities/cameragui/main/cameraui.cpp
+++ b/utilities/cameragui/main/cameraui.cpp
@@ -97,7 +97,6 @@
 #include "thumbnailsize.h"
 #include "sidebar.h"
 #include "thememanager.h"
-#include "templateselector.h"
 #include "setup.h"
 #include "downloadsettingscontainer.h"
 #include "downloadhistory.h"
@@ -247,48 +246,8 @@ void CameraUI::setupUserArea()
 
     // -- On the Fly options ---------------------------------------------------
 
-    QWidget* onFlyBox      = new QWidget(d->advBox);
-    QVBoxLayout* onFlyVlay = new QVBoxLayout(onFlyBox);
-    d->templateSelector    = new TemplateSelector(onFlyBox);
-    d->fixDateTimeCheck    = new QCheckBox(i18n("Fix internal date && time"), \
                onFlyBox);
-    d->dateTimeEdit        = new DDateTimeEdit(onFlyBox, "datepicker");
-    d->autoRotateCheck     = new QCheckBox(i18n("Auto-rotate/flip image"), \
                onFlyBox);
-    d->convertJpegCheck    = new QCheckBox(i18n("Convert to lossless file format"), \
                onFlyBox);
-    KHBox* hbox2           = new KHBox(onFlyBox);
-    d->formatLabel         = new QLabel(i18n("New image format:"), hbox2);
-    d->losslessFormat      = new KComboBox(hbox2);
-    d->losslessFormat->insertItem(0, "PNG");
-    d->losslessFormat->insertItem(1, "TIF");
-    d->losslessFormat->insertItem(2, "JP2");
-    d->losslessFormat->insertItem(3, "PGF");
-
-    onFlyVlay->addWidget(d->templateSelector);
-    onFlyVlay->addWidget(d->fixDateTimeCheck);
-    onFlyVlay->addWidget(d->dateTimeEdit);
-    onFlyVlay->addWidget(d->autoRotateCheck);
-    onFlyVlay->addWidget(d->convertJpegCheck);
-    onFlyVlay->addWidget(hbox2);
-    onFlyVlay->addStretch();
-    onFlyVlay->setMargin(KDialog::spacingHint());
-    onFlyVlay->setSpacing(KDialog::spacingHint());
-
-    onFlyBox->setWhatsThis( i18n("Set here all options to fix/transform JPEG files \
                automatically "
-                                 "as they are downloaded."));
-    d->autoRotateCheck->setWhatsThis( i18n("Enable this option if you want images \
                automatically "
-                                           "rotated or flipped using EXIF \
                information provided by the camera."));
-    d->templateSelector->setWhatsThis( i18n("Select here which metadata template you \
                want to apply "
-                                            "to images."));
-    d->fixDateTimeCheck->setWhatsThis( i18n("Enable this option to set date and time \
                metadata "
-                                            "tags to the right values if your camera \
                does not set "
-                                            "these tags correctly when pictures are \
                taken. The values will "
-                                            "be saved in the DateTimeDigitized and \
                DateTimeCreated EXIF, XMP, and IPTC tags."));
-    d->convertJpegCheck->setWhatsThis( i18n("Enable this option to automatically \
                convert "
-                                            "all JPEG files to a lossless image \
                format. <b>Note:</b> Image conversion can take a "
-                                            "while on a slow computer."));
-    d->losslessFormat->setWhatsThis( i18n("Select your preferred lossless image file \
                format to "
-                                          "convert to. <b>Note:</b> All metadata \
                will be preserved during the conversion."));
-
-    d->advBox->addItem(onFlyBox, SmallIcon("system-run"), i18n("On the Fly \
Operations (JPEG only)"), +    d->advancedSettings = new AdvancedSettings(d->advBox);
+    d->advBox->addItem(d->advancedSettings, SmallIcon("system-run"), i18n("On the \
Fly Operations (JPEG only)"),  QString("OnFlyBox"), true);
     d->advBox->addStretch();
 
@@ -528,21 +487,9 @@ void CameraUI::setupActions()
 
 void CameraUI::setupConnections()
 {
-    connect(d->convertJpegCheck, SIGNAL(toggled(bool)),
-            d->losslessFormat, SLOT(setEnabled(bool)));
-
-    connect(d->convertJpegCheck, SIGNAL(toggled(bool)),
-            d->formatLabel, SLOT(setEnabled(bool)));
-
-    connect(d->convertJpegCheck, SIGNAL(toggled(bool)),
-            d->view, SLOT(slotDownloadNameChanged()));
-
-    connect(d->losslessFormat, SIGNAL(activated(int)),
+    connect(d->advancedSettings, SIGNAL(signalDownloadNameChanged()),
             d->view, SLOT(slotDownloadNameChanged()));
 
-    connect(d->fixDateTimeCheck, SIGNAL(toggled(bool)),
-            d->dateTimeEdit, SLOT(setEnabled(bool)));
-
     connect(d->historyView, SIGNAL(signalEntryClicked(QVariant)),
             this, SLOT(slotHistoryEntryClicked(QVariant)));
 
@@ -712,15 +659,11 @@ void CameraUI::readSettings()
     KSharedConfig::Ptr config = KGlobal::config();
     KConfigGroup group        = config->group(d->configGroupName);
 
-    d->autoRotateCheck->setChecked(group.readEntry("AutoRotate",             true));
-    d->fixDateTimeCheck->setChecked(group.readEntry("FixDateTime",           \
                false));
-    d->templateSelector->setTemplateIndex(group.readEntry("Template",        0));
-    d->convertJpegCheck->setChecked(group.readEntry("ConvertJpeg",           \
                false));
-    d->losslessFormat->setCurrentIndex(group.readEntry("LossLessFormat",     0));   \
                // PNG by default
-    d->view->setThumbnailSize(group.readEntry("ThumbnailSize",               \
                (int)ThumbnailSize::Large));
-    d->showLogAction->setChecked(group.readEntry("ShowLog",                  \
                false));
-    d->lastPhotoFirstAction->setChecked(group.readEntry("LastPhotoFirst",    true));
+    d->view->setThumbnailSize(group.readEntry("ThumbnailSize",            \
(int)ThumbnailSize::Large)); +    \
d->showLogAction->setChecked(group.readEntry("ShowLog",               false)); +    \
d->lastPhotoFirstAction->setChecked(group.readEntry("LastPhotoFirst", true));  \
d->albumCustomizer->readSettings(group); +    \
d->advancedSettings->readSettings(group);  
 #if KDCRAW_VERSION >= 0x020000
     d->advBox->readSettings(group);
@@ -730,9 +673,6 @@ void CameraUI::readSettings()
 
     d->splitter->restoreState(group);
 
-    d->dateTimeEdit->setEnabled(d->fixDateTimeCheck->isChecked());
-    d->losslessFormat->setEnabled(convertLosslessJpegFiles());
-    d->formatLabel->setEnabled(convertLosslessJpegFiles());
     slotShowLog();
 }
 
@@ -741,15 +681,11 @@ void CameraUI::saveSettings()
     KSharedConfig::Ptr config = KGlobal::config();
     KConfigGroup group        = config->group(d->configGroupName);
 
-    group.writeEntry("AutoRotate",          d->autoRotateCheck->isChecked());
-    group.writeEntry("FixDateTime",         d->fixDateTimeCheck->isChecked());
-    group.writeEntry("Template",            \
                d->templateSelector->getTemplateIndex());
-    group.writeEntry("ConvertJpeg",         convertLosslessJpegFiles());
-    group.writeEntry("LossLessFormat",      d->losslessFormat->currentIndex());
-    group.writeEntry("ThumbnailSize",       d->view->thumbnailSize());
-    group.writeEntry("ShowLog",             d->showLogAction->isChecked());
-    group.writeEntry("LastPhotoFirst",      d->lastPhotoFirstAction->isChecked());
+    group.writeEntry("ThumbnailSize",  d->view->thumbnailSize());
+    group.writeEntry("ShowLog",        d->showLogAction->isChecked());
+    group.writeEntry("LastPhotoFirst", d->lastPhotoFirstAction->isChecked());
     d->albumCustomizer->saveSettings(group);
+    d->advancedSettings->saveSettings(group);
 
 #if KDCRAW_VERSION >= 0x020000
     d->advBox->writeSettings(group);
@@ -777,24 +713,14 @@ bool CameraUI::isClosed() const
     return d->closed;
 }
 
-bool CameraUI::autoRotateJpegFiles() const
-{
-    return d->autoRotateCheck->isChecked();
-}
-
-bool CameraUI::convertLosslessJpegFiles() const
-{
-    return d->convertJpegCheck->isChecked();
-}
-
-QString CameraUI::losslessFormat() const
+QString CameraUI::cameraTitle() const
 {
-    return d->losslessFormat->currentText();
+    return d->cameraTitle;
 }
 
-QString CameraUI::cameraTitle() const
+AdvancedSettings* CameraUI::advancedSettings() const
 {
-    return d->cameraTitle;
+    return d->advancedSettings;
 }
 
 void CameraUI::slotCancelButton()
@@ -1572,12 +1498,12 @@ void CameraUI::slotDownload(bool onlySelected, bool \
deleteAfter, Album* album)  QDateTime dateTime;
     int       total = 0;
 
-    downloadSettings.autoRotate     = d->autoRotateCheck->isChecked();
-    downloadSettings.fixDateTime    = d->fixDateTimeCheck->isChecked();
-    downloadSettings.newDateTime    = d->dateTimeEdit->dateTime();
-    downloadSettings.templateTitle  = \
                d->templateSelector->getTemplate().templateTitle();
-    downloadSettings.convertJpeg    = convertLosslessJpegFiles();
-    downloadSettings.losslessFormat = losslessFormat();
+    downloadSettings.autoRotate     = d->advancedSettings->autoRotateJpegFiles();
+    downloadSettings.fixDateTime    = d->advancedSettings->fixDateTime();
+    downloadSettings.newDateTime    = d->advancedSettings->newDateTime();
+    downloadSettings.templateTitle  = d->advancedSettings->templateTitle();
+    downloadSettings.convertJpeg    = \
d->advancedSettings->convertLosslessJpegFiles(); +    downloadSettings.losslessFormat \
= d->advancedSettings->losslessFormat();  
     // -- Download camera items -------------------------------
     // Since we show camera items in reverse order, downloading need to be done also \
                in reverse order.
diff --git a/utilities/cameragui/main/cameraui.h \
b/utilities/cameragui/main/cameraui.h index 96568f5..1141906 100644
--- a/utilities/cameragui/main/cameraui.h
+++ b/utilities/cameragui/main/cameraui.h
@@ -53,6 +53,7 @@ namespace Digikam
 class Album;
 class CollectionLocation;
 class CameraHistoryUpdater;
+class AdvancedSettings;
 
 class CameraUI : public KXmlGuiWindow
 {
@@ -74,15 +75,12 @@ public:
     bool cameraMkDirSupport() const;
     bool cameraDelDirSupport() const;
 
-    bool autoRotateJpegFiles() const;
     bool chronologicOrder() const;
 
-    /** Get status of JPEG conversion files to lossless format during download.*/
-    bool    convertLosslessJpegFiles() const;
-    QString losslessFormat() const;
-
     QString cameraTitle() const;
 
+    AdvancedSettings* advancedSettings() const;
+
 Q_SIGNALS:
 
     void signalLastDestination(const KUrl&);
diff --git a/utilities/cameragui/main/cameraui_p.h \
b/utilities/cameragui/main/cameraui_p.h index 9ce3c38..92dc027 100644
--- a/utilities/cameragui/main/cameraui_p.h
+++ b/utilities/cameragui/main/cameraui_p.h
@@ -30,12 +30,10 @@
 
 #include <QCheckBox>
 #include <QDateTime>
-#include <QLabel>
 #include <QString>
 
 // KDE includes
 
-#include <kcombobox.h>
 #include <khelpmenu.h>
 #include <kselectaction.h>
 #include <ktoggleaction.h>
@@ -55,13 +53,12 @@
 #include "dzoombar.h"
 #include "freespacewidget.h"
 #include "imagepropertiessidebarcamgui.h"
-#include "ddatetimeedit.h"
 #include "renamecustomizer.h"
 #include "albumcustomizer.h"
+#include "advancedsettings.h"
 #include "sidebar.h"
 #include "statusnavigatebar.h"
 #include "statusprogressbar.h"
-#include "templateselector.h"
 
 using namespace KDcrawIface;
 
@@ -79,10 +76,6 @@ public:
         fullScreen(false),
         removeFullScreenButton(false),
         fullScreenHideToolBar(false),
-        autoRotateCheck(0),
-        fixDateTimeCheck(0),
-        convertJpegCheck(0),
-        formatLabel(0),
         refreshIconViewTimer(0),
         downloadMenu(0),
         deleteMenu(0),
@@ -116,9 +109,7 @@ public:
         lastPhotoFirstAction(0),
         showMenuBarAction(0),
         showLogAction(0),
-        losslessFormat(0),
         helpMenu(0),
-        dateTimeEdit(0),
         advBox(0),
         splitter(0),
         camThumbsCtrl(0),
@@ -127,8 +118,8 @@ public:
         view(0),
         renameCustomizer(0),
         albumCustomizer(0),
+        advancedSettings(0),
         anim(0),
-        templateSelector(0),
         rightSideBar(0),
         zoomBar(0),
         statusProgressBar(0),
@@ -158,12 +149,6 @@ public:
     QSet<QString>                 foldersToScan;
     CamItemInfoList               filesToBeAdded;
 
-    QCheckBox*                    autoRotateCheck;
-    QCheckBox*                    fixDateTimeCheck;
-    QCheckBox*                    convertJpegCheck;
-
-    QLabel*                       formatLabel;
-
     QTimer*                       refreshIconViewTimer;
 
     KMenu*                        downloadMenu;
@@ -200,14 +185,10 @@ public:
     KToggleAction*                showMenuBarAction;
     KToggleAction*                showLogAction;
 
-    KComboBox*                    losslessFormat;
-
     KUrl                          lastDestURL;
 
     KHelpMenu*                    helpMenu;
 
-    DDateTimeEdit*                dateTimeEdit;
-
     RExpanderBox*                 advBox;
 
     SidebarSplitter*              splitter;
@@ -220,11 +201,10 @@ public:
 
     RenameCustomizer*             renameCustomizer;
     AlbumCustomizer*              albumCustomizer;
+    AdvancedSettings*             advancedSettings;
 
     DLogoAction*                  anim;
 
-    TemplateSelector*             templateSelector;
-
     ImagePropertiesSideBarCamGui* rightSideBar;
 
     DZoomBar*                     zoomBar;
diff --git a/utilities/cameragui/views/cameraiconview.cpp \
b/utilities/cameragui/views/cameraiconview.cpp index c04e8b1..0088304 100644
--- a/utilities/cameragui/views/cameraiconview.cpp
+++ b/utilities/cameragui/views/cameraiconview.cpp
@@ -54,6 +54,7 @@
 // Local includes
 
 #include "advancedrenamemanager.h"
+#include "advancedsettings.h"
 #include "parsesettings.h"
 #include "cameraiconitem.h"
 #include "cameraiconviewtooltip.h"
@@ -403,8 +404,8 @@ void CameraIconView::slotUpdateDownloadNames(bool hasSelection)
         startIndex = d->renamer->startIndex();
     }
 
-    bool convertLossLessJpeg = d->cameraUI->convertLosslessJpegFiles();
-    QString losslessFormat   = d->cameraUI->losslessFormat();
+    bool convertLossLessJpeg = \
d->cameraUI->advancedSettings()->convertLosslessJpegFiles(); +    QString \
losslessFormat   = d->cameraUI->advancedSettings()->losslessFormat();  
     viewport()->setUpdatesEnabled(false);
 
@@ -952,12 +953,12 @@ void CameraIconView::itemsSelectionSizeInfo(unsigned long& \
fSizeKB, unsigned lon  
             if (iconItem->itemInfo().mime == QString("image/jpeg"))
             {
-                if (d->cameraUI->convertLosslessJpegFiles())
+                if (d->cameraUI->advancedSettings()->convertLosslessJpegFiles())
                 {
                     // Estimated size is around 5 x original size when JPEG=>PNG.
                     dSize += size*5;
                 }
-                else if (d->cameraUI->autoRotateJpegFiles())
+                else if (d->cameraUI->advancedSettings()->autoRotateJpegFiles())
                 {
                     // We need a double size to perform rotation.
                     dSize += size*2;
diff --git a/utilities/cameragui/widgets/advancedsettings.cpp \
b/utilities/cameragui/widgets/advancedsettings.cpp new file mode 100644
index 0000000..e3e3e7f
--- /dev/null
+++ b/utilities/cameragui/widgets/advancedsettings.cpp
@@ -0,0 +1,196 @@
+/* ============================================================
+ *
+ * This file is a part of digiKam project
+ * http://www.digikam.org
+ *
+ * Date        : 2011-08-12
+ * Description : advanced settings for camera interface.
+ *
+ * Copyright (C) 2011 by Gilles Caulier <caulier dot gilles at gmail dot com>
+ *
+ * This program is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU General
+ * Public License as published by the Free Software Foundation;
+ * either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * ============================================================ */
+
+#include "advancedsettings.moc"
+
+// Qt includes
+
+#include <QVBoxLayout>
+#include <QLabel>
+#include <QCheckBox>
+#include <QToolButton>
+
+// KDE includes
+
+#include <kdialog.h>
+#include <klocale.h>
+#include <kcombobox.h>
+#include <khbox.h>
+#include <kdebug.h>
+
+// Local includes
+
+#include "templateselector.h"
+#include "ddatetimeedit.h"
+#include "template.h"
+
+namespace Digikam
+{
+
+class AdvancedSettings::AdvancedSettingsPriv
+{
+public:
+
+    AdvancedSettingsPriv()
+      : formatLabel(0),
+        autoRotateCheck(0),
+        convertJpegCheck(0),
+        fixDateTimeCheck(0),
+        losslessFormat(0),
+        dateTimeEdit(0),
+        templateSelector(0)
+    {
+    }
+
+    QLabel*           formatLabel;
+
+    QCheckBox*        autoRotateCheck;
+    QCheckBox*        convertJpegCheck;
+    QCheckBox*        fixDateTimeCheck;
+
+    KComboBox*        losslessFormat;
+
+    DDateTimeEdit*    dateTimeEdit;
+
+    TemplateSelector* templateSelector;
+};
+
+AdvancedSettings::AdvancedSettings(QWidget* parent)
+    : QWidget(parent), d(new AdvancedSettingsPriv)
+{
+    QVBoxLayout* onFlyVlay = new QVBoxLayout(this);
+    d->templateSelector    = new TemplateSelector(this);
+    d->fixDateTimeCheck    = new QCheckBox(i18n("Fix internal date && time"), this);
+    d->dateTimeEdit        = new DDateTimeEdit(this, "datepicker");
+    d->autoRotateCheck     = new QCheckBox(i18n("Auto-rotate/flip image"), this);
+    d->convertJpegCheck    = new QCheckBox(i18n("Convert to lossless file format"), \
this); +    KHBox* hbox2           = new KHBox(this);
+    d->formatLabel         = new QLabel(i18n("New image format:"), hbox2);
+    d->losslessFormat      = new KComboBox(hbox2);
+    d->losslessFormat->insertItem(0, "PNG");
+    d->losslessFormat->insertItem(1, "TIF");
+    d->losslessFormat->insertItem(2, "JP2");
+    d->losslessFormat->insertItem(3, "PGF");
+
+    onFlyVlay->addWidget(d->templateSelector);
+    onFlyVlay->addWidget(d->fixDateTimeCheck);
+    onFlyVlay->addWidget(d->dateTimeEdit);
+    onFlyVlay->addWidget(d->autoRotateCheck);
+    onFlyVlay->addWidget(d->convertJpegCheck);
+    onFlyVlay->addWidget(hbox2);
+    onFlyVlay->addStretch();
+    onFlyVlay->setMargin(KDialog::spacingHint());
+    onFlyVlay->setSpacing(KDialog::spacingHint());
+
+    setWhatsThis( i18n("Set here all options to fix/transform JPEG files \
automatically " +                       "as they are downloaded."));
+    d->autoRotateCheck->setWhatsThis( i18n("Enable this option if you want images \
automatically " +                                           "rotated or flipped using \
EXIF information provided by the camera.")); +    d->templateSelector->setWhatsThis( \
i18n("Select here which metadata template you want to apply " +                       \
"to images.")); +    d->fixDateTimeCheck->setWhatsThis( i18n("Enable this option to \
set date and time metadata " +                                            "tags to \
the right values if your camera does not set " +                                      \
"these tags correctly when pictures are taken. The values will " +                    \
"be saved in the DateTimeDigitized and DateTimeCreated EXIF, XMP, and IPTC tags.")); \
+    d->convertJpegCheck->setWhatsThis( i18n("Enable this option to automatically \
convert " +                                            "all JPEG files to a lossless \
image format. <b>Note:</b> Image conversion can take a " +                            \
"while on a slow computer.")); +    d->losslessFormat->setWhatsThis( i18n("Select \
your preferred lossless image file format to " +                                      \
"convert to. <b>Note:</b> All metadata will be preserved during the conversion.")); +
+    // ---------------------------------------------------------------------------------------
 +
+    connect(d->convertJpegCheck, SIGNAL(toggled(bool)),
+            d->losslessFormat, SLOT(setEnabled(bool)));
+
+    connect(d->convertJpegCheck, SIGNAL(toggled(bool)),
+            d->formatLabel, SLOT(setEnabled(bool)));
+
+    connect(d->convertJpegCheck, SIGNAL(toggled(bool)),
+            this, SIGNAL(signalDownloadNameChanged()));
+
+    connect(d->losslessFormat, SIGNAL(activated(int)),
+            this, SIGNAL(signalDownloadNameChanged()));
+
+    connect(d->fixDateTimeCheck, SIGNAL(toggled(bool)),
+            d->dateTimeEdit, SLOT(setEnabled(bool)));
+}
+
+AdvancedSettings::~AdvancedSettings()
+{
+    delete d;
+}
+
+void AdvancedSettings::readSettings(KConfigGroup& group)
+{
+    d->autoRotateCheck->setChecked(group.readEntry("AutoRotate",         true));
+    d->fixDateTimeCheck->setChecked(group.readEntry("FixDateTime",       false));
+    d->templateSelector->setTemplateIndex(group.readEntry("Template",    0));
+    d->convertJpegCheck->setChecked(group.readEntry("ConvertJpeg",       false));
+    d->losslessFormat->setCurrentIndex(group.readEntry("LossLessFormat", 0));   // \
PNG by default +
+    d->dateTimeEdit->setEnabled(d->fixDateTimeCheck->isChecked());
+    d->losslessFormat->setEnabled(convertLosslessJpegFiles());
+    d->formatLabel->setEnabled(convertLosslessJpegFiles());
+}
+
+void AdvancedSettings::saveSettings(KConfigGroup& group)
+{
+    group.writeEntry("AutoRotate",     d->autoRotateCheck->isChecked());
+    group.writeEntry("FixDateTime",    d->fixDateTimeCheck->isChecked());
+    group.writeEntry("Template",       d->templateSelector->getTemplateIndex());
+    group.writeEntry("ConvertJpeg",    convertLosslessJpegFiles());
+    group.writeEntry("LossLessFormat", d->losslessFormat->currentIndex());
+}
+
+bool AdvancedSettings::autoRotateJpegFiles() const
+{
+    return d->autoRotateCheck->isChecked();
+}
+
+bool AdvancedSettings::convertLosslessJpegFiles() const
+{
+    return d->convertJpegCheck->isChecked();
+}
+
+QString AdvancedSettings::losslessFormat() const
+{
+    return d->losslessFormat->currentText();
+}
+
+bool AdvancedSettings::fixDateTime() const
+{
+    return d->fixDateTimeCheck->isChecked();
+}
+
+QDateTime AdvancedSettings::newDateTime() const
+{
+    return d->dateTimeEdit->dateTime();
+}
+
+QString AdvancedSettings::templateTitle() const
+{
+    return d->templateSelector->getTemplate().templateTitle();
+}
+
+}  // namespace Digikam
diff --git a/utilities/cameragui/widgets/advancedsettings.h \
b/utilities/cameragui/widgets/advancedsettings.h new file mode 100644
index 0000000..e847fe0
--- /dev/null
+++ b/utilities/cameragui/widgets/advancedsettings.h
@@ -0,0 +1,74 @@
+/* ============================================================
+ *
+ * This file is a part of digiKam project
+ * http://www.digikam.org
+ *
+ * Date        : 2011-08-12
+ * Description : advanced settings for camera interface.
+ *
+ * Copyright (C) 2011 by Gilles Caulier <caulier dot gilles at gmail dot com>
+ *
+ * This program is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU General
+ * Public License as published by the Free Software Foundation;
+ * either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * ============================================================ */
+
+#ifndef ADVANCEDSETTINGS_H
+#define ADVANCEDSETTINGS_H
+
+// Qt includes
+
+#include <QWidget>
+#include <QDateTime>
+
+// KDE includes
+
+#include <kconfig.h>
+
+namespace Digikam
+{
+
+class AdvancedSettings : public QWidget
+{
+    Q_OBJECT
+
+public:
+
+    AdvancedSettings(QWidget* parent=0);
+    ~AdvancedSettings();
+
+    void readSettings(KConfigGroup& group);
+    void saveSettings(KConfigGroup& group);
+
+    bool      autoRotateJpegFiles() const;
+
+    QString   templateTitle() const;
+
+    bool      fixDateTime() const;
+    QDateTime newDateTime() const;
+
+    /** Get status of JPEG conversion files to lossless format during download.*/
+    bool      convertLosslessJpegFiles() const;
+    QString   losslessFormat() const;
+
+Q_SIGNALS:
+
+    void signalDownloadNameChanged();
+
+private:
+
+    class AdvancedSettingsPriv;
+    AdvancedSettingsPriv* const d;
+};
+
+}  // namespace Digikam
+
+#endif /* ADVANCEDSETTINGS_H */


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic