diff options
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(); |
