|
@@ -16,6 +16,7 @@
|
|
|
#include <QUrl>
|
|
|
#include <QFormLayout>
|
|
|
#include <QDialogButtonBox>
|
|
|
+#include "dataManager.h"
|
|
|
|
|
|
MainWindow::MainWindow(QWidget *parent)
|
|
|
: QMainWindow(parent)
|
|
@@ -168,36 +169,21 @@ void MainWindow::updateCollAnimComboBox(QString changedAnim)
|
|
|
}
|
|
|
|
|
|
///切换元素时重置界面数据
|
|
|
-void MainWindow::setUi(ElemPropertyData *elem)
|
|
|
+void MainWindow::setUi(QString elem)
|
|
|
{
|
|
|
- std::cout<<"切换元素,刷新界面"<<std::endl;
|
|
|
+ std::cout<<"切换成元素"<<qPrintable(elem)<<",刷新界面"<<std::endl;
|
|
|
//基础元素区域的设置
|
|
|
- QPixmap pix(elem->iconPath);
|
|
|
+ QPixmap pix(DataManager::getInstance()->getIconPath(elem));
|
|
|
ui->label_pic->setPixmap(pix.scaled(50,50,Qt::KeepAspectRatio));
|
|
|
- ui->lineEdit_name->setText(elem->labelName);
|
|
|
- ui->lineEdit_size->setText(elem->size);
|
|
|
- ui->lineEdit_maxlayer->setText(elem->maxLayer);
|
|
|
- ui->lineEdit_score->setText(elem->score);
|
|
|
- ui->spinBox_drop->setValue(elem->dropConfig);
|
|
|
+ ui->lineEdit_name->setText(DataManager::getInstance()->getMarkValue(elem));
|
|
|
+ ui->lineEdit_size->setText(DataManager::getInstance()->getSize(elem));
|
|
|
+ ui->lineEdit_maxlayer->setText(DataManager::getInstance()->getMaxLayer(elem));
|
|
|
+ ui->lineEdit_score->setText(DataManager::getInstance()->getScore(elem));
|
|
|
+ ui->spinBox_drop->setValue(DataManager::getInstance()->getDropConfig(elem));
|
|
|
|
|
|
+ //TODO:调用各个界面的刷新显示
|
|
|
//设置状态与效果动画表格显示
|
|
|
- int rowCnt = ui->tableWidget_animation->rowCount();
|
|
|
- for(int i=0;i<rowCnt;i++){
|
|
|
- ui->tableWidget_animation->removeRow(0);
|
|
|
- }
|
|
|
- for(const auto &i:elem->statusEffect){
|
|
|
- int rowNum = ui->tableWidget_animation->rowCount();
|
|
|
- ui->tableWidget_animation->insertRow(rowNum);
|
|
|
- ui->tableWidget_animation->setItem(rowNum,0,new QTableWidgetItem(i.name));
|
|
|
- QTableWidgetItem* res = new QTableWidgetItem(getFileName(i.res));
|
|
|
- // 此单元格不可编辑
|
|
|
- res->setFlags(res->flags() & ~Qt::ItemIsEditable);
|
|
|
- ui->tableWidget_animation->setItem(rowNum,1,res);
|
|
|
- //设置时间线
|
|
|
- QComboBox* timeline = createTimelineBox(i.timeline,i.res,TimelineType::Animation);
|
|
|
- ui->tableWidget_animation->setCellWidget(rowNum,2,timeline);
|
|
|
- ui->tableWidget_animation->setItem(rowNum,3,new QTableWidgetItem(i.zOrder));
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
//设置收集动画的显示并聚焦到收集动画列表的最后一个元素
|
|
|
ui->listWidget_collectAnim->clear();
|
|
@@ -271,8 +257,8 @@ void MainWindow::on_pushButton_chooseFile_clicked()
|
|
|
}
|
|
|
QPixmap pix(file_name);
|
|
|
ui->label_pic->setPixmap(pix.scaled(50,50,Qt::KeepAspectRatio));
|
|
|
- elements[elem]->iconPath = file_name;
|
|
|
ui->listWidget_elem->currentItem()->setIcon(QIcon(file_name));
|
|
|
+ DataManager::getInstance()->changeIconPath(elem,file_name);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -281,16 +267,14 @@ void MainWindow::on_pushButton_addElem_clicked()
|
|
|
QString elemName = "新加元素";
|
|
|
int id = 1;
|
|
|
while(1){
|
|
|
- if(elements.find(elemName)==elements.end()){
|
|
|
+ if(!DataManager::getInstance()->existElem(elemName)){
|
|
|
break;
|
|
|
}
|
|
|
elemName = "新加元素" + QString::number(id++);
|
|
|
}
|
|
|
QListWidgetItem* item = new QListWidgetItem(QIcon(":/icon/icon/菜狗.png"),elemName);
|
|
|
ui->listWidget_elem->addItem(item);
|
|
|
-// ui->listWidget_elem->item(ui->listWidget_elem->count() - 1)->setSelected(true); // 设置选中
|
|
|
-// ui->listWidget_elem->scrollToBottom();
|
|
|
- elements[elemName] = new ElemPropertyData();
|
|
|
+ DataManager::getInstance()->addElem(elemName);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -300,9 +284,8 @@ void MainWindow::on_pushButton_delElem_clicked()
|
|
|
QMessageBox::StandardButton reply = QMessageBox::question(this,"删除元素","确定要删除此元素吗?");
|
|
|
if(reply == QMessageBox::Yes){
|
|
|
QString elemName = ui->listWidget_elem->currentItem()->text();
|
|
|
- delete elements[elemName];
|
|
|
- elements.erase(elements.find(elemName));
|
|
|
delete ui->listWidget_elem->takeItem(ui->listWidget_elem->currentRow());
|
|
|
+ DataManager::getInstance()->delElem(elemName);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -314,15 +297,13 @@ void MainWindow::on_listWidget_elem_itemDoubleClicked(QListWidgetItem *item)
|
|
|
newName.exec();
|
|
|
QString name = newName.getNewName();
|
|
|
if(!name.isEmpty()){
|
|
|
- if(elements.find(name)!=elements.end()){
|
|
|
+ if(DataManager::getInstance()->existElem(name)){
|
|
|
QMessageBox::critical(this,"警告","该元素名已存在!");
|
|
|
return;
|
|
|
}
|
|
|
- QString elemName = ui->listWidget_elem->currentItem()->text();
|
|
|
- ElemPropertyData* newElem = elements[elemName];
|
|
|
- elements.erase(elements.find(elemName));
|
|
|
- elements[newName.getNewName()] = newElem;
|
|
|
- item->setText(newName.getNewName());
|
|
|
+ QString oriName = ui->listWidget_elem->currentItem()->text();
|
|
|
+ item->setText(name);
|
|
|
+ DataManager::getInstance()->changeElemName(oriName,name);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -331,28 +312,28 @@ void MainWindow::on_lineEdit_name_editingFinished()
|
|
|
{
|
|
|
if(ui->listWidget_elem->currentItem() == nullptr) return;
|
|
|
QString key = ui->listWidget_elem->currentItem()->text();
|
|
|
- elements[key]->labelName = ui->lineEdit_name->text();
|
|
|
+ DataManager::getInstance()->changeMarkValue(key,ui->lineEdit_name->text());
|
|
|
}
|
|
|
|
|
|
void MainWindow::on_lineEdit_size_editingFinished()
|
|
|
{
|
|
|
if(ui->listWidget_elem->currentItem() == nullptr) return;
|
|
|
QString key = ui->listWidget_elem->currentItem()->text();
|
|
|
- elements[key]->size = ui->lineEdit_size->text();
|
|
|
+ DataManager::getInstance()->changeSize(key,ui->lineEdit_size->text());
|
|
|
}
|
|
|
|
|
|
void MainWindow::on_lineEdit_maxlayer_editingFinished()
|
|
|
{
|
|
|
if(ui->listWidget_elem->currentItem() == nullptr) return;
|
|
|
QString key = ui->listWidget_elem->currentItem()->text();
|
|
|
- elements[key]->maxLayer = ui->lineEdit_maxlayer->text();
|
|
|
+ DataManager::getInstance()->changeMaxLayer(key,ui->lineEdit_maxlayer->text());
|
|
|
}
|
|
|
|
|
|
void MainWindow::on_lineEdit_score_editingFinished()
|
|
|
{
|
|
|
if(ui->listWidget_elem->currentItem() == nullptr) return;
|
|
|
QString key = ui->listWidget_elem->currentItem()->text();
|
|
|
- elements[key]->score = ui->lineEdit_score->text();
|
|
|
+ DataManager::getInstance()->changeScore(key,ui->lineEdit_score->text());
|
|
|
}
|
|
|
|
|
|
|
|
@@ -360,13 +341,13 @@ void MainWindow::on_spinBox_drop_valueChanged(int arg1)
|
|
|
{
|
|
|
if(ui->listWidget_elem->currentItem() == nullptr) return;
|
|
|
QString key = ui->listWidget_elem->currentItem()->text();
|
|
|
- elements[key]->dropConfig = arg1;
|
|
|
+ DataManager::getInstance()->changeDropConfig(key,arg1);
|
|
|
}
|
|
|
|
|
|
|
|
|
void MainWindow::on_listWidget_elem_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
|
|
|
{
|
|
|
- setUi(elements[current->text()]);
|
|
|
+ setUi(current->text());
|
|
|
}
|
|
|
|
|
|
//替换资源文件
|
|
@@ -1235,23 +1216,6 @@ void MainWindow::on_pushButton_addEvent_clicked()
|
|
|
ui->tableWidget_event->setCellWidget(rowNum,6,createSetButton());
|
|
|
}
|
|
|
|
|
|
-QString MainWindow::getFileName(QString filePath)
|
|
|
-{
|
|
|
- if(filePath == "双击添加资源文件") return filePath;
|
|
|
- int size = filePath.count();
|
|
|
- int pos = 0;
|
|
|
- for(int i=size-1;i>=0;i--){
|
|
|
- if(filePath[i] == '/'){
|
|
|
- pos = i+1;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- QString fileName;
|
|
|
- for(int i=pos;i<size;i++){
|
|
|
- fileName.push_back(filePath[i]);
|
|
|
- }
|
|
|
- return fileName;
|
|
|
-}
|
|
|
|
|
|
void MainWindow::on_listWidget_status_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
|
|
|
{
|