247 lines
9.0 KiB
Diff
247 lines
9.0 KiB
Diff
|
|
From 7a3011e5efe45680acac9ad3f2493a5bed5ce85f Mon Sep 17 00:00:00 2001
|
||
|
|
From: cui-gaoleng <562344211@qq.com>
|
||
|
|
Date: Fri, 8 Nov 2024 01:23:08 +0800
|
||
|
|
Subject: [PATCH 3/4] =?UTF-8?q?libcalamaresui=E6=96=87=E4=BB=B6=E5=A4=B9?=
|
||
|
|
MIME-Version: 1.0
|
||
|
|
Content-Type: text/plain; charset=UTF-8
|
||
|
|
Content-Transfer-Encoding: 8bit
|
||
|
|
|
||
|
|
---
|
||
|
|
src/libcalamaresui/Branding.h | 3 +-
|
||
|
|
src/libcalamaresui/ViewManager.cpp | 54 +++++++++++++++----
|
||
|
|
src/libcalamaresui/ViewManager.h | 5 +-
|
||
|
|
src/libcalamaresui/libcalamaresui.qrc | 2 +
|
||
|
|
src/libcalamaresui/utils/Gui.cpp | 6 ++-
|
||
|
|
src/libcalamaresui/utils/Gui.h | 5 +-
|
||
|
|
.../viewpages/ExecutionViewStep.cpp | 3 +-
|
||
|
|
7 files changed, 63 insertions(+), 15 deletions(-)
|
||
|
|
|
||
|
|
diff --git a/src/libcalamaresui/Branding.h b/src/libcalamaresui/Branding.h
|
||
|
|
index 3fffa02..e374fa1 100644
|
||
|
|
--- a/src/libcalamaresui/Branding.h
|
||
|
|
+++ b/src/libcalamaresui/Branding.h
|
||
|
|
@@ -68,7 +68,8 @@ public:
|
||
|
|
ProductIcon,
|
||
|
|
ProductLogo,
|
||
|
|
ProductWallpaper,
|
||
|
|
- ProductWelcome
|
||
|
|
+ ProductWelcome,
|
||
|
|
+ welcomebackground
|
||
|
|
};
|
||
|
|
Q_ENUM( ImageEntry )
|
||
|
|
|
||
|
|
diff --git a/src/libcalamaresui/ViewManager.cpp b/src/libcalamaresui/ViewManager.cpp
|
||
|
|
index 2fd7f45..1e097b5 100644
|
||
|
|
--- a/src/libcalamaresui/ViewManager.cpp
|
||
|
|
+++ b/src/libcalamaresui/ViewManager.cpp
|
||
|
|
@@ -21,6 +21,7 @@
|
||
|
|
#include "utils/Paste.h"
|
||
|
|
#include "utils/Retranslator.h"
|
||
|
|
#include "utils/String.h"
|
||
|
|
+#include "utils/Gui.h"
|
||
|
|
#include "viewpages/BlankViewStep.h"
|
||
|
|
#include "viewpages/ExecutionViewStep.h"
|
||
|
|
#include "viewpages/ViewStep.h"
|
||
|
|
@@ -34,6 +35,7 @@
|
||
|
|
#include <QFile>
|
||
|
|
#include <QMessageBox>
|
||
|
|
#include <QMetaObject>
|
||
|
|
+#include <QProcess>
|
||
|
|
|
||
|
|
#define UPDATE_BUTTON_PROPERTY( name, value ) \
|
||
|
|
do \
|
||
|
|
@@ -220,7 +222,7 @@ ViewManager::onInitComplete()
|
||
|
|
m_steps.first()->onActivate();
|
||
|
|
}
|
||
|
|
|
||
|
|
- emit currentStepChanged();
|
||
|
|
+ emit currentStepChanged(m_currentStep);
|
||
|
|
}
|
||
|
|
|
||
|
|
void
|
||
|
|
@@ -368,7 +370,7 @@ ViewManager::next()
|
||
|
|
{
|
||
|
|
m_steps.at( m_currentStep )->onActivate();
|
||
|
|
executing = qobject_cast< ExecutionViewStep* >( m_steps.at( m_currentStep ) ) != nullptr;
|
||
|
|
- emit currentStepChanged();
|
||
|
|
+ emit currentStepChanged(m_currentStep);
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
@@ -466,7 +468,7 @@ ViewManager::back()
|
||
|
|
m_stack->setCurrentIndex( m_currentStep );
|
||
|
|
step->onLeave();
|
||
|
|
m_steps.at( m_currentStep )->onActivate();
|
||
|
|
- emit currentStepChanged();
|
||
|
|
+ emit currentStepChanged(m_currentStep);
|
||
|
|
}
|
||
|
|
else if ( !step->isAtBeginning() )
|
||
|
|
{
|
||
|
|
@@ -486,6 +488,20 @@ ViewManager::back()
|
||
|
|
updateButtonLabels();
|
||
|
|
}
|
||
|
|
|
||
|
|
+void
|
||
|
|
+ViewManager::restartInstallation()
|
||
|
|
+{
|
||
|
|
+ QString restartNowCommand = QStringLiteral( "shutdown -r now" );
|
||
|
|
+ QProcess::execute( "/bin/sh", { "-c", restartNowCommand } );
|
||
|
|
+}
|
||
|
|
+
|
||
|
|
+void
|
||
|
|
+ViewManager::startDebugTerminal()
|
||
|
|
+{
|
||
|
|
+ //QProcess::startDetached("/bin/bash", QStringList());
|
||
|
|
+ QApplication::quit();
|
||
|
|
+}
|
||
|
|
+
|
||
|
|
void
|
||
|
|
ViewManager::quit()
|
||
|
|
{
|
||
|
|
@@ -524,13 +540,33 @@ ViewManager::confirmCancelInstallation()
|
||
|
|
QString title = settings->isSetupMode() ? tr( "Cancel Setup?", "@title" ) : tr( "Cancel Installation?", "@title" );
|
||
|
|
QString question = settings->isSetupMode() ? tr( "Do you really want to cancel the current setup process?\n"
|
||
|
|
"The setup program will quit and all changes will be lost." )
|
||
|
|
- : tr( "Do you really want to cancel the current install process?\n"
|
||
|
|
- "The installer will quit and all changes will be lost." );
|
||
|
|
- QMessageBox mb( QMessageBox::Question, title, question, QMessageBox::Yes | QMessageBox::No, m_widget );
|
||
|
|
- mb.setDefaultButton( QMessageBox::No );
|
||
|
|
+ : tr( "Do you really want to cancel the current installation process?\n"
|
||
|
|
+ "The system will reboot or you can enter the debug mode for further investigation." );
|
||
|
|
+ QMessageBox mb( QMessageBox::Question, title, question, QMessageBox::NoButton, m_widget );
|
||
|
|
+ QPushButton* rebootButton = mb.addButton( tr( "&Reboot", "@button" ), QMessageBox::ActionRole );
|
||
|
|
+ QPushButton* debugButton = mb.addButton( tr( "&Try Now", "@button" ), QMessageBox::ActionRole );
|
||
|
|
+ QPushButton* cancelButton = mb.addButton( QMessageBox::Cancel );
|
||
|
|
+ mb.setIconPixmap(
|
||
|
|
+ Calamares::defaultPixmap( Calamares::BigLogo,//Biglogo.svgz
|
||
|
|
+ Calamares::Original,
|
||
|
|
+ QSize( 321/5, 297/5 ) ));
|
||
|
|
+ mb.setDefaultButton( cancelButton );
|
||
|
|
+ mb.setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);
|
||
|
|
Calamares::fixButtonLabels( &mb );
|
||
|
|
- int response = mb.exec();
|
||
|
|
- return response == QMessageBox::Yes;
|
||
|
|
+
|
||
|
|
+ mb.exec();
|
||
|
|
+
|
||
|
|
+ if ( mb.clickedButton() == rebootButton )
|
||
|
|
+ {
|
||
|
|
+ restartInstallation();
|
||
|
|
+ return false;
|
||
|
|
+ }
|
||
|
|
+ else if ( mb.clickedButton() == debugButton )
|
||
|
|
+ {
|
||
|
|
+ startDebugTerminal();
|
||
|
|
+ return true;
|
||
|
|
+ }
|
||
|
|
+ return false;
|
||
|
|
}
|
||
|
|
|
||
|
|
void
|
||
|
|
diff --git a/src/libcalamaresui/ViewManager.h b/src/libcalamaresui/ViewManager.h
|
||
|
|
index 5a449a1..da9e9bd 100644
|
||
|
|
--- a/src/libcalamaresui/ViewManager.h
|
||
|
|
+++ b/src/libcalamaresui/ViewManager.h
|
||
|
|
@@ -87,6 +87,9 @@ public:
|
||
|
|
*/
|
||
|
|
ViewStepList viewSteps() const;
|
||
|
|
|
||
|
|
+ void restartInstallation();
|
||
|
|
+ void startDebugTerminal();
|
||
|
|
+
|
||
|
|
/**
|
||
|
|
* @brief currentStep returns the currently active ViewStep, i.e. the ViewStep
|
||
|
|
* which owns the currently visible view page.
|
||
|
|
@@ -213,7 +216,7 @@ public Q_SLOTS:
|
||
|
|
QString logFilePath() const;
|
||
|
|
|
||
|
|
signals:
|
||
|
|
- void currentStepChanged();
|
||
|
|
+ void currentStepChanged(int m_currentStep);
|
||
|
|
void ensureSize( QSize size ) const; // See ViewStep::ensureSize()
|
||
|
|
void cancelEnabled( bool enabled ) const;
|
||
|
|
|
||
|
|
diff --git a/src/libcalamaresui/libcalamaresui.qrc b/src/libcalamaresui/libcalamaresui.qrc
|
||
|
|
index 62a7df2..ddb197d 100644
|
||
|
|
--- a/src/libcalamaresui/libcalamaresui.qrc
|
||
|
|
+++ b/src/libcalamaresui/libcalamaresui.qrc
|
||
|
|
@@ -24,5 +24,7 @@
|
||
|
|
<file alias="images/state-ok.svg">../../data/images/state-ok.svg</file>
|
||
|
|
<file alias="images/state-warning.svg">../../data/images/state-warning.svg</file>
|
||
|
|
<file alias="images/state-error.svg">../../data/images/state-error.svg</file>
|
||
|
|
+ <file alias="images/Biglogo.svg">../../data/images/Biglogo.svg</file>
|
||
|
|
+ <file alias="images/Biglogo.svgz">../../data/images/Biglogo.svgz</file>
|
||
|
|
</qresource>
|
||
|
|
</RCC>
|
||
|
|
diff --git a/src/libcalamaresui/utils/Gui.cpp b/src/libcalamaresui/utils/Gui.cpp
|
||
|
|
index 57f67ae..3915cb7 100644
|
||
|
|
--- a/src/libcalamaresui/utils/Gui.cpp
|
||
|
|
+++ b/src/libcalamaresui/utils/Gui.cpp
|
||
|
|
@@ -101,7 +101,7 @@ defaultPixmap( ImageType type, ImageMode mode, const QSize& size )
|
||
|
|
break;
|
||
|
|
|
||
|
|
case Squid:
|
||
|
|
- pixmap = ImageRegistry::instance()->pixmap( RESPATH "images/squid.svg", size );
|
||
|
|
+ pixmap = ImageRegistry::instance()->pixmap( RESPATH "images/Biglogo.svg", size );
|
||
|
|
break;
|
||
|
|
|
||
|
|
case StatusOk:
|
||
|
|
@@ -115,6 +115,10 @@ defaultPixmap( ImageType type, ImageMode mode, const QSize& size )
|
||
|
|
case StatusError:
|
||
|
|
pixmap = ImageRegistry::instance()->pixmap( RESPATH "images/state-error.svg", size );
|
||
|
|
break;
|
||
|
|
+
|
||
|
|
+ case BigLogo:
|
||
|
|
+ pixmap = ImageRegistry::instance()->pixmap( RESPATH "images/Biglogo.svgz", size );
|
||
|
|
+ break;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ( pixmap.isNull() )
|
||
|
|
diff --git a/src/libcalamaresui/utils/Gui.h b/src/libcalamaresui/utils/Gui.h
|
||
|
|
index 1264bc1..947be64 100644
|
||
|
|
--- a/src/libcalamaresui/utils/Gui.h
|
||
|
|
+++ b/src/libcalamaresui/utils/Gui.h
|
||
|
|
@@ -50,7 +50,8 @@ enum ImageType : int
|
||
|
|
Squid,
|
||
|
|
StatusOk, // Icons for the requirements checker
|
||
|
|
StatusWarning,
|
||
|
|
- StatusError
|
||
|
|
+ StatusError,
|
||
|
|
+ BigLogo
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
@@ -94,7 +95,7 @@ UIDLLEXPORT QSize defaultIconSize();
|
||
|
|
*/
|
||
|
|
constexpr int windowMinimumWidth = 800;
|
||
|
|
constexpr int windowMinimumHeight = 520;
|
||
|
|
-constexpr int windowPreferredWidth = 1024;
|
||
|
|
+constexpr int windowPreferredWidth = 912;
|
||
|
|
constexpr int windowPreferredHeight = 520;
|
||
|
|
|
||
|
|
} // namespace Calamares
|
||
|
|
diff --git a/src/libcalamaresui/viewpages/ExecutionViewStep.cpp b/src/libcalamaresui/viewpages/ExecutionViewStep.cpp
|
||
|
|
index 71ea85b..c34d308 100644
|
||
|
|
--- a/src/libcalamaresui/viewpages/ExecutionViewStep.cpp
|
||
|
|
+++ b/src/libcalamaresui/viewpages/ExecutionViewStep.cpp
|
||
|
|
@@ -38,6 +38,7 @@
|
||
|
|
#include <QToolBar>
|
||
|
|
#include <QToolButton>
|
||
|
|
#include <QVBoxLayout>
|
||
|
|
+#include <QCoreApplication>
|
||
|
|
|
||
|
|
static Calamares::Slideshow*
|
||
|
|
makeSlideshow( QWidget* parent )
|
||
|
|
@@ -101,7 +102,7 @@ ExecutionViewStep::ExecutionViewStep( QObject* parent )
|
||
|
|
Branding::instance()->image(
|
||
|
|
{ "utilities-log-viewer", "utilities-terminal", "text-x-log", "text-x-changelog", "preferences-log" },
|
||
|
|
QSize( 32, 32 ) ),
|
||
|
|
- "Toggle log" );
|
||
|
|
+ QCoreApplication::translate("Calamares::ExecutionViewStep","Toggle log" ) );
|
||
|
|
auto toggleLogButton = dynamic_cast< QToolButton* >( toolBar->widgetForAction( toggleLogAction ) );
|
||
|
|
connect( toggleLogButton, &QToolButton::clicked, this, &ExecutionViewStep::toggleLog );
|
||
|
|
|
||
|
|
--
|
||
|
|
2.43.0
|
||
|
|
|