Added support for context menus on SvgToolButton widgets

This commit is contained in:
Nav
2022-07-17 15:39:24 +01:00
parent 8ed520d0a7
commit b894ebcd2c
2 changed files with 28 additions and 3 deletions

View File

@@ -1,7 +1,5 @@
#include "SvgToolButton.hpp"
#include <QMenu>
namespace Bloom::Widgets
{
SvgToolButton::SvgToolButton(QWidget* parent): QToolButton(parent) {
@@ -17,8 +15,20 @@ namespace Bloom::Widgets
*/
auto* menuWidget = qobject_cast<QMenu*>(childEvent->child());
if (menuWidget != nullptr && menuWidget != this->menu()) {
this->setMenu(menuWidget);
if (this->contextMenuEnabled) {
this->contextMenu = menuWidget;
this->setContextMenuPolicy(Qt::ContextMenuPolicy::DefaultContextMenu);
} else {
this->setMenu(menuWidget);
}
}
}
}
void SvgToolButton::contextMenuEvent(QContextMenuEvent* event) {
if (this->contextMenu != nullptr) {
this->contextMenu->exec(this->mapToGlobal(QPoint(0, this->height())));
}
}
}