Changeset 33e801 for src


Ignore:
Timestamp:
Jun 11, 2015, 11:21:41 PM (10 years ago)
Author:
Frederik Heber <heber@…>
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:
043598
Parents:
dd6c07
git-author:
Frederik Heber <heber@…> (05/17/15 04:22:43)
git-committer:
Frederik Heber <heber@…> (06/11/15 23:21:41)
Message:

Added ParameterPair (i.e. "key = value;") to allow other string output.

  • this will solve the problem of vectors of key-value-pairs not properly converted into a single string because of missing semicolon.
  • FIX: toCLIString used functions toPythonString if possible.
Location:
src
Files:
7 added
26 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/Values.cpp

    rdd6c07 r33e801  
    3737#include "CodePatterns/Assert.hpp"
    3838
     39#include "Box.hpp"
    3940#include "LinearAlgebra/BoxVector.hpp"
    4041#include "LinearAlgebra/RealSpaceMatrix.hpp"
    4142#include "LinearAlgebra/Vector.hpp"
    42 #include "Box.hpp"
    4343
    4444#include "Values.hpp"
  • src/Actions/Values.hpp

    rdd6c07 r33e801  
    1515
    1616#include "LinearAlgebra/defs.hpp"
     17
     18#include <string>
    1719
    1820class Box;
     
    4547};
    4648
     49#endif /* VALUES_HPP_ */
    4750
    48 #endif /* VALUES_HPP_ */
  • src/Actions/toCLIString.cpp

    rdd6c07 r33e801  
    4040#include "LinearAlgebra/RealSpaceMatrix.hpp"
    4141#include "LinearAlgebra/Vector.hpp"
     42#include "Parameters/Specifics/KeyValuePair.hpp"
     43
     44#include "Actions/toPythonString.hpp"
    4245
    4346template <>
     
    6568    << _value.at(2,0) << ","
    6669    << _value.at(2,1) << ","
    67     << _value.at(2,2) << "\"";
     70    << _value.at(2,2)
     71    << "\"";
    6872  return output.str();
    6973}
     
    7377{
    7478  std::stringstream output;
    75   output << "\"" << _value[0] << "," << _value[1] << "," << _value[2] << "\"";
     79  output << "\"" << toPythonString(_value) << "\"";
    7680  return output.str();
    7781}
     
    8488  return output.str();
    8589}
     90
     91template <>
     92const std::string toCLIString( const KeyValuePair& _value)
     93{
     94  std::stringstream output;
     95  output << "\"" << toPythonString(_value) << "\"";
     96  return output.str();
     97}
  • src/Actions/toCLIString.hpp

    rdd6c07 r33e801  
    2121
    2222class element;
     23struct KeyValuePair;
    2324class RealSpaceMatrix;
    2425class Vector;
     
    7778template <> const std::string toCLIString( const std::string& _value);
    7879
     80template <> const std::string toCLIString( const KeyValuePair& _value);
     81
    7982#endif /* TOCLISTRING_HPP_ */
  • src/Actions/toPythonString.cpp

    rdd6c07 r33e801  
    4141#include "LinearAlgebra/Vector.hpp"
    4242
     43#include "Parameters/Specifics/KeyValuePair.hpp"
     44
    4345template <>
    4446const std::string toPythonString( const boost::filesystem::path & _value)
     
    5254  std::stringstream output;
    5355  output << _value.getAtomicNumber();
     56  return output.str();
     57}
     58
     59template <>
     60const std::string toPythonString( const KeyValuePair & _value)
     61{
     62  std::stringstream output;
     63  const char semicolon(';');
     64  const size_t semicolon_pos = _value.find_last_of(semicolon, std::string::npos);
     65  const size_t final_equality_pos = _value.find('=', semicolon_pos);
     66  output << _value;
     67  if ((semicolon_pos == std::string::npos)
     68      || (final_equality_pos != std::string::npos))
     69    output << semicolon;
    5470  return output.str();
    5571}
  • src/Actions/toPythonString.hpp

    rdd6c07 r33e801  
    2121
    2222class element;
     23struct KeyValuePair;
    2324class RealSpaceMatrix;
    2425class Vector;
     
    7172template <> const std::string toPythonString( const boost::filesystem::path & _value);
    7273
     74template <> const std::string toPythonString( const KeyValuePair& _value);
     75
    7376template <> const std::string toPythonString( const RealSpaceMatrix& _value);
    7477
  • src/Actions/unittests/stubs/DummyUI.hpp

    rdd6c07 r33e801  
    4747  virtual void queryFile(Parameter<boost::filesystem::path> &, const std::string ="", const std::string = ""){};
    4848  virtual void queryFiles(Parameter< std::vector<boost::filesystem::path> > &, const std::string ="", const std::string = ""){};
     49  virtual void queryKeyValuePair(Parameter<KeyValuePair> &, const std::string ="", const std::string = ""){};
     50  virtual void queryKeyValuePairs(Parameter<std::vector<KeyValuePair> > &, const std::string ="", const std::string = ""){};
    4951};
    5052
  • src/Parameters/Makefile.am

    rdd6c07 r33e801  
    4343        Parameters/ValueAsString.hpp \
    4444        Parameters/ValueInterface.hpp \
     45        Parameters/Specifics/KeyValuePair.hpp \
    4546        Parameters/Specifics/Value_atom.hpp \
    4647        Parameters/Specifics/Value_element.hpp \
  • src/UIElements/CommandLineUI/CommandLineDialog.cpp

    rdd6c07 r33e801  
    136136}
    137137
     138void CommandLineDialog::queryKeyValuePair(Parameter<KeyValuePair> &param, const std::string title, const std::string description)
     139{
     140  registerQuery(new KeyValuePairCommandLineQuery(param, title,description));
     141}
     142
     143void CommandLineDialog::queryKeyValuePairs(Parameter< std::vector<KeyValuePair> > &param, const std::string title, const std::string description)
     144{
     145  registerQuery(new KeyValuePairsCommandLineQuery(param, title,description));
     146}
     147
    138148/************************** Query Infrastructure ************************/
    139149/*       ---> shifted to folder Query                                   */
  • src/UIElements/CommandLineUI/CommandLineDialog.hpp

    rdd6c07 r33e801  
    5454  virtual void queryFile(Parameter<boost::filesystem::path> &, const std::string ="", const std::string = "");
    5555  virtual void queryFiles(Parameter<std::vector< boost::filesystem::path> > &, const std::string ="", const std::string = "");
     56  virtual void queryKeyValuePair(Parameter<KeyValuePair> &, const std::string ="", const std::string = "");
     57  virtual void queryKeyValuePairs(Parameter< std::vector<KeyValuePair> > &, const std::string ="", const std::string = "");
     58
    5659  // specialized stuff for command line queries
    5760  // all placed into Query/CommandLineQuery.hpp
    5861  // !please adhere to alphabetical ordering!
     62
    5963  class AtomCommandLineQuery;
    6064  class AtomsCommandLineQuery;
     
    6973  class IntCommandLineQuery;
    7074  class IntsCommandLineQuery;
     75  class KeyValuePairCommandLineQuery;
     76  class KeyValuePairsCommandLineQuery;
    7177  class MoleculeCommandLineQuery;
    7278  class MoleculesCommandLineQuery;
  • src/UIElements/CommandLineUI/CommandLineParser.cpp

    rdd6c07 r33e801  
    5252#include "CommandLineParser.hpp"
    5353#include "CommandLineParser_validate.hpp"
     54#include "Parameters/Specifics/KeyValuePair.hpp"
    5455#include "World.hpp"
    5556
     
    408409//                  po::value < RealSpaceMatrixValue >()->default_value(boost::lexical_cast<BoxValue>(currentOption->getDefaultValue().c_str())) :
    409410                  po::value < RealSpaceMatrixValue >(),
     411                  currentOption->getDescription().c_str())
     412        ;
     413      break;
     414    case TypeEnumContainer::KeyValueType:
     415      OptionList->add_options()
     416        (currentOption->getKeyAndShortForm().c_str(),
     417            currentOption->hasDefaultValue() ?
     418                  (_DefaultAsImplicit ?
     419                      po::value < KeyValuePair >()->implicit_value(boost::lexical_cast< KeyValuePair >(currentOption->getDefaultValue().c_str())) :
     420                      po::value < KeyValuePair >()->default_value(boost::lexical_cast< KeyValuePair >(currentOption->getDefaultValue().c_str()))) :
     421                  po::value < KeyValuePair >(),
     422                  currentOption->getDescription().c_str())
     423        ;
     424      break;
     425    case TypeEnumContainer::ListOfKeyValuesType:
     426      OptionList->add_options()
     427        (currentOption->getKeyAndShortForm().c_str(),
     428//            currentOption->hasDefaultValue() ?
     429//                  po::value < std::vector<KeyValuePair> >()->default_value(boost::lexical_cast< std::vector<KeyValuePair> >(currentOption->getDefaultValue().c_str())) :
     430                  po::value < std::vector<KeyValuePair> >()->multitoken(),
    410431                  currentOption->getDescription().c_str())
    411432        ;
  • src/UIElements/CommandLineUI/CommandLineParser_validate.cpp

    rdd6c07 r33e801  
    4242#include "Actions/Values.hpp"
    4343#include "CommandLineParser_validate.hpp"
     44#include "Parameters/Specifics/KeyValuePair.hpp"
    4445
    4546/** boost::program_options validator specialization for VectorValue.
     
    157158void validate(boost::any& v, const std::vector<std::string>& values, boost::filesystem::path *, int)
    158159{
    159   boost::filesystem::path filename;
    160 
    161   std::cerr << "boost::filesystem::path validator used." << std::endl;
     160//  std::cerr << "boost::filesystem::path validator used." << std::endl;
     161
     162  // Make sure no previous assignment to 'a' was made.
     163  boost::program_options::validators::check_first_occurrence(v);
     164  // Extract the first string from 'values'. If there is more than
     165  // one string, it's an error, and exception will be thrown.
     166  const std::string& s = boost::program_options::validators::get_single_string(values);
     167
     168  v = boost::any(boost::filesystem::path(s));
     169}
     170
     171/** boost::program_options validator specialization for boost::filesystem::path.
     172 * \param &v  reference for return value
     173 * \param &values string vector of scanned options
     174 * \param *
     175 * \param
     176 *
     177 */
     178void validate(boost::any& v, const std::vector<std::string>& values, KeyValuePair *, int)
     179{
     180//  std::cerr << "KeyValuePair validator used." << std::endl;
     181
     182  // Make sure no previous assignment to 'a' was made.
     183  boost::program_options::validators::check_first_occurrence(v);
     184  // Extract the first string from 'values'. If there is more than
     185  // one string, it's an error, and exception will be thrown.
     186  const std::string& s = boost::program_options::validators::get_single_string(values);
     187
     188  if (s.find("=") == std::string::npos) {
     189#if BOOST_VERSION < 104200
     190    throw boost::program_options::validation_error("Invalid KeyValue given");
     191#else
     192throw boost::program_options::validation_error(
     193    boost::program_options::validation_error::invalid_option_value,
     194    std::string("value"),
     195    std::string("vector<KeyValuePair>")
     196    );
     197#endif
     198  }
     199  v = boost::any(KeyValuePair(s));
     200}
     201
     202/** boost::program_options validator specialization for boost::filesystem::path.
     203 * \param &v  reference for return value
     204 * \param &values string vector of scanned options
     205 * \param *
     206 * \param
     207 *
     208 */
     209void validate(boost::any& v, const std::vector<std::string>& values, std::vector<KeyValuePair> *, int)
     210{
     211//  std::cerr << "vector<KeyValuePair> validator used." << std::endl;
    162212
    163213  // split comma-separated values
    164   if (values.size() != 1) {
    165     std::cerr <<  "Not one file but " << values.size() << " given " << std::endl;
     214  if (values.size() > 1) {
    166215#if BOOST_VERSION < 104200
    167216    throw boost::program_options::validation_error("Unequal to one file given");
     
    171220          boost::program_options::validation_error::at_least_one_value_required,
    172221          std::string("value"),
    173           std::string("boost::filesystem::path")
    174       );
    175     } else {
    176       throw boost::program_options::validation_error(
    177           boost::program_options::validation_error::multiple_values_not_allowed,
    178           std::string("value"),
    179           std::string("boost::filesystem::path")
     222          std::string("vector<KeyValuePair>")
    180223      );
    181224    }
    182225#endif
    183   }
    184   filename = values.at(0);
    185   v = boost::any(boost::filesystem::path(filename));
    186 }
    187 
     226    for (std::vector<std::string>::const_iterator iter = values.begin();
     227        iter != values.end();++iter)
     228      if ((*iter).find("=") == std::string::npos) {
     229#if BOOST_VERSION < 104200
     230    throw boost::program_options::validation_error("Invalid KeyValue given");
     231#else
     232    throw boost::program_options::validation_error(
     233        boost::program_options::validation_error::invalid_option_value,
     234        std::string("value"),
     235        std::string("vector<KeyValuePair>")
     236    );
     237#endif
     238      }
     239  }
     240  std::vector<KeyValuePair> temp;
     241  for (std::vector<std::string>::const_iterator iter = values.begin();
     242      iter != values.end();++iter)
     243    temp.push_back(KeyValuePair(*iter));
     244  v = boost::any(temp);
     245}
  • src/UIElements/CommandLineUI/CommandLineParser_validate.hpp

    rdd6c07 r33e801  
    2222#include <boost/lexical_cast.hpp>
    2323
     24struct KeyValuePair;
    2425class RealSpaceMatrixValue;
    2526class VectorValue;
    2627
     28void validate(boost::any& v, const std::vector<std::string>& values, KeyValuePair *, int);
     29void validate(boost::any& v, const std::vector<std::string>& values, std::vector<KeyValuePair> *, int);
    2730void validate(boost::any& v, const std::vector<std::string>& values, VectorValue *, int);
    2831void validate(boost::any& v, const std::vector<std::string>& values, RealSpaceMatrixValue *, int);
  • src/UIElements/CommandLineUI/Query/CommandLineQuery.hpp

    rdd6c07 r33e801  
    164164};
    165165
     166class CommandLineDialog::KeyValuePairCommandLineQuery : public Dialog::TQuery<KeyValuePair> {
     167public:
     168  KeyValuePairCommandLineQuery(Parameter<KeyValuePair> &_param, const std::string &_title, const std::string &_description = "");
     169  virtual ~KeyValuePairCommandLineQuery();
     170  virtual bool handle();
     171};
     172
     173class CommandLineDialog::KeyValuePairsCommandLineQuery : public Dialog::TQuery<std::vector<KeyValuePair> > {
     174public:
     175  KeyValuePairsCommandLineQuery(Parameter<std::vector<KeyValuePair> > &_param, const std::string &_title, const std::string &_description = "");
     176  virtual ~KeyValuePairsCommandLineQuery();
     177  virtual bool handle();
     178};
     179
    166180#endif /* COMMANDLINEQUERY_HPP_ */
  • src/UIElements/CommandLineUI/TypeEnumContainer.cpp

    rdd6c07 r33e801  
    5151#include "Element/element.hpp"
    5252#include "molecule.hpp"
     53#include "Parameters/Specifics/KeyValuePair.hpp"
    5354#include "RandomNumbers/RandomNumberDistribution_Parameters.hpp"
    5455
     
    8182  TypeEnumMap[&typeid(const element *)] = ElementType;
    8283  TypeEnumMap[&typeid(std::vector<const element *>)] = ListOfElementsType;
     84  TypeEnumMap[&typeid(KeyValuePair)] = KeyValueType;
     85  TypeEnumMap[&typeid(std::vector<KeyValuePair>)] = ListOfKeyValuesType;
    8386
    8487  // for debugging: list all stored types
  • src/UIElements/CommandLineUI/TypeEnumContainer.hpp

    rdd6c07 r33e801  
    4646        ElementType,
    4747        ListOfElementsType,
    48         RealSpaceMatrixType
     48        RealSpaceMatrixType,
     49        KeyValueType,
     50        ListOfKeyValuesType
    4951  };
    5052
  • src/UIElements/Dialog.cpp

    rdd6c07 r33e801  
    235235}
    236236
     237template <> void Dialog::query< KeyValuePair >(Parameter<KeyValuePair> &param, const std::string title, const std::string description)
     238{
     239  queryKeyValuePair(param, title, description);
     240}
     241
     242template <> void Dialog::query< std::vector<KeyValuePair> >(Parameter< std::vector<KeyValuePair> > &param, const std::string title, const std::string description)
     243{
     244  queryKeyValuePairs(param, title, description);
     245}
     246
    237247/************************** Query Infrastructure ************************/
    238248/*       ---> shifted to folder Query                                   */
  • src/UIElements/Dialog.hpp

    rdd6c07 r33e801  
    2323#include "LinearAlgebra/Vector.hpp"
    2424#include "Parameters/Parameter.hpp"
     25#include "Parameters/Specifics/KeyValuePair.hpp"
    2526
    2627class atom;
     
    2829class element;
    2930class molecule;
    30 
    3131
    3232/** Dialog is one of the two main classes of the UIFactory base class.
     
    178178  virtual void queryFile(Parameter<boost::filesystem::path> &, const std::string ="", const std::string = "")=0;
    179179  virtual void queryFiles(Parameter< std::vector<boost::filesystem::path> > &, const std::string ="", const std::string = "")=0;
     180  virtual void queryKeyValuePair(Parameter<KeyValuePair> &, const std::string ="", const std::string = "")=0;
     181  virtual void queryKeyValuePairs(Parameter< std::vector<KeyValuePair> > &, const std::string ="", const std::string = "")=0;
    180182
    181183  virtual bool display();
  • src/UIElements/Makefile.am

    rdd6c07 r33e801  
    1818  UIElements/CommandLineUI/Query/MoleculeCommandLineQuery.cpp \
    1919  UIElements/CommandLineUI/Query/MoleculesCommandLineQuery.cpp \
     20  UIElements/CommandLineUI/Query/KeyValuePairCommandLineQuery.cpp \
     21  UIElements/CommandLineUI/Query/KeyValuePairsCommandLineQuery.cpp \
    2022  UIElements/CommandLineUI/Query/RealSpaceMatrixCommandLineQuery.cpp \
    2123  UIElements/CommandLineUI/Query/StringCommandLineQuery.cpp \
     
    8991  UIElements/TextUI/Query/MoleculesTextQuery.cpp \
    9092  UIElements/TextUI/Query/MoleculeTextQuery.cpp \
     93  UIElements/TextUI/Query/KeyValuePairTextQuery.cpp \
     94  UIElements/TextUI/Query/KeyValuePairsTextQuery.cpp \
    9195  UIElements/TextUI/Query/RealSpaceMatrixTextQuery.cpp \
    9296  UIElements/TextUI/Query/StringTextQuery.cpp \
     
    154158  UIElements/Qt4/Query/MoleculesQtQuery.cpp \
    155159  UIElements/Qt4/Query/QtQueryList.cpp \
     160  UIElements/Qt4/Query/KeyValuePairQtQuery.cpp \
     161  UIElements/Qt4/Query/KeyValuePairsQtQuery.cpp \
    156162  UIElements/Qt4/Query/RealSpaceMatrixQtQuery.cpp \
    157163  UIElements/Qt4/Query/StringQtQuery.cpp \
  • src/UIElements/Qt4/QtDialog.cpp

    rdd6c07 r33e801  
    197197}
    198198
     199void QtDialog::queryKeyValuePair(Parameter<KeyValuePair> &param, const std::string title, const std::string description)
     200{
     201  registerQuery(new KeyValuePairQtQuery(param, title,description,inputLayout,this));
     202}
     203
     204void QtDialog::queryKeyValuePairs(Parameter< std::vector<KeyValuePair> > &param, const std::string title, const std::string description)
     205{
     206  registerQuery(new KeyValuePairsQtQuery(param, title,description,inputLayout,this));
     207}
     208
    199209/************************** Query Infrastructure ************************/
    200210/*       ---> shifted to folder Query                                   */
  • src/UIElements/Qt4/QtDialog.hpp

    rdd6c07 r33e801  
    5555  virtual void queryFile(Parameter<boost::filesystem::path> &, const std::string ="", const std::string = "");
    5656  virtual void queryFiles(Parameter<std::vector< boost::filesystem::path> > &, const std::string ="", const std::string = "");
     57  virtual void queryKeyValuePair(Parameter<KeyValuePair> &, const std::string ="", const std::string = "");
     58  virtual void queryKeyValuePairs(Parameter< std::vector<KeyValuePair> > &, const std::string ="", const std::string = "");
    5759
    5860  virtual bool display();
     
    7476  class IntQtQuery;
    7577  class IntsQtQuery;
     78  class KeyValuePairQtQuery;
     79  class KeyValuePairsQtQuery;
    7680  class MoleculeQtQuery;
    7781  class MoleculesQtQuery;
  • src/UIElements/Qt4/Query/QtQuery.hpp

    rdd6c07 r33e801  
    1717#include <Qt/qwidget.h>
    1818#include "Qt4/QtDialog.hpp"
     19#include "QtQueryList.hpp"
     20
    1921#include "Parameters/Parameter.hpp"
    20 #include "QtQueryList.hpp"
    2122
    2223class QHBoxLayout;
     
    300301};
    301302
     303class QtDialog::KeyValuePairQtQuery : public QWidget, public QtQuery<KeyValuePair> {
     304  Q_OBJECT
     305public:
     306  KeyValuePairQtQuery(Parameter<KeyValuePair> &, const std::string &_title, const std::string &description, QBoxLayout *_parent,Dialog *_dialog);
     307  virtual ~KeyValuePairQtQuery();
     308
     309public slots:
     310  void onUpdate(const QString&);
     311  void onUpdateCombo(int index);
     312
     313private:
     314  QBoxLayout *parent;
     315  QBoxLayout *thisLayout;
     316  QLabel *titleLabel;
     317  QLineEdit *inputBox;
     318  QComboBox *comboBox;
     319  Dialog *dialog;
     320};
     321
     322class QtDialog::KeyValuePairsQtQuery : public QWidget, public QtQuery<std::vector<KeyValuePair> >, public QtQueryList<KeyValuePair> {
     323  Q_OBJECT
     324public:
     325  KeyValuePairsQtQuery(Parameter<std::vector<KeyValuePair> > &, const std::string &_title, const std::string &description, QBoxLayout *_parent,Dialog *_dialog);
     326  virtual ~KeyValuePairsQtQuery();
     327
     328  virtual void onSubUpdate();
     329
     330public slots:
     331  void onAddElement();
     332  void onRemoveElement();
     333  void onElementSelected();
     334
     335private:
     336  KeyValuePairQtQuery *subQuery;
     337};
     338
    302339class QtDialog::StringQtQuery : public QWidget, public QtQuery<std::string> {
    303340  Q_OBJECT
  • src/UIElements/Qt4/Query/QtQueryList.hpp

    rdd6c07 r33e801  
    142142  virtual void queryFile(Parameter<boost::filesystem::path> &, const std::string = "", const std::string = ""){}
    143143  virtual void queryFiles(Parameter<std::vector< boost::filesystem::path> > &, const std::string = "", const std::string = ""){}
     144  virtual void queryKeyValuePair(Parameter<KeyValuePair> &, const std::string = "", const std::string = ""){}
     145  virtual void queryKeyValuePairs(Parameter<std::vector<KeyValuePair> > &, const std::string = "", const std::string = ""){}
     146
    144147private:
    145148  QtQueryListUntyped *parent;
  • src/UIElements/TextUI/Query/TextQuery.hpp

    rdd6c07 r33e801  
    108108};
    109109
     110class TextDialog::KeyValuePairTextQuery : public Dialog::TQuery<KeyValuePair> {
     111public:
     112  KeyValuePairTextQuery(Parameter<KeyValuePair> &, const std::string &_title, const std::string &_description = NULL);
     113  virtual ~KeyValuePairTextQuery();
     114  virtual bool handle();
     115};
     116
     117class TextDialog::KeyValuePairsTextQuery : public Dialog::TQuery<std::vector<KeyValuePair> > {
     118public:
     119  KeyValuePairsTextQuery(Parameter<std::vector<KeyValuePair> > &, const std::string &_title, const std::string &_description = NULL);
     120  virtual ~KeyValuePairsTextQuery();
     121  virtual bool handle();
     122};
     123
    110124class TextDialog::MoleculeTextQuery : public Dialog::TQuery<const molecule *> {
    111125public:
  • src/UIElements/TextUI/TextDialog.cpp

    rdd6c07 r33e801  
    134134}
    135135
     136void TextDialog::queryKeyValuePair(Parameter<KeyValuePair> &param, const std::string title, const std::string description)
     137{
     138  registerQuery(new KeyValuePairTextQuery(param, title,description));
     139}
     140
     141void TextDialog::queryKeyValuePairs(Parameter< std::vector<KeyValuePair> > &param, const std::string title, const std::string description)
     142{
     143  registerQuery(new KeyValuePairsTextQuery(param, title,description));
     144}
     145
    136146/************************** Query Infrastructure ************************/
    137147/*       ---> shifted to folder Query                                   */
  • src/UIElements/TextUI/TextDialog.hpp

    rdd6c07 r33e801  
    2222class element;
    2323class molecule;
     24class KeyValuePair;
    2425class RealSpaceMatrix;
    2526class Vector;
     
    5253  virtual void queryFile(Parameter<boost::filesystem::path> &, const std::string ="", const std::string = "");
    5354  virtual void queryFiles(Parameter<std::vector<boost::filesystem::path> > &, const std::string ="", const std::string = "");
     55  virtual void queryKeyValuePair(Parameter<KeyValuePair> &, const std::string ="", const std::string = "");
     56  virtual void queryKeyValuePairs(Parameter< std::vector<KeyValuePair> > &, const std::string ="", const std::string = "");
    5457
    5558protected:
     
    6972  class IntTextQuery;
    7073  class IntsTextQuery;
     74  class KeyValuePairTextQuery;
     75  class KeyValuePairsTextQuery;
    7176  class MoleculeTextQuery;
    7277  class MoleculesTextQuery;
Note: See TracChangeset for help on using the changeset viewer.