mainwindow.h 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. #include <QListWidgetItem>
  5. #include <QTableWidgetItem>
  6. #include "elemPropertyData.h"
  7. #include "readJsonSrc.h"
  8. #include <QMap>
  9. #include <QComboBox>
  10. #include <QCheckBox>
  11. #include <QPushButton>
  12. QT_BEGIN_NAMESPACE
  13. namespace Ui { class MainWindow; }
  14. QT_END_NAMESPACE
  15. class MainWindow : public QMainWindow
  16. {
  17. Q_OBJECT
  18. public:
  19. MainWindow(QWidget *parent = nullptr);
  20. ~MainWindow();
  21. private slots:
  22. void on_pushButton_addElem_clicked();
  23. void on_pushButton_delElem_clicked();
  24. void on_pushButton_chooseFile_clicked();
  25. void on_pushButton_addAnimation_clicked();
  26. void on_pushButton_addCollectAnim_clicked();
  27. void on_pushButton_delCollectAnim_clicked();
  28. void on_listWidget_collectAnim_itemDoubleClicked(QListWidgetItem *item);
  29. void on_pushButton_addStatus_clicked();
  30. void on_pushButton_delStatus_clicked();
  31. void on_pushButton_addContainer_clicked();
  32. void on_pushButton_delContainer_clicked();
  33. void on_listWidget_pool_itemDoubleClicked(QListWidgetItem *item);
  34. void on_listWidget_elem_itemDoubleClicked(QListWidgetItem *item);
  35. void on_tableWidget_animation_cellDoubleClicked(int row, int column);
  36. void on_pushButton_delAnimation_clicked();
  37. void on_tableWidget_animation_itemChanged(QTableWidgetItem *item);
  38. void on_listWidget_elem_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
  39. void on_lineEdit_name_editingFinished();
  40. void on_lineEdit_size_editingFinished();
  41. void on_lineEdit_maxlayer_editingFinished();
  42. void on_lineEdit_score_editingFinished();
  43. void on_spinBox_drop_valueChanged(int arg1);
  44. void on_comboBox_animationType_currentTextChanged(const QString &arg1);
  45. void on_comboBox_animation_currentTextChanged(const QString &arg1);
  46. void onTimelineTextChanged(const QString &arg1);
  47. void on_listWidget_collectAnim_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
  48. // void on_tabWidget_currentChanged(int index);
  49. void on_pushButton_genTemp_clicked();
  50. void on_listWidget_status_itemDoubleClicked(QListWidgetItem *item);
  51. void on_tableWidget_containerPool_cellDoubleClicked(int row, int column);
  52. void on_tableWidget_containerPool_itemChanged(QTableWidgetItem *item);
  53. void on_pushButton_addKey_clicked();
  54. void on_pushButton_delKey_clicked();
  55. void on_listWidget_pool_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
  56. void on_pushButton_addChildElem_clicked();
  57. void on_pushButton_delChildElem_clicked();
  58. void on_tableWidget_childElem_itemChanged(QTableWidgetItem *item);
  59. void on_tableWidget_childElem_cellDoubleClicked(int row, int column);
  60. void on_checkBox_multiHit_stateChanged(int arg1);
  61. void on_checkBox_dropable_stateChanged(int arg1);
  62. void on_checkBox_needCollect_stateChanged(int arg1);
  63. void on_lineEdit_collectionType_editingFinished();
  64. void on_pushButton_addEvent_clicked();
  65. void onPoolTimelineTextChanged(const QString &arg1);
  66. void onPoolsTextChanged(const QString &arg1);
  67. void on_listWidget_status_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
  68. void on_tableWidget_event_cellDoubleClicked(int row, int column);
  69. void on_tableWidget_event_itemChanged(QTableWidgetItem *item);
  70. void onCheckBoxStateChanged(int state);
  71. void on_comboBox_initAnim_currentTextChanged(const QString &arg1);
  72. void on_comboBox_clickAnim_currentTextChanged(const QString &arg1);
  73. void on_comboBox_collectAnimation_currentTextChanged(const QString &arg1);
  74. void onEventBoxTextChanged(const QString &arg1);
  75. void onSetActionButtonClicked();
  76. void on_reloadTempFile_triggered();
  77. void on_comboBox_container_currentTextChanged(const QString &arg1);
  78. void on_pushButton_delEvent_clicked();
  79. void onLineEditTextChanged();
  80. void onComboBoxTextChanged(QString arg1);
  81. void on_tabWidget_currentChanged(int index);
  82. private:
  83. Ui::MainWindow *ui;
  84. QMap<QString,ElemPropertyData*> elements;
  85. void setUi(QString elem);
  86. //防止双击修改以外的表格修改操作反复触发itemChanged信号
  87. //动画表格
  88. bool animTableItemChanged = false;
  89. //容器表格
  90. bool poolTableItemChanged = false;
  91. //子元素表格
  92. bool childElemTableItemChanged = false;
  93. //事件配置表格
  94. bool eventTableItemChanged = false;
  95. void setCollectAnimUi(QString collectAnimName);
  96. void setPoolUi(QString poolName);
  97. QString getFileName(QString filePath);
  98. enum class TimelineType{Animation,Pool};
  99. QComboBox* createBox(QString choice,QStringList list);
  100. QComboBox* createTimelineBox(QString chosenTimeline,QString filename,TimelineType type);
  101. QComboBox* createPoolBox(QString chosenPool);
  102. QCheckBox* createCheckBox(bool chosen);
  103. QComboBox* createTriggerAction(QString chosenAction);
  104. QComboBox* createEffectBox(QString chosenEffect);
  105. QComboBox* createEventBox(QString chosenEvent);
  106. QPushButton* createSetButton();
  107. void updateAnimComboBox(QString changedAnim);
  108. void updateCollAnimComboBox(QString changedAnim);
  109. void updateTempRelatedUi();
  110. ReadJsonSrc* jsonTemp;
  111. //表示当前正在设置ui界面,改变时不要触发任何数据保存
  112. bool isSetUi = false;
  113. void createSetWindow(QString actionName,int row);
  114. void setCollAnimWidget();
  115. };
  116. #endif // MAINWINDOW_H