12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #include "actionSettingDialog.h"
- #include "ui_actionSettingDialog.h"
- #include "datahpp/dataManager.h"
- #include <QPushButton>
- #include <QFormLayout>
- #include <QComboBox>
- #include <QLineEdit>
- #include <iostream>
- #include <QLabel>
- ActionSettingDialog::ActionSettingDialog(QWidget *parent) :
- QDialog(parent),
- ui(new Ui::ActionSettingDialog)
- {
- ui->setupUi(this);
- ui->buttonBox->button(QDialogButtonBox::Ok)->setText("应用");
- ui->buttonBox->button(QDialogButtonBox::Cancel)->setText("放弃");
- }
- ActionSettingDialog::~ActionSettingDialog()
- {
- delete ui;
- }
- void ActionSettingDialog::setDialogUi(QString actionName,QString elem,int statusIndex, int row)
- {
- curRow = row;
- curStatusIndex = statusIndex;
- curElem = elem;
- curActionName = actionName;
- QFormLayout* formlayout = new QFormLayout();
- QMap<QString,QString> data = DataManager::getInstance()->getStatusConfigData(elem,statusIndex).eventConfig[row].actionConfig;
- for(const auto &i:DataManager::getInstance()->getTempFields("actionTemp",actionName)){
- if(i.type == "list"){
- QComboBox* combo = new QComboBox;
- if(i.src == "animations"){
- combo->addItems(DataManager::getInstance()->getList(elem,DataManager::ListType::Anim));
- }
- QString val;
- if(data.find(i.name) != data.end()) val = data[i.name];
- else val = i.defaultVal;
- int index = combo->findText(val);
- combo->setCurrentIndex(index);
- formlayout->addRow(i.name,combo);
- }
- else if(i.type == "input"){
- QString val;
- if(data.find(i.name) != data.end()) val = data[i.name];
- else val = i.defaultVal;
- QLineEdit* edit = new QLineEdit(val);
- formlayout->addRow(i.name,edit);
- }
- }
- ui->widget->setLayout(formlayout);
- }
- //点击应用,保存数据
- void ActionSettingDialog::on_buttonBox_accepted()
- {
- QFormLayout* formlayout = dynamic_cast<QFormLayout*>(ui->widget->layout());
- int itemCout = formlayout->count();
- QVector<ReadJsonSrc::Fields> fieldVec = DataManager::getInstance()->getTempFields("actionTemp",curActionName);
- for(int itemIndex=1;itemIndex<itemCout;itemIndex+=2){
- QLayoutItem* item = formlayout->itemAt(itemIndex);
- int i = itemIndex/2;
- if(fieldVec[i].type == "list"){
- QComboBox* combo = dynamic_cast<QComboBox*>(item->widget());
- dataMap[fieldVec[i].name] = combo->currentText();
- std::cout<<qPrintable(fieldVec[i].name)<<": "<<qPrintable(combo->currentText())<<std::endl;
- }
- else if(fieldVec[i].type == "input"){
- QLineEdit* edit = dynamic_cast<QLineEdit*>(item->widget());
- dataMap[fieldVec[i].name] = edit->text();
- std::cout<<qPrintable(fieldVec[i].name)<<": "<<qPrintable(edit->text())<<std::endl;
- }
- }
- DataManager::getInstance()->changeActionConfigData(curElem,curStatusIndex,curRow,dataMap);
- }
|