Changeset 97ebf8 for src/UIElements/TextDialog.cpp
- Timestamp:
- May 15, 2010, 5:56:57 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:
- 99fcaf, f941b1
- Parents:
- 498c519
- git-author:
- Frederik Heber <heber@…> (05/14/10 20:14:27)
- git-committer:
- Frederik Heber <heber@…> (05/15/10 17:56:57)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/UIElements/TextDialog.cpp
r498c519 r97ebf8 8 8 #include <iostream> 9 9 10 #include <Descriptors/AtomDescriptor.hpp> 11 #include <Descriptors/AtomIdDescriptor.hpp> 12 #include <Descriptors/MoleculeDescriptor.hpp> 13 #include <Descriptors/MoleculeIdDescriptor.hpp> 10 14 #include "UIElements/TextDialog.hpp" 11 15 12 16 #include "World.hpp" 13 17 #include "periodentafel.hpp" 14 #include "atom.hpp"15 #include "molecule.hpp"16 18 #include "log.hpp" 17 19 #include "verbose.hpp" 18 20 21 #include "atom.hpp" 22 #include "element.hpp" 23 #include "molecule.hpp" 24 #include "vector.hpp" 25 19 26 using namespace std; 20 27 … … 33 40 } 34 41 42 void TextDialog::queryBoolean(const char* title, bool* target, string description){ 43 registerQuery(new BooleanTextQuery(title,target,description)); 44 } 45 35 46 void TextDialog::queryInt(const char* title, int* target, string description){ 36 47 registerQuery(new IntTextQuery(title,target,description)); … … 45 56 } 46 57 47 void TextDialog::queryMolecule(const char* title, molecule **target, MoleculeListClass *molecules, string description) { 48 registerQuery(new MoleculeTextQuery(title,target,molecules,description)); 58 void TextDialog::queryAtom(const char* title, atom **target, string description) { 59 registerQuery(new AtomTextQuery(title,target,description)); 60 } 61 62 void TextDialog::queryMolecule(const char* title, molecule **target, string description) { 63 registerQuery(new MoleculeTextQuery(title,target,description)); 49 64 } 50 65 51 66 void TextDialog::queryVector(const char* title, Vector *target,const double *const cellSize, bool check, string description) { 52 67 registerQuery(new VectorTextQuery(title,target,cellSize,check,description)); 68 } 69 70 void TextDialog::queryBox(const char* title,double ** const cellSize, string description) { 71 registerQuery(new BoxTextQuery(title,cellSize,description)); 53 72 } 54 73 … … 94 113 } 95 114 115 TextDialog::BooleanTextQuery::BooleanTextQuery(string title, bool * _target, std::string _description) : 116 Dialog::BooleanQuery(title,_target,_description) 117 {} 118 119 TextDialog::BooleanTextQuery::~BooleanTextQuery() {} 120 121 bool TextDialog::BooleanTextQuery::handle() { 122 bool badInput = false; 123 char input = ' '; 124 do{ 125 badInput = false; 126 Log() << Verbose(0) << getTitle(); 127 cin >> input; 128 if ((input == 'y' ) || (input == 'Y')) { 129 tmp = true; 130 } else if ((input == 'n' ) || (input == 'N')) { 131 tmp = false; 132 } else { 133 badInput=true; 134 cin.clear(); 135 cin.ignore(std::numeric_limits<streamsize>::max(),'\n'); 136 Log() << Verbose(0) << "Input was not of [yYnN]!" << endl; 137 } 138 } while(badInput); 139 // clear the input buffer of anything still in the line 140 cin.ignore(std::numeric_limits<streamsize>::max(),'\n'); 141 return true; 142 } 143 96 144 TextDialog::StringTextQuery::StringTextQuery(string title,string *_target, std::string _description) : 97 145 Dialog::StringQuery(title,_target,_description) … … 129 177 } 130 178 131 TextDialog::MoleculeTextQuery::MoleculeTextQuery(string title, molecule **_target, MoleculeListClass *_molecules, std::string _description) : 132 Dialog::MoleculeQuery(title,_target,_molecules,_description) 179 TextDialog::AtomTextQuery::AtomTextQuery(string title, atom **_target, std::string _description) : 180 Dialog::AtomQuery(title,_target,_description) 181 {} 182 183 TextDialog::AtomTextQuery::~AtomTextQuery() {} 184 185 bool TextDialog::AtomTextQuery::handle() { 186 int idxOfAtom=0; 187 bool badInput = false; 188 do{ 189 badInput = false; 190 Log() << Verbose(0) << getTitle(); 191 cin >> idxOfAtom; 192 if(cin.fail()){ 193 badInput = true; 194 cin.clear(); 195 cin.ignore(std::numeric_limits<streamsize>::max(),'\n'); 196 Log() << Verbose(0) << "Input was not a number!" << endl; 197 continue; 198 } 199 200 tmp = World::getInstance().getAtom(AtomById(idxOfAtom)); 201 if(!tmp && idxOfAtom!=-1){ 202 Log() << Verbose(0) << "Invalid Atom Index" << endl; 203 badInput = true; 204 } 205 206 } while(badInput); 207 cin.ignore(std::numeric_limits<streamsize>::max(),'\n'); 208 return (idxOfAtom!=-1); 209 } 210 211 TextDialog::MoleculeTextQuery::MoleculeTextQuery(string title, molecule **_target, std::string _description) : 212 Dialog::MoleculeQuery(title,_target,_description) 133 213 {} 134 214 … … 150 230 } 151 231 152 tmp = molecules->ReturnIndex(idxOfMol);232 tmp = World::getInstance().getMolecule(MoleculeById(idxOfMol)); 153 233 if(!tmp && idxOfMol!=-1){ 154 234 Log() << Verbose(0) << "Invalid Molecule Index" << endl; … … 183 263 } 184 264 265 TextDialog::BoxTextQuery::BoxTextQuery(std::string title, double ** const _cellSize, std::string _description) : 266 Dialog::BoxQuery(title,_cellSize,_description) 267 {} 268 269 TextDialog::BoxTextQuery::~BoxTextQuery() 270 {} 271 272 bool TextDialog::BoxTextQuery::handle() { 273 Log() << Verbose(0) << getTitle(); 274 275 std::string coords[6] = {"xx","xy","xz", "yy", "yz", "zz"}; 276 for (int i=0;i<6;i++) { 277 Log() << Verbose(0) << coords[i] << ": "; 278 cin >> tmp[i]; 279 } 280 return true; 281 } 185 282 186 283 TextDialog::ElementTextQuery::ElementTextQuery(std::string title, const element **target, std::string _description) :
Note:
See TracChangeset
for help on using the changeset viewer.