only set the title synchronously for the file-protocol, otherwise use KIO::stat()

svn path=/trunk/KDE/kdebase/apps/; revision=1077599
This commit is contained in:
Peter Penz 2010-01-20 13:06:16 +00:00
parent a567da792a
commit 2798e5d225
2 changed files with 18 additions and 21 deletions

View file

@ -1729,19 +1729,19 @@ void DolphinMainWindow::setUrlAsCaption(const KUrl& url)
delete m_captionStatJob;
m_captionStatJob = 0;
QString caption;
if (url.equals(KUrl("file:///"))) {
caption = '/';
} else {
caption = url.fileName();
if (caption.isEmpty()) {
caption = url.protocol();
if (url.protocol() == QLatin1String("file")) {
QString caption;
if (url.equals(KUrl("file:///"))) {
caption = '/';
} else {
caption = url.fileName();
if (caption.isEmpty()) {
caption = url.protocol();
}
}
}
setCaption(caption);
if ( url.protocol() != QLatin1String( "file" ) ) {
setCaption(caption);
} else {
m_captionStatJob = KIO::stat(url, KIO::HideProgressInfo);
connect(m_captionStatJob, SIGNAL(result(KJob*)),
this, SLOT(slotCaptionStatFinished(KJob*)));
@ -1752,20 +1752,17 @@ void DolphinMainWindow::handleUrl(const KUrl& url)
{
if (KProtocolManager::supportsListing(url)) {
activeViewContainer()->setUrl(url);
}
else {
} else {
new KRun(url, this);
}
}
void DolphinMainWindow::slotCaptionStatFinished( KJob* job )
{
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);
}
const QString name = entry.stringValue(KIO::UDSEntry::UDS_DISPLAY_NAME);
setCaption(name);
}
QString DolphinMainWindow::squeezedText(const QString& text) const

View file

@ -425,10 +425,10 @@ private slots:
void handleUrl(const KUrl& url);
/**
* setUrlAsCaption will trigger a stat job which reports its result in
* setUrlAsCaption() will trigger a stat job which reports its result in
* this slot.
*/
void slotCaptionStatFinished( KJob* job );
void slotCaptionStatFinished(KJob* job);
private:
DolphinMainWindow(int id);