m_viewTab(),
m_actionHandler(0),
m_remoteEncoding(0),
- m_settingsDialog(0)
+ m_settingsDialog(0),
+ m_captionStatJob(0)
{
setObjectName("Dolphin#");
connect(infoPanel, SIGNAL(urlActivated(KUrl)), this, SLOT(handleUrl(KUrl)));
infoDock->setWidget(infoPanel);
- QAction* infoAction = new KAction(this);
+ KAction* infoAction = new KAction(this);
infoAction->setText(i18nc("@title:window", "Information"));
infoAction->setShortcut(Qt::Key_F11);
infoAction->setIcon(KIcon("dialog-information"));
FoldersPanel* foldersPanel = new FoldersPanel(foldersDock);
foldersDock->setWidget(foldersPanel);
- QAction* foldersAction = new KAction(this);
+ KAction* foldersAction = new KAction(this);
foldersAction->setText(i18nc("@title:window", "Folders"));
foldersAction->setShortcut(Qt::Key_F7);
foldersAction->setIcon(KIcon("folder"));
connect(terminalPanel, SIGNAL(hideTerminalPanel()), terminalDock, SLOT(hide()));
- QAction* terminalAction = new KAction(this);
+ KAction* terminalAction = new KAction(this);
terminalAction->setText(i18nc("@title:window Shell terminal", "Terminal"));
terminalAction->setShortcut(Qt::Key_F4);
terminalAction->setIcon(KIcon("utilities-terminal"));
placesPanel->setModel(DolphinSettings::instance().placesModel());
placesPanel->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- QAction* placesAction = new KAction(this);
+ KAction* placesAction = new KAction(this);
placesAction->setText(i18nc("@title:window", "Places"));
placesAction->setShortcut(Qt::Key_F9);
placesAction->setIcon(KIcon("bookmarks"));
void DolphinMainWindow::setUrlAsCaption(const KUrl& url)
{
- QString caption;
- if (url.equals(KUrl("file:///"))) {
- caption = '/';
+ delete m_captionStatJob;
+ m_captionStatJob = 0;
+
+ 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);
} else {
- caption = url.fileName();
- if (caption.isEmpty()) {
- caption = url.protocol();
- }
+ m_captionStatJob = KIO::stat(url, KIO::HideProgressInfo);
+ connect(m_captionStatJob, SIGNAL(result(KJob*)),
+ this, SLOT(slotCaptionStatFinished(KJob*)));
}
-
- setCaption(caption);
}
void DolphinMainWindow::handleUrl(const KUrl& url)
{
if (KProtocolManager::supportsListing(url)) {
activeViewContainer()->setUrl(url);
- }
- else {
+ } else {
new KRun(url, this);
}
}
+void DolphinMainWindow::slotCaptionStatFinished(KJob* job)
+{
+ m_captionStatJob = 0;
+ const KIO::UDSEntry entry = static_cast<KIO::StatJob*>(job)->statResult();
+ const QString name = entry.stringValue(KIO::UDSEntry::UDS_DISPLAY_NAME);
+ setCaption(name);
+}
+
QString DolphinMainWindow::squeezedText(const QString& text) const
{
const QFontMetrics fm = fontMetrics();