123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- #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 <QListWidgetItem>
- #include <QListWidget>
- #include <QLabel>
- #include <iostream>
- #include <QHBoxLayout>
- #include <QMessageBox>
- #include <QFileDialog>
- #include <QDragEnterEvent>
- #include <QMimeData>
- #include <QUrl>
- 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;
- }
- //TODO: 修改图标后更新列表对应元素的图标
- 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<QUrl> 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"));
- QTableWidgetItem* res = new QTableWidgetItem("双击添加资源文件");
- // 此单元格不可编辑
- res->setFlags(res->flags() & ~Qt::ItemIsEditable);
- ui->tableWidget_animation->setItem(rowNum,1,res);
- 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: 加入资源生成时间线代码
- QComboBox* timeLine = new QComboBox;
- timeLine->addItem("lml");
- timeLine->addItem("xdf");
- timeLine->addItem("cqf");
- ui->tableWidget_animation->setCellWidget(row,column+1,timeLine);
- }
- }
- }
- //TODO: 同步删除数据
- 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);
- }
- }
- void MainWindow::on_tableWidget_animation_itemChanged(QTableWidgetItem *item)
- {
- int column = item->column();
- int row = item->row();
- //名字发生修改,检查新名称唯一性
- if(column == 0){
- std::cout<<"name:"<<qPrintable(ui->tableWidget_animation->item(row,0)->text())<<std::endl;
- }
- //资源名发生修改
- else if(column == 1){
- std::cout<<"resource:"<<qPrintable(ui->tableWidget_animation->item(row,1)->text())<<std::endl;
- }
- // 时间线发生修改,居然没有反应。。。
- else if(column == 2){
- QComboBox *timeLine = qobject_cast<QComboBox*>(ui->tableWidget_animation->cellWidget(row,2));
- std::cout<<"timeLine:"<<qPrintable(timeLine->currentText())<<std::endl;
- }
- //z-Order值发生修改,检查z-Order值合法性
- else{
- std::cout<<"z-Order:"<<qPrintable(ui->tableWidget_animation->item(row,3)->text())<<std::endl;
- }
- }
|