source: src/UIElements/QT4/QTDialog.hpp@ b8d1aeb

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

Merge branch 'MenuRefactoring' into QT4Refactoring

Conflicts:

molecuilder/src/Makefile.am
molecuilder/src/builder.cpp
molecuilder/src/unittests/Makefile.am

  • Property mode set to 100644
File size: 4.2 KB
Line 
1/*
2 * QTDialog.hpp
3 *
4 * Created on: Jan 18, 2010
5 * Author: crueger
6 */
7
8#ifndef QTDIALOG_HPP_
9#define QTDIALOG_HPP_
10
11#include "UIElements/Dialog.hpp"
12#include <QtGui/QDialog>
13
14class QBoxLayout;
15class QLabel;
16class QSpinBox;
17class QDoubleSpinBox;
18class QLineEdit;
19class QComboBox;
20class QDialogButtonBox;
21
22
23// Forward declarations for plumbing
24class StringQTQueryPipe;
25class IntQTQueryPipe;
26class DoubleQTQueryPipe;
27class MoleculeQTQueryPipe;
28
29class QTDialog : public QDialog, public Dialog
30{
31 Q_OBJECT
32public:
33 QTDialog();
34 virtual ~QTDialog();
35
36 virtual void queryInt(const char *, int *);
37 virtual void queryString(const char*, std::string *);
38 virtual void queryDouble(const char*,double *);
39 virtual void queryMolecule(const char*,molecule**,MoleculeListClass*);
40 virtual void queryVector(const char*,Vector *,const double *const,bool);
41
42 virtual bool display();
43
44 virtual void update();
45
46protected:
47 class IntQTQuery : public Dialog::IntQuery {
48 public:
49 IntQTQuery(std::string _title, int *_target,QBoxLayout *_parent,QTDialog *_dialog);
50 ~IntQTQuery();
51 virtual bool handle();
52 private:
53 QBoxLayout *parent;
54 QBoxLayout *thisLayout;
55 QLabel *titleLabel;
56 QSpinBox *inputBox;
57
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;
73 };
74
75 class StringQTQuery : public Dialog::StringQuery {
76 public:
77 StringQTQuery(std::string _title, std::string *_target, QBoxLayout *_parent,QTDialog *_dialog);
78 ~StringQTQuery();
79 virtual bool handle();
80 private:
81 QBoxLayout *parent;
82 QBoxLayout *thisLayout;
83 QLabel *titleLabel;
84 QLineEdit *inputBox;
85
86 StringQTQueryPipe *pipe;
87 };
88
89 class MoleculeQTQuery : public Dialog::MoleculeQuery {
90 public:
91 MoleculeQTQuery(std::string _title, molecule **_target, MoleculeListClass *_molecules, QBoxLayout *_parent,QTDialog *_dialog);
92 ~MoleculeQTQuery();
93 virtual bool handle();
94 private:
95 QBoxLayout *parent;
96 QBoxLayout *thisLayout;
97 QLabel *titleLabel;
98 QComboBox *inputBox;
99
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];
118 };
119
120private:
121 QBoxLayout *mainLayout;
122 QBoxLayout *inputLayout;
123 QBoxLayout *buttonLayout;
124 QDialogButtonBox *buttons;
125};
126
127// All kinds of plumbing for Queries
128// Plumbing needs to be outside of the class where it is needed,
129// since MOC doesn't like nested classes
130
131class StringQTQueryPipe : public QWidget {
132 Q_OBJECT
133public:
134 StringQTQueryPipe(std::string *_content, QTDialog *_dialog);
135 ~StringQTQueryPipe();
136
137public slots:
138 void update(const QString&);
139
140private:
141 std::string *content;
142 QTDialog *dialog;
143
144};
145
146class IntQTQueryPipe : public QWidget {
147 Q_OBJECT
148public:
149 IntQTQueryPipe(int *_content, QTDialog *_dialog);
150 ~IntQTQueryPipe();
151
152public slots:
153 void update(int);
154
155private:
156 int *content;
157 QTDialog *dialog;
158
159};
160
161class DoubleQTQueryPipe : public QWidget {
162 Q_OBJECT
163public:
164 DoubleQTQueryPipe(double *_content, QTDialog *_dialog);
165 ~DoubleQTQueryPipe();
166
167public slots:
168 void update(double);
169
170private:
171 double *content;
172 QTDialog *dialog;
173
174};
175
176class MoleculeQTQueryPipe : public QWidget {
177 Q_OBJECT
178public:
179 MoleculeQTQueryPipe(molecule **_content, QTDialog *_dialog, QComboBox *_theBox, MoleculeListClass *_molecules);
180 ~MoleculeQTQueryPipe();
181
182public slots:
183 void update(int);
184
185private:
186 molecule **content;
187 MoleculeListClass *molecules;
188 QTDialog *dialog;
189 QComboBox *theBox;
190
191};
192#endif /* QTDIALOG_HPP_ */
Note: See TracBrowser for help on using the repository browser.