/// /// \brief Form_PlatformConfiguration::traversalControl /// \param q /// save /// void Form_PlatformConfiguration::traversalControl(const QObjectList& q) { for(int i=0;i<q.length();i++) { if(!q.at(i)->children().empty()) { traversalControl(q.at(i)->children()); } QObject* o = q.at(i); if (o->inherits("QLineEdit")) { QLineEdit* b = qobject_cast<QLineEdit*>(o); QDomElement qe= doc_config.createElement(b->objectName()); qe.setAttribute("Value",b->text()); qe.setAttribute("Type","QLineEdit"); doc_config.firstChildElement("root").appendChild(qe); } else if (o->inherits("QGroupBox")) { QGroupBox* b = qobject_cast<QGroupBox*>(o); QDomElement qe= doc_config.createElement(b->objectName()); qe.setAttribute("Value",b->isChecked()); qe.setAttribute("Type","QGroupBox"); doc_config.firstChildElement("root").appendChild(qe); } else if (o->inherits("QTableWidget")) { QTableWidget * b = qobject_cast<QTableWidget*>(o); int col_rate = b->objectName() == "table_labels" ? 1:0; QDomElement qe= doc_config.createElement(b->objectName()); qe.setAttribute("Value_R",b->rowCount()); qe.setAttribute("Value_C",b->columnCount()); qe.setAttribute("Type","QTableWidget"); for(int i =0 ; i<b->rowCount() ;i++) { QDomElement item= doc_config.createElement("R"+QString::number(i)); for(int j=0 ;j <b->columnCount() - col_rate; j++) { item.setAttribute("C"+QString::number(j), b->item(i,j)->text()); } qe.appendChild(item); } doc_config.firstChildElement("root").appendChild(qe); } } }
void Form_PlatformConfiguration::LoadConfig(const QObjectList &q) { for(int i=0;i<q.length();i++) { if(!q.at(i)->children().empty()) { LoadConfig(q.at(i)->children()); } QObject* obj = q.at(i); if (obj->inherits("QLineEdit")) { QLineEdit *b = qobject_cast<QLineEdit*>(obj); QString Name = obj->objectName(); QDomNode node = STT_Global::FindXml(doc_config,Name); if(!node.isNull() ) b->setText(node.attributes().namedItem("Value").nodeValue() ); } else if (obj->inherits("QGroupBox")) { QGroupBox* b = qobject_cast<QGroupBox*>(obj); QDomNode node = STT_Global::FindXml(doc_config,b->objectName()); if(!node.isNull() ) b->setChecked( node.attributes().namedItem("Value").nodeValue() == "1" ? true:false); } else if (obj->inherits("QTableWidget")) { QTableWidget* b = qobject_cast<QTableWidget*>(obj); QDomNode node = STT_Global::FindXml(doc_config,b->objectName()); if( !node.isNull() ) { int Value_R = node.attributes().namedItem("Value_R").nodeValue().toInt(); int Value_C = node.attributes().namedItem("Value_C").nodeValue().toInt(); b->setRowCount(Value_R); for(int i =0 ; i<Value_R ;i++) { QDomNode item= node.childNodes().at(i); for(int j=0 ;j < Value_C ; j++) { b->setItem(i, j, new QTableWidgetItem(item.attributes().namedItem("C"+QString::number(j)).nodeValue())); } } } } } }
void MesytecMadc32UI::applySettings() { applyingSettings = true; QList<QGroupBox*> gbs = findChildren<QGroupBox*>(); if(!gbs.empty()) { QList<QGroupBox*>::const_iterator it = gbs.begin(); while(it != gbs.end()) { QGroupBox* w = (*it); for(int ch=0; ch < MADC32V2_NUM_CHANNELS; ch++) { if(w->objectName() == tr("enable_channel%1").arg(ch)) w->setChecked(module->conf_.enable_channel[ch]); } it++; } } QList<QCheckBox*> cbs = findChildren<QCheckBox*>(); if(!cbs.empty()) { QList<QCheckBox*>::const_iterator it = cbs.begin(); while(it != cbs.end()) { QCheckBox* w = (*it); if(w->objectName() == "enable_multi_event_send_different_eob_marker") w->setChecked(module->conf_.enable_multi_event_send_different_eob_marker); if(w->objectName() == "enable_multi_event_compare_with_max_transfer_data") w->setChecked(module->conf_.enable_multi_event_compare_with_max_transfer_data); if(w->objectName() == "enable_adc_override") w->setChecked(module->conf_.enable_adc_override); if(w->objectName() == "enable_switch_off_sliding_scale") w->setChecked(module->conf_.enable_switch_off_sliding_scale); if(w->objectName() == "enable_skip_out_of_range") w->setChecked(module->conf_.enable_skip_out_of_range); if(w->objectName() == "enable_ignore_thresholds") w->setChecked(module->conf_.enable_ignore_thresholds); if(w->objectName() == "enable_termination_input_gate0") w->setChecked(module->conf_.enable_termination_input_gate0); if(w->objectName() == "enable_termination_input_fast_clear") w->setChecked(module->conf_.enable_termination_input_fast_clear); if(w->objectName() == "enable_external_time_stamp_reset") w->setChecked(module->conf_.enable_external_time_stamp_reset); it++; } } QList<QComboBox*> cbbs = findChildren<QComboBox*>(); if(!cbbs.empty()) { QList<QComboBox*>::const_iterator it = cbbs.begin(); while(it != cbbs.end()) { QComboBox* w = (*it); //printf("Found combobox with the name %s\n",w->objectName().toStdString().c_str()); if(w->objectName() == "addr_source") w->setCurrentIndex(module->conf_.addr_source); if(w->objectName() == "multi_event_mode") w->setCurrentIndex(module->conf_.multi_event_mode); if(w->objectName() == "vme_mode") w->setCurrentIndex(module->conf_.vme_mode); if(w->objectName() == "data_length_format") w->setCurrentIndex(module->conf_.data_length_format); if(w->objectName() == "time_stamp_source") w->setCurrentIndex(module->conf_.time_stamp_source); if(w->objectName() == "adc_resolution") w->setCurrentIndex(module->conf_.adc_resolution); if(w->objectName() == "output_format") w->setCurrentIndex(module->conf_.output_format); if(w->objectName() == "gate_generator_mode") w->setCurrentIndex(module->conf_.gate_generator_mode); if(w->objectName() == "ecl_gate1_mode") w->setCurrentIndex(module->conf_.ecl_gate1_mode); if(w->objectName() == "ecl_fclear_mode") w->setCurrentIndex(module->conf_.ecl_fclear_mode); if(w->objectName() == "ecl_busy_mode") w->setCurrentIndex(module->conf_.ecl_busy_mode); if(w->objectName() == "nim_gate1_mode") w->setCurrentIndex(module->conf_.nim_gate1_mode); if(w->objectName() == "nim_fclear_mode") w->setCurrentIndex(module->conf_.nim_fclear_mode); if(w->objectName() == "input_range") { switch (module->conf_.input_range){ case MesytecMadc32ModuleConfig::ir4V: w->setCurrentIndex(0); break; case MesytecMadc32ModuleConfig::ir8V: w->setCurrentIndex(1); break; case MesytecMadc32ModuleConfig::ir10V: w->setCurrentIndex(2); break; default: w->setCurrentIndex(2); break; } } if(w->objectName() == "marking_type") w->setCurrentIndex(module->conf_.marking_type); if(w->objectName() == "bank_operation") w->setCurrentIndex(module->conf_.bank_operation); if(w->objectName() == "test_pulser_mode") w->setCurrentIndex(module->conf_.test_pulser_mode); it++; } } QList<QSpinBox*> csb = findChildren<QSpinBox*>(); if(!csb.empty()) { QList<QSpinBox*>::const_iterator it = csb.begin(); while(it != csb.end()) { QSpinBox* w = (*it); //printf("Found spinbox with the name %s\n",w->objectName().toStdString().c_str()); if(w->objectName() == "irq_level") w->setValue(module->conf_.irq_level); if(w->objectName() == "irq_vector") w->setValue(module->conf_.irq_vector); if(w->objectName() == "irq_threshold") w->setValue(module->conf_.irq_threshold); if(w->objectName() == "base_addr_register") w->setValue(module->conf_.base_addr_register); if(w->objectName() == "time_stamp_divisor") w->setValue(module->conf_.time_stamp_divisor); if(w->objectName() == "max_transfer_data") w->setValue(module->conf_.max_transfer_data); if(w->objectName() == "rc_module_id_read") w->setValue(module->conf_.rc_module_id_read); if(w->objectName() == "rc_module_id_write") w->setValue(module->conf_.rc_module_id_write); for(int ch=0; ch<2; ch++) { if(w->objectName() == tr("hold_delay_%1").arg(ch)) w->setValue(module->conf_.hold_delay[ch]); if(w->objectName() == tr("hold_width_%1").arg(ch)) w->setValue(module->conf_.hold_width[ch]); } for(int ch=0; ch<MADC32V2_NUM_CHANNELS; ch++) { if(w->objectName() == tr("thresholds%1").arg(ch)) w->setValue(module->conf_.thresholds[ch]); } it++; } } QList<QRadioButton*> crb = findChildren<QRadioButton*>(); if(!crb.empty()) { QList<QRadioButton*>::const_iterator it = crb.begin(); while(it != crb.end()) { QRadioButton* w = (*it); if(w->objectName() == "mcst_cblt_none") w->setChecked(module->conf_.mcst_cblt_none); if(w->objectName() == "enable_cblt_mode") w->setChecked(module->conf_.enable_cblt_mode); if(w->objectName() == "enable_mcst_mode") w->setChecked(module->conf_.enable_mcst_mode); if(w->objectName() == "enable_cblt_first") w->setChecked(module->conf_.enable_cblt_first); if(w->objectName() == "enable_cblt_last") w->setChecked(module->conf_.enable_cblt_last); if(w->objectName() == "enable_cblt_middle") w->setChecked(module->conf_.enable_cblt_middle); it++; } } \ QLabel* b_addr = (QLabel*) uif.getWidgets()->find("base_addr").value(); b_addr->setText(tr("0x%1").arg(module->conf_.base_addr,2,16,QChar('0'))); applyingSettings = false; }