From 8d0fda61c8312ccaa5ee1f77fd8808e8bdedba36 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Mon, 17 Mar 2008 20:19:17 +0000 Subject: [PATCH] fixed issue that the current selection was not reflected in the information panel CCMAIL: strueg@mandriva.com svn path=/trunk/KDE/kdebase/apps/; revision=786724 --- src/infosidebarpage.cpp | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/infosidebarpage.cpp b/src/infosidebarpage.cpp index 3b7bd1680..301920a94 100644 --- a/src/infosidebarpage.cpp +++ b/src/infosidebarpage.cpp @@ -113,6 +113,7 @@ QSize InfoSidebarPage::sizeHint() const void InfoSidebarPage::setUrl(const KUrl& url) { + SidebarPage::setUrl(url); if (url.isValid() && !m_shownUrl.equals(url, KUrl::CompareWithoutTrailingSlash)) { cancelRequest(); m_shownUrl = url; @@ -123,17 +124,29 @@ void InfoSidebarPage::setUrl(const KUrl& url) void InfoSidebarPage::setSelection(const KFileItemList& selection) { SidebarPage::setSelection(selection); - if (selection.size() == 1) { - const KUrl url = selection.first().url(); - if (!url.isEmpty()) { - m_urlCandidate = url; + + const int count = selection.count(); + if (count == 0) { + m_shownUrl = url(); + showItemInfo(); + } else { + if (count == 1) { + const KUrl url = selection.first().url(); + if (!url.isEmpty()) { + m_urlCandidate = url; + } } + m_timer->start(TimerDelay); } - m_timer->start(TimerDelay); } void InfoSidebarPage::requestDelayedItemInfo(const KFileItem& item) { + if (!selection().isEmpty()) { + // if items are selected, no item information may get requested + return; + } + cancelRequest(); m_fileItem = KFileItem(); @@ -184,13 +197,7 @@ void InfoSidebarPage::showItemInfo() cancelRequest(); const KFileItemList& selectedItems = selection(); - - KUrl file; - if (selectedItems.isEmpty()) { - file = m_shownUrl; - } else { - file = selectedItems[0].url(); - } + const KUrl file = selectedItems.isEmpty() ? m_shownUrl : selectedItems[0].url(); if (!file.isValid()) { return; } -- 2.47.3