show the correct meta information in the information sidebar also for non-local files

BUG: 155534

svn path=/trunk/KDE/kdebase/apps/; revision=763141
This commit is contained in:
Peter Penz 2008-01-18 18:14:10 +00:00
parent 59c2f25b7e
commit 9efd8dedc2
2 changed files with 20 additions and 8 deletions

View file

@ -48,7 +48,9 @@
InfoSidebarPage::InfoSidebarPage(QWidget* parent) :
SidebarPage(parent),
m_pendingPreview(false),
m_timer(0),
m_shownUrl(),
m_urlCandidate(),
m_fileItem(),
m_preview(0),
m_nameLabel(0),
m_infoLabel(0),
@ -136,10 +138,13 @@ void InfoSidebarPage::requestDelayedItemInfo(const KFileItem& item)
{
cancelRequest();
m_fileItem = KFileItem();
if (!item.isNull() && (selection().size() <= 1)) {
const KUrl url = item.url();
if (!url.isEmpty()) {
m_urlCandidate = url;
m_fileItem = item;
m_timer->start(TimerDelay);
}
}
@ -283,16 +288,21 @@ void InfoSidebarPage::showMetaInfo()
const KFileItemList& selectedItems = selection();
if (selectedItems.size() <= 1) {
KFileItem fileItem(S_IFDIR, KFileItem::Unknown, m_shownUrl);
fileItem.refresh();
KFileItem fileItem;
if (m_fileItem.isNull()) {
// no pending request is ongoing
fileItem = KFileItem(KFileItem::Unknown, KFileItem::Unknown, m_shownUrl);
fileItem.refresh();
} else {
fileItem = m_fileItem;
}
if (fileItem.isDir()) {
addInfoLine(text, i18nc("@label", "Type:"), i18nc("@label", "Folder"));
} else {
addInfoLine(text, i18nc("@label", "Type:"), fileItem.mimeComment());
QString sizeText(KIO::convertSize(fileItem.size()));
addInfoLine(text, i18nc("@label", "Size:"), sizeText);
addInfoLine(text, i18nc("@label", "Size:"), KIO::convertSize(fileItem.size()));
addInfoLine(text, i18nc("@label", "Modified:"), fileItem.timeString());
// TODO: See convertMetaInfo below, find a way to display only interesting information
@ -335,8 +345,9 @@ void InfoSidebarPage::showMetaInfo()
foreach (const KFileItem& item, selectedItems) {
// Only count the size of files, not dirs; to match what
// DolphinViewContainer::selectionStatusBarText does.
if (!item.isDir() && !item.isLink())
if (!item.isDir() && !item.isLink()) {
totalSize += item.size();
}
}
addInfoLine(text, i18nc("@label", "Total size:"), KIO::convertSize(totalSize));
}

View file

@ -139,8 +139,9 @@ private:
private:
bool m_pendingPreview;
QTimer* m_timer;
KUrl m_shownUrl;
KUrl m_urlCandidate;
KUrl m_shownUrl; // URL that is shown as info
KUrl m_urlCandidate; // URL candidate that will replace m_shownURL after a delay
KFileItem m_fileItem; // file item for m_shownUrl if available (otherwise null)
PixmapViewer* m_preview;
QLabel* m_nameLabel;