Add shutdown widget.

This commit is contained in:
sunwen
2023-09-11 16:29:30 +08:00
parent ae1b063b72
commit 2bbef648f5
10 changed files with 140 additions and 7 deletions

View File

@@ -9,6 +9,7 @@
#include <QDockWidget>
#include "InitializeWidget.h"
#include "ShutdownWidget.h"
#include "event/EventCenter.h"
#include "forms/TabFormWidget.h"
#include "forms/recon/ReconFormWidget.h"
@@ -31,6 +32,7 @@ MainWindow::MainWindow(QWidget* aParent)
, mDebugMessageConsole(nullptr)
, mTabWidget(new QTabWidget(this))
, mInitializWidget(new InitializeWidget(this))
, mShutdownWidget(new ShutdownWidget(nullptr))
, mAdminTabIndex(-1)
, mThread(nullptr)
, mIsDebugMode(false)
@@ -50,6 +52,8 @@ MainWindow::MainWindow(QWidget* aParent)
connect(EventCenter::Default(), &EventCenter::RequestScreenSaver, this, &MainWindow::requestScreenSaver);
connect(DeviceManager::Default(), &DeviceManager::initializeFinished, this, &MainWindow::requestLogin);
connect(DeviceManager::Default(), &DeviceManager::initializeProgress, mInitializWidget, &InitializeWidget::setMessage);
connect(DeviceManager::Default(), &DeviceManager::shutdownDmsSended, this, &MainWindow::showShutdownWidget);
connect(DeviceManager::Default(), &DeviceManager::shutdownDmsFailed, this, &MainWindow::processShutdownDmsFailed);
connect(DialogManager::Default(), &DialogManager::loginDialogShown, this, [this]()
{
mInitializWidget->setVisible(false);
@@ -64,6 +68,7 @@ MainWindow::~MainWindow()
mThread->terminate();
mThread->deleteLater();
delete mUI;
delete mShutdownWidget;
}
//------Layout-----------------------------------------------------------------
@@ -91,6 +96,7 @@ void MainWindow::initializeLayout()
layout->addWidget(mInitializWidget);
mTabWidget->setVisible(false);
mShutdownWidget->setVisible(false);
}
void MainWindow::initializeTabWidget()
@@ -114,6 +120,17 @@ void MainWindow::reloadLanguage() {
mTabWidget->setTabText(3, tr("Settings"));
}
void MainWindow::showShutdownWidget()
{
mShutdownWidget->setVisible(true);
}
void MainWindow::processShutdownDmsFailed()
{
mShutdownWidget->setVisible(false);
triggerError(tr("Shut down failed, please push emergency button to shutdown."));
}
void MainWindow::switchToScanTab() { mTabWidget->setCurrentIndex(1); }
void MainWindow::centerWidgetHide()

View File

@@ -19,6 +19,7 @@ class QSwipeGesture;
class QPanGesture;
class QDockWidget;
class InitializeWidget;
class ShutdownWidget;
class MainWindow : public QMainWindow
{
@@ -53,6 +54,8 @@ private:
void swipeTriggered(QSwipeGesture* aSwipeGesture);
void panTriggered(QPanGesture* aPanGesture);
void loadStyleSheet(const QString& aSheetName);
void showShutdownWidget();
void processShutdownDmsFailed();
private:
Ui::MainWindow* mUI;
@@ -60,6 +63,8 @@ private:
QTextEdit* mDebugMessageConsole;
QTabWidget* mTabWidget;
InitializeWidget* mInitializWidget;
ShutdownWidget* mShutdownWidget;
int mAdminTabIndex;
QThread* mThread;
bool mIsDebugMode;

View File

@@ -0,0 +1,31 @@
#include "ShutdownWidget.h"
#include "components/LoadingWidget.h"
#include <QLabel>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QApplication>
#include <QDesktopWidget>
#include <QSpacerItem>
ShutdownWidget::ShutdownWidget(QWidget* aParent)
: QWidget(aParent)
, mLoadingWidget(new LoadingWidget(this))
, mMessage(new QLabel(this))
{
setGeometry(QApplication::desktop()->screenGeometry());
mLoadingWidget->setMaximumHeight(150);
mLoadingWidget->setMaxDiameter(16);
setWindowFlags( Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::Tool | Qt::BypassWindowManagerHint);
mMessage->setText(tr("shut down"));
mMessage->setAlignment(Qt::AlignHCenter | Qt::AlignTop);
mMessage->setObjectName("Shutdown");
QVBoxLayout* layout = new QVBoxLayout(this);
layout->addItem(new QSpacerItem(20, 300, QSizePolicy::Minimum, QSizePolicy::Preferred));
layout->addWidget(mLoadingWidget);
layout->addWidget(mMessage);
layout->setSpacing(50);
}

View File

@@ -0,0 +1,20 @@
#ifndef SHUTDOWNWIDGET_H
#define SHUTDOWNWIDGET_H
#include <QWidget>
class QLabel;
class LoadingWidget;
class ShutdownWidget : public QWidget
{
Q_OBJECT
public:
ShutdownWidget(QWidget* aParent);
private:
LoadingWidget* mLoadingWidget;
QLabel* mMessage;
};
#endif // SHUTDOWNWIDGET_H