┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphinmainwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dolphinmainwindow.cpp')
-rw-r--r--src/dolphinmainwindow.cpp24
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();