From 6b28669741d926375bf9b9b129416182b088042d Mon Sep 17 00:00:00 2001 From: huangjiawen 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 --- 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 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 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 signal_dialog_hide_; }; #endif // MENU_POWER_DIALOG_H -- 2.33.0