Changeset d17f3d for src/UIElements
- Timestamp:
- Aug 19, 2010, 4:59:34 PM (15 years ago)
- 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, 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:
- 51c3e4, 9c1c89
- Parents:
- 9c7e0f
- git-author:
- Frederik Heber <heber@…> (08/19/10 16:56:30)
- git-committer:
- Frederik Heber <heber@…> (08/19/10 16:59:34)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/UIElements/TextUI/TextWindow.cpp
r9c7e0f rd17f3d 56 56 { 57 57 map <std::string, TextMenu *> NametoTextMenuMap; 58 std::set <char> ShortcutList; 59 // reserve s for save and q for quite 60 ShortcutList.insert('s'); 61 ShortcutList.insert('q'); 58 62 59 63 // populate all actions … … 69 73 70 74 Action* undoAction = ActionRegistry::getInstance().getActionByName("undo"); 71 new ActionMenuItem( 'u',"Undo last operation",main_menu,undoAction);75 new ActionMenuItem(getSuitableShortForm(ShortcutList,"Undo last operation"),"Undo last operation",main_menu,undoAction); 72 76 73 77 Action* redoAction = ActionRegistry::getInstance().getActionByName("redo"); 74 new ActionMenuItem( 'r',"Redo last operation",main_menu,redoAction);78 new ActionMenuItem(getSuitableShortForm(ShortcutList,"Redo last operation"),"Redo last operation",main_menu,redoAction); 75 79 76 80 new SeperatorItem(main_menu); 77 81 78 TextMenu *Menu = NULL;79 std::set <char> ShortcutList;80 82 for(map<std::string, pair<std::string,std::string> >::iterator iter = MapOfActions::getInstance().MenuDescription.begin(); iter != MapOfActions::getInstance().MenuDescription.end(); ++iter) { 81 Menu = new TextMenu(Log() << Verbose(0), iter->second.second);83 TextMenu *Menu = new TextMenu(Log() << Verbose(0), iter->second.second); 82 84 NametoTextMenuMap.insert( pair <std::string, TextMenu *> (iter->first, Menu) ); 83 85 new SubMenuItem(getSuitableShortForm(ShortcutList,iter->first),iter->second.first.c_str(),main_menu,Menu); … … 86 88 new SeperatorItem(main_menu); 87 89 90 // save has reserved key 's' 88 91 Action *saveConfigAction = ActionRegistry::getInstance().getActionByName("output"); 89 92 new ActionMenuItem('s',"save current setup to config files",main_menu,saveConfigAction); … … 92 95 new ActionMenuItem('q',"quit",main_menu,quitAction); 93 96 97 // quit has reserved key 'q' 94 98 // go through all menus and create them 95 for (map <std::string, TextMenu *>::iterator MenuRunner = NametoTextMenuMap.begin(); MenuRunner != NametoTextMenuMap.end(); ++MenuRunner) { 96 cout << "Creating Menu " << MenuRunner->first << "." << endl; 99 for (map <std::string, TextMenu *>::iterator MenuRunner = NametoTextMenuMap.begin(); MenuRunner != NametoTextMenuMap.end(); ++MenuRunner) 97 100 populateMenu(MenuRunner->second, MenuRunner->first); 98 }99 101 100 102 // Add status indicators etc... … … 118 120 { 119 121 for (std::string::const_iterator CharRunner = name.begin(); CharRunner != name.end(); ++CharRunner) { 120 if (ShortcutList.find(*CharRunner) == ShortcutList.end()) 122 if (ShortcutList.find(*CharRunner) == ShortcutList.end()) { 123 ShortcutList.insert(*CharRunner); 121 124 return *CharRunner; 125 } 122 126 } 123 DoeLog(1) && (eLog() << Verbose(1) << "Could not find a suitable shortform for TextWindow::getSuitableShortForm()." << endl); 124 return ((char)(ShortcutList.size() % 10) + '0'); 127 // if no letter matches, take digits 128 int i=0; 129 for (;i<10;++i) { 130 if (ShortcutList.find((char)i + '0') == ShortcutList.end()) 131 break; 132 } 133 if (i != 10) { 134 ShortcutList.insert((char)i + '0'); 135 return ((char)i + '0'); 136 } else { 137 DoeLog(1) && (eLog() << Verbose(1) << "Could not find a suitable shortform for " << name << "." << endl); 138 return '#'; 139 } 125 140 } 126 141 … … 129 144 Action *ActionItem = NULL; 130 145 set <char> ShortcutList; 146 // reserve 'q' for quit 147 ShortcutList.insert('q'); 131 148 // through all actions for this menu 132 149 pair < multimap <std::string, std::string>::iterator, multimap <std::string, std::string>::iterator > MenuActions = MapOfActions::getInstance().MenuContainsActionMap.equal_range(MenuName); 133 150 for (multimap <std::string, std::string>::const_iterator MenuRunner = MenuActions.first; MenuRunner != MenuActions.second; ++MenuRunner) { 134 cout << " Adding " << MenuRunner->second << " to submenu " << MenuName << endl;135 151 ActionItem = ActionRegistry::getInstance().getActionByName(MenuRunner->second); 136 152 new ActionMenuItem(getSuitableShortForm(ShortcutList, MenuRunner->second),MapOfActions::getInstance().getDescription(MenuRunner->second).c_str(),Menu,ActionItem);
Note:
See TracChangeset
for help on using the changeset viewer.