2016-04-24 23:37:59 +00:00
|
|
|
#include <QEvent>
|
2016-04-25 06:16:54 +00:00
|
|
|
#include <QLayout>
|
2016-03-19 08:32:49 +00:00
|
|
|
#include "iconmenu.h"
|
2016-04-24 23:37:59 +00:00
|
|
|
#include "menu.h"
|
2016-04-24 22:26:28 +00:00
|
|
|
|
2016-04-24 23:37:59 +00:00
|
|
|
MenuOverlay::MenuOverlay(QWidget *parent)
|
2016-04-24 22:26:28 +00:00
|
|
|
: QWidget(parent)
|
|
|
|
{
|
2016-04-26 19:30:07 +00:00
|
|
|
setAttribute(Qt::WA_NoSystemBackground);
|
2016-04-24 23:37:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
MenuOverlay::~MenuOverlay()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
IconMenu::IconMenu(const QIcon &icon, QWidget *parent)
|
|
|
|
: IconButton(icon, parent),
|
2016-04-25 06:16:54 +00:00
|
|
|
_menuOverlay(new MenuOverlay(parent)),
|
|
|
|
_menu(new Menu(_menuOverlay)),
|
|
|
|
_menuGeometryWidget(0)
|
2016-04-24 23:37:59 +00:00
|
|
|
{
|
2016-04-26 19:51:31 +00:00
|
|
|
setCheckable(true);
|
|
|
|
|
2016-04-24 23:37:59 +00:00
|
|
|
_menu->addMenuItem("Maps");
|
|
|
|
_menu->addMenuItem("Books");
|
|
|
|
_menu->addMenuItem("Flights");
|
|
|
|
_menu->addMenuItem("Apps");
|
2016-04-24 22:26:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
IconMenu::~IconMenu()
|
|
|
|
{
|
|
|
|
}
|
2016-04-24 23:37:59 +00:00
|
|
|
|
2016-04-26 19:30:07 +00:00
|
|
|
void IconMenu::setOverlayParent(QWidget *parent)
|
|
|
|
{
|
|
|
|
_menuOverlay->setParent(parent);
|
|
|
|
}
|
|
|
|
|
2016-04-24 23:37:59 +00:00
|
|
|
bool IconMenu::event(QEvent *event)
|
|
|
|
{
|
|
|
|
if (QEvent::ParentChange == event->type()) {
|
2016-04-26 19:30:07 +00:00
|
|
|
setOverlayParent(parentWidget());
|
2016-04-25 06:16:54 +00:00
|
|
|
QSize hint = _menu->layout()->sizeHint();
|
|
|
|
_menuOverlay->setGeometry(0, 0, hint.width(), hint.height());
|
2016-04-24 23:37:59 +00:00
|
|
|
}
|
|
|
|
return IconButton::event(event);
|
|
|
|
}
|