#include "mainwindow.h" #include "ui_mainwindow.h" #include "basicproperty.h" #include "changenamedialog.h" #include "collectionwindow.h" #include "statusconfiguration.h" #include "containerpool.h" #include "resfiledialog.h" #include #include #include #include #include #include #include #include #include #include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); QPixmap pix("/Users/menglanluo/pic.png"); ui->label_pic->setPixmap(pix.scaled(50,50,Qt::KeepAspectRatio)); this->setAcceptDrops(true); resource = new QLineEdit(this); resource->setAcceptDrops(false); ui->tableWidget_animation->setHorizontalHeaderLabels({"名称","资源","时间线","z-Order"}); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_chooseFile_clicked() { QString file_name = QFileDialog::getOpenFileName(this,"Open a file",QDir::homePath()); QPixmap pix(file_name); ui->label_pic->setPixmap(pix.scaled(50,50,Qt::KeepAspectRatio)); } void MainWindow::dragEnterEvent(QDragEnterEvent *event) { if(event->mimeData()->hasUrls()){ event->acceptProposedAction(); } else{ event->ignore(); } } void MainWindow::dropEvent(QDropEvent *event) { const QMimeData *mimeData = event->mimeData(); if(mimeData->hasUrls()){ QList urls = mimeData->urls(); QString urlName = urls.at(0).toLocalFile(); QString fileName = urlName; resource->setText(fileName); } } void MainWindow::on_pushButton_addAnimation_clicked() { int rowNum = ui->tableWidget_animation->rowCount(); // ui->tableWidget_animation->insertRow(rowNum); ui->tableWidget_animation->setRowCount(rowNum+1); //TODO: 命名唯一性检查 ui->tableWidget_animation->setItem(rowNum,0,new QTableWidgetItem("anim_1")); // ui->tableWidget_animation->setCellWidget(rowNum,1,resource); ui->tableWidget_animation->setItem(rowNum,1,new QTableWidgetItem("双击添加资源文件")); ui->tableWidget_animation->setCellWidget(rowNum,2,new QComboBox); ui->tableWidget_animation->setItem(rowNum,3,new QTableWidgetItem("0")); } void MainWindow::on_pushButton_addElem_clicked() { ui->listWidget_elem->addItem(new QListWidgetItem(QIcon("/Users/menglanluo/菜狗.png"),"新加元素")); } void MainWindow::on_pushButton_delElem_clicked() { QMessageBox::StandardButton reply = QMessageBox::question(this,"删除元素","确定要删除此元素吗?"); if(reply == QMessageBox::Yes){ delete ui->listWidget_elem->takeItem(ui->listWidget_elem->currentRow()); } } void MainWindow::on_pushButton_addCollectAnim_clicked() { //TODO: 检查默认名称唯一性 ui->listWidget_collectAnim->addItem(new QListWidgetItem("collAnim_1")); } void MainWindow::on_pushButton_delCollectAnim_clicked() { QMessageBox::StandardButton reply = QMessageBox::question(this,"删除动画","确定要删除此收集动画吗?"); if(reply == QMessageBox::Yes){ delete ui->listWidget_collectAnim->takeItem(ui->listWidget_collectAnim->currentRow()); } } void MainWindow::on_listWidget_collectAnim_itemDoubleClicked(QListWidgetItem *item) { ChangeNameDialog newName; newName.setModal(true); newName.exec(); if(!newName.getNewName().isEmpty()){ item->setText(newName.getNewName()); } } void MainWindow::on_pushButton_addStatus_clicked() { //TODO: 检查状态值合法性 ui->listWidget_status->addItem("1"); } void MainWindow::on_pushButton_delStatus_clicked() { QMessageBox::StandardButton reply = QMessageBox::question(this,"删除状态","确定要删除此状态吗?"); if(reply == QMessageBox::Yes){ delete ui->listWidget_status->takeItem(ui->listWidget_status->currentRow()); } } void MainWindow::on_pushButton_addContainer_clicked() { //TODO: 检查名称唯一性 ui->listWidget_pool->addItem("pool1"); } void MainWindow::on_pushButton_delContainer_clicked() { QMessageBox::StandardButton reply = QMessageBox::question(this,"删除状态","确定要删除此容器吗?"); if(reply == QMessageBox::Yes){ delete ui->listWidget_pool->takeItem(ui->listWidget_pool->currentRow()); } } void MainWindow::on_listWidget_pool_itemDoubleClicked(QListWidgetItem *item) { ChangeNameDialog newName; newName.setModal(true); newName.exec(); QString name = newName.getNewName(); if(!name.isEmpty()){ //TODO: 检查新名字唯一性 item->setText(name); } } void MainWindow::on_listWidget_elem_itemDoubleClicked(QListWidgetItem *item) { ChangeNameDialog newName; newName.setModal(true); newName.exec(); if(!newName.getNewName().isEmpty()){ item->setText(newName.getNewName()); } } void MainWindow::on_tableWidget_animation_cellDoubleClicked(int row, int column) { if(column == 1){ ResFileDialog res; res.setModal(true); res.exec(); QString fileName = res.getResName(); if(!fileName.isEmpty()){ ui->tableWidget_animation->setItem(row,column,new QTableWidgetItem(fileName)); } } //TODO: 处理其它单元格的修改,检查z-Order数值合法性 } void MainWindow::on_pushButton_delAnimation_clicked() { QMessageBox::StandardButton reply = QMessageBox::question(this,"删除动画","确定要删除此动画吗?"); if(reply == QMessageBox::Yes){ int curRow = ui->tableWidget_animation->currentRow(); ui->tableWidget_animation->removeRow(curRow); } }