Added ability to check if menu has no items.

This commit is contained in:
23rd 2021-01-13 04:10:03 +03:00
parent ec988db6c7
commit 11a2b0f88d
6 changed files with 16 additions and 0 deletions

View file

@ -72,6 +72,10 @@ const std::vector<not_null<QAction*>> &DropdownMenu::actions() const {
return _menu->actions();
}
bool DropdownMenu::empty() const {
return _menu->empty();
}
void DropdownMenu::handleActivated(const Menu::CallbackData &data) {
if (data.source == TriggeredSource::Mouse) {
if (!popupSubmenuFromAction(data)) {

View file

@ -27,6 +27,7 @@ public:
}
const std::vector<not_null<QAction*>> &actions() const;
bool empty() const;
~DropdownMenu();

View file

@ -159,6 +159,10 @@ void Menu::clearActions() {
void Menu::finishAnimating() {
}
bool Menu::empty() const {
return _actionWidgets.empty();
}
void Menu::setShowSource(TriggeredSource source) {
_mouseSelection = (source == TriggeredSource::Mouse);
setSelected((source == TriggeredSource::Mouse || _actions.empty()) ? -1 : 0);

View file

@ -31,6 +31,8 @@ public:
void clearActions();
void finishAnimating();
bool empty() const;
void clearSelection();
void setChildShown(bool shown) {

View file

@ -118,6 +118,10 @@ const std::vector<not_null<QAction*>> &PopupMenu::actions() const {
return _menu->actions();
}
bool PopupMenu::empty() const {
return _menu->empty();
}
void PopupMenu::paintEvent(QPaintEvent *e) {
QPainter p(this);

View file

@ -27,6 +27,7 @@ public:
void clearActions();
const std::vector<not_null<QAction*>> &actions() const;
bool empty() const;
void deleteOnHide(bool del);
void popup(const QPoint &p);