From ef5732c89bc5a898941f959a7de33fa6a62b1723 Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Wed, 11 Sep 2019 01:09:30 +0200 Subject: [PATCH] DolphinTabWidget: cleanup index-by-URL API usage Summary: Follow-up of D23655 where we didn't have time to polish the code: - add a couple of variables to make the code more clear. - remove the `get` prefix which we usually don't use in Qt code. - make the function private since it's very tied to implementation. - add a new isUrlOpen public method as wrapper. Reviewers: feverfew Subscribers: kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D23860 --- src/dolphinmainwindow.cpp | 6 +----- src/dolphintabwidget.cpp | 19 +++++++++++++------ src/dolphintabwidget.h | 20 +++++++++++++------- 3 files changed, 27 insertions(+), 18 deletions(-) diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 32ac0e0fdc..f4d5ba1d3d 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -2160,10 +2160,6 @@ void DolphinMainWindow::UndoUiInterface::jobError(KIO::Job* job) bool DolphinMainWindow::isUrlOpen(const QString& url) { - if (m_tabWidget->getIndexByUrl(QUrl::fromUserInput((url))).first >= 0) { - return true; - } else { - return false; - } + return m_tabWidget->isUrlOpen(QUrl::fromUserInput((url))); } diff --git a/src/dolphintabwidget.cpp b/src/dolphintabwidget.cpp index 0546316f77..ec0c783bc3 100644 --- a/src/dolphintabwidget.cpp +++ b/src/dolphintabwidget.cpp @@ -130,6 +130,11 @@ void DolphinTabWidget::refreshViews() } } +bool DolphinTabWidget::isUrlOpen(const QUrl &url) const +{ + return indexByUrl(url).first >= 0; +} + void DolphinTabWidget::openNewActivatedTab() { const DolphinViewContainer* oldActiveViewContainer = currentTabPage()->activeViewContainer(); @@ -187,11 +192,13 @@ void DolphinTabWidget::openDirectories(const QList& dirs, bool splitView) QList::const_iterator it = dirs.constBegin(); while (it != dirs.constEnd()) { const QUrl& primaryUrl = *(it++); - const QPair viewLocation = getIndexByUrl(primaryUrl); - if (viewLocation.first >= 0) { - setCurrentIndex(viewLocation.first); - const auto tabPage = tabPageAt(viewLocation.first); - if (viewLocation.second) { + const QPair indexInfo = indexByUrl(primaryUrl); + const int index = indexInfo.first; + const bool isInPrimaryView = indexInfo.second; + if (index >= 0) { + setCurrentIndex(index); + const auto tabPage = tabPageAt(index); + if (isInPrimaryView) { tabPage->primaryViewContainer()->setActive(true); } else { tabPage->secondaryViewContainer()->setActive(true); @@ -400,7 +407,7 @@ QString DolphinTabWidget::tabName(DolphinTabPage* tabPage) const return name.replace('&', QLatin1String("&&")); } -QPair DolphinTabWidget::getIndexByUrl(const QUrl& url) const +QPair DolphinTabWidget::indexByUrl(const QUrl& url) const { for (int i = 0; i < count(); i++) { const auto tabPage = tabPageAt(i); diff --git a/src/dolphintabwidget.h b/src/dolphintabwidget.h index 7eb001b219..4351a40a83 100644 --- a/src/dolphintabwidget.h +++ b/src/dolphintabwidget.h @@ -79,14 +79,10 @@ public: void refreshViews(); /** - * @param url The URL that we would like - * @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. + * @return Whether any of the tab pages contains @p url in their primary + * or secondary view. */ - QPair getIndexByUrl(const QUrl& url) const; + bool isUrlOpen(const QUrl& url) const; signals: /** @@ -221,6 +217,16 @@ private: */ QString tabName(DolphinTabPage* tabPage) const; + /** + * @param url The URL that we would like + * @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. + */ + QPair indexByUrl(const QUrl& url) const; + private: /** Caches the (negated) places panel visibility */ bool m_placesSelectorVisible;