Changeset 2315f3 for src/UIElements/Qt4/Query/QtQueryList.hpp
- Timestamp:
- May 8, 2017, 1:51:22 PM (8 years ago)
- Branches:
- ForceAnnealing_goodresults, ForceAnnealing_tocheck
- Children:
- 1e6fb7
- Parents:
- 01a018
- git-author:
- Frederik Heber <heber@…> (03/30/17 14:37:42)
- git-committer:
- Frederik Heber <frederik.heber@…> (05/08/17 13:51:22)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/UIElements/Qt4/Query/QtQueryList.hpp
r01a018 r2315f3 100 100 std::vector<T> &tempRef; 101 101 Parameter<T> *subParam; 102 }; 103 104 template<> 105 class QtQueryList<Vector> : public QtQueryListUntyped { 106 public: 107 QtQueryList(Parameter<std::vector<Vector> > &parentParam, QBoxLayout *parent, Dialog *_dialog, std::vector<Vector> &_temp) : QtQueryListUntyped(parent, _dialog), tempRef(_temp) 108 { 109 // do we have an STLVectorValidator? 110 Validator<std::vector<Vector> > *val = &parentParam.getValidator(); 111 STLVectorValidator<std::vector<Vector> > *vector_val = NULL; 112 113 // might be hidden inside an And_Validator 114 And_Validator<std::vector<Vector> > * and_val = dynamic_cast<And_Validator<std::vector<Vector> > *>(val); 115 if (and_val){ 116 if (dynamic_cast<STLVectorValidator<std::vector<Vector> > *>(and_val->getA())) 117 vector_val = dynamic_cast<STLVectorValidator<std::vector<Vector> > *>(and_val->getA()); 118 else if (dynamic_cast<STLVectorValidator<std::vector<Vector> > *>(and_val->getB())) 119 vector_val = dynamic_cast<STLVectorValidator<std::vector<Vector> > *>(and_val->getB()); 120 }else{ 121 vector_val = dynamic_cast<STLVectorValidator<std::vector<Vector> > *>(val); 122 } 123 124 if (vector_val){ 125 // if so, try to use its ElementwiseValidator 126 subParam = new Parameter<Vector>("sub-param", *(vector_val->getElementwiseValidator())); 127 }else{ 128 subParam = new Parameter<Vector>("sub-param"); 129 } 130 } 131 virtual ~QtQueryList() 132 { 133 delete(subParam); 134 } 135 136 void addElement() { 137 // add item to both 138 addElementToListWidget(subParam->getAsString()); 139 tempRef.push_back(subParam->get()); 140 onUpdate(); 141 } 142 void removeElements() 143 { 144 std::vector<int> rows = getSelectedRows(); 145 removeSelectedRows(rows); 146 for (int i = rows.size() - 1; i >= 0; i --){ 147 ASSERT((size_t)(rows[i]) < tempRef.size(), "QtQueryList<Vector>::removeElements() trying to remove invalid element."); 148 tempRef.erase(tempRef.begin() + rows[i]); 149 } 150 onUpdate(); 151 } 152 protected: 153 std::vector<Vector> &tempRef; 154 Parameter<Vector> *subParam; 102 155 }; 103 156
Note:
See TracChangeset
for help on using the changeset viewer.