diff --git a/frm/frmMain.cpp b/frm/frmMain.cpp index 1c70c01..d64489a 100644 --- a/frm/frmMain.cpp +++ b/frm/frmMain.cpp @@ -366,6 +366,7 @@ void frmMain::CreateMenus() scriptingMenu = new wxMenu(); viewDataMenu = new wxMenu(); debuggingMenu = new wxMenu(); + serverMenu = new wxMenu(); reportMenu = new wxMenu(); wxMenu *cfgMenu = new wxMenu(); helpMenu = new wxMenu(); @@ -452,18 +453,22 @@ void frmMain::CreateMenus() //-------------------------- + serverMenuFactory = new submenuFactory(menuFactories); + toolsMenu->Append(serverMenuFactory->GetId(), _("&Server"), serverMenu, _("Server menu commands.")); - new connectServerFactory(menuFactories, toolsMenu, 0); - new disconnectServerFactory(menuFactories, toolsMenu, 0); - new disconnectServerFactoryAll(menuFactories, toolsMenu, 0); - new disconnectDatabaseFactory(menuFactories, toolsMenu, 0); + new connectServerFactory(menuFactories, serverMenu, 0); + new disconnectServerFactory(menuFactories, serverMenu, 0); + new disconnectServerFactoryAll(menuFactories, serverMenu, 0); + new disconnectDatabaseFactory(menuFactories, serverMenu, 0); - new startServiceFactory(menuFactories, toolsMenu, 0); - new stopServiceFactory(menuFactories, toolsMenu, 0); - new reloadconfServiceFactory(menuFactories, toolsMenu, 0); - new pausereplayServiceFactory(menuFactories, toolsMenu, 0); - new resumereplayServiceFactory(menuFactories, toolsMenu, 0); - new addnamedrestorepointServiceFactory(menuFactories, toolsMenu, 0); + new startServiceFactory(menuFactories, serverMenu, 0); + new stopServiceFactory(menuFactories, serverMenu, 0); + new reloadconfServiceFactory(menuFactories, serverMenu, 0); + new pausereplayServiceFactory(menuFactories, serverMenu, 0); + new resumereplayServiceFactory(menuFactories, serverMenu, 0); + new addnamedrestorepointServiceFactory(menuFactories, serverMenu, 0); + + new keywordsServerFactory(menuFactories, serverMenu, 0); new createFactory(menuFactories, editMenu, toolBar); new dropFactory(menuFactories, editMenu, toolBar); diff --git a/include/frm/frmMain.h b/include/frm/frmMain.h index 708d1f9..bb60222 100644 --- a/include/frm/frmMain.h +++ b/include/frm/frmMain.h @@ -181,6 +181,10 @@ public: { return pluginsMenu; } + wxMenu *GetServerMenu() + { + return serverMenu; + } FunctionPGHelper * GetFunctionPGHelper() { return &hhelp; @@ -226,7 +230,8 @@ private: ctlAuiNotebook *listViews; ctlSQLBox *sqlPane; wxMenu *newMenu, *debuggingMenu, *reportMenu, *toolsMenu, *pluginsMenu, *viewMenu, - *treeContextMenu, *newContextMenu, *slonyMenu, *scriptingMenu, *viewDataMenu; + *treeContextMenu, *newContextMenu, *slonyMenu, *scriptingMenu, *viewDataMenu, + *serverMenu; pgServerCollection *serversObj; dlgShortCut *dlgshrcut; pluginUtilityFactory *lastPluginUtility; @@ -238,6 +243,7 @@ private: actionFactory *reportMenuFactory; actionFactory *scriptingMenuFactory; actionFactory *viewdataMenuFactory; + actionFactory *serverMenuFactory; wxStopWatch stopwatch; wxString timermsg; diff --git a/utils/factory.cpp b/utils/factory.cpp index d5fe6fe..5bff963 100644 --- a/utils/factory.cpp +++ b/utils/factory.cpp @@ -339,6 +339,8 @@ void menuFactoryList::AppendEnabledMenus(wxMenuBar *menuBar, wxMenu *treeContext { /* Copy of submenu */ wxMenu *oldSubMenu = menuItem->GetSubMenu(); + //skip append submenu Server + if (winMain && (oldSubMenu == winMain->GetServerMenu())) continue; wxMenu *newSubMenu = new wxMenu(); size_t i;