Changes in src/UIElements/TextDialog.cpp [97ebf8:86466e]
- File:
-
- 1 edited
-
src/UIElements/TextDialog.cpp (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/UIElements/TextDialog.cpp
r97ebf8 r86466e 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>14 10 #include "UIElements/TextDialog.hpp" 15 11 16 12 #include "World.hpp" 17 13 #include "periodentafel.hpp" 14 #include "atom.hpp" 15 #include "molecule.hpp" 18 16 #include "log.hpp" 19 17 #include "verbose.hpp" 20 18 21 #include "atom.hpp"22 #include "element.hpp"23 #include "molecule.hpp"24 #include "vector.hpp"25 26 19 using namespace std; 27 20 … … 40 33 } 41 34 42 void TextDialog::queryBoolean(const char* title, bool* target, string description){43 registerQuery(new BooleanTextQuery(title,target,description));44 }45 46 35 void TextDialog::queryInt(const char* title, int* target, string description){ 47 36 registerQuery(new IntTextQuery(title,target,description)); … … 56 45 } 57 46 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)); 47 void TextDialog::queryMolecule(const char* title, molecule **target, MoleculeListClass *molecules, string description) { 48 registerQuery(new MoleculeTextQuery(title,target,molecules,description)); 64 49 } 65 50 66 51 void TextDialog::queryVector(const char* title, Vector *target,const double *const cellSize, bool check, string description) { 67 52 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));72 53 } 73 54 … … 113 94 } 114 95 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 line140 cin.ignore(std::numeric_limits<streamsize>::max(),'\n');141 return true;142 }143 144 96 TextDialog::StringTextQuery::StringTextQuery(string title,string *_target, std::string _description) : 145 97 Dialog::StringQuery(title,_target,_description) … … 177 129 } 178 130 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) 131 TextDialog::MoleculeTextQuery::MoleculeTextQuery(string title, molecule **_target, MoleculeListClass *_molecules, std::string _description) : 132 Dialog::MoleculeQuery(title,_target,_molecules,_description) 213 133 {} 214 134 … … 230 150 } 231 151 232 tmp = World::getInstance().getMolecule(MoleculeById(idxOfMol));152 tmp = molecules->ReturnIndex(idxOfMol); 233 153 if(!tmp && idxOfMol!=-1){ 234 154 Log() << Verbose(0) << "Invalid Molecule Index" << endl; … … 263 183 } 264 184 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 }282 185 283 186 TextDialog::ElementTextQuery::ElementTextQuery(std::string title, const element **target, std::string _description) :
Note:
See TracChangeset
for help on using the changeset viewer.
