X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_Workbench.cpp;h=468d8d0ce1f1fdfa4732aedf1243355e605bcca2;hb=d86c77d1c6210bbe04fbc3e5b00f9e212e1ec930;hp=b3a1aee2b98d5db5c01e5ada92be46433ad7ec30;hpb=2a0dd5ede9110d423fbd6b038c0445cb819163a9;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_Workbench.cpp b/src/XGUI/XGUI_Workbench.cpp index b3a1aee2b..468d8d0ce 100644 --- a/src/XGUI/XGUI_Workbench.cpp +++ b/src/XGUI/XGUI_Workbench.cpp @@ -50,6 +50,7 @@ XGUI_Workbench::XGUI_Workbench(QWidget *theParent) myCommandsArea = new CommandsArea(this); aMainLayout->addWidget(myCommandsArea); + myCommandsArea->viewport()->installEventFilter(this); myChildWidget = new QWidget(myCommandsArea); myCommandsArea->setWidget(myChildWidget); @@ -159,3 +160,34 @@ bool XGUI_Workbench::isExceedsRight() int aWgtWidth = myChildWidget->childrenRect().width(); return ((aVPWidth - aPos.x()) < aWgtWidth); } + +bool XGUI_Workbench::eventFilter(QObject *theObj, QEvent *theEvent) +{ + if (theObj == myCommandsArea->viewport()) { + if (theEvent->type() == QEvent::Resize) { + myLeftButton->setVisible(isExceedsLeft()); + myRightButton->setVisible(isExceedsRight()); + } + } + return QWidget::eventFilter(theObj, theEvent); +} + +XGUI_Command* XGUI_Workbench::feature(const QString& theId) const +{ + QList::const_iterator aIt; + for (aIt = myGroups.constBegin(); aIt != myGroups.constEnd(); ++aIt) { + XGUI_Command* aCmd = (*aIt)->feature(theId); + if (aCmd) + return aCmd; + } + return 0; +} + +QList XGUI_Workbench::features() const +{ + QList aList; + QList::const_iterator aIt; + for (aIt = myGroups.constBegin(); aIt != myGroups.constEnd(); ++aIt) + aList.append((*aIt)->features()); + return aList; +} \ No newline at end of file