diff -r 48060abbbeaf -r b3cee849fa46 filebrowser/ui/src/fileentry.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filebrowser/ui/src/fileentry.cpp Tue Aug 31 15:15:20 2010 +0300 @@ -0,0 +1,209 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include "fileentry.h" + +#include + +// --------------------------------------------------------------------------- + +FileEntry::FileEntry(TFileEntry aFileEntry) +: mFileEntry(aFileEntry) +{ +} + +// --------------------------------------------------------------------------- + +FileEntry::~FileEntry() +{ +} + +// --------------------------------------------------------------------------- + +QString FileEntry::fullName() +{ + return QString::fromUtf16(mFileEntry.iFullName.Ptr(), mFileEntry.iFullName.Length()); +} + +// --------------------------------------------------------------------------- + +QString FileEntry::path() +{ + return QString::fromUtf16(mFileEntry.iPath.Ptr(), mFileEntry.iPath.Length()); +} + +// --------------------------------------------------------------------------- + +int FileEntry::attributes() +{ + return mFileEntry.iEntry.iAtt; +} + +QString FileEntry::attributesString() +{ + QString attributesString; + if (mFileEntry.iEntry.IsArchive()) { + attributesString.append("A"); + } else { + attributesString.append("-"); + } + if (mFileEntry.iEntry.IsHidden()) { + attributesString.append("H"); + } else { + attributesString.append("-"); + } + if (mFileEntry.iEntry.IsReadOnly()) { + attributesString.append("R"); + } else { + attributesString.append("-"); + } + if (mFileEntry.iEntry.IsSystem()) { + attributesString.append("S"); + } else { + attributesString.append("-"); + } + + return attributesString; +} + +// --------------------------------------------------------------------------- + +int FileEntry::size() +{ + return mFileEntry.iEntry.iSize; +} + +// --------------------------------------------------------------------------- + +QString FileEntry::sizeString() +{ + QString sizeString; + if (size() < 1024) { + sizeString.append(QString::number(size())); + sizeString.append(" B"); + } else if (size() < 1024*1024) { + qreal sizeKB = static_cast(size() / 1024); + sizeString.append( QString::number(sizeKB, 'f',1)); + sizeString.append(" kB"); + } else { + qreal sizeMB = static_cast(size() / (1024*1024)); + sizeString.append( QString::number(sizeMB, 'f',1)); + sizeString.append(" MB"); + } + return sizeString; +} + +// --------------------------------------------------------------------------- + +//QDateTime FileEntry::modified() +//{ +// QDateTime modified; +// TTime time1Jan1970UTC = TTime(_L("19700101:000000.000000")); +// TTimeIntervalSeconds intervalSeconds; +// +// TTime entryModified = mFileEntry.iEntry.iModified; +// +// TInt err = /*mFileEntry.iEntry.iModified*/ entryModified.SecondsFrom(time1Jan1970UTC, intervalSeconds); +// if (err == KErrNone) { +// quint32 secsSince1Jan1970UTC = intervalSeconds.Int(); +// modified = QDateTime::fromTime_t(secsSince1Jan1970UTC); +// qDebug() << "QDateTime:: " << modified.toString(); +// modified.setTimeSpec(Qt::LocalTime); +// qDebug() << "QDateTime:: " << modified.toString() << modified.toLocalTime().toString(); +// } +// return modified; +//} + +// --------------------------------------------------------------------------- + +QString FileEntry::modifiedString() +{ + // TODO use HbExtendedLocale to convert date and time +// QDateTime modifiedInLocalTime = modified();//.toLocalTime(); +// HbExtendedLocale locale = HbExtendedLocale::system(); +// QString date = locale.format(modifiedInLocalTime.date(), r_qtn_date_usual); +// QString time = locale.format(modifiedInLocalTime.time(), r_qtn_time_usual); +// +// return date + " " + time; + QString modifiedString; + TTime entryModified = mFileEntry.iEntry.iModified; + RTz Tz; + TInt err = Tz.Connect(); + if ( err == KErrNone && Tz.ConvertToLocalTime( entryModified ) == KErrNone ) + { + entryModified = mFileEntry.iEntry.iModified; + TBuf<128> extraData; + _LIT(KCurrentDate,"%D%M%*Y%/0%1%/1%2%/2%3%/3 %-B%:0%J%:1%T%:2%S%:3%+B"); + entryModified.FormatL(extraData, KCurrentDate); + modifiedString = QString::fromUtf16(extraData.Ptr(), extraData.Length()); + } + Tz.Close(); + + return modifiedString; +} + +// --------------------------------------------------------------------------- + +//int FileEntry::Uid(int id) +//{ +// return id;//mFileEntry.iEntry.iType[id]; +//} + +// --------------------------------------------------------------------------- + +bool FileEntry::isDir() +{ + return mFileEntry.iEntry.IsDir(); +} + +// --------------------------------------------------------------------------- + + +QString FileEntry::name() +{ + return QString::fromUtf16(mFileEntry.iEntry.iName.Ptr(), mFileEntry.iEntry.iName.Length()); +} + +// --------------------------------------------------------------------------- + +int FileEntry::dirEntries() +{ + return mFileEntry.iDirEntries; +} + +// --------------------------------------------------------------------------- + +QString FileEntry::dirEntriesString() +{ + QString dirEntriesString; + dirEntriesString.append(QString::number(dirEntries())); + if (dirEntries() == 1) { + dirEntriesString.append(" entry"); + } else { + dirEntriesString.append(" entries"); + } + return dirEntriesString; +} + +// --------------------------------------------------------------------------- + +int FileEntry::iconId() +{ + return mFileEntry.iIconId; +} + +// ---------------------------------------------------------------------------