From f35b5c4b2caea3c584d549d5357c2d50871b87e0 Mon Sep 17 00:00:00 2001 From: Nippy Date: Fri, 25 Sep 2026 17:28:54 +0200 Subject: update szep.25 calamares fix --- raveos-calamares/0003-restart-button.patch | 109 +++++++++++++++++++++++------ 1 file changed, 89 insertions(+), 20 deletions(-) (limited to 'raveos-calamares/0003-restart-button.patch') diff --git a/raveos-calamares/0003-restart-button.patch b/raveos-calamares/0003-restart-button.patch index a06ea52..bf8608e 100644 --- a/raveos-calamares/0003-restart-button.patch +++ b/raveos-calamares/0003-restart-button.patch @@ -1,53 +1,122 @@ --- a/src/calamares/CalamaresWindow.cpp +++ b/src/calamares/CalamaresWindow.cpp -@@ -35,6 +35,9 @@ +@@ -24,6 +24,7 @@ + #include "utils/Logger.h" + #include "utils/Qml.h" + #include "utils/Retranslator.h" ++#include "viewpages/ExecutionViewStep.h" + #include "viewpages/ViewStep.h" + + #include +@@ -34,7 +35,11 @@ + #endif #include #include ++#include #include -+#include ++#include +#include +#include #ifdef WITH_QML #include #include -@@ -216,6 +219,36 @@ +@@ -207,6 +212,49 @@ + return sideBox; + } + ++/** @brief RaveOS: localized confirm dialog for the global restart button. */ ++static bool ++raveosConfirmRestart( QWidget* parent ) ++{ ++ const QString lang = QLocale().name(); ++ const bool hu = lang.startsWith( QStringLiteral( "hu" ) ); ++ const bool de = lang.startsWith( QStringLiteral( "de" ) ); ++ const QString question = hu ? QStringLiteral( "Újraindítod a számítógépet?" ) ++ : ( de ? QStringLiteral( "Computer neu starten?" ) ++ : QStringLiteral( "Restart the computer?" ) ); ++ const QString okText = hu ? QStringLiteral( "Újraindítás" ) ++ : ( de ? QStringLiteral( "Neu starten" ) : QStringLiteral( "Restart" ) ); ++ const QString cancelText = hu ? QStringLiteral( "Mégse" ) ++ : ( de ? QStringLiteral( "Abbrechen" ) : QStringLiteral( "Cancel" ) ); ++ ++ QDialog dialog( parent ); ++ dialog.setObjectName( QStringLiteral( "raveosDialog" ) ); ++ dialog.setWindowTitle( QStringLiteral( "RaveOS" ) ); ++ dialog.setMinimumWidth( 420 ); ++ ++ auto* layout = new QVBoxLayout( &dialog ); ++ auto* label = new QLabel( question, &dialog ); ++ label->setObjectName( QStringLiteral( "raveosDialogLabel" ) ); ++ label->setWordWrap( true ); ++ layout->addWidget( label ); ++ layout->addSpacing( 10 ); ++ ++ auto* buttons = new QHBoxLayout; ++ buttons->addStretch(); ++ auto* cancel = new QPushButton( cancelText, &dialog ); ++ cancel->setObjectName( QStringLiteral( "raveosDialogCancel" ) ); ++ auto* ok = new QPushButton( okText, &dialog ); ++ ok->setObjectName( QStringLiteral( "raveosDialogOk" ) ); ++ buttons->addWidget( cancel ); ++ buttons->addWidget( ok ); ++ layout->addLayout( buttons ); ++ ++ QObject::connect( cancel, &QPushButton::clicked, &dialog, &QDialog::reject ); ++ QObject::connect( ok, &QPushButton::clicked, &dialog, &QDialog::accept ); ++ ++ return dialog.exec() == QDialog::Accepted; ++} ++ + static QWidget* + getWidgetNavigation( Calamares::DebugWindowManager*, + Calamares::ViewManager* viewManager, +@@ -216,6 +264,45 @@ { QWidget* navigation = new QWidget( parent ); QBoxLayout* bottomLayout = new QHBoxLayout; + -+ // RaveOS: globalis ujrainditas gomb a bal also sarokban (minden oldalon lathato) ++ // RaveOS: globalis ujrainditas gomb a bal also sarokban. ++ // Telepites kozben (exec) es a finish oldalon NEM latszik. + { -+ auto* restart = new QPushButton( -+ getButtonIcon( QStringLiteral( "view-refresh" ) ), -+ QCoreApplication::translate( CalamaresWindow::staticMetaObject.className(), "&Restart", "@button" ), -+ navigation ); ++ auto* restart = new QPushButton( navigation ); + restart->setObjectName( "restartButton" ); -+ restart->setToolTip( QCoreApplication::translate( CalamaresWindow::staticMetaObject.className(), -+ "Restart the computer", -+ "@tooltip" ) ); ++ CALAMARES_RETRANSLATE_FOR( ++ restart, ++ restart->setText( QCoreApplication::translate( CalamaresWindow::staticMetaObject.className(), ++ "&Restart", ++ "@button" ) ); ++ restart->setToolTip( QCoreApplication::translate( CalamaresWindow::staticMetaObject.className(), ++ "Restart the computer", ++ "@tooltip" ) ); ); ++ restart->setIcon( getButtonIcon( QStringLiteral( "view-refresh" ) ) ); + QObject::connect( restart, + &QPushButton::clicked, -+ navigation, -+ []() ++ restart, ++ [restart]() + { -+ if ( QMessageBox::question( nullptr, -+ QStringLiteral( "RaveOS" ), -+ QCoreApplication::translate( "calamares-sidebar", -+ "Restart the computer?", -+ "@info" ) ) -+ == QMessageBox::Yes ) ++ if ( raveosConfirmRestart( restart ) ) + { + QProcess::startDetached( QStringLiteral( "systemctl" ), + { QStringLiteral( "-i" ), QStringLiteral( "reboot" ) } ); + } + } ); + bottomLayout->addWidget( restart ); ++ ++ auto updateVisibility = [restart, viewManager]() ++ { ++ auto* step = viewManager->currentStep(); ++ const bool inExec = qobject_cast< Calamares::ExecutionViewStep* >( step ) != nullptr; ++ const bool onFinish = step && step->isAtEnd() && !step->isNextEnabled(); ++ restart->setVisible( !inExec && !onFinish ); ++ }; ++ QObject::connect( viewManager, &Calamares::ViewManager::currentStepChanged, restart, updateVisibility ); ++ updateVisibility(); + } + bottomLayout->addStretch(); // Create buttons and sets an initial icon; the icons may change -@@ -272,7 +305,7 @@ +@@ -272,7 +359,7 @@ bottomLayout->addWidget( quit ); } -- cgit v1.3