Changeset 4e10f5 for src/UIElements


Ignore:
Timestamp:
Jul 7, 2010, 4:08:32 PM (15 years ago)
Author:
Tillmann Crueger <crueger@…>
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:
77a570
Parents:
5630bd (diff), 192f6e (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.
Message:

Merge branch 'stable' into StructureRefactoring

Conflicts:

src/Actions/WorldAction/CenterOnEdgeAction.cpp
src/Actions/WorldAction/ChangeBoxAction.cpp
src/Actions/WorldAction/RepeatBoxAction.cpp
src/Actions/WorldAction/ScaleBoxAction.cpp
src/World.cpp
src/boundary.cpp

Location:
src/UIElements
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • src/UIElements/CommandLineUI/CommandLineDialog.cpp

    r5630bd r4e10f5  
    6666}
    6767
     68void CommandLineDialog::queryStrings(const char* title, vector<string> * target, string _description){
     69  registerQuery(new StringsCommandLineQuery(title,target, _description));
     70}
     71
    6872void CommandLineDialog::queryAtom(const char* title, atom **target, string _description) {
    6973  registerQuery(new AtomCommandLineQuery(title,target, _description));
     
    140144  if (CommandLineParser::getInstance().vm.count(getTitle())) {
    141145    tmp = CommandLineParser::getInstance().vm[getTitle()].as<string>();
     146    return true;
     147  } else {
     148    DoeLog(1) && (eLog() << Verbose(1) << "CommandLineUI parsing error: Missing string for " << getTitle() << "." << endl);
     149    return false;
     150  }
     151}
     152
     153CommandLineDialog::StringsCommandLineQuery::StringsCommandLineQuery(string title,vector<string> *_target, string _description) :
     154    Dialog::StringsQuery(title,_target, _description)
     155{}
     156
     157CommandLineDialog::StringsCommandLineQuery::~StringsCommandLineQuery() {}
     158
     159bool CommandLineDialog::StringsCommandLineQuery::handle() {
     160  if (CommandLineParser::getInstance().vm.count(getTitle())) {
     161    tmp = CommandLineParser::getInstance().vm[getTitle()].as< vector<string> >();
    142162    return true;
    143163  } else {
  • src/UIElements/CommandLineUI/CommandLineDialog.hpp

    r5630bd r4e10f5  
    3131  virtual void queryBoolean(const char *, bool *, std::string = "");
    3232  virtual void queryString(const char*, std::string *, std::string = "");
     33  virtual void queryStrings(const char*, std::vector<std::string> *, std::string = "");
    3334  virtual void queryDouble(const char*, double*, std::string = "");
    3435  virtual void queryAtom(const char*,atom**, std::string = "");
     
    7576  };
    7677
     78  class StringsCommandLineQuery : public Dialog::StringsQuery {
     79  public:
     80    StringsCommandLineQuery(std::string title, std::vector<std::string> *_target, std::string _description = "");
     81    virtual ~StringsCommandLineQuery();
     82    virtual bool handle();
     83  };
     84
    7785  class AtomCommandLineQuery : public Dialog::AtomQuery {
    7886  public:
  • src/UIElements/Dialog.cpp

    r5630bd r4e10f5  
    131131}
    132132
     133// Strings Queries
     134
     135Dialog::StringsQuery::StringsQuery(string title,vector<string> *_target, std::string _description) :
     136    Query(title, _description), target(_target)
     137{}
     138
     139Dialog::StringsQuery::~StringsQuery() {};
     140
     141void Dialog::StringsQuery::setResult() {
     142  *target = tmp;
     143}
     144
    133145// Double Queries
    134146
  • src/UIElements/Dialog.hpp

    r5630bd r4e10f5  
    4141  virtual void queryDouble(const char*,double *, std::string = "")=0;
    4242  virtual void queryString(const char*, std::string *, std::string = "")=0;
     43  virtual void queryStrings(const char*, std::vector<std::string> *, std::string = "")=0;
    4344  virtual void queryAtom(const char*,atom**,std::string = "")=0;
    4445  virtual void queryMolecule(const char*,molecule**, std::string = "")=0;
     
    135136  private:
    136137    std::string *target;
     138  };
     139
     140  class StringsQuery : public Query {
     141  public:
     142    StringsQuery(std::string title,std::vector<std::string> *_target, std::string _description = "");
     143    virtual ~StringsQuery();
     144    virtual bool handle()=0;
     145    virtual void setResult();
     146  protected:
     147    std::string temp;
     148    std::vector<std::string> tmp;
     149  private:
     150    std::vector<std::string> *target;
    137151  };
    138152
  • src/UIElements/QT4/QTDialog.cpp

    r5630bd r4e10f5  
    115115}
    116116
     117void QTDialog::queryStrings(const char* title, std::vector<std::string> *target,string)
     118{
     119  registerQuery(new StringsQTQuery(title,target,inputLayout,this));
     120}
     121
    117122void QTDialog::queryMolecule(const char *title,molecule **target,string)
    118123{
     
    212217{
    213218  return tmp!="";
     219}
     220
     221QTDialog::StringsQTQuery::StringsQTQuery(string _title,vector<string> *_target,QBoxLayout *_parent,QTDialog *_dialog) :
     222    Dialog::StringsQuery(_title,_target),
     223    parent(_parent)
     224{
     225  thisLayout = new QHBoxLayout();
     226  titleLabel = new QLabel(QString(getTitle().c_str()));
     227  inputBox = new QLineEdit();
     228  parent->addLayout(thisLayout);
     229  thisLayout->addWidget(titleLabel);
     230  thisLayout->addWidget(inputBox);
     231
     232  pipe = new StringQTQueryPipe(&temp,_dialog);
     233  pipe->update(inputBox->text());
     234  connect(inputBox,SIGNAL(textChanged(const QString&)),pipe,SLOT(update(const QString&)));
     235}
     236
     237QTDialog::StringsQTQuery::~StringsQTQuery()
     238{
     239  delete pipe;
     240}
     241
     242// All values besides the empty string are valid
     243bool QTDialog::StringsQTQuery::handle()
     244{
     245  // dissect by ","
     246  string::iterator olditer = temp.begin();
     247  for(string::iterator iter = temp.begin(); iter != temp.end(); ++iter) {
     248    if (*iter == ' ') {
     249      tmp.push_back(string(iter, olditer));
     250      olditer = iter;
     251    }
     252  }
     253  if (olditer != temp.begin())  // insert last part also
     254    tmp.push_back(string(olditer, temp.end()));
     255
     256  return temp!="";
    214257}
    215258
  • src/UIElements/QT4/QTDialog.hpp

    r5630bd r4e10f5  
    4040  virtual void queryDouble(const char*,double *,std::string = "");
    4141  virtual void queryString(const char*, std::string *,std::string = "");
     42  virtual void queryStrings(const char*, std::vector<std::string> *,std::string = "");
    4243  virtual void queryAtom(const char*,atom**,std::string = "");
    4344  virtual void queryMolecule(const char*,molecule**,std::string = "");
     
    9394    };
    9495
     96    class StringsQTQuery : public Dialog::StringsQuery {
     97    public:
     98      StringsQTQuery(std::string _title, std::vector<std::string> *_target, QBoxLayout *_parent,QTDialog *_dialog);
     99      virtual ~StringsQTQuery();
     100      virtual bool handle();
     101    private:
     102      QBoxLayout *parent;
     103      QBoxLayout *thisLayout;
     104      QLabel *titleLabel;
     105      QLineEdit *inputBox;
     106
     107      StringQTQueryPipe *pipe;
     108    };
     109
    95110    class MoleculeQTQuery : public Dialog::MoleculeQuery {
    96111    public:
  • src/UIElements/TextUI/TextDialog.cpp

    r5630bd r4e10f5  
    5858void TextDialog::queryString(const char* title, string* target, string description){
    5959  registerQuery(new StringTextQuery(title,target,description));
     60}
     61
     62void TextDialog::queryStrings(const char* title, vector<string>* target, string description){
     63  registerQuery(new StringsTextQuery(title,target,description));
    6064}
    6165
     
    155159  Log() << Verbose(0) << getTitle();
    156160  getline(cin,tmp);
     161  return true;
     162}
     163
     164TextDialog::StringsTextQuery::StringsTextQuery(string title,vector<string> *_target, std::string _description) :
     165    Dialog::StringsQuery(title,_target,_description)
     166{}
     167
     168TextDialog::StringsTextQuery::~StringsTextQuery() {}
     169
     170bool TextDialog::StringsTextQuery::handle() {
     171  Log() << Verbose(0) << getTitle();
     172  getline(cin,temp);
     173  // dissect by ","
     174  string::iterator olditer = temp.begin();
     175  for(string::iterator iter = temp.begin(); iter != temp.end(); ++iter) {
     176    if (*iter == ' ') {
     177      tmp.push_back(string(iter, olditer));
     178      olditer = iter;
     179    }
     180  }
     181  if (olditer != temp.begin())  // insert last part also
     182    tmp.push_back(string(olditer, temp.end()));
     183
    157184  return true;
    158185}
  • src/UIElements/TextUI/TextDialog.hpp

    r5630bd r4e10f5  
    2828  virtual void queryInt(const char *, int *, std::string = "");
    2929  virtual void queryString(const char*, std::string *, std::string = "");
     30  virtual void queryStrings(const char*, std::vector<std::string> *, std::string = "");
    3031  virtual void queryDouble(const char*, double*, std::string = "");
    3132  virtual void queryAtom(const char*,atom**,std::string = "");
     
    7273  };
    7374
     75  class StringsTextQuery : public Dialog::StringsQuery {
     76  public:
     77    StringsTextQuery(std::string title, std::vector<std::string> *_target, std::string _description = NULL);
     78    virtual ~StringsTextQuery();
     79    virtual bool handle();
     80  };
     81
    7482  class AtomTextQuery : public Dialog::AtomQuery {
    7583  public:
  • src/UIElements/TextUI/TextWindow.cpp

    r5630bd r4e10f5  
    2222#include "Actions/ErrorAction.hpp"
    2323#include "Actions/ActionRegistry.hpp"
     24#include "Parser/ChangeTracker.hpp"
    2425#include "Views/StreamStringView.hpp"
    2526#include "Views/MethodStringView.hpp"
     
    4344TextWindow::TextWindow()
    4445{
    45   char ConfigFileName[MAXSTRINGSIZE];
    4646  map <std::string, TextMenu *> NametoTextMenuMap;
    4747
     
    7878  new SeperatorItem(main_menu);
    7979
    80   Action *saveConfigAction = new MethodAction("saveConfigAction",boost::bind(&config::SaveAll,World::getInstance().getConfig(), ConfigFileName, World::getInstance().getPeriode(), World::getInstance().getMolecules()));
    81   new ActionMenuItem('s',"save current setup to config file",main_menu,saveConfigAction);
     80  Action *saveConfigAction = ActionRegistry::getInstance().getActionByName("output");
     81  new ActionMenuItem('s',"save current setup to config files",main_menu,saveConfigAction);
    8282
    8383  quitAction = new MethodAction("quitAction",boost::bind(&TextMenu::doQuit,main_menu),false);
Note: See TracChangeset for help on using the changeset viewer.