source: src/UIElements/Dialog.cpp@ 5ec8e3

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 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
Last change on this file since 5ec8e3 was 5ec8e3, checked in by Tillmann Crueger <crueger@…>, 15 years ago

Merge branch 'VectorRefactoring' into StructureRefactoring

Conflicts:

molecuilder/src/Makefile.am

  • Property mode set to 100644
File size: 4.2 KB
RevLine 
[f5a86a]1/*
2 * Dialog.cpp
3 *
4 * Created on: Jan 5, 2010
5 * Author: crueger
6 */
7
[112b09]8#include "Helpers/MemDebug.hpp"
9
[5079a0]10#include "Dialog.hpp"
[f5a86a]11
[97ebf8]12#include "atom.hpp"
13#include "element.hpp"
14#include "molecule.hpp"
[2ededc2]15#include "vector.hpp"
[84c494]16#include "Matrix.hpp"
17#include "Box.hpp"
[2ededc2]18
[f5a86a]19using namespace std;
20
21Dialog::Dialog()
22{
23}
24
25Dialog::~Dialog()
26{
[45f5d6]27 list<Query*>::iterator iter;
28 for(iter=queries.begin();iter!=queries.end();iter++){
29 delete (*iter);
30 }
[f5a86a]31}
32
[45f5d6]33void Dialog::registerQuery(Query *query){
34 queries.push_back(query);
35}
[f5a86a]36
[45f5d6]37bool Dialog::display(){
[d3a5ea]38 if(checkAll()){
39 setAll();
40 return true;
41 }
42 else{
43 return false;
44 }
45}
46
47bool Dialog::checkAll(){
[45f5d6]48 list<Query*>::iterator iter;
49 bool retval = true;
50 for(iter=queries.begin(); iter!=queries.end(); iter++){
51 retval &= (*iter)->handle();
52 // if any query fails (is canceled), we can end the handling process
[94d131]53 if(!retval) {
54 DoeLog(1) && (eLog() << Verbose(1) << "The following query failed: " << (**iter).getTitle() << "." << endl);
[45f5d6]55 break;
[94d131]56 }
[45f5d6]57 }
58 return retval;
[f5a86a]59}
60
[d3a5ea]61void Dialog::setAll(){
62 list<Query*>::iterator iter;
63 for(iter=queries.begin(); iter!=queries.end(); iter++) {
64 (*iter)->setResult();
65 }
66}
67
[7aa000]68/****************** Query types Infrastructure **************************/
69
70// Base class
[a2ab15]71Dialog::Query::Query(string _title, string _description) :
72 title(_title),
73 description(_description)
[45f5d6]74{}
[f5a86a]75
[45f5d6]76Dialog::Query::~Query() {}
77
78const std::string Dialog::Query::getTitle() const{
79 return title;
[f5a86a]80}
81
[a2ab15]82const std::string Dialog::Query::getDescription() const{
83 return description;
84}
[86466e]85// empty Queries
86
87Dialog::EmptyQuery::EmptyQuery(string title, std::string description) :
88 Query(title, description)
89{}
90
91Dialog::EmptyQuery::~EmptyQuery() {}
92
93void Dialog::EmptyQuery::setResult() {
94}
95
[7aa000]96// Int Queries
97
[a2ab15]98Dialog::IntQuery::IntQuery(string title,int *_target, std::string description) :
99 Query(title, description), target(_target)
[45f5d6]100{}
101
102Dialog::IntQuery::~IntQuery() {}
103
104void Dialog::IntQuery::setResult() {
105 *target = tmp;
[f5a86a]106}
[45f5d6]107
[97ebf8]108// Int Queries
109
110Dialog::BooleanQuery::BooleanQuery(string title,bool *_target, std::string description) :
111 Query(title, description), target(_target)
112{}
113
114Dialog::BooleanQuery::~BooleanQuery() {}
115
116void Dialog::BooleanQuery::setResult() {
117 *target = tmp;
118}
119
[7aa000]120// String Queries
121
[a2ab15]122Dialog::StringQuery::StringQuery(string title,string *_target, std::string _description) :
123 Query(title, _description), target(_target)
[45f5d6]124{}
125
126Dialog::StringQuery::~StringQuery() {};
127
128void Dialog::StringQuery::setResult() {
129 *target = tmp;
130}
131
[2ededc2]132// Double Queries
133
[a2ab15]134Dialog::DoubleQuery::DoubleQuery(string title,double *_target, std::string _description) :
135 Query(title, _description), target(_target)
[2ededc2]136{}
137
138Dialog::DoubleQuery::~DoubleQuery() {};
139
140void Dialog::DoubleQuery::setResult() {
141 *target = tmp;
142}
143
144
[97ebf8]145// Atom Queries
146
147Dialog::AtomQuery::AtomQuery(string title, atom **_target, std::string _description) :
148 Query(title, _description),
149 tmp(0),
150 target(_target)
151
152{}
153
154Dialog::AtomQuery::~AtomQuery() {}
155
156void Dialog::AtomQuery::setResult() {
157 *target = tmp;
158}
159
[7aa000]160// Molecule Queries
161
[97ebf8]162Dialog::MoleculeQuery::MoleculeQuery(string title, molecule **_target, std::string _description) :
[a2ab15]163 Query(title, _description),
[24a5e0]164 tmp(0),
165 target(_target)
166
[7aa000]167{}
168
169Dialog::MoleculeQuery::~MoleculeQuery() {}
170
171void Dialog::MoleculeQuery::setResult() {
172 *target = tmp;
173}
[2ededc2]174
175// Vector Queries
176
[84c494]177Dialog::VectorQuery::VectorQuery(std::string title,Vector *_target,bool _check, std::string _description) :
[a2ab15]178 Query(title, _description),
[24a5e0]179 check(_check),
180 target(_target)
[2ededc2]181{
[26f75a]182 tmp = new Vector();
[2ededc2]183}
184
185Dialog::VectorQuery::~VectorQuery()
186{
187 delete tmp;
188}
189
190void Dialog::VectorQuery::setResult() {
191 *target = *tmp;
192}
[5a7243]193
[97ebf8]194// Box Queries
195
[84c494]196Dialog::BoxQuery::BoxQuery(std::string title, Box* _cellSize, std::string _description) :
[97ebf8]197 Query(title, _description),
198 target(_cellSize)
199{
200 tmp = new double[6];
201}
202
203Dialog::BoxQuery::~BoxQuery()
204{
205 delete[] tmp;
206}
207
208void Dialog::BoxQuery::setResult() {
[84c494]209 (*target)= ReturnFullMatrixforSymmetric(tmp);
[97ebf8]210}
211
[5a7243]212// Element Queries
[104524]213Dialog::ElementQuery::ElementQuery(std::string title, std::vector<element *> *_target, std::string _description) :
[a2ab15]214 Query(title, _description),
[5605032]215 target(_target)
[5a7243]216 {}
217
218Dialog::ElementQuery::~ElementQuery(){}
219
220void Dialog::ElementQuery::setResult(){
[104524]221 *target=elements;
[5a7243]222}
Note: See TracBrowser for help on using the repository browser.