From a567da792ac6a337e9ffeb9468215ef4f2c326ce Mon Sep 17 00:00:00 2001 From: Sebastian Trueg Date: Wed, 20 Jan 2010 11:26:39 +0000 Subject: Use a stat job to determine the caption on non-file URLs. This way we get the fancy UDS_DISPLAY_NAMEs for URLs like the nepomuksearch ones. BUG: 222095 svn path=/trunk/KDE/kdebase/apps/; revision=1077551 --- src/dolphinmainwindow.cpp | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'src/dolphinmainwindow.cpp') diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 7ee5fa035..742f7bbf1 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -119,7 +119,8 @@ DolphinMainWindow::DolphinMainWindow(int id) : m_viewTab(), m_actionHandler(0), m_remoteEncoding(0), - m_settingsDialog(0) + m_settingsDialog(0), + m_captionStatJob(0) { setObjectName("Dolphin#"); @@ -1725,6 +1726,9 @@ QString DolphinMainWindow::tabProperty(const QString& property, int tabIndex) co void DolphinMainWindow::setUrlAsCaption(const KUrl& url) { + delete m_captionStatJob; + m_captionStatJob = 0; + QString caption; if (url.equals(KUrl("file:///"))) { caption = '/'; @@ -1732,10 +1736,16 @@ void DolphinMainWindow::setUrlAsCaption(const KUrl& url) caption = url.fileName(); if (caption.isEmpty()) { caption = url.protocol(); - } + } } setCaption(caption); + + if ( url.protocol() != QLatin1String( "file" ) ) { + m_captionStatJob = KIO::stat(url, KIO::HideProgressInfo); + connect(m_captionStatJob, SIGNAL(result(KJob*)), + this, SLOT(slotCaptionStatFinished(KJob*))); + } } void DolphinMainWindow::handleUrl(const KUrl& url) @@ -1748,6 +1758,16 @@ void DolphinMainWindow::handleUrl(const KUrl& url) } } +void DolphinMainWindow::slotCaptionStatFinished( KJob* job ) +{ + m_captionStatJob = 0; + const KIO::UDSEntry entry = static_cast(job)->statResult(); + QString name = entry.stringValue(KIO::UDSEntry::UDS_DISPLAY_NAME); + if (!name.isEmpty()) { + setCaption(name); + } +} + QString DolphinMainWindow::squeezedText(const QString& text) const { const QFontMetrics fm = fontMetrics(); -- cgit v1.3