------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee. http://bugs.kde.org/show_bug.cgi?id=131558 ------- Additional Comments From marcel.wiesweg gmx de 2006-08-13 15:22 ------- SVN commit 572652 by mwiesweg: Make renaming unicode-proof: - Move generation of new name to RenameCustomizer, CameraIconView provides necessary information - Rewrite custom renaming - remove strftime, use QDateTime - remove QFile::encodeName to QCString and back to QString conversion, which break UTF8 CCBUG: 131558 M +8 -25 cameraiconview.cpp M +1 -1 cameraiconview.h M +16 -7 renamecustomizer.cpp M +2 -1 renamecustomizer.h --- trunk/extragear/graphics/digikam/utilities/cameragui/cameraiconview.cpp #572651:572652 @ -163,7 +163,7 @ { if (!d->renamer->useDefault()) { - downloadName = getTemplatedName( d->renamer->nameTemplate(), &info, d->itemDict.count() ); + downloadName = getTemplatedName( &info, d->itemDict.count() ); } else { @ -225,12 +225,10 @ { bool useDefault = true; int startIndex = 0; - QString nameTemplate; if (d->renamer) { useDefault = d->renamer->useDefault(); - nameTemplate = d->renamer->nameTemplate(); startIndex = d->renamer->startIndex() -1; } @ -260,7 +258,7 @ if (viewItem->isSelected()) { if (!useDefault) - downloadName = getTemplatedName( nameTemplate, viewItem->itemInfo(), startIndex ); + downloadName = getTemplatedName( viewItem->itemInfo(), startIndex ); else downloadName = getCasedName( d->renamer->changeCase(), viewItem->itemInfo() ); @ -282,7 +280,7 @ CameraIconViewItem* viewItem = static_cast<CameraIconViewItem*>(item); if (!useDefault) - downloadName = getTemplatedName( nameTemplate, viewItem->itemInfo(), startIndex ); + downloadName = getTemplatedName( viewItem->itemInfo(), startIndex ); else downloadName = getCasedName( d->renamer->changeCase(), viewItem->itemInfo() ); @ -298,34 +296,19 @ slotSelectionChanged(); } -QString CameraIconView::getTemplatedName(const QString& templ, const GPItemInfo* itemInfo, int position) +QString CameraIconView::getTemplatedName(const GPItemInfo* itemInfo, int position) { - if (templ.isEmpty()) - return QString::null; - - QString dname(templ); - QString ext = itemInfo->name; int pos = ext.findRev('.'); if (pos < 0) ext = ""; else - ext = ext.right( ext.length() - pos - 1); + ext = ext.right( ext.length() - pos ); - struct tm* time_tm = ::localtime(&itemInfo->mtime); - char s[100]; - strftime(s, 100, QFile::encodeName(dname), time_tm); + QDateTime mtime; + mtime.setTime_t(itemInfo->mtime); - dname = s; - dname.replace("%s", ""); - - dname.sprintf(QFile::encodeName(dname), position+1); - dname.replace("/",""); - - dname += '.'; - dname += ext; - - return dname; + return d->renamer->newName(mtime, position+1, ext); } QString CameraIconView::getCasedName(const RenameCustomizer::Case ccase, --- trunk/extragear/graphics/digikam/utilities/cameragui/cameraiconview.h #572651:572652 @ -112,7 +112,7 @ private: - QString getTemplatedName(const QString& templ, const GPItemInfo* itemInfo, int position); + QString getTemplatedName(const GPItemInfo* itemInfo, int position); QString getCasedName(const RenameCustomizer::Case ccase, const GPItemInfo* itemInfo); void uploadItemPopupMenu(const KURL::List& srcURLs); --- trunk/extragear/graphics/digikam/utilities/cameragui/renamecustomizer.cpp #572651:572652 @ -218,35 +218,44 @ return d->startIndexInput->value(); } -QString RenameCustomizer::nameTemplate() const +QString RenameCustomizer::newName(const QDateTime &dateTime, int index, const QString &suffix) const { if (d->renameDefault->isChecked()) return QString(); else { - QString templ(d->renameCustomPrefix->text()); + QString name(d->renameCustomPrefix->text()); + // use the "T" as a delimiter between date and time + QString date = dateTime.toString("yyyyMMddThhmmss"); + + // it seems that QString::number does not support padding with zeros + QString seq; + seq.sprintf("-%04d", index); + switch (d->renameCustomOptions->currentItem()) { case ADDDATETIME: { - templ += "%Y%m%dT%H%M%S"; + name += date; break; } case ADDSEQNUMB: { - templ += "-%%04d"; + name += seq; break; } case ADDBOTH: { - templ += "%Y%m%dT%H%M%S"; - templ += "-%%04d"; + name += date; + name += seq; break; } } - return templ; + name += suffix; + + return name; } } --- trunk/extragear/graphics/digikam/utilities/cameragui/renamecustomizer.h #572651:572652 @ -27,6 +27,7 @ // Qt includes. #include <qbuttongroup.h> +#include <qdatetime.h> namespace Digikam { @ -58,7 +59,7 @ void setUseDefault(bool val); bool useDefault() const; - QString nameTemplate() const; + QString newName(const QDateTime &date, int index, const QString &suffix) const; Case changeCase() const; int startIndex() const; _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
Free forum by Nabble | Edit this page |