Allow adding submenu actions with icons.
This commit is contained in:
parent
7efa1f9b2b
commit
6ac846adbb
4 changed files with 30 additions and 8 deletions
|
|
@ -68,10 +68,12 @@ not_null<QAction*> Menu::addAction(
|
||||||
|
|
||||||
not_null<QAction*> Menu::addAction(
|
not_null<QAction*> Menu::addAction(
|
||||||
const QString &text,
|
const QString &text,
|
||||||
std::unique_ptr<QMenu> submenu) {
|
std::unique_ptr<QMenu> submenu,
|
||||||
|
const style::icon *icon,
|
||||||
|
const style::icon *iconOver) {
|
||||||
const auto action = new QAction(text, this);
|
const auto action = new QAction(text, this);
|
||||||
action->setMenu(submenu.release());
|
action->setMenu(submenu.release());
|
||||||
return addAction(action, nullptr, nullptr);
|
return addAction(action, icon, iconOver);
|
||||||
}
|
}
|
||||||
|
|
||||||
not_null<QAction*> Menu::addAction(
|
not_null<QAction*> Menu::addAction(
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,9 @@ public:
|
||||||
const style::icon *iconOver = nullptr);
|
const style::icon *iconOver = nullptr);
|
||||||
not_null<QAction*> addAction(
|
not_null<QAction*> addAction(
|
||||||
const QString &text,
|
const QString &text,
|
||||||
std::unique_ptr<QMenu> submenu);
|
std::unique_ptr<QMenu> submenu,
|
||||||
|
const style::icon *icon = nullptr,
|
||||||
|
const style::icon *iconOver = nullptr);
|
||||||
not_null<QAction*> addSeparator();
|
not_null<QAction*> addSeparator();
|
||||||
void clearActions();
|
void clearActions();
|
||||||
void finishAnimating();
|
void finishAnimating();
|
||||||
|
|
|
||||||
|
|
@ -357,14 +357,24 @@ not_null<QAction*> PopupMenu::addAction(
|
||||||
return _menu->addAction(std::move(widget));
|
return _menu->addAction(std::move(widget));
|
||||||
}
|
}
|
||||||
|
|
||||||
not_null<QAction*> PopupMenu::addAction(const QString &text, Fn<void()> callback, const style::icon *icon, const style::icon *iconOver) {
|
not_null<QAction*> PopupMenu::addAction(
|
||||||
|
const QString &text,
|
||||||
|
Fn<void()> callback,
|
||||||
|
const style::icon *icon,
|
||||||
|
const style::icon *iconOver) {
|
||||||
return _menu->addAction(text, std::move(callback), icon, iconOver);
|
return _menu->addAction(text, std::move(callback), icon, iconOver);
|
||||||
}
|
}
|
||||||
|
|
||||||
not_null<QAction*> PopupMenu::addAction(
|
not_null<QAction*> PopupMenu::addAction(
|
||||||
const QString &text,
|
const QString &text,
|
||||||
std::unique_ptr<PopupMenu> submenu) {
|
std::unique_ptr<PopupMenu> submenu,
|
||||||
const auto action = _menu->addAction(text, std::make_unique<QMenu>());
|
const style::icon *icon,
|
||||||
|
const style::icon *iconOver) {
|
||||||
|
const auto action = _menu->addAction(
|
||||||
|
text,
|
||||||
|
std::make_unique<QMenu>(),
|
||||||
|
icon,
|
||||||
|
iconOver);
|
||||||
const auto saved = _submenus.emplace(
|
const auto saved = _submenus.emplace(
|
||||||
action,
|
action,
|
||||||
base::unique_qptr<PopupMenu>(submenu.release())
|
base::unique_qptr<PopupMenu>(submenu.release())
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,16 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
not_null<QAction*> addAction(base::unique_qptr<Menu::ItemBase> widget);
|
not_null<QAction*> addAction(base::unique_qptr<Menu::ItemBase> widget);
|
||||||
not_null<QAction*> addAction(const QString &text, Fn<void()> callback, const style::icon *icon = nullptr, const style::icon *iconOver = nullptr);
|
not_null<QAction*> addAction(
|
||||||
not_null<QAction*> addAction(const QString &text, std::unique_ptr<PopupMenu> submenu);
|
const QString &text,
|
||||||
|
Fn<void()> callback,
|
||||||
|
const style::icon *icon = nullptr,
|
||||||
|
const style::icon *iconOver = nullptr);
|
||||||
|
not_null<QAction*> addAction(
|
||||||
|
const QString &text,
|
||||||
|
std::unique_ptr<PopupMenu> submenu,
|
||||||
|
const style::icon *icon = nullptr,
|
||||||
|
const style::icon *iconOver = nullptr);
|
||||||
not_null<QAction*> addSeparator();
|
not_null<QAction*> addSeparator();
|
||||||
void clearActions();
|
void clearActions();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue