126 lines
3.3 KiB
Diff
126 lines
3.3 KiB
Diff
From 6b28669741d926375bf9b9b129416182b088042d Mon Sep 17 00:00:00 2001
|
|
From: huangjiawen <huangjiawen@kylinsec.com.cn>
|
|
Date: Thu, 20 Apr 2023 18:02:00 +0800
|
|
Subject: [PATCH] feature(menu): Hide UI after click on the power option
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
- 在点击电源选项按钮后,隐藏电源选项模态窗口
|
|
|
|
Signed-off-by: huangjiawen <huangjiawen@kylinsec.com.cn>
|
|
---
|
|
src/menu/menu-power-dialog.cpp | 21 +++++++++++++++++++++
|
|
src/menu/menu-power-dialog.h | 4 ++++
|
|
2 files changed, 25 insertions(+)
|
|
|
|
diff --git a/src/menu/menu-power-dialog.cpp b/src/menu/menu-power-dialog.cpp
|
|
index 1d75cf1..f13594d 100644
|
|
--- a/src/menu/menu-power-dialog.cpp
|
|
+++ b/src/menu/menu-power-dialog.cpp
|
|
@@ -64,6 +64,8 @@ MenuPowerDialog::MenuPowerDialog()
|
|
|
|
add_power_button(dialog_grid);
|
|
|
|
+ this->signal_dialog_hide().connect(sigc::mem_fun(*this, &Gtk::Widget::hide));
|
|
+
|
|
get_style_context()->add_class("power-menu-dialog");
|
|
}
|
|
|
|
@@ -140,10 +142,17 @@ void MenuPowerDialog::add_button(const char *button_icon_name,
|
|
dialog_grid->attach(*power_label, space, 1, 1, 1);
|
|
}
|
|
|
|
+sigc::signal<void> MenuPowerDialog::signal_dialog_hide()
|
|
+{
|
|
+ return signal_dialog_hide_;
|
|
+}
|
|
+
|
|
void MenuPowerDialog::do_reboot()
|
|
{
|
|
auto power = KiranPower::get_default();
|
|
|
|
+ signal_dialog_hide().emit();
|
|
+
|
|
power->reboot();
|
|
|
|
return;
|
|
@@ -153,6 +162,8 @@ void MenuPowerDialog::do_logout()
|
|
{
|
|
auto power = KiranPower::get_default();
|
|
|
|
+ signal_dialog_hide().emit();
|
|
+
|
|
power->logout(LOGOUT_MODE_NOW);
|
|
|
|
return;
|
|
@@ -162,6 +173,8 @@ void MenuPowerDialog::do_shutdown()
|
|
{
|
|
auto power = KiranPower::get_default();
|
|
|
|
+ signal_dialog_hide().emit();
|
|
+
|
|
power->shutdown();
|
|
|
|
return;
|
|
@@ -171,6 +184,8 @@ void MenuPowerDialog::do_hibernate()
|
|
{
|
|
auto power = KiranPower::get_default();
|
|
|
|
+ signal_dialog_hide().emit();
|
|
+
|
|
power->hibernate();
|
|
|
|
return;
|
|
@@ -179,6 +194,8 @@ void MenuPowerDialog::do_suspend()
|
|
{
|
|
auto power = KiranPower::get_default();
|
|
|
|
+ signal_dialog_hide().emit();
|
|
+
|
|
power->suspend();
|
|
|
|
return;
|
|
@@ -188,6 +205,8 @@ void MenuPowerDialog::do_switch_user()
|
|
{
|
|
auto power = KiranPower::get_default();
|
|
|
|
+ signal_dialog_hide().emit();
|
|
+
|
|
if (power->get_graphical_ntvs() >= power->get_ntvs_total())
|
|
{
|
|
KLOG_DEBUG("Total ntvs: %d, graphical ntvs: %d.", power->get_ntvs_total(), power->get_graphical_ntvs());
|
|
@@ -210,6 +229,8 @@ void MenuPowerDialog::do_lock_screen()
|
|
{
|
|
auto power = KiranPower::get_default();
|
|
|
|
+ signal_dialog_hide().emit();
|
|
+
|
|
power->lock_screen();
|
|
|
|
return;
|
|
diff --git a/src/menu/menu-power-dialog.h b/src/menu/menu-power-dialog.h
|
|
index 471ab42..724bbf3 100644
|
|
--- a/src/menu/menu-power-dialog.h
|
|
+++ b/src/menu/menu-power-dialog.h
|
|
@@ -32,12 +32,16 @@ public:
|
|
void do_switch_user();
|
|
void do_lock_screen();
|
|
|
|
+ sigc::signal<void> signal_dialog_hide();
|
|
+
|
|
void add_power_button(Gtk::Grid *dialog_grid);
|
|
void add_button(const char *button_icon_name,
|
|
const char *button_name,
|
|
Gtk::Grid *dialog_grid,
|
|
int space,
|
|
void (MenuPowerDialog::*power_func)());
|
|
+protected:
|
|
+ sigc::signal<void> signal_dialog_hide_;
|
|
};
|
|
|
|
#endif // MENU_POWER_DIALOG_H
|
|
--
|
|
2.33.0
|
|
|