diff options
| author | Sebastian Trueg <[email protected]> | 2010-01-20 11:26:39 +0000 |
|---|---|---|
| committer | Sebastian Trueg <[email protected]> | 2010-01-20 11:26:39 +0000 |
| commit | a567da792ac6a337e9ffeb9468215ef4f2c326ce (patch) | |
| tree | 99aa559d21393e0b1959a27b70a1ccfa7dd39551 /src/dolphinmainwindow.cpp | |
| parent | b3ab00e8badfd0911e0d7af7a632b5ae0bf4fbaf (diff) | |
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
Diffstat (limited to 'src/dolphinmainwindow.cpp')
| -rw-r--r-- | src/dolphinmainwindow.cpp | 24 |
1 files changed, 22 insertions, 2 deletions
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<KIO::StatJob*>(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(); |
