1 #include "XGUI_MenuGroupPanel.h"
2 #include "XGUI_Command.h"
7 #include <QResizeEvent>
11 XGUI_MenuGroupPanel::XGUI_MenuGroupPanel(QWidget *parent)
12 : QWidget(parent), myNewRow(0), myNewCol(0), myMaxRow(1)
14 myLayout = new QGridLayout(this);
15 myLayout->setSpacing(0);
16 myLayout->setMargin(0);
17 myLayout->setContentsMargins(0, 0, 0, 0);
20 void XGUI_MenuGroupPanel::addCommand(XGUI_Command* theAction)
22 myActions[theAction] = theAction->requestWidget(this);
23 addWidget(myActions[theAction]);
26 void XGUI_MenuGroupPanel::placeWidget(QWidget* theWgt)
28 if (myMaxRow == myNewRow) {
32 myLayout->addWidget(theWgt, myNewRow, myNewCol, Qt::AlignLeft);
36 void XGUI_MenuGroupPanel::addWidget(QWidget* theWgt)
41 void XGUI_MenuGroupPanel::resizeEvent(QResizeEvent* theEvent)
43 QWidget::resizeEvent(theEvent);
44 if (myActions.size() == 0)
47 int aH = theEvent->size().height();
48 int aMaxRow = (int) floor(double(aH / MIN_BUTTON_HEIGHT));
49 if (aMaxRow == myMaxRow)
53 QListIterator<QWidget*> aIt(myActions.values());
56 while(aIt.hasNext()) {
57 placeWidget(aIt.next());
61 XGUI_Command* XGUI_MenuGroupPanel::addFeature(const QString& theId, const QString& theTitle,
62 const QString& theTip, const QIcon& theIcon,
63 const QKeySequence& theKeys)
65 XGUI_Command* aCommand = new XGUI_Command(theId, theIcon, theTitle, this);
66 aCommand->setToolTip(theTip);
67 if (!theKeys.isEmpty())
68 aCommand->setShortcut(theKeys);