diff options
| author | Felix Ernst <[email protected]> | 2020-11-05 23:30:07 +0100 |
|---|---|---|
| committer | Elvis Angelaccio <[email protected]> | 2020-11-09 23:49:07 +0100 |
| commit | 2d4d2ce9a14902ee5a2b236f8510596fc2f86b99 (patch) | |
| tree | 07607a2561e3f6e268e4e883f422582bdc908013 /src/dolphinnavigatorswidgetaction.cpp | |
| parent | 42023831374496c62708ce7ad2cdd69104a1c820 (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.cpp | 37 |
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)); +} |
