[Digikam-devel] extragear/graphics/digikam/utilities/cameragui
Gilles Caulier
caulier.gilles at free.fr
Tue Apr 11 22:59:58 BST 2006
SVN commit 528867 by cgilles:
digikam from trunk: Camera Rename Customizer bug fix: If 'Add Sequence Number' and 'Add Date Time' are unselected, the customize filename have non-sence because all target files to download will have all the _same_ filename. Also, camera GUI will ask to user is target must be overwritted!
This commit fix the problem to use a Combo Box options list instead separate Check Box. Like this at least one option will be used if user want a customized renaming.
CCMAIL: digikam-devel at kde.org
M +40 -52 renamecustomizer.cpp
M +8 -2 renamecustomizer.h
--- trunk/extragear/graphics/digikam/utilities/cameragui/renamecustomizer.cpp #528866:528867
@@ -24,7 +24,6 @@
#include <qlayout.h>
#include <qradiobutton.h>
-#include <qcheckbox.h>
#include <qcombobox.h>
#include <qhbox.h>
#include <qlabel.h>
@@ -58,8 +57,7 @@
renameCustomBox = 0;
renameDefaultCase = 0;
renameDefaultCaseType = 0;
- renameCustomExifDate = 0;
- renameCustomSeq = 0;
+ renameCustomOptions = 0;
changedTimer = 0;
renameCustomPrefix = 0;
}
@@ -74,8 +72,7 @@
QComboBox *renameDefaultCaseType;
- QCheckBox *renameCustomExifDate;
- QCheckBox *renameCustomSeq;
+ QComboBox *renameCustomOptions;
QTimer *changedTimer;
@@ -136,7 +133,7 @@
d->renameCustomBox->setColumnLayout(0, Qt::Vertical);
QGridLayout* renameCustomBoxLayout = new QGridLayout(d->renameCustomBox->layout(),
- 2, 2, KDialogBase::spacingHint());
+ 1, 2, KDialogBase::spacingHint());
renameCustomBoxLayout->setColSpacing( 0, 10 );
QLabel* prefixLabel = new QLabel(i18n("Prefix:"), d->renameCustomBox);
renameCustomBoxLayout->addMultiCellWidget(prefixLabel, 0, 0, 1, 1);
@@ -146,16 +143,21 @@
QWhatsThis::add( d->renameCustomPrefix, i18n("<p>Set here the string to use like a prefix of "
"image filenames."));
- d->renameCustomExifDate = new QCheckBox(i18n("Add date and time"), d->renameCustomBox);
- renameCustomBoxLayout->addMultiCellWidget(d->renameCustomExifDate, 1, 1, 1, 2);
- QWhatsThis::add( d->renameCustomExifDate, i18n("<p>Toogle on this option to add to filename the "
- "camera provided date and time."));
+ QLabel *renameOptionsLabel = new QLabel( i18n("Add:"), d->renameCustomBox );
+ renameOptionsLabel->setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Preferred );
+ renameCustomBoxLayout->addMultiCellWidget(renameOptionsLabel, 1, 1, 1, 1);
- d->renameCustomSeq = new QCheckBox(i18n("Add sequence number"), d->renameCustomBox);
- renameCustomBoxLayout->addMultiCellWidget(d->renameCustomSeq, 2, 2, 1, 2);
- QWhatsThis::add( d->renameCustomSeq, i18n("<p>Toogle on this option to add to filenames a "
- "sequence number."));
-
+ d->renameCustomOptions = new QComboBox( d->renameCustomBox );
+ d->renameCustomOptions->insertItem(i18n("Date and time"), 0);
+ d->renameCustomOptions->insertItem(i18n("Sequence number"), 1);
+ d->renameCustomOptions->insertItem(i18n("Time stamp & number"), 2);
+ renameCustomBoxLayout->addMultiCellWidget(d->renameCustomOptions, 1, 1, 2, 2);
+ QWhatsThis::add( d->renameCustomOptions, i18n("<p>Set here the information to add to filename:<p>"
+ "<b>Date and time</b>: add the camera provided date and time.<p>"
+ "<b>Sequence number</b>: add a sequence number.<p>"
+ "<b>Time stamp & number</b>: add both camera provided date and time and "
+ "a sequence number."));
+
mainLayout->addMultiCellWidget(d->renameCustomBox, 3, 3, 0, 1);
// -- setup connections -------------------------------------------------
@@ -166,12 +168,9 @@
connect(d->renameCustomPrefix, SIGNAL(textChanged(const QString&)),
this, SLOT(slotPrefixChanged(const QString&)));
- connect(d->renameCustomExifDate, SIGNAL(toggled(bool)),
- this, SLOT(slotExifChanged(bool)));
+ connect(d->renameCustomOptions, SIGNAL(activated(const QString&)),
+ this, SLOT(slotCustomOptionsChanged(const QString&)));
- connect(d->renameCustomSeq, SIGNAL(toggled(bool)),
- this, SLOT(slotSeqChanged(bool)));
-
connect(d->renameDefaultCaseType, SIGNAL(activated(const QString&)),
this, SLOT(slotCaseTypeChanged(const QString&)));
@@ -203,11 +202,19 @@
{
QString templ(d->renameCustomPrefix->text());
- if (d->renameCustomExifDate->isChecked())
+ switch (d->renameCustomOptions->currentItem())
+ {
+ case ADDDATETIME:
templ += "%Y%m%d-%H:%M:%S";
-
- if (d->renameCustomSeq->isChecked())
+ break;
+ case ADDSEQNUMB:
templ += "-%%04d";
+ break;
+ case ADDBOTH:
+ templ += "%Y%m%d-%H:%M:%S";
+ templ += "-%%04d";
+ break;
+ }
return templ;
}
@@ -241,16 +248,11 @@
d->changedTimer->start(500, true);
}
-void RenameCustomizer::slotExifChanged(bool)
+void RenameCustomizer::slotCustomOptionsChanged(const QString&)
{
d->changedTimer->start(500, true);
}
-void RenameCustomizer::slotSeqChanged(bool)
-{
- d->changedTimer->start(500, true);
-}
-
void RenameCustomizer::slotCaseTypeChanged(const QString&)
{
d->changedTimer->start(500, true);
@@ -259,19 +261,12 @@
void RenameCustomizer::readSettings()
{
KConfig* config = kapp->config();
-
- bool def;
- bool exif;
- bool seq;
- int chcaseT;
- QString prefix;
config->setGroup("Camera Settings");
- def = config->readBoolEntry("Rename Use Default", true);
- exif = config->readBoolEntry("Rename Add Exif", true);
- seq = config->readBoolEntry("Rename Add Sequence", true);
- chcaseT = config->readNumEntry("Case Type", NONE);
- prefix = config->readEntry("Rename Prefix", i18n("photo"));
+ bool def = config->readBoolEntry("Rename Use Default", true);
+ int option = config->readNumEntry("Rename Add Option", ADDSEQNUMB);
+ int chcaseT = config->readNumEntry("Case Type", NONE);
+ QString prefix = config->readEntry("Rename Prefix", i18n("photo"));
if (def)
{
@@ -290,8 +285,7 @@
d->renameDefaultCaseType->setCurrentItem(chcaseT);
d->renameCustomPrefix->setText(prefix);
- d->renameCustomExifDate->setChecked(exif);
- d->renameCustomSeq->setChecked(seq);
+ d->renameCustomOptions->setCurrentItem(option);
}
void RenameCustomizer::saveSettings()
@@ -299,16 +293,10 @@
KConfig* config = kapp->config();
config->setGroup("Camera Settings");
- config->writeEntry("Rename Use Default",
- d->renameDefault->isChecked());
- config->writeEntry("Rename Add Exif",
- d->renameCustomExifDate->isChecked());
- config->writeEntry("Rename Add Sequence",
- d->renameCustomSeq->isChecked());
- config->writeEntry("Case Type",
- d->renameDefaultCaseType->currentItem());
- config->writeEntry("Rename Prefix",
- d->renameCustomPrefix->text());
+ config->writeEntry("Rename Use Default", d->renameDefault->isChecked());
+ config->writeEntry("Rename Add Option", d->renameCustomOptions->currentItem());
+ config->writeEntry("Case Type", d->renameDefaultCaseType->currentItem());
+ config->writeEntry("Rename Prefix", d->renameCustomPrefix->text());
config->sync();
}
--- trunk/extragear/graphics/digikam/utilities/cameragui/renamecustomizer.h #528866:528867
@@ -45,6 +45,13 @@
LOWER
};
+ enum CustomOptions
+ {
+ ADDDATETIME = 0,
+ ADDSEQNUMB,
+ ADDBOTH
+ };
+
RenameCustomizer(QWidget* parent);
~RenameCustomizer();
@@ -66,8 +73,7 @@
void slotRadioButtonClicked(int);
void slotPrefixChanged(const QString&);
- void slotExifChanged(bool);
- void slotSeqChanged(bool);
+ void slotCustomOptionsChanged(const QString&);
void slotCaseTypeChanged(const QString&);
private:
More information about the Digikam-devel
mailing list