┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphinnavigatorswidgetaction.cpp
diff options
context:
space:
mode:
authorFelix Ernst <[email protected]>2020-11-05 23:30:07 +0100
committerElvis Angelaccio <[email protected]>2020-11-09 23:49:07 +0100
commit2d4d2ce9a14902ee5a2b236f8510596fc2f86b99 (patch)
tree07607a2561e3f6e268e4e883f422582bdc908013 /src/dolphinnavigatorswidgetaction.cpp
parent42023831374496c62708ce7ad2cdd69104a1c820 (diff)
Adress most of the second round of Angelaccio's review comments
This commit applies most suggestions which were made on the MR. Most notably the DolphinUrlNavigator class is split up which leads to the creation of a DolphinUrlNavigatorsController class. Additionally some minor coding style and const correctness changes are included. The error value of cached integers is changed from -1 to INT_MIN because situations could come up in which -1 would be a valid value.
Diffstat (limited to 'src/dolphinnavigatorswidgetaction.cpp')
-rw-r--r--src/dolphinnavigatorswidgetaction.cpp37
1 files changed, 25 insertions, 12 deletions
diff --git a/src/dolphinnavigatorswidgetaction.cpp b/src/dolphinnavigatorswidgetaction.cpp
index 11140347a..84f52279a 100644
--- a/src/dolphinnavigatorswidgetaction.cpp
+++ b/src/dolphinnavigatorswidgetaction.cpp
@@ -18,18 +18,19 @@
#include <QPushButton>
#include <QSplitter>
+#include <limits>
+
DolphinNavigatorsWidgetAction::DolphinNavigatorsWidgetAction(QWidget *parent) :
QWidgetAction{parent},
m_splitter{new QSplitter(Qt::Horizontal)},
m_adjustSpacingTimer{new QTimer(this)},
- m_globalXOfPrimary{-1},
- m_widthOfPrimary{-1},
- m_globalXOfSecondary{-1},
- m_widthOfSecondary{-1}
+ m_globalXOfSplitter{INT_MIN},
+ m_globalXOfPrimary{INT_MIN},
+ m_widthOfPrimary{INT_MIN},
+ m_globalXOfSecondary{INT_MIN},
+ m_widthOfSecondary{INT_MIN}
{
- setText(i18nc(
- "@action:inmenu When split view is enabled there are two otherwise one.",
- "Url Navigator(s)"));
+ updateText();
setIcon(QIcon::fromTheme(QStringLiteral("dialog-scripts")));
m_splitter->setChildrenCollapsible(false);
@@ -76,12 +77,13 @@ void DolphinNavigatorsWidgetAction::createSecondaryUrlNavigator()
Q_ASSERT(m_splitter->count() == 1);
m_splitter->addWidget(createNavigatorWidget(Secondary));
Q_ASSERT(m_splitter->count() == 2);
+ updateText();
}
void DolphinNavigatorsWidgetAction::followViewContainerGeometry(
int globalXOfPrimary, int widthOfPrimary)
{
- followViewContainersGeometry(globalXOfPrimary, widthOfPrimary, -1, -1);
+ followViewContainersGeometry(globalXOfPrimary, widthOfPrimary, INT_MIN, INT_MIN);
}
void DolphinNavigatorsWidgetAction::followViewContainersGeometry(
@@ -99,7 +101,7 @@ void DolphinNavigatorsWidgetAction::followViewContainersGeometry(
DolphinUrlNavigator* DolphinNavigatorsWidgetAction::primaryUrlNavigator() const
{
Q_ASSERT(m_splitter);
- return static_cast<DolphinUrlNavigator *>(m_splitter->widget(0)->findChild<KUrlNavigator *>());
+ return m_splitter->widget(0)->findChild<DolphinUrlNavigator *>();
}
DolphinUrlNavigator* DolphinNavigatorsWidgetAction::secondaryUrlNavigator() const
@@ -108,7 +110,7 @@ DolphinUrlNavigator* DolphinNavigatorsWidgetAction::secondaryUrlNavigator() cons
if (m_splitter->count() < 2) {
return nullptr;
}
- return static_cast<DolphinUrlNavigator *>(m_splitter->widget(1)->findChild<KUrlNavigator *>());
+ return m_splitter->widget(1)->findChild<DolphinUrlNavigator *>();
}
void DolphinNavigatorsWidgetAction::setSecondaryNavigatorVisible(bool visible)
@@ -121,10 +123,14 @@ void DolphinNavigatorsWidgetAction::setSecondaryNavigatorVisible(bool visible)
// Fix an unlikely event of wrong trash button visibility.
emptyTrashButton(Secondary)->setVisible(false);
}
+ updateText();
}
void DolphinNavigatorsWidgetAction::adjustSpacing()
{
+ Q_ASSERT(m_globalXOfSplitter != INT_MIN);
+ Q_ASSERT(m_globalXOfPrimary != INT_MIN);
+ Q_ASSERT(m_widthOfPrimary != INT_MIN);
const int widthOfSplitterPrimary = m_globalXOfPrimary + m_widthOfPrimary - m_globalXOfSplitter;
const QList<int> splitterSizes = {widthOfSplitterPrimary,
m_splitter->width() - widthOfSplitterPrimary};
@@ -156,8 +162,8 @@ void DolphinNavigatorsWidgetAction::adjustSpacing()
spacing(Primary, Trailing)->setFixedWidth(trailingSpacing);
// secondary side of m_splitter
- if (m_globalXOfSecondary == -1) {
- Q_ASSERT(m_widthOfSecondary == -1);
+ if (m_globalXOfSecondary == INT_MIN) {
+ Q_ASSERT(m_widthOfSecondary == INT_MIN);
return;
}
spacing(Primary, Trailing)->setFixedWidth(0);
@@ -244,3 +250,10 @@ QWidget *DolphinNavigatorsWidgetAction::spacing(Side side, Position position) co
}
return m_splitter->widget(sideIndex)->layout()->itemAt(2)->widget();
}
+
+void DolphinNavigatorsWidgetAction::updateText()
+{
+ const int urlNavigatorsAmount = m_splitter->count() > 1 && m_splitter->widget(1)->isVisible() ?
+ 2 : 1;
+ setText(i18ncp("@action:inmenu", "Url Navigator", "Url Navigators", urlNavigatorsAmount));
+}