#include "ElaMenuBar.h" #include #include #include #include "ElaIcon.h" #include "ElaMenu.h" #include "ElaMenuBarStyle.h" ElaMenuBar::ElaMenuBar(QWidget *parent) : QMenuBar(parent) { setMouseTracking(true); setObjectName("ElaMenuBar"); setStyle(new ElaMenuBarStyle(style())); QToolButton *tool = this->findChild(); if (tool->objectName() == "qt_menubar_ext_button") { QMenu *oldMenu = tool->menu(); ElaMenu *menu = new ElaMenu(this); menu->setObjectName("ElaExtendMenu"); menu->setMenuItemHeight(27); if (oldMenu) { oldMenu->deleteLater(); } tool->setMenu(menu); } } ElaMenuBar::~ElaMenuBar() { delete this->style(); } QAction *ElaMenuBar::addMenu(QMenu *menu) { ElaMenu *elaMenu = dynamic_cast(menu); if (elaMenu) { elaMenu->setMenuItemHeight(27); } return QMenuBar::addMenu(menu); } ElaMenu *ElaMenuBar::addMenu(const QString &title) { ElaMenu *menu = new ElaMenu(title, this); menu->setMenuItemHeight(27); QMenuBar::addAction(menu->menuAction()); return menu; } ElaMenu *ElaMenuBar::addMenu(const QIcon &icon, const QString &title) { ElaMenu *menu = new ElaMenu(title, this); menu->setMenuItemHeight(27); menu->setIcon(icon); QMenuBar::addAction(menu->menuAction()); return menu; } ElaMenu *ElaMenuBar::addMenu(ElaIconType::IconName icon, const QString &title) { ElaMenu *menu = new ElaMenu(title, this); menu->setMenuItemHeight(27); menu->menuAction()->setProperty("ElaIconType", QChar((unsigned short)icon)); menu->menuAction()->setIcon(ElaIcon::getInstance()->getElaIcon(ElaIconType::Broom, 1)); QMenuBar::addAction(menu->menuAction()); return menu; } QAction *ElaMenuBar::addElaIconAction(ElaIconType::IconName icon, const QString &text) { QAction *action = new QAction(text, this); action->setProperty("ElaIconType", QChar((unsigned short)icon)); action->setIcon(ElaIcon::getInstance()->getElaIcon(ElaIconType::Broom, 1)); QMenuBar::addAction(action); return action; } QAction *ElaMenuBar::addElaIconAction(ElaIconType::IconName icon, const QString &text, const QKeySequence &shortcut) { QAction *action = new QAction(text, this); action->setShortcut(shortcut); action->setProperty("ElaIconType", QChar((unsigned short)icon)); action->setIcon(ElaIcon::getInstance()->getElaIcon(ElaIconType::Broom, 1)); QMenuBar::addAction(action); return action; }