|
@@ -27,6 +27,13 @@ MainWindow::MainWindow(QWidget *parent)
|
|
|
ui->label_pic->setPixmap(pix.scaled(50,50,Qt::KeepAspectRatio));
|
|
|
this->setAcceptDrops(true);
|
|
|
ui->tabWidget->setCurrentIndex(0);
|
|
|
+ QStringList elements = DataManager::getInstance()->getList("",DataManager::ListType::Elem);
|
|
|
+ //初始时刻,加载列表元素
|
|
|
+ for(int i=0;i<elements.size();i++){
|
|
|
+ QString elemName = elements[i];
|
|
|
+ QListWidgetItem* item = new QListWidgetItem(QIcon(DataManager::getInstance()->getIconPath(elemName)),elemName);
|
|
|
+ ui->listWidget_elem->addItem(item);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
MainWindow::~MainWindow()
|
|
@@ -34,46 +41,6 @@ MainWindow::~MainWindow()
|
|
|
delete ui;
|
|
|
}
|
|
|
|
|
|
-///创建普通下拉选项
|
|
|
-QComboBox* MainWindow::createBox(QString choice,QStringList list)
|
|
|
-{
|
|
|
- QComboBox* box = new QComboBox;
|
|
|
- box->addItem("尚未选择");
|
|
|
- box->addItems(list);
|
|
|
- int index = box->findText(choice);
|
|
|
- if(index == -1) index = 0;
|
|
|
- box->setCurrentIndex(index);
|
|
|
- return box;
|
|
|
-}
|
|
|
-
|
|
|
-///创建一个时间线下拉选项
|
|
|
-QComboBox* MainWindow::createTimelineBox(QString chosenTimeline,QString fileName,TimelineType type)
|
|
|
-{
|
|
|
- ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
|
|
|
- QComboBox* timeLine = new QComboBox;
|
|
|
- if(fileName == "双击添加资源文件") return timeLine;
|
|
|
- QStringList list = elem->getTimelineList(fileName);
|
|
|
- timeLine = createBox(chosenTimeline,list);
|
|
|
- if(type == TimelineType::Animation){
|
|
|
- connect(timeLine,SIGNAL(currentTextChanged(QString)),this,SLOT(onTimelineTextChanged(QString)));
|
|
|
- }
|
|
|
- else if(type == TimelineType::Pool){
|
|
|
- connect(timeLine,SIGNAL(currentTextChanged(QString)),this,SLOT(onPoolTimelineTextChanged(QString)));
|
|
|
- }
|
|
|
- return timeLine;
|
|
|
-}
|
|
|
-
|
|
|
-///创建一个使用池子下拉选项
|
|
|
-QComboBox* MainWindow::createPoolBox(QString chosenPool)
|
|
|
-{
|
|
|
- ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
|
|
|
- QStringList list;
|
|
|
- for(const auto &i:elem->container) list.push_back(i.poolName);
|
|
|
- QComboBox* pools = createBox(chosenPool,list);
|
|
|
- connect(pools,SIGNAL(currentTextChanged(QString)),this,SLOT(onPoolsTextChanged(QString)));
|
|
|
- return pools;
|
|
|
-}
|
|
|
-
|
|
|
///切换元素时重置界面数据
|
|
|
void MainWindow::setUi(QString elem)
|
|
|
{
|
|
@@ -98,27 +65,14 @@ void MainWindow::setUi(QString elem)
|
|
|
ui->lineEdit_score->setText(DataManager::getInstance()->getScore(elem));
|
|
|
ui->spinBox_drop->setValue(DataManager::getInstance()->getDropConfig(elem));
|
|
|
|
|
|
- //TODO:调用各个界面的刷新显示
|
|
|
//设置状态与效果动画表格显示
|
|
|
animUi->setUi(elem);
|
|
|
collAnimUi->setUi(elem);
|
|
|
statusConfigUi->setUi(elem);
|
|
|
poolUi->setUi(elem);
|
|
|
-
|
|
|
-
|
|
|
-// //设置子元素界面
|
|
|
-// rowCnt = ui->tableWidget_childElem->rowCount();
|
|
|
-// for(int i=0;i<rowCnt;i++){
|
|
|
-// ui->tableWidget_childElem->removeRow(0);
|
|
|
-// }
|
|
|
-// for(const auto &i:elem->childElem){
|
|
|
-// int rowNum = ui->tableWidget_childElem->rowCount();
|
|
|
-// ui->tableWidget_childElem->insertRow(rowNum);
|
|
|
-// ui->tableWidget_childElem->setItem(rowNum,0,new QTableWidgetItem(i.name));
|
|
|
-// ui->tableWidget_childElem->setCellWidget(rowNum,1,createPoolBox(i.container));
|
|
|
-// }
|
|
|
}
|
|
|
|
|
|
+///选择文件按钮
|
|
|
void MainWindow::on_pushButton_chooseFile_clicked()
|
|
|
{
|
|
|
//如果未选中列表中的按钮,无法触发此按钮
|
|
@@ -134,7 +88,7 @@ void MainWindow::on_pushButton_chooseFile_clicked()
|
|
|
DataManager::getInstance()->changeIconPath(elem,file_name);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+///添加元素
|
|
|
void MainWindow::on_pushButton_addElem_clicked()
|
|
|
{
|
|
|
QString elemName = "新加元素";
|
|
@@ -150,7 +104,7 @@ void MainWindow::on_pushButton_addElem_clicked()
|
|
|
DataManager::getInstance()->addElem(elemName);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+///删除元素
|
|
|
void MainWindow::on_pushButton_delElem_clicked()
|
|
|
{
|
|
|
if(ui->listWidget_elem->currentItem() == nullptr) return;
|
|
@@ -162,7 +116,7 @@ void MainWindow::on_pushButton_delElem_clicked()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+///修改元素名字
|
|
|
void MainWindow::on_listWidget_elem_itemDoubleClicked(QListWidgetItem *item)
|
|
|
{
|
|
|
ChangeNameDialog newName;
|
|
@@ -181,6 +135,7 @@ void MainWindow::on_listWidget_elem_itemDoubleClicked(QListWidgetItem *item)
|
|
|
}
|
|
|
|
|
|
//基础元素数据变化触发保存
|
|
|
+///标示值修改
|
|
|
void MainWindow::on_lineEdit_name_editingFinished()
|
|
|
{
|
|
|
if(ui->listWidget_elem->currentItem() == nullptr) return;
|
|
@@ -188,6 +143,7 @@ void MainWindow::on_lineEdit_name_editingFinished()
|
|
|
DataManager::getInstance()->changeMarkValue(key,ui->lineEdit_name->text());
|
|
|
}
|
|
|
|
|
|
+///大小修改
|
|
|
void MainWindow::on_lineEdit_size_editingFinished()
|
|
|
{
|
|
|
if(ui->listWidget_elem->currentItem() == nullptr) return;
|
|
@@ -195,6 +151,7 @@ void MainWindow::on_lineEdit_size_editingFinished()
|
|
|
DataManager::getInstance()->changeSize(key,ui->lineEdit_size->text());
|
|
|
}
|
|
|
|
|
|
+///最大层数修改
|
|
|
void MainWindow::on_lineEdit_maxlayer_editingFinished()
|
|
|
{
|
|
|
if(ui->listWidget_elem->currentItem() == nullptr) return;
|
|
@@ -202,6 +159,7 @@ void MainWindow::on_lineEdit_maxlayer_editingFinished()
|
|
|
DataManager::getInstance()->changeMaxLayer(key,ui->lineEdit_maxlayer->text());
|
|
|
}
|
|
|
|
|
|
+///分数修改
|
|
|
void MainWindow::on_lineEdit_score_editingFinished()
|
|
|
{
|
|
|
if(ui->listWidget_elem->currentItem() == nullptr) return;
|
|
@@ -209,7 +167,7 @@ void MainWindow::on_lineEdit_score_editingFinished()
|
|
|
DataManager::getInstance()->changeScore(key,ui->lineEdit_score->text());
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+///掉落值修改
|
|
|
void MainWindow::on_spinBox_drop_valueChanged(int arg1)
|
|
|
{
|
|
|
if(ui->listWidget_elem->currentItem() == nullptr) return;
|
|
@@ -217,299 +175,12 @@ void MainWindow::on_spinBox_drop_valueChanged(int arg1)
|
|
|
DataManager::getInstance()->changeDropConfig(key,arg1);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+///更换选中元素
|
|
|
void MainWindow::on_listWidget_elem_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
|
|
|
{
|
|
|
setUi(current->text());
|
|
|
}
|
|
|
|
|
|
-///容器池区时间线数据发生改变
|
|
|
-void MainWindow::onPoolTimelineTextChanged(const QString &arg1)
|
|
|
-{
|
|
|
- if(ui->listWidget_elem->currentItem() == nullptr || ui->listWidget_pool->currentItem() == nullptr) return;
|
|
|
- //获取时间线列表所在位置
|
|
|
- std::cout<<"current timeline is:"<<qPrintable(arg1)<<std::endl;
|
|
|
- QComboBox *timeline = dynamic_cast<QComboBox*>(this->sender());
|
|
|
- int x = timeline->frameGeometry().x();
|
|
|
- int y = timeline->frameGeometry().y();
|
|
|
- QModelIndex index = ui->tableWidget_containerPool->indexAt(QPoint(x,y));
|
|
|
- int row = index.row();
|
|
|
- int column = index.column();
|
|
|
- //修改数据
|
|
|
- ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
|
|
|
- int poolIndex = ui->listWidget_pool->currentRow();
|
|
|
- if(column == 2) elem->container[poolIndex].table[row].initTimeline = timeline->currentText();
|
|
|
- else if(column == 3) elem->container[poolIndex].table[row].clickTimeline = timeline->currentText();
|
|
|
- else if(column == 4) elem->container[poolIndex].table[row].effectTimeline = timeline->currentText();
|
|
|
- else if(column == 5) elem->container[poolIndex].table[row].vanishTimeline = timeline->currentText();
|
|
|
- std::cout<<"row:"<<row<<"\tcolumn:"<<column<<std::endl;
|
|
|
-}
|
|
|
-
|
|
|
-///子元素使用池子数据发生改变
|
|
|
-void MainWindow::onPoolsTextChanged(const QString &arg1)
|
|
|
-{
|
|
|
- if(ui->listWidget_elem->currentItem() == nullptr) return;
|
|
|
- //获取池子列表所在位置
|
|
|
- QComboBox *pools = dynamic_cast<QComboBox*>(this->sender());
|
|
|
- int x = pools->frameGeometry().x();
|
|
|
- int y = pools->frameGeometry().y();
|
|
|
- QModelIndex index = ui->tableWidget_childElem->indexAt(QPoint(x,y));
|
|
|
- int row = index.row();
|
|
|
- //修改数据
|
|
|
- ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
|
|
|
- elem->childElem[row].container = arg1;
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-void MainWindow::on_pushButton_addContainer_clicked()
|
|
|
-{
|
|
|
- if(ui->listWidget_elem->currentItem() == nullptr) return;
|
|
|
- QString poolName = "pool";
|
|
|
- ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
|
|
|
- int id = 1;
|
|
|
- while(1){
|
|
|
- if(elem->getPoolIndex(poolName) == -1){
|
|
|
- break;
|
|
|
- }
|
|
|
- poolName = "pool" + QString::number(id++);
|
|
|
- }
|
|
|
- ui->listWidget_pool->addItem(new QListWidgetItem(poolName));
|
|
|
- ElemPropertyData::ContainerConfig container(poolName);
|
|
|
- elem->container.push_back(container);
|
|
|
- //子元素下拉列表添加可选项
|
|
|
- int rowNum = ui->tableWidget_childElem->rowCount();
|
|
|
- for(int i=0;i<rowNum;i++){
|
|
|
- QComboBox *containers = qobject_cast<QComboBox*>(ui->tableWidget_childElem->cellWidget(i,1));
|
|
|
- containers->addItem(poolName);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-void MainWindow::on_pushButton_delContainer_clicked()
|
|
|
-{
|
|
|
- if(ui->listWidget_elem->currentItem() == nullptr || ui->listWidget_pool->currentItem() == nullptr) return;
|
|
|
- ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
|
|
|
- QMessageBox::StandardButton reply = QMessageBox::question(this,"删除容器","确定要删除此容器吗?");
|
|
|
- if(reply == QMessageBox::Yes){
|
|
|
- QString delPoolName = ui->listWidget_pool->currentItem()->text();
|
|
|
- int index = ui->listWidget_pool->currentRow();
|
|
|
- elem->container.remove(index);
|
|
|
- delete ui->listWidget_pool->takeItem(ui->listWidget_pool->currentRow());
|
|
|
- //子元素下拉列表删除可选项
|
|
|
- int rowNum = ui->tableWidget_childElem->rowCount();
|
|
|
- for(int i=0;i<rowNum;i++){
|
|
|
- QComboBox *containers = qobject_cast<QComboBox*>(ui->tableWidget_childElem->cellWidget(i,1));
|
|
|
- if(elem->childElem[i].container == delPoolName) containers->setCurrentIndex(0);
|
|
|
- containers->removeItem(containers->findText(delPoolName));
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-void MainWindow::on_listWidget_pool_itemDoubleClicked(QListWidgetItem *item)
|
|
|
-{
|
|
|
- if(ui->listWidget_elem->currentItem() == nullptr) return;
|
|
|
- ChangeNameDialog newName;
|
|
|
- newName.setModal(true);
|
|
|
- newName.exec();
|
|
|
- QString name = newName.getNewName();
|
|
|
- ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
|
|
|
- if(!name.isEmpty()){
|
|
|
- //TODO: 检查新名字唯一性
|
|
|
- if(elem->getPoolIndex(name) != -1){
|
|
|
- QMessageBox::critical(this,"警告","该容器名已存在!");
|
|
|
- return;
|
|
|
- }
|
|
|
- int index = elem->getPoolIndex(item->text());
|
|
|
- //子元素下拉列表可选项改名
|
|
|
- int rowNum = ui->tableWidget_childElem->rowCount();
|
|
|
- for(int i=0;i<rowNum;i++){
|
|
|
- QComboBox *containers = qobject_cast<QComboBox*>(ui->tableWidget_childElem->cellWidget(i,1));
|
|
|
- if(elem->childElem[i].container == elem->container[index].poolName) containers->setCurrentIndex(0);
|
|
|
- containers->removeItem(containers->findText(elem->container[index].poolName));
|
|
|
- containers->addItem(name);
|
|
|
- }
|
|
|
- elem->container[index].poolName = name;
|
|
|
- item->setText(name);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-void MainWindow::on_listWidget_pool_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
|
|
|
-{
|
|
|
- //TODO:保存切换前界面数据
|
|
|
- if(current != nullptr){
|
|
|
- setPoolUi(current->text());
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void MainWindow::on_pushButton_addKey_clicked()
|
|
|
-{
|
|
|
- if(ui->listWidget_elem->currentItem() == nullptr || ui->listWidget_pool->currentItem() == nullptr) return;
|
|
|
- int rowNum = ui->tableWidget_containerPool->rowCount();
|
|
|
- ui->tableWidget_containerPool->insertRow(rowNum);
|
|
|
- QString keyName = "0";
|
|
|
- ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
|
|
|
- int id = 1;
|
|
|
- while(1){
|
|
|
- if(elem->isSingleContainerKey(ui->listWidget_pool->currentItem()->text(),keyName)){
|
|
|
- break;
|
|
|
- }
|
|
|
- keyName = QString::number(id++);
|
|
|
- }
|
|
|
- ui->tableWidget_containerPool->setItem(rowNum,0,new QTableWidgetItem(keyName));
|
|
|
- QTableWidgetItem* res = new QTableWidgetItem("双击添加资源文件");
|
|
|
- // 此单元格不可编辑
|
|
|
- res->setFlags(res->flags() & ~Qt::ItemIsEditable);
|
|
|
- ui->tableWidget_containerPool->setItem(rowNum,1,res);
|
|
|
- for(int i=2;i<=5;i++){
|
|
|
- ui->tableWidget_containerPool->setCellWidget(rowNum,i,createBox("",{}));
|
|
|
- }
|
|
|
- ui->tableWidget_containerPool->setItem(rowNum,3,new QTableWidgetItem("0"));
|
|
|
- int index = ui->listWidget_pool->currentRow();
|
|
|
- ElemPropertyData::ContainTable containTable(keyName);
|
|
|
- elem->container[index].table.push_back(containTable);
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-void MainWindow::on_pushButton_delKey_clicked()
|
|
|
-{
|
|
|
- if(ui->listWidget_elem->currentItem() == nullptr || ui->listWidget_pool->currentItem() == nullptr || ui->tableWidget_containerPool->currentRow() == -1) return;
|
|
|
- QMessageBox::StandardButton reply = QMessageBox::question(this,"删除键值","确定要删除此键值吗?");
|
|
|
- if(reply == QMessageBox::Yes){
|
|
|
- int curRow = ui->tableWidget_containerPool->currentRow();
|
|
|
- QString containerName = ui->tableWidget_containerPool->item(curRow,0)->text();
|
|
|
- ElemPropertyData* elem =elements[ui->listWidget_elem->currentItem()->text()];
|
|
|
- int index = ui->listWidget_pool->currentRow();
|
|
|
- QVector<ElemPropertyData::ContainTable> &containerTable = elem->container[index].table;
|
|
|
- containerTable.remove(curRow);
|
|
|
- ui->tableWidget_containerPool->removeRow(curRow);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void MainWindow::on_tableWidget_containerPool_cellDoubleClicked(int row, int column)
|
|
|
-{
|
|
|
- if(ui->listWidget_elem->currentItem() == nullptr || ui->listWidget_pool->currentItem() == nullptr) return;
|
|
|
- //容器表格内容修改flag
|
|
|
- poolTableItemChanged = true;
|
|
|
- if(column == 1){
|
|
|
- ResFileDialog res;
|
|
|
- res.setModal(true);
|
|
|
- res.exec();
|
|
|
- QString fileName = res.getResName();
|
|
|
- if(!fileName.isEmpty()){
|
|
|
- ui->tableWidget_containerPool->setItem(row,column,new QTableWidgetItem(fileName));
|
|
|
- ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
|
|
|
- int index = ui->listWidget_pool->currentRow();
|
|
|
- elem->container[index].table[row].res = fileName;
|
|
|
- //加载时间线下拉列表
|
|
|
- for(int i=2;i<=5;i++){
|
|
|
- QComboBox* timeline = createTimelineBox("",fileName,TimelineType::Pool);
|
|
|
- ui->tableWidget_containerPool->setCellWidget(row,i,timeline);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-void MainWindow::on_tableWidget_containerPool_itemChanged(QTableWidgetItem *item)
|
|
|
-{
|
|
|
- if(ui->listWidget_elem->currentItem() == nullptr || ui->listWidget_pool->currentItem() == nullptr) return;
|
|
|
- if(!poolTableItemChanged) return;
|
|
|
- poolTableItemChanged = false;
|
|
|
- int column = item->column();
|
|
|
- int row = item->row();
|
|
|
- ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
|
|
|
- int index = ui->listWidget_pool->currentRow();
|
|
|
- QVector<ElemPropertyData::ContainTable> &containerVec = elem->container[index].table;
|
|
|
- if(column == 0){
|
|
|
- bool isNum;double tmp = item->text().toDouble(&isNum);
|
|
|
- if(item->text().toInt() < 0 || !isNum){
|
|
|
- QMessageBox::critical(this,"错误","键值必须是大于等于0的数字");
|
|
|
- item->setText(containerVec[row].key);
|
|
|
- return;
|
|
|
- }
|
|
|
- if(!elem->isSingleContainerKey(ui->listWidget_pool->currentItem()->text(),item->text())){
|
|
|
- QMessageBox::critical(this,"警告","该键值已存在!");
|
|
|
- item->setText(containerVec[row].key);
|
|
|
- return;
|
|
|
- }
|
|
|
- containerVec[row].key = item->text();
|
|
|
- }
|
|
|
- //检查zOrder合法性
|
|
|
- else if(column == 6){
|
|
|
- QString zOrder = item->text();
|
|
|
- bool isNum;double tmp = zOrder.toDouble(&isNum);
|
|
|
- if(item->text().toInt() < 0 || !isNum){
|
|
|
- QMessageBox::critical(this,"错误","消失zOrder值必须是大于等于0的数字");
|
|
|
- item->setText(containerVec[row].zOrder);
|
|
|
- return;
|
|
|
- }
|
|
|
- containerVec[row].zOrder = zOrder;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void MainWindow::on_pushButton_addChildElem_clicked()
|
|
|
-{
|
|
|
- if(ui->listWidget_elem->currentItem() == nullptr) return;
|
|
|
- int rowNum = ui->tableWidget_childElem->rowCount();
|
|
|
- ui->tableWidget_childElem->insertRow(rowNum);
|
|
|
- QString childElemName = "item";
|
|
|
- ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
|
|
|
- int id = 1;
|
|
|
- while(1){
|
|
|
- if(elem->isSingleChildElemName(childElemName)){
|
|
|
- break;
|
|
|
- }
|
|
|
- childElemName = "item" + QString::number(id++);
|
|
|
- }
|
|
|
- ui->tableWidget_childElem->setItem(rowNum,0,new QTableWidgetItem(childElemName));
|
|
|
- ui->tableWidget_childElem->setCellWidget(rowNum,1,createPoolBox("尚未选择"));
|
|
|
- elem->childElem.push_back(ElemPropertyData::ChildElem(childElemName));
|
|
|
-}
|
|
|
-
|
|
|
-void MainWindow::on_pushButton_delChildElem_clicked()
|
|
|
-{
|
|
|
- if(ui->listWidget_elem->currentItem() == nullptr || ui->tableWidget_childElem->currentRow() == -1) return;
|
|
|
- QMessageBox::StandardButton reply = QMessageBox::question(this,"删除子元素","确定要删除此子元素吗?");
|
|
|
- if(reply == QMessageBox::Yes){
|
|
|
- int curRow = ui->tableWidget_childElem->currentRow();
|
|
|
- QString childElemName = ui->tableWidget_childElem->item(curRow,0)->text();
|
|
|
- QVector<ElemPropertyData::ChildElem> &childElemVec = elements[ui->listWidget_elem->currentItem()->text()]->childElem;
|
|
|
- childElemVec.remove(curRow);
|
|
|
- ui->tableWidget_childElem->removeRow(curRow);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-void MainWindow::on_tableWidget_childElem_itemChanged(QTableWidgetItem *item)
|
|
|
-{
|
|
|
- if(ui->listWidget_elem->currentItem() == nullptr) return;
|
|
|
- if(!childElemTableItemChanged) return;
|
|
|
- childElemTableItemChanged = false;
|
|
|
- int column = item->column();
|
|
|
- int row = item->row();
|
|
|
- ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
|
|
|
- QVector<ElemPropertyData::ChildElem> &childElemVec = elem->childElem;
|
|
|
- if(column == 0){
|
|
|
- if(!elem->isSingleChildElemName(item->text())){
|
|
|
- QMessageBox::critical(this,"警告","该子元素名已存在!");
|
|
|
- item->setText(childElemVec[row].name);
|
|
|
- return;
|
|
|
- }
|
|
|
- childElemVec[row].name = item->text();
|
|
|
- }
|
|
|
- //TODO: comboBox值修改后的保存
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-void MainWindow::on_tableWidget_childElem_cellDoubleClicked(int row, int column)
|
|
|
-{
|
|
|
- if(ui->listWidget_elem->currentItem() == nullptr) return;
|
|
|
- //子元素表格双击改名置flag为true
|
|
|
- childElemTableItemChanged = true;
|
|
|
-}
|
|
|
-
|
|
|
|
|
|
///模板更新后更新与模板配置相关的界面显示
|
|
|
void MainWindow::updateTempRelatedUi()
|
|
@@ -518,86 +189,25 @@ void MainWindow::updateTempRelatedUi()
|
|
|
collAnimUi->setCollectAnimUi();
|
|
|
//重置状态配置的模板相关界面
|
|
|
statusConfigUi->setAnimComboBox();
|
|
|
-
|
|
|
-// //状态配置
|
|
|
-// int rowNum = ui->tableWidget_event->rowCount();
|
|
|
-// for(int i=0;i<rowNum;i++){
|
|
|
-// //事件名称配置
|
|
|
-// ui->tableWidget_event->setCellWidget(i,0,createEventBox("尚未选择"));
|
|
|
-// ui->tableWidget_event->setCellWidget(i,5,createTriggerAction("尚未选择"));
|
|
|
-// }
|
|
|
-// //容器池
|
|
|
-// ui->comboBox_container->clear();
|
|
|
-// ui->comboBox_container->addItem("尚未选择");
|
|
|
-// for(const auto &i:jsonTemp->templateMap["poolTemp"]) ui->comboBox_container->addItem(i.name);
|
|
|
-// int animIndex = 0,poolIndex = 0;
|
|
|
-
|
|
|
-// //若当前界面选择的选项没有被改变,仍然保持当前选项
|
|
|
-// if(ui->listWidget_elem->currentItem() != nullptr){
|
|
|
-// ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
|
|
|
-// //收集动画
|
|
|
-// if(ui->listWidget_collectAnim->currentItem() != nullptr) {
|
|
|
-// int index = ui->listWidget_collectAnim->currentRow();
|
|
|
-// std::cout<<"当前选择的收集动画类型:"<<qPrintable(elem->collAnim[index].type)<<std::endl;
|
|
|
-// animIndex = ui->comboBox_animationType->findText(elem->collAnim[index].type);
|
|
|
-// if(animIndex == -1){
|
|
|
-// animIndex = 0;
|
|
|
-// elem->collAnim[ui->listWidget_collectAnim->currentRow()].type = "尚未选择";
|
|
|
-// }
|
|
|
-// setCollAnimWidget();
|
|
|
-// }
|
|
|
-// //容器池
|
|
|
-// if(ui->listWidget_pool->currentItem() != nullptr){
|
|
|
-// int index = ui->listWidget_pool->currentRow();
|
|
|
-// std::cout<<"当前选择的容器类型:"<<qPrintable(elem->container[index].type)<<std::endl;
|
|
|
-// poolIndex = ui->comboBox_container->findText(elem->container[index].type);
|
|
|
-// if(poolIndex == -1) poolIndex = 0;
|
|
|
-// }
|
|
|
-// //事件配置
|
|
|
-// if(ui->listWidget_status->currentItem() != nullptr){
|
|
|
-// int index = ui->listWidget_status->currentRow();
|
|
|
-// int rowNum = ui->tableWidget_event->rowCount();
|
|
|
-// for(int i=0;i<rowNum;i++){
|
|
|
-// //事件配置
|
|
|
-// QComboBox* nameBox = dynamic_cast<QComboBox*>(ui->tableWidget_event->cellWidget(i,0));
|
|
|
-// QComboBox* actionBox = dynamic_cast<QComboBox*>(ui->tableWidget_event->cellWidget(i,5));
|
|
|
-// int eindex = nameBox->findText(elem->statusConfig[index].eventConfig[i].name);
|
|
|
-// if(eindex != -1) nameBox->setCurrentIndex(eindex);
|
|
|
-// std::cout<<"当前触发动作:"<<qPrintable(elem->statusConfig[index].eventConfig[i].triggerAction)<<std::endl;
|
|
|
-// int aindex = actionBox->findText(elem->statusConfig[index].eventConfig[i].triggerAction);
|
|
|
-// if(aindex != -1) actionBox->setCurrentIndex(aindex);
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// ui->comboBox_animationType->setCurrentIndex(animIndex);
|
|
|
-// ui->comboBox_container->setCurrentIndex(poolIndex);
|
|
|
-// isSetUi = false;
|
|
|
+ //重置容器类型选项
|
|
|
+ poolUi->updateTempRelated();
|
|
|
}
|
|
|
|
|
|
+///重新加载模板文件
|
|
|
void MainWindow::on_reloadTempFile_triggered()
|
|
|
{
|
|
|
DataManager::getInstance()->updateTempData();
|
|
|
updateTempRelatedUi();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-void MainWindow::on_comboBox_container_currentTextChanged(const QString &arg1)
|
|
|
-{
|
|
|
- if(ui->listWidget_elem->currentItem() == nullptr || ui->listWidget_pool->currentItem() == nullptr || isSetUi) return;
|
|
|
- ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
|
|
|
- int poolIndex = ui->listWidget_pool->currentRow();
|
|
|
- elem->container[poolIndex].type = arg1;
|
|
|
- std::cout<<"容器池第"<<poolIndex<<"行容器类型改变:"<<qPrintable(arg1)<<std::endl;
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
+///属性页面切换(主要用于更新常变下拉选项)
|
|
|
void MainWindow::on_tabWidget_currentChanged(int index)
|
|
|
{
|
|
|
- //更新下拉选项
|
|
|
- if(index == 2){
|
|
|
+ //更新动画、收集动画下拉选项
|
|
|
+ if(index == 1){
|
|
|
collAnimUi->setCollAnimWidget();
|
|
|
}
|
|
|
- else if(index == 3){
|
|
|
+ else if(index == 2){
|
|
|
statusConfigUi->setAnimComboBox();
|
|
|
}
|
|
|
}
|