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(
|
||||
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);
|
||||
action->setMenu(submenu.release());
|
||||
return addAction(action, nullptr, nullptr);
|
||||
return addAction(action, icon, iconOver);
|
||||
}
|
||||
|
||||
not_null<QAction*> Menu::addAction(
|
||||
|
|
|
|||
|
|
@ -40,7 +40,9 @@ public:
|
|||
const style::icon *iconOver = nullptr);
|
||||
not_null<QAction*> addAction(
|
||||
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();
|
||||
void clearActions();
|
||||
void finishAnimating();
|
||||
|
|
|
|||
|
|
@ -357,14 +357,24 @@ not_null<QAction*> PopupMenu::addAction(
|
|||
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);
|
||||
}
|
||||
|
||||
not_null<QAction*> PopupMenu::addAction(
|
||||
const QString &text,
|
||||
std::unique_ptr<PopupMenu> submenu) {
|
||||
const auto action = _menu->addAction(text, std::make_unique<QMenu>());
|
||||
std::unique_ptr<PopupMenu> submenu,
|
||||
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(
|
||||
action,
|
||||
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(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);
|
||||
not_null<QAction*> addAction(
|
||||
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();
|
||||
void clearActions();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue