┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dolphinmainwindow.cpp24
-rw-r--r--src/dolphinmainwindow.h11
2 files changed, 32 insertions, 3 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();
diff --git a/src/dolphinmainwindow.h b/src/dolphinmainwindow.h
index 269c71844..c1411319a 100644
--- a/src/dolphinmainwindow.h
+++ b/src/dolphinmainwindow.h
@@ -49,6 +49,7 @@ class KNewMenu;
class KTabBar;
class KUrl;
class QSplitter;
+class KJob;
/**
* @short Main window for Dolphin.
@@ -78,7 +79,7 @@ public:
* option is enabled, 2 directories are collected within one tab.
*/
void openDirectories(const QList<KUrl>& dirs);
-
+
/**
* Opens the directory which contains the files \p files
* and selects all files (implements the --select option
@@ -423,6 +424,12 @@ private slots:
*/
void handleUrl(const KUrl& url);
+ /**
+ * setUrlAsCaption will trigger a stat job which reports its result in
+ * this slot.
+ */
+ void slotCaptionStatFinished( KJob* job );
+
private:
DolphinMainWindow(int id);
void init();
@@ -523,6 +530,8 @@ private:
DolphinViewActionHandler* m_actionHandler;
DolphinRemoteEncoding* m_remoteEncoding;
QPointer<DolphinSettingsDialog> m_settingsDialog;
+
+ KJob* m_captionStatJob;
};
inline DolphinViewContainer* DolphinMainWindow::activeViewContainer() const