┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElvis Angelaccio <[email protected]>2019-09-02 23:18:33 +0200
committerElvis Angelaccio <[email protected]>2019-09-02 23:18:33 +0200
commit3df68fb667a9d0df0bfe53ff762c88b9fcde28f6 (patch)
tree4cd658cfd0a9491713de2293ad167220516a52ce
parent63c195b7ed9fa11c91dfed59bf00d65b66426339 (diff)
parenta6403716439ae72bfdf86a14af94ea9d212f08ee (diff)
Merge branch 'Applications/19.08'
-rw-r--r--src/dolphinmainwindow.cpp2
-rw-r--r--src/dolphintabwidget.cpp29
-rw-r--r--src/dolphintabwidget.h8
-rw-r--r--src/dolphinviewcontainer.cpp2
-rw-r--r--src/main.cpp8
5 files changed, 31 insertions, 18 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index 004e8e165..e851fa2b0 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -2159,7 +2159,7 @@ void DolphinMainWindow::UndoUiInterface::jobError(KIO::Job* job)
bool DolphinMainWindow::isUrlOpen(const QString& url)
{
- if (m_tabWidget->getIndexByUrl(QUrl::fromUserInput((url))) >= 0) {
+ if (m_tabWidget->getIndexByUrl(QUrl::fromUserInput((url))).first >= 0) {
return true;
} else {
return false;
diff --git a/src/dolphintabwidget.cpp b/src/dolphintabwidget.cpp
index bd0ee301f..0546316f7 100644
--- a/src/dolphintabwidget.cpp
+++ b/src/dolphintabwidget.cpp
@@ -187,9 +187,15 @@ void DolphinTabWidget::openDirectories(const QList<QUrl>& dirs, bool splitView)
QList<QUrl>::const_iterator it = dirs.constBegin();
while (it != dirs.constEnd()) {
const QUrl& primaryUrl = *(it++);
- const int index = getIndexByUrl(primaryUrl);
- if (index >= 0) {
- setCurrentIndex(index);
+ const QPair<int, bool> viewLocation = getIndexByUrl(primaryUrl);
+ if (viewLocation.first >= 0) {
+ setCurrentIndex(viewLocation.first);
+ const auto tabPage = tabPageAt(viewLocation.first);
+ if (viewLocation.second) {
+ tabPage->primaryViewContainer()->setActive(true);
+ } else {
+ tabPage->secondaryViewContainer()->setActive(true);
+ }
continue;
}
if (splitView && (it != dirs.constEnd())) {
@@ -394,16 +400,17 @@ QString DolphinTabWidget::tabName(DolphinTabPage* tabPage) const
return name.replace('&', QLatin1String("&&"));
}
-int DolphinTabWidget::getIndexByUrl(const QUrl& url) const
+QPair<int, bool> DolphinTabWidget::getIndexByUrl(const QUrl& url) const
{
for (int i = 0; i < count(); i++) {
- // Conversion to display string is necessary to deal with the '~' alias.
- // i.e. to acknowledge that ~/ is equivalent to /home/user/
- const QUrl tabUrl = tabPageAt(i)->activeViewContainer()->url();
- if (url == tabUrl ||
- url.toDisplayString(QUrl::StripTrailingSlash) == tabUrl.toDisplayString(QUrl::StripTrailingSlash)) {
- return i;
+ const auto tabPage = tabPageAt(i);
+ if (url == tabPage->primaryViewContainer()->url()) {
+ return qMakePair(i, true);
+ }
+
+ if (tabPage->splitViewEnabled() && url == tabPage->secondaryViewContainer()->url()) {
+ return qMakePair(i, false);
}
}
- return -1;
+ return qMakePair(-1, false);
}
diff --git a/src/dolphintabwidget.h b/src/dolphintabwidget.h
index 3e8301725..7eb001b21 100644
--- a/src/dolphintabwidget.h
+++ b/src/dolphintabwidget.h
@@ -80,9 +80,13 @@ public:
/**
* @param url The URL that we would like
- * @return index of the tab with the desired URL. returns -1 if not found
+ * @return a QPair with first containing the index of the tab with the
+ * desired URL or -1 if not found. Second says true if URL is in primary
+ * view container, false otherwise. False means the URL is in the secondary
+ * view container, unless first == -1. In that case the value of second
+ * is meaningless.
*/
- int getIndexByUrl(const QUrl& url) const;
+ QPair<int, bool> getIndexByUrl(const QUrl& url) const;
signals:
/**
diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp
index 93e785f0d..416a63e67 100644
--- a/src/dolphinviewcontainer.cpp
+++ b/src/dolphinviewcontainer.cpp
@@ -428,7 +428,7 @@ QString DolphinViewContainer::placesText() const
if (isSearchModeEnabled()) {
text = i18n("Search for %1 in %2", m_searchBox->text(), m_searchBox->searchPath().fileName());
} else {
- text = url().fileName();
+ text = url().adjusted(QUrl::StripTrailingSlash).fileName();
if (text.isEmpty()) {
text = url().host();
}
diff --git a/src/main.cpp b/src/main.cpp
index 8981b54bc..a4685f257 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -116,9 +116,6 @@ extern "C" Q_DECL_EXPORT int kdemain(int argc, char **argv)
KAboutData::setApplicationData(aboutData);
- KDBusService dolphinDBusService;
- DBusInterface interface;
-
QCommandLineParser parser;
aboutData.setupCommandLine(&parser);
@@ -139,6 +136,8 @@ extern "C" Q_DECL_EXPORT int kdemain(int argc, char **argv)
QList<QUrl> urls = Dolphin::validateUris(args);
if (parser.isSet(QStringLiteral("daemon"))) {
+ KDBusService dolphinDBusService;
+ DBusInterface interface;
return app.exec();
}
@@ -178,5 +177,8 @@ extern "C" Q_DECL_EXPORT int kdemain(int argc, char **argv)
}
}
+ KDBusService dolphinDBusService;
+ DBusInterface interface;
+
return app.exec(); // krazy:exclude=crash;
}