Changeset b8d1aeb for src/UIElements/QT4
- Timestamp:
- Feb 2, 2010, 11:38:06 AM (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:
- 7ba324
- Parents:
- 9fe36b (diff), 2ededc2 (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. - Location:
- src/UIElements/QT4
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/UIElements/QT4/QTDialog.cpp
r9fe36b rb8d1aeb 10 10 #include <string> 11 11 #include <sstream> 12 #include <limits> 12 13 13 14 #include <Qt/qboxlayout.h> 14 15 #include <Qt/qlabel.h> 15 16 #include <Qt/qspinbox.h> 17 #include <QtGui/QDoubleSpinBox> 16 18 #include <Qt/qlineedit.h> 17 19 #include <Qt/qdialogbuttonbox.h> … … 75 77 } 76 78 79 void QTDialog::queryDouble(const char* title, double* target){ 80 registerQuery(new DoubleQTQuery(title,target,inputLayout,this)); 81 } 82 77 83 void QTDialog::queryString(const char* title, std::string *target) 78 84 { … … 84 90 registerQuery(new MoleculeQTQuery(title,target,molecules,inputLayout,this)); 85 91 } 92 93 void QTDialog::queryVector(const char* title, Vector *target,const double *const cellSize, bool check) { 94 registerQuery(new VectorQTQuery(title,target,cellSize,check,inputLayout,this)); 95 } 96 97 /************************** Query Objects *******************************/ 86 98 87 99 QTDialog::IntQTQuery::IntQTQuery(string _title,int *_target,QBoxLayout *_parent,QTDialog *_dialog) : … … 110 122 bool QTDialog::IntQTQuery::handle() 111 123 { 124 return true; 125 } 126 127 QTDialog::DoubleQTQuery::DoubleQTQuery(string title,double *_target,QBoxLayout *_parent,QTDialog *_dialog) : 128 Dialog::DoubleQuery(title,_target), 129 parent(_parent) 130 { 131 thisLayout = new QHBoxLayout(); 132 titleLabel = new QLabel(QString(getTitle().c_str())); 133 inputBox = new QDoubleSpinBox(); 134 inputBox->setValue(0); 135 inputBox->setRange(-numeric_limits<double>::max(),numeric_limits<double>::max()); 136 inputBox->setDecimals(3); 137 parent->addLayout(thisLayout); 138 thisLayout->addWidget(titleLabel); 139 thisLayout->addWidget(inputBox); 140 141 pipe = new DoubleQTQueryPipe(&tmp,_dialog); 142 pipe->update(inputBox->value()); 143 connect(inputBox,SIGNAL(valueChanged(double)),pipe,SLOT(update(double))); 144 } 145 146 QTDialog::DoubleQTQuery::~DoubleQTQuery() 147 { 148 delete pipe; 149 } 150 151 bool QTDialog::DoubleQTQuery::handle() { 112 152 return true; 113 153 } … … 177 217 } 178 218 219 QTDialog::VectorQTQuery::VectorQTQuery(std::string title, Vector *_target, const double *const _cellSize, bool _check,QBoxLayout *_parent,QTDialog *_dialog) : 220 Dialog::VectorQuery(title,_target,_cellSize,_check), 221 parent(_parent) 222 { 223 // About the j: I don't know why it was done this way, but it was used this way in Vector::AskPosition, so I reused it 224 int j = -1; 225 const char *coords[3] = {"x:","y:","z:"}; 226 mainLayout= new QHBoxLayout(); 227 titleLabel = new QLabel(QString(getTitle().c_str())); 228 mainLayout->addWidget(titleLabel); 229 subLayout = new QVBoxLayout(); 230 mainLayout->addLayout(subLayout); 231 for(int i=0; i<3; i++) { 232 j+=i+1; 233 coordLayout[i] = new QHBoxLayout(); 234 subLayout->addLayout(coordLayout[i]); 235 coordLabel[i] = new QLabel(QString(coords[i])); 236 coordLayout[i]->addWidget(coordLabel[i]); 237 coordInput[i] = new QDoubleSpinBox(); 238 coordInput[i]->setRange(0,cellSize[j]); 239 coordInput[i]->setDecimals(3); 240 coordLayout[i]->addWidget(coordInput[i]); 241 pipe[i] = new DoubleQTQueryPipe(&((*tmp)[i]),_dialog); 242 pipe[i]->update(coordInput[i]->value()); 243 connect(coordInput[i],SIGNAL(valueChanged(double)),pipe[i],SLOT(update(double))); 244 245 } 246 parent->addLayout(mainLayout); 247 } 248 249 QTDialog::VectorQTQuery::~VectorQTQuery() 250 {} 251 252 bool QTDialog::VectorQTQuery::handle() { 253 return true; 254 } 255 179 256 180 257 /*************************** Plumbing *******************************/ … … 203 280 void IntQTQueryPipe::update(int newInt) { 204 281 (*content) = newInt; 282 dialog->update(); 283 } 284 285 DoubleQTQueryPipe::DoubleQTQueryPipe(double *_content, QTDialog *_dialog) : 286 content(_content), 287 dialog(_dialog) 288 {} 289 290 DoubleQTQueryPipe::~DoubleQTQueryPipe() 291 {} 292 293 void DoubleQTQueryPipe::update(double newDbl) { 294 (*content) = newDbl; 205 295 dialog->update(); 206 296 } -
src/UIElements/QT4/QTDialog.hpp
r9fe36b rb8d1aeb 15 15 class QLabel; 16 16 class QSpinBox; 17 class QDoubleSpinBox; 17 18 class QLineEdit; 18 19 class QComboBox; … … 23 24 class StringQTQueryPipe; 24 25 class IntQTQueryPipe; 26 class DoubleQTQueryPipe; 25 27 class MoleculeQTQueryPipe; 26 28 … … 34 36 virtual void queryInt(const char *, int *); 35 37 virtual void queryString(const char*, std::string *); 38 virtual void queryDouble(const char*,double *); 36 39 virtual void queryMolecule(const char*,molecule**,MoleculeListClass*); 40 virtual void queryVector(const char*,Vector *,const double *const,bool); 37 41 38 42 virtual bool display(); … … 53 57 54 58 IntQTQueryPipe *pipe; 59 }; 60 61 class DoubleQTQuery : public Dialog::DoubleQuery { 62 public: 63 DoubleQTQuery(std::string title, double *_target,QBoxLayout *_parent,QTDialog *_dialog); 64 ~DoubleQTQuery(); 65 virtual bool handle(); 66 private: 67 QBoxLayout *parent; 68 QBoxLayout *thisLayout; 69 QLabel *titleLabel; 70 QDoubleSpinBox *inputBox; 71 72 DoubleQTQueryPipe *pipe; 55 73 }; 56 74 … … 81 99 82 100 MoleculeQTQueryPipe *pipe; 101 }; 102 103 class VectorQTQuery : public Dialog::VectorQuery { 104 public: 105 VectorQTQuery(std::string title,Vector *_target,const double *const _cellSize,bool _check,QBoxLayout *,QTDialog *); 106 ~VectorQTQuery(); 107 virtual bool handle(); 108 private: 109 QBoxLayout *parent; 110 QBoxLayout *mainLayout; 111 QLabel *titleLabel; 112 QBoxLayout *subLayout; 113 QBoxLayout *coordLayout[3]; 114 QLabel *coordLabel[3]; 115 QDoubleSpinBox *coordInput[3]; 116 117 DoubleQTQueryPipe *pipe[3]; 83 118 }; 84 119 … … 124 159 }; 125 160 161 class DoubleQTQueryPipe : public QWidget { 162 Q_OBJECT 163 public: 164 DoubleQTQueryPipe(double *_content, QTDialog *_dialog); 165 ~DoubleQTQueryPipe(); 166 167 public slots: 168 void update(double); 169 170 private: 171 double *content; 172 QTDialog *dialog; 173 174 }; 126 175 127 176 class MoleculeQTQueryPipe : public QWidget {
Note:
See TracChangeset
for help on using the changeset viewer.