X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FXGUI%2FXGUI_MenuGroupPanel.cpp;h=a1883f26baec7d7eb14dce73bb02302f07784e91;hb=3e2000ab472f5885de9ce1fbe1e2eb27669b5596;hp=4be66cee3fa67e95172bcf952f20808488e1c14c;hpb=2a0dd5ede9110d423fbd6b038c0445cb819163a9;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_MenuGroupPanel.cpp b/src/XGUI/XGUI_MenuGroupPanel.cpp index 4be66cee3..a1883f26b 100644 --- a/src/XGUI/XGUI_MenuGroupPanel.cpp +++ b/src/XGUI/XGUI_MenuGroupPanel.cpp @@ -7,20 +7,27 @@ #include #include +#include XGUI_MenuGroupPanel::XGUI_MenuGroupPanel(QWidget *parent) - : QWidget(parent), myNewRow(0), myNewCol(0), myMaxRow(1) + : QFrame(parent), + myNewRow(0), + myNewCol(0), + myMaxRow(1) { myLayout = new QGridLayout(this); myLayout->setSpacing(0); myLayout->setMargin(0); myLayout->setContentsMargins(0, 0, 0, 0); + setFrameShape(QFrame::NoFrame); } void XGUI_MenuGroupPanel::addCommand(XGUI_Command* theAction) { - myActions[theAction] = theAction->requestWidget(this); - addWidget(myActions[theAction]); + myActions.append(theAction); + QWidget* aWdg = theAction->requestWidget(this); + myActionWidget.append(aWdg); + addWidget(aWdg); } void XGUI_MenuGroupPanel::placeWidget(QWidget* theWgt) @@ -29,7 +36,8 @@ void XGUI_MenuGroupPanel::placeWidget(QWidget* theWgt) myNewRow = 0; myNewCol++; } - myLayout->addWidget(theWgt, myNewRow, myNewCol, Qt::AlignLeft); + myLayout->addWidget(theWgt, myNewRow, myNewCol); + myLayout->setRowStretch(myNewRow, 0); myNewRow++; } @@ -50,23 +58,48 @@ void XGUI_MenuGroupPanel::resizeEvent(QResizeEvent* theEvent) return; myMaxRow = aMaxRow; - QListIterator aIt(myActions.values()); myNewRow = 0; myNewCol = 0; - while(aIt.hasNext()) { - placeWidget(aIt.next()); + foreach(QWidget* eachWidget, myActionWidget) + { + placeWidget(eachWidget); } + myLayout->setRowStretch(myMaxRow + 1, 1); } -XGUI_Command* XGUI_MenuGroupPanel::addFeature(const QString& theId, const QString& theTitle, - const QString& theTip, const QIcon& theIcon, +XGUI_Command* XGUI_MenuGroupPanel::addFeature(const QString& theId, + const QString& theTip, + const QString& theTitle, + const QIcon& theIcon, const QKeySequence& theKeys) { - XGUI_Command* aCommand = new XGUI_Command(theId, theIcon, theTitle, this); + return addFeature(theId, theTip, theTitle, theIcon, QString(), theKeys, false); +} + +XGUI_Command* XGUI_MenuGroupPanel::addFeature(const QString& theId, + const QString& theTitle, + const QString& theTip, + const QIcon& theIcon, + const QString& theDocumentKind, + const QKeySequence& theKeys, + bool isCheckable) +{ + XGUI_Command* aCommand = new XGUI_Command(theId, theDocumentKind, theIcon, + theTitle, this, isCheckable); aCommand->setToolTip(theTip); - if (!theKeys.isEmpty()) + if (!theKeys.isEmpty()) { aCommand->setShortcut(theKeys); - + } addCommand(aCommand); return aCommand; } + +XGUI_Command* XGUI_MenuGroupPanel::feature(const QString& theId) const +{ + foreach (XGUI_Command* aCmd, myActions) + { + if (aCmd->data().toString() == theId) + return aCmd; + } + return 0; +}