#include <XGUI_MenuGroupPanel.h>
#include <XGUI_MainWindow.h>
#include <XGUI_Command.h>
+#include <XGUI_Preferences.h>
+
+#include <SUIT_ResourceMgr.h>
#include <QLayout>
#include <QTabWidget>
#include <QTabBar>
XGUI_MainMenu::XGUI_MainMenu(XGUI_MainWindow *parent)
- : QWidget(parent), myDesktop(parent)
+ : QWidget(parent),
+ myDesktop(parent)
{
myGeneralPage = new XGUI_MenuGroupPanel(this);
myGeneralPage->setObjectName("Default");
aMainLayout->setContentsMargins(0, 2, 2, 0);
aMainLayout->setSpacing(2);
setLayout(aMainLayout);
- setFixedHeight(menuHeight());
+ updateFromResources();
}
XGUI_MainMenu::~XGUI_MainMenu(void)
XGUI_Workbench* aPage = new XGUI_Workbench(myMenuTabs);
aPage->setObjectName(theId);
myMenuTabs->addTab(aPage, aTitle);
+ myWorkbenches.append(aPage);
return aPage;
}
return myDesktop->findChild<XGUI_Workbench*>(theObjName);
}
-
bool XGUI_MainMenu::eventFilter(QObject *theWatched, QEvent *theEvent)
{
if (theWatched == myGeneralPage) {
aCloseTabButton->setFixedSize(16, 16);
aCloseTabButton->setIcon(QIcon(":pictures/wnd_close.png"));
aCloseTabButton->setFlat(true);
- aTabBar->setTabButton(aConsoleTabId,
- QTabBar::RightSide,
- aCloseTabButton);
+ aTabBar->setTabButton(aConsoleTabId, QTabBar::RightSide, aCloseTabButton);
- connect(aCloseTabButton, SIGNAL(clicked()),
- myDesktop, SLOT(dockPythonConsole()));
+ connect(aCloseTabButton, SIGNAL(clicked()), myDesktop, SLOT(dockPythonConsole()));
}
void XGUI_MainMenu::removeConsole()
XGUI_Command* result;
result = myGeneralPage->feature(theId);
if (!result) {
- for (int aTabIdx = 0; aTabIdx < myMenuTabs->count(); ++aTabIdx) {
- XGUI_Workbench* aWbn = static_cast<XGUI_Workbench*>(myMenuTabs->widget(aTabIdx));
+ XGUI_Workbench* aWbn;
+ foreach (aWbn, myWorkbenches)
+ {
result = aWbn->feature(theId);
- if (result) break;
+ if (result)
+ break;
}
}
return result;
QList<XGUI_Command*> XGUI_MainMenu::features() const
{
QList<XGUI_Command*> aList = myGeneralPage->features();
- for (int aTabIdx = 0; aTabIdx < myMenuTabs->count(); ++aTabIdx) {
- XGUI_Workbench* aWbn = static_cast<XGUI_Workbench*>(myMenuTabs->widget(aTabIdx));
+ XGUI_Workbench* aWbn;
+ foreach (aWbn, myWorkbenches)
+ {
aList.append(aWbn->features());
}
return aList;
}
-QList<XGUI_Workbench*> XGUI_MainMenu::workbenches() const
-{
- QList<XGUI_Workbench*> aList;
- for (int aTabIdx = 0; aTabIdx < myMenuTabs->count(); ++aTabIdx) {
- XGUI_Workbench* aWb = dynamic_cast<XGUI_Workbench*>(myMenuTabs->widget(aTabIdx));
- if (aWb) {
- aList.append(aWb);
- }
- }
- return aList;
-}
-
int XGUI_MainMenu::menuItemSize() const
{
- //TODO(sbh, vsv): get this value from the preferences
- static const ItemSize DEFAULT_ITEM_SIZE = Medium;
- return (int) DEFAULT_ITEM_SIZE;
+ const int kDefaultItemSize = 25;
+ return kDefaultItemSize;
}
int XGUI_MainMenu::menuHeight() const
{
// Default group has no tabs above --> one extra row
int rows = menuItemRowsCount() + 1;
- const int kMarginsSpacings = 4;
+ const int kMarginsSpacings = 5;
return rows * menuItemSize() + kMarginsSpacings;
}
int XGUI_MainMenu::menuItemRowsCount() const
{
- //TODO(sbh, vsv): get this value from the preferences
- static const int DEFAULT_ITEM_ROWS_COUNT = 3;
- return DEFAULT_ITEM_ROWS_COUNT;
+ static const int kDefaultRowsCount = 3;
+ int aRowsCount = XGUI_Preferences::resourceMgr()->integerValue(XGUI_Preferences::MENU_SECTION,
+ "rows_number", kDefaultRowsCount);
+ return aRowsCount;
+}
+
+void XGUI_MainMenu::updateFromResources()
+{
+ setFixedHeight(menuHeight());
+ repaint();
}