statusConfig.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #ifndef STATUSCONFIG_H
  2. #define STATUSCONFIG_H
  3. #include "datahpp/elemPropertyData.h"
  4. #include <QWidget>
  5. #include <QComboBox>
  6. #include <QCheckBox>
  7. #include <QPushButton>
  8. #include <QListWidgetItem>
  9. #include <QTableWidgetItem>
  10. namespace Ui {
  11. class StatusConfig;
  12. }
  13. class StatusConfig : public QWidget
  14. {
  15. Q_OBJECT
  16. public:
  17. explicit StatusConfig(QWidget *parent = nullptr);
  18. ~StatusConfig();
  19. ///切换元素,重置整个界面
  20. void setUi(QString elem);
  21. ///切换状态,重置状态配置界面
  22. void setStatusUi();
  23. ///重置变动可能较大的点击动画、初始动画和收集动画
  24. void setAnimComboBox();
  25. ///基础属性中的可掉落变化时刷新可掉落checkbox
  26. void updateDropBox(bool state);
  27. QString currentElem;
  28. private slots:
  29. ///添加状态,若已经生成最大层数全部状态则按钮无效
  30. void on_pushButton_addStatus_clicked();
  31. ///生成模板
  32. void on_pushButton_genTemp_clicked();
  33. ///删除状态
  34. void on_pushButton_delStatus_clicked();
  35. ///修改状态值,检查修改后的状态值是否合法,并转移数据
  36. void on_listWidget_status_itemDoubleClicked(QListWidgetItem *item);
  37. void on_checkBox_multiHit_stateChanged(int arg1);
  38. void on_checkBox_dropable_stateChanged(int arg1);
  39. void on_checkBox_beatSubItem_stateChanged(int arg1);
  40. void on_checkBox_needCollect_stateChanged(int arg1);
  41. void on_lineEdit_collectionType_editingFinished();
  42. void on_comboBox_initAnim_currentTextChanged(const QString &arg1);
  43. void on_comboBox_clickAnim_currentTextChanged(const QString &arg1);
  44. void on_comboBox_collectAnimation_currentTextChanged(const QString &arg1);
  45. void on_pushButton_addEvent_clicked();
  46. void on_pushButton_delEvent_clicked();
  47. void on_tableWidget_event_cellDoubleClicked(int row, int column);
  48. void on_tableWidget_event_itemChanged(QTableWidgetItem *item);
  49. ///事件配置checkBox状态发生改变
  50. void onCheckBoxStateChanged(int state);
  51. ///事件配置ComboBox选择发生改变
  52. void onEventBoxTextChanged(const QString &arg1);
  53. ///动作配置中的设置点击后
  54. void onSetActionButtonClicked();
  55. void on_listWidget_status_currentRowChanged(int currentRow);
  56. void on_pushButton_copyStatus_clicked();
  57. private:
  58. Ui::StatusConfig *ui;
  59. enum class BoxType{Event,Effect,Action};
  60. ///创建事件、动作、特效的下拉选项
  61. QComboBox* createBox(QString choice,BoxType boxType);
  62. ///创建一个可勾选项
  63. QCheckBox* createCheckBox(bool chosen);
  64. ///创建一个触发动作设置按钮
  65. QPushButton* createSetButton();
  66. ///当前正在设置ui,不要保存改变的数据
  67. bool isSetUi = false;
  68. ///事件配置表格数据被双击修改
  69. bool eventTableItemChanged = false;
  70. ///设置动画当前选择的项
  71. void setAnimIndex(ElemPropertyData::StatusConfig statusData);
  72. ///点击动作配置的设置按钮后生成新窗口
  73. void createSetWindow(QString actionName,int row);
  74. };
  75. #endif // STATUSCONFIG_H