From 03d1fe434c58ce0071a69d864481ae4ab8075a3e Mon Sep 17 00:00:00 2001 From: Anubhav Choudhary Date: Sun, 6 Dec 2020 04:32:18 +0530 Subject: [PATCH] Navigation button hideability added --- src/calamares/calamares-navigation.qml | 4 ++-- src/libcalamares/Settings.cpp | 1 + src/libcalamares/Settings.h | 3 +++ src/libcalamaresui/ViewManager.cpp | 7 +++++++ src/libcalamaresui/ViewManager.h | 10 ++++++++++ 5 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/calamares/calamares-navigation.qml b/src/calamares/calamares-navigation.qml index 131926175..937e35529 100644 --- a/src/calamares/calamares-navigation.qml +++ b/src/calamares/calamares-navigation.qml @@ -35,7 +35,7 @@ Rectangle { icon.name: ViewManager.backIcon; enabled: ViewManager.backEnabled; - visible: true; + visible: ViewManager.backAndNextVisible; onClicked: { ViewManager.back(); } } Button @@ -44,7 +44,7 @@ Rectangle { icon.name: ViewManager.nextIcon; enabled: ViewManager.nextEnabled; - visible: true; + visible: ViewManager.backAndNextVisible; onClicked: { ViewManager.next(); } } Button diff --git a/src/libcalamares/Settings.cpp b/src/libcalamares/Settings.cpp index dcb5c70b0..9453075b6 100644 --- a/src/libcalamares/Settings.cpp +++ b/src/libcalamares/Settings.cpp @@ -308,6 +308,7 @@ Settings::setConfiguration( const QByteArray& ba, const QString& explainName ) m_isSetupMode = requireBool( config, "oem-setup", !m_doChroot ); m_disableCancel = requireBool( config, "disable-cancel", false ); m_disableCancelDuringExec = requireBool( config, "disable-cancel-during-exec", false ); + m_hideBackAndNextDuringExec = requireBool( config, "hide-back-and-next-during-exec", false ); m_quitAtEnd = requireBool( config, "quit-at-end", false ); reconcileInstancesAndSequence(); diff --git a/src/libcalamares/Settings.h b/src/libcalamares/Settings.h index 0abf3b866..b1a1c661c 100644 --- a/src/libcalamares/Settings.h +++ b/src/libcalamares/Settings.h @@ -157,6 +157,8 @@ public: /** @brief Temporary setting of disable-cancel: can't cancel during exec. */ bool disableCancelDuringExec() const { return m_disableCancelDuringExec; } + bool hideBackAndNextDuringExec() const { return m_hideBackAndNextDuringExec; } + /** @brief Is quit-at-end set? (Quit automatically when done) */ bool quitAtEnd() const { return m_quitAtEnd; } @@ -176,6 +178,7 @@ private: bool m_promptInstall; bool m_disableCancel; bool m_disableCancelDuringExec; + bool m_hideBackAndNextDuringExec; bool m_quitAtEnd; }; diff --git a/src/libcalamaresui/ViewManager.cpp b/src/libcalamaresui/ViewManager.cpp index 8094e5223..0c5987bb8 100644 --- a/src/libcalamaresui/ViewManager.cpp +++ b/src/libcalamaresui/ViewManager.cpp @@ -369,6 +369,7 @@ ViewManager::next() UPDATE_BUTTON_PROPERTY( backEnabled, false ) } updateCancelEnabled( !settings->disableCancel() && !( executing && settings->disableCancelDuringExec() ) ); + updateBackAndNextVisibility(!executing || !settings->hideBackAndNextDuringExec()); } else { @@ -528,6 +529,12 @@ ViewManager::updateCancelEnabled( bool enabled ) emit cancelEnabled( enabled ); } +void +ViewManager::updateBackAndNextVisibility( bool visible) +{ + UPDATE_BUTTON_PROPERTY( backAndNextVisible, visible ) +} + QVariant ViewManager::data( const QModelIndex& index, int role ) const { diff --git a/src/libcalamaresui/ViewManager.h b/src/libcalamaresui/ViewManager.h index 165358b76..4fbcda39d 100644 --- a/src/libcalamaresui/ViewManager.h +++ b/src/libcalamaresui/ViewManager.h @@ -45,6 +45,8 @@ class UIDLLEXPORT ViewManager : public QAbstractListModel Q_PROPERTY( bool quitVisible READ quitVisible NOTIFY quitVisibleChanged FINAL ) + Q_PROPERTY( bool backAndNextVisible READ backAndNextVisible NOTIFY backAndNextVisibleChanged FINAL ) + ///@brief Sides on which the ViewManager has side-panels Q_PROPERTY( Qt::Orientations panelSides READ panelSides WRITE setPanelSides MEMBER m_panelSides ) @@ -144,6 +146,10 @@ public Q_SLOTS: return m_backIcon; ///< Name of the icon to show } + bool backAndNextVisible() const + { + return m_backAndNextVisible; ///< Is the quit-button to be enabled + } /** * @brief Probably quit * @@ -203,6 +209,7 @@ signals: void backEnabledChanged( bool ) const; void backLabelChanged( QString ) const; void backIconChanged( QString ) const; + void backAndNextVisibleChanged( bool ) const; void quitEnabledChanged( bool ) const; void quitLabelChanged( QString ) const; @@ -217,6 +224,7 @@ private: void insertViewStep( int before, ViewStep* step ); void updateButtonLabels(); void updateCancelEnabled( bool enabled ); + void updateBackAndNextVisibility( bool visible ); inline bool currentStepValid() const { return ( 0 <= m_currentStep ) && ( m_currentStep < m_steps.length() ); } @@ -236,6 +244,8 @@ private: QString m_backLabel; QString m_backIcon; + bool m_backAndNextVisible = true; + bool m_quitEnabled = false; QString m_quitLabel; QString m_quitIcon;