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),
{
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);
}
}
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
unsigned long int totalSize = 0;
foreach (const KFileItem& item, selectedItems) {
- // TODO: what to do with directories (same with the one-item-selected-code)?,
- // item.size() does not return the size of the content : not very instinctive for users
- totalSize += item.size();
+ // Only count the size of files, not dirs; to match what
+ // DolphinViewContainer::selectionStatusBarText does.
+ if (!item.isDir() && !item.isLink()) {
+ totalSize += item.size();
+ }
}
addInfoLine(text, i18nc("@label", "Total size:"), KIO::convertSize(totalSize));
}