| Summary: | configure timestamp naming format for directory names | ||
|---|---|---|---|
| Product: | [Applications] digikam | Reporter: | greatbunzinni |
| Component: | Import-Settings | Assignee: | Digikam Developers <digikam-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | wishlist | CC: | caulier.gilles, d.d.huisman |
| Priority: | NOR | ||
| Version First Reported In: | 0.8.1 | ||
| Target Milestone: | --- | ||
| Platform: | unspecified | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | 0.9.0 | |
| Sentry Crash Report: | |||
|
Description
greatbunzinni
2006-06-08 12:31:11 UTC
*** Bug 112034 has been marked as a duplicate of this bug. *** SVN commit 576672 by cgilles:
digikam from trunk : camera gui improvements : new option to set configurable date format for auto album creation.
BUG: 119075, 128817
M +68 -13 cameraui.cpp
--- trunk/extragear/graphics/digikam/utilities/cameragui/cameraui.cpp #576671:576672
@@ -110,6 +110,13 @@
{
public:
+ enum DateFormatOptions
+ {
+ IsoDateFormat=0,
+ TextDateFormat,
+ LocalDateFormat
+ };
+
CameraUIPriv()
{
busy = false;
@@ -137,6 +144,8 @@
losslessFormat = 0;
convertJpegCheck = 0;
formatLabel = 0;
+ folderDateLabel = 0;
+ folderDateFormat = 0;
}
bool busy;
@@ -162,8 +171,10 @@
QCheckBox *convertJpegCheck;
QLabel *formatLabel;
+ QLabel *folderDateLabel;
QComboBox *losslessFormat;
+ QComboBox *folderDateFormat;
QSplitter *splitter;
@@ -233,9 +244,19 @@
d->renameCustomizer = new RenameCustomizer(d->advBox);
d->view->setRenameCustomizer(d->renameCustomizer);
+ // -- Albums Auto-creation options -----------------------------------------
+
QVGroupBox* albumBox = new QVGroupBox(i18n("Auto-creation of Albums"), d->advBox);
d->autoAlbumCheck = new QCheckBox(i18n("Date-based sub-albums"), albumBox);
+ QHBox *hbox1 = new QHBox(albumBox);
+ d->folderDateLabel = new QLabel(i18n("Date format:"), hbox1);
+ d->folderDateFormat = new QComboBox(hbox1);
+ d->folderDateFormat->insertItem(i18n("ISO"), CameraUIPriv::IsoDateFormat);
+ d->folderDateFormat->insertItem(i18n("Full Text"), CameraUIPriv::TextDateFormat);
+ d->folderDateFormat->insertItem(i18n("Local Settings"), CameraUIPriv::LocalDateFormat);
+ // -- On the Fly options ---------------------------------------------------
+
QVGroupBox* onFlyBox = new QVGroupBox(i18n("On the Fly Operations (JPEG only)"), d->advBox);
d->setPhotographerId = new QCheckBox(i18n("Set default photographer identity"), onFlyBox);
d->setCredits = new QCheckBox(i18n("Set default credit and copyright"), onFlyBox);
@@ -243,9 +264,9 @@
d->dateTimeEdit = new KDateTimeEdit(onFlyBox, "datepicker");
d->autoRotateCheck = new QCheckBox(i18n("Auto-rotate/flip image"), onFlyBox);
d->convertJpegCheck = new QCheckBox(i18n("Convert to lossless file format"), onFlyBox);
- QHBox *hbox = new QHBox(onFlyBox);
- d->formatLabel = new QLabel(i18n("New image format:"), hbox);
- d->losslessFormat = new QComboBox(hbox);
+ QHBox *hbox2 = new QHBox(onFlyBox);
+ d->formatLabel = new QLabel(i18n("New image format:"), hbox2);
+ d->losslessFormat = new QComboBox(hbox2);
d->losslessFormat->insertItem("PNG", 0);
QWhatsThis::add( d->autoRotateCheck, i18n("<p>Toogle on this option if you want automatically "
@@ -362,6 +383,12 @@
// -------------------------------------------------------------------------
+ connect(d->autoAlbumCheck, SIGNAL(toggled(bool)),
+ d->folderDateFormat, SLOT(setEnabled(bool)));
+
+ connect(d->autoAlbumCheck, SIGNAL(toggled(bool)),
+ d->folderDateLabel, SLOT(setEnabled(bool)));
+
connect(d->convertJpegCheck, SIGNAL(toggled(bool)),
d->losslessFormat, SLOT(setEnabled(bool)));
@@ -492,6 +519,7 @@
d->setCredits->setChecked(config->readBoolEntry("SetCredits", false));
d->convertJpegCheck->setChecked(config->readBoolEntry("ConvertJpeg", false));
d->losslessFormat->setCurrentItem(config->readNumEntry("LossLessFormat", 0)); // PNG by default
+ d->folderDateFormat->setCurrentItem(config->readNumEntry("FolderDateFormat", CameraUIPriv::IsoDateFormat));
d->view->setThumbnailSize(ThumbnailSize((ThumbnailSize::Size)config->readNumEntry("ThumbnailSize",
ThumbnailSize::Large)));
@@ -502,6 +530,9 @@
d->dateTimeEdit->setEnabled(d->fixDateTimeCheck->isChecked());
d->losslessFormat->setEnabled(convertLosslessJpegFiles());
d->formatLabel->setEnabled(convertLosslessJpegFiles());
+ d->folderDateFormat->setEnabled(d->autoAlbumCheck->isChecked());
+ d->folderDateLabel->setEnabled(d->autoAlbumCheck->isChecked());
+
resize(configDialogSize("Camera Settings"));
}
@@ -520,6 +551,7 @@
config->writeEntry("LossLessFormat", d->losslessFormat->currentItem());
config->writeEntry("ThumbnailSize", d->view->thumbnailSize().size());
config->writeEntry("Splitter Sizes", d->splitter->sizes());
+ config->writeEntry("FolderDateFormat", d->folderDateFormat->currentItem());
config->sync();
}
@@ -964,12 +996,21 @@
{
CameraIconViewItem* iconItem = static_cast<CameraIconViewItem*>(firstItem);
- QDateTime date;
- date.setTime_t(iconItem->itemInfo()->mtime);
- newDirName = QString("%1, %2, %3")
- .arg(KGlobal::locale()->calendar()->year(date.date()))
- .arg(KGlobal::locale()->calendar()->monthName(date.date()))
- .arg(KGlobal::locale()->calendar()->day(date.date()));
+ QDateTime dateTime;
+ dateTime.setTime_t(iconItem->itemInfo()->mtime);
+
+ switch(d->folderDateFormat->currentItem())
+ {
+ case CameraUIPriv::TextDateFormat:
+ newDirName = dateTime.date().toString(Qt::TextDate);
+ break;
+ case CameraUIPriv::LocalDateFormat:
+ newDirName = dateTime.date().toString(Qt::LocalDate);
+ break;
+ default: // IsoDateFormat
+ newDirName = dateTime.date().toString(Qt::ISODate);
+ break;
+ }
}
album = AlbumSelectDialog::selectAlbum(this, (PAlbum*)album, header, newDirName,
@@ -1026,11 +1067,25 @@
if (d->autoAlbumCheck->isChecked())
{
- QDateTime date;
- date.setTime_t(mtime);
- QString dirName(date.toString("yyyy-MM-dd"));
+ QDateTime dateTime;
+ dateTime.setTime_t(mtime);
+ QString dirName;;
+
+ switch(d->folderDateFormat->currentItem())
+ {
+ case CameraUIPriv::TextDateFormat:
+ dirName = dateTime.date().toString(Qt::TextDate);
+ break;
+ case CameraUIPriv::LocalDateFormat:
+ dirName = dateTime.date().toString(Qt::LocalDate);
+ break;
+ default: // IsoDateFormat
+ dirName = dateTime.date().toString(Qt::ISODate);
+ break;
+ }
+
QString errMsg;
- if (!createAutoAlbum(url, dirName, date.date(), errMsg))
+ if (!createAutoAlbum(url, dirName, dateTime.date(), errMsg))
{
KMessageBox::error(this, errMsg);
return;
|