-#include "XGUI_MainMenu.h"
-#include "XGUI_Workbench.h"
-#include "XGUI_MainWindow.h"
+#include <XGUI_MainMenu.h>
+#include <XGUI_Workbench.h>
+#include <XGUI_MainWindow.h>
+#include <XGUI_Command.h>
#include <QLayout>
#include <QTabWidget>
#include <QLabel>
#include <QDockWidget>
+#include <QEvent>
XGUI_MainMenu::XGUI_MainMenu(XGUI_MainWindow *parent)
: QObject(parent), myDesktop(parent)
{
parent->setTabPosition(Qt::TopDockWidgetArea, QTabWidget::North);
- myGeneralPage = addWorkbench(tr("GEN_MENU_TITLE"));
+ myGeneralPage = addWorkbench(tr("General"));
+ myGeneralPage->parentWidget()->setMaximumWidth(200);
+ myGeneralPage->installEventFilter(this);
}
XGUI_MainMenu::~XGUI_MainMenu(void)
{
return myDesktop->findChild<XGUI_Workbench*>(theObjName);
}
+
+
+bool XGUI_MainMenu::eventFilter(QObject *theWatched, QEvent *theEvent)
+{
+ if (theWatched == myGeneralPage) {
+ if (theEvent->type() == QEvent::Show) {
+ myGeneralPage->parentWidget()->setMaximumWidth(16777215);
+ myGeneralPage->removeEventFilter(this);
+ }
+ }
+ return QObject::eventFilter(theWatched, theEvent);
+}
+
+XGUI_Command* XGUI_MainMenu::feature(const QString& theId) const
+{
+ QList<QDockWidget*>::const_iterator aIt;
+ for (aIt = myMenuTabs.constBegin(); aIt != myMenuTabs.constEnd(); ++aIt) {
+ XGUI_Workbench* aWbn = static_cast<XGUI_Workbench*>((*aIt)->widget());
+ XGUI_Command* aCmd = aWbn->feature(theId);
+ if (aCmd)
+ return aCmd;
+ }
+ return 0;
+}
+
+QList<XGUI_Command*> XGUI_MainMenu::features() const
+{
+ QList<XGUI_Command*> aList;
+ QList<QDockWidget*>::const_iterator aIt;
+ for (aIt = myMenuTabs.constBegin(); aIt != myMenuTabs.constEnd(); ++aIt) {
+ XGUI_Workbench* aWbn = static_cast<XGUI_Workbench*>((*aIt)->widget());
+ aList.append(aWbn->features());
+ }
+ return aList;
+}
+