X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/c57c5384fcab92a1ba0d8fd87321ce7cb148ca02..76e3eab6ea3545339da2fd30b838acbc8c0ff607:/src/dolphinmainwindow.cpp
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index 4740b66e9..cf1b98f87 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -163,6 +163,10 @@ DolphinMainWindow::DolphinMainWindow()
connect(m_actionHandler, &DolphinViewActionHandler::createDirectoryTriggered, this, &DolphinMainWindow::createDirectory);
connect(m_actionHandler, &DolphinViewActionHandler::selectionModeChangeTriggered, this, &DolphinMainWindow::slotSetSelectionMode);
+#if KIO_VERSION >= QT_VERSION_CHECK(5, 100, 0)
+ m_newFileMenu->setNewFolderShortcutAction(actionCollection()->action("create_dir"));
+#endif
+
m_remoteEncoding = new DolphinRemoteEncoding(this, m_actionHandler);
connect(this, &DolphinMainWindow::urlChanged, m_remoteEncoding, &DolphinRemoteEncoding::slotAboutToOpenUrl);
@@ -499,17 +503,20 @@ void DolphinMainWindow::openInNewWindow()
void DolphinMainWindow::showTarget()
{
- const auto link = m_activeViewContainer->view()->selectedItems().at(0);
- const auto linkLocationDir = QFileInfo(link.localPath()).absoluteDir();
- auto linkDestination = link.linkDest();
- if (QFileInfo(linkDestination).isRelative()) {
- linkDestination = linkLocationDir.filePath(linkDestination);
- }
- if (QFileInfo::exists(linkDestination)) {
- KIO::highlightInFileManager({QUrl::fromLocalFile(linkDestination).adjusted(QUrl::StripTrailingSlash)});
- } else {
- m_activeViewContainer->showMessage(xi18nc("@info", "Could not access %1.", linkDestination), DolphinViewContainer::Warning);
- }
+ const KFileItem link = m_activeViewContainer->view()->selectedItems().at(0);
+ const QUrl destinationUrl = link.url().resolved(QUrl(link.linkDest()));
+
+ auto job = KIO::statDetails(destinationUrl, KIO::StatJob::SourceSide, KIO::StatNoDetails);
+
+ connect(job, &KJob::finished, this, [this, destinationUrl](KJob *job) {
+ KIO::StatJob *statJob = static_cast(job);
+
+ if (statJob->error()) {
+ m_activeViewContainer->showMessage(job->errorString(), DolphinViewContainer::Error);
+ } else {
+ KIO::highlightInFileManager({destinationUrl});
+ }
+ });
}
void DolphinMainWindow::showEvent(QShowEvent *event)
@@ -1423,7 +1430,7 @@ void DolphinMainWindow::activeViewChanged(DolphinViewContainer *viewContainer)
connect(oldViewContainer->view(), &DolphinView::requestItemInfo, this, &DolphinMainWindow::requestItemInfo);
// Disconnect other slots.
- disconnect(nullptr,
+ disconnect(oldViewContainer,
&DolphinViewContainer::selectionModeChanged,
actionCollection()->action(QStringLiteral("toggle_selection_mode")),
&QAction::setChecked);
@@ -2282,9 +2289,9 @@ void DolphinMainWindow::updateFileAndEditActions()
KFileItem capabilitiesDestination;
if (tabPage->primaryViewActive()) {
- capabilitiesDestination = tabPage->secondaryViewContainer()->url();
+ capabilitiesDestination = tabPage->secondaryViewContainer()->rootItem();
} else {
- capabilitiesDestination = tabPage->primaryViewContainer()->url();
+ capabilitiesDestination = tabPage->primaryViewContainer()->rootItem();
}
copyToOtherViewAction->setEnabled(capabilitiesDestination.isWritable());