Hide all PopupMenu when enabling local passcode.

This commit is contained in:
John Preston 2017-11-24 20:06:35 +04:00
parent bb7ab625c1
commit 7705696d54
2 changed files with 8 additions and 1 deletions

View File

@ -21,6 +21,7 @@
#include "platform/platform_specific.h" #include "platform/platform_specific.h"
#include "application.h" #include "application.h"
#include "mainwindow.h" #include "mainwindow.h"
#include "messenger.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
namespace Ui { namespace Ui {
@ -45,6 +46,12 @@ PopupMenu::PopupMenu(QWidget*, QMenu *menu, const style::PopupMenu &st) : TWidge
} }
void PopupMenu::init() { void PopupMenu::init() {
subscribe(Messenger::Instance().passcodedChanged(), [this] {
if (App::passcoded()) {
hideMenu(true);
}
});
_menu->setResizedCallback([this] { handleMenuResize(); }); _menu->setResizedCallback([this] { handleMenuResize(); });
_menu->setActivatedCallback([this](QAction *action, int actionTop, TriggeredSource source) { _menu->setActivatedCallback([this](QAction *action, int actionTop, TriggeredSource source) {
handleActivated(action, actionTop, source); handleActivated(action, actionTop, source);

View File

@ -23,7 +23,7 @@
namespace Ui { namespace Ui {
class PopupMenu : public TWidget { class PopupMenu : public TWidget, private base::Subscriber {
public: public:
PopupMenu(QWidget*, const style::PopupMenu &st = st::defaultPopupMenu); PopupMenu(QWidget*, const style::PopupMenu &st = st::defaultPopupMenu);
PopupMenu(QWidget*, QMenu *menu, const style::PopupMenu &st = st::defaultPopupMenu); PopupMenu(QWidget*, QMenu *menu, const style::PopupMenu &st = st::defaultPopupMenu);