Ignore:
Timestamp:
Dec 5, 2010, 12:18:31 AM (15 years ago)
Author:
Frederik Heber <heber@…>
Branches:
Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, Candidate_v1.7.0, Candidate_v1.7.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
Children:
6e06bd
Parents:
5d4b73 (diff), a01144 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'FixingMemDebugChunks' into stable

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/UIElements/Menu/MenuDescription.cpp

    r5d4b73 r589112  
    1313 */
    1414
     15// include config.h
     16#ifdef HAVE_CONFIG_H
     17#include <config.h>
     18#endif
     19
     20#include "Helpers/MemDebug.hpp"
     21
    1522#include <iostream>
    1623#include <map>
    1724#include <string>
    1825
    19 #include "Actions/ActionRegistry.hpp"
     26//#include "Actions/ActionRegistry.hpp"
    2027#include "Menu/MenuDescription.hpp"
     28
     29#include "Patterns/Singleton_impl.hpp"
     30
     31MenuDescription::TextMap *MenuDescription::MenuDescriptionsMap = NULL;
     32MenuDescription::IterableMap *MenuDescription::MenuPositionMap = NULL;
     33MenuDescription::TextMap *MenuDescription::MenuNameMap = NULL;
     34
    2135
    2236/** Constructor of class MenuDescription.
     
    2539MenuDescription::MenuDescription()
    2640{
     41  // allocate maps
     42  MenuDescriptionsMap = new TextMap();
     43  MenuPositionMap = new IterableMap();
     44  MenuNameMap = new TextMap();
     45
    2746  // put each menu into its place, "" means top level
    28   MenuPositionMap["analysis"] = TopPosition("tools",1);
    29   MenuPositionMap["atom"] = TopPosition("edit",1);
    30   MenuPositionMap["command"] = TopPosition("",3);
    31   MenuPositionMap["edit"] = TopPosition("",2);
    32   MenuPositionMap["fragmentation"] = TopPosition("tools",3);
    33   MenuPositionMap["molecule"] = TopPosition("edit",2);
    34   MenuPositionMap["parser"] = TopPosition("edit",3);
    35   MenuPositionMap["selection"] = TopPosition("edit",4);
    36   MenuPositionMap["tesselation"] = TopPosition("tools",2);
    37   MenuPositionMap["tools"] = TopPosition("",4);
    38   MenuPositionMap["world"] = TopPosition("",1);
     47  MenuPositionMap->insert(std::make_pair("analysis",TopPosition("tools",1)));
     48  MenuPositionMap->insert(std::make_pair("atom",TopPosition("edit",1)));
     49  MenuPositionMap->insert(std::make_pair("command",TopPosition("",3)));
     50  MenuPositionMap->insert(std::make_pair("edit",TopPosition("",2)));
     51  MenuPositionMap->insert(std::make_pair("fragmentation",TopPosition("tools",3)));
     52  MenuPositionMap->insert(std::make_pair("molecule",TopPosition("edit",2)));
     53  MenuPositionMap->insert(std::make_pair("parser",TopPosition("edit",3)));
     54  MenuPositionMap->insert(std::make_pair("selection",TopPosition("edit",4)));
     55  MenuPositionMap->insert(std::make_pair("tesselation",TopPosition("tools",2)));
     56  MenuPositionMap->insert(std::make_pair("tools",TopPosition("",4)));
     57  MenuPositionMap->insert(std::make_pair("world",TopPosition("",1)));
    3958
    4059  // put menu description into each menu category
    41   MenuDescriptionsMap["analysis"] = "Analysis (pair correlation, volume)";
    42   MenuDescriptionsMap["atom"] = "Edit atoms";
    43   MenuDescriptionsMap["command"] = "Configuration";
    44   MenuDescriptionsMap["edit"] = "Edit";
    45   MenuDescriptionsMap["fragmentation"] = "Fragmentation";
    46   MenuDescriptionsMap["molecule"] = "Parse files into system";
    47   MenuDescriptionsMap["parser"] = "Edit molecules (load, parse, save)";
    48   MenuDescriptionsMap["selection"] = "Select atoms/molecules";
    49   MenuDescriptionsMap["tesselation"] = "Tesselate molecules";
    50   MenuDescriptionsMap["tools"] = "Various tools";
    51   MenuDescriptionsMap["world"] = "Edit world";
     60  MenuDescriptionsMap->insert(std::make_pair("analysis","Analysis (pair correlation, volume)"));
     61  MenuDescriptionsMap->insert(std::make_pair("atom","Edit atoms"));
     62  MenuDescriptionsMap->insert(std::make_pair("command","Configuration"));
     63  MenuDescriptionsMap->insert(std::make_pair("edit","Edit"));
     64  MenuDescriptionsMap->insert(std::make_pair("fragmentation","Fragmentation"));
     65  MenuDescriptionsMap->insert(std::make_pair("molecule","Parse files into system"));
     66  MenuDescriptionsMap->insert(std::make_pair("parser","Edit molecules (load, parse, save)"));
     67  MenuDescriptionsMap->insert(std::make_pair("selection","Select atoms/molecules"));
     68  MenuDescriptionsMap->insert(std::make_pair("tesselation","Tesselate molecules"));
     69  MenuDescriptionsMap->insert(std::make_pair("tools","Various tools"));
     70  MenuDescriptionsMap->insert(std::make_pair("world","Edit world"));
    5271
    5372  // put menu name into each menu category
    54   MenuNameMap["analysis"] = "Analysis";
    55   MenuNameMap["atom"] = "Atoms";
    56   MenuNameMap["command"] = "Configuration";
    57   MenuNameMap["edit"] = "Edit";
    58   MenuNameMap["fragmentation"] = "Fragmentation";
    59   MenuNameMap["molecule"] = "Molecules";
    60   MenuNameMap["parser"] = "Input/Output";
    61   MenuNameMap["selection"] = "Selection";
    62   MenuNameMap["tesselation"] = "Tesselation";
    63   MenuNameMap["tools"] = "Tools";
    64   MenuNameMap["world"] = "Globals";
     73  MenuNameMap->insert(std::make_pair("analysis","Analysis"));
     74  MenuNameMap->insert(std::make_pair("atom","Atoms"));
     75  MenuNameMap->insert(std::make_pair("command","Configuration"));
     76  MenuNameMap->insert(std::make_pair("edit","Edit"));
     77  MenuNameMap->insert(std::make_pair("fragmentation","Fragmentation"));
     78  MenuNameMap->insert(std::make_pair("molecule","Molecules"));
     79  MenuNameMap->insert(std::make_pair("parser","Input/Output"));
     80  MenuNameMap->insert(std::make_pair("selection","Selection"));
     81  MenuNameMap->insert(std::make_pair("tesselation","Tesselation"));
     82  MenuNameMap->insert(std::make_pair("tools","Tools"));
     83  MenuNameMap->insert(std::make_pair("world","Globals"));
    6584}
    6685
     
    6988 */
    7089MenuDescription::~MenuDescription()
    71 {}
     90{
     91  std::cout << "MenuDescription: clearing maps ... " << std::endl;
     92  for (IterableMap::iterator iter = MenuPositionMap->begin(); !MenuPositionMap->empty(); iter = MenuPositionMap->begin())
     93    MenuPositionMap->erase(iter);
     94  delete MenuNameMap;
     95  delete MenuDescriptionsMap;
     96  delete MenuPositionMap;
     97}
    7298
    7399/** Getter for MenuDescriptionsMap.
     
    77103const std::string MenuDescription::getDescription(const std::string &token) const
    78104{
    79   if (MenuDescriptionsMap.find(token) != MenuDescriptionsMap.end())
    80     return MenuDescriptionsMap.find(token)->second;
     105  if (MenuDescriptionsMap->find(token) != MenuDescriptionsMap->end())
     106    return MenuDescriptionsMap->find(token)->second;
    81107  else
    82108    return std::string();
    83109}
    84110
    85 /** Getter for MenuNameMap.
     111/** Getter for MenuNameMap->
    86112 * \param token name of menu
    87113 * \return description string of the menu or empty
     
    89115const std::string MenuDescription::getName(const std::string &token) const
    90116{
    91   if (MenuNameMap.find(token) != MenuNameMap.end())
    92     return MenuNameMap.find(token)->second;
     117  if (MenuNameMap->find(token) != MenuNameMap->end())
     118    return MenuNameMap->find(token)->second;
    93119  else
    94120    return std::string();
    95121}
    96122
    97 /** Constructs a multimap of all menus running over all actions belonging to it.
    98  * \return multimap with which actions belongs to which menu.
    99  */
    100 std::multimap <std::string, std::string> MenuDescription::getMenuItemsMap() const
    101 {
    102   std::multimap <std::string, std::string> result;
    103 
    104   ActionRegistry &AR = ActionRegistry::getInstance();
    105   for (ActionRegistry::const_iterator iter = AR.getBeginIter();iter != AR.getEndIter();++iter) {
    106     std::cout << "Inserting " << (iter->second)->getName() << " into menu " << (iter->second)->Traits.getMenuName() << std::endl;
    107     result.insert( std::pair<std::string, std::string> ((iter->second)->Traits.getMenuName(), (iter->second)->getName()));
    108   }
    109   // TODO: MenuPosition is not yet realized.
    110   return result;
    111 }
     123///** Constructs a multimap of all menus running over all actions belonging to it.
     124// * \return multimap with which actions belongs to which menu.
     125// */
     126//std::multimap <std::string, std::string> MenuDescription::getMenuItemsMap() const
     127//{
     128//  std::multimap <std::string, std::string> result;
     129//
     130//  ActionRegistry &AR = ActionRegistry::getInstance();
     131//  for (ActionRegistry::const_iterator iter = AR.getBeginIter();iter != AR.getEndIter();++iter) {
     132//    std::cout << "Inserting " << (iter->second)->getName() << " into menu " << (iter->second)->Traits.getMenuName() << std::endl;
     133//    result.insert( std::pair<std::string, std::string> ((iter->second)->Traits.getMenuName(), (iter->second)->getName()));
     134//  }
     135//  // TODO: MenuPosition is not yet realized.
     136//  return result;
     137//}
    112138
    113139/** Forward iterator from beginning of list of descriptions.
     
    116142MenuDescription::iterator MenuDescription::getBeginIter()
    117143{
    118   return MenuPositionMap.begin();
     144  return MenuPositionMap->begin();
    119145}
    120146
     
    124150MenuDescription::iterator MenuDescription::getEndIter()
    125151{
    126   return MenuPositionMap.end();
     152  return MenuPositionMap->end();
    127153}
    128154
     
    132158MenuDescription::const_iterator MenuDescription::getBeginIter() const
    133159{
    134   return MenuPositionMap.begin();
     160  return MenuPositionMap->begin();
    135161}
    136162
     
    140166MenuDescription::const_iterator MenuDescription::getEndIter() const
    141167{
    142   return MenuPositionMap.end();
     168  return MenuPositionMap->end();
    143169}
    144170
    145 
     171CONSTRUCT_SINGLETON(MenuDescription)
Note: See TracChangeset for help on using the changeset viewer.