#ifndef STATUSCONFIG_H #define STATUSCONFIG_H #include "datahpp/elemPropertyData.h" #include #include #include #include #include #include namespace Ui { class StatusConfig; } class StatusConfig : public QWidget { Q_OBJECT public: explicit StatusConfig(QWidget *parent = nullptr); ~StatusConfig(); ///切换元素,重置整个界面 void setUi(QString elem); ///切换状态,重置状态配置界面 void setStatusUi(); ///重置变动可能较大的点击动画、初始动画和收集动画 void setAnimComboBox(); ///基础属性中的可掉落变化时刷新可掉落checkbox void updateDropBox(bool state); QString currentElem; private slots: ///添加状态,若已经生成最大层数全部状态则按钮无效 void on_pushButton_addStatus_clicked(); ///生成模板 void on_pushButton_genTemp_clicked(); ///删除状态 void on_pushButton_delStatus_clicked(); ///修改状态值,检查修改后的状态值是否合法,并转移数据 void on_listWidget_status_itemDoubleClicked(QListWidgetItem *item); void on_checkBox_multiHit_stateChanged(int arg1); void on_checkBox_dropable_stateChanged(int arg1); void on_checkBox_needCollect_stateChanged(int arg1); void on_lineEdit_collectionType_editingFinished(); void on_comboBox_initAnim_currentTextChanged(const QString &arg1); void on_comboBox_clickAnim_currentTextChanged(const QString &arg1); void on_comboBox_collectAnimation_currentTextChanged(const QString &arg1); void on_pushButton_addEvent_clicked(); void on_pushButton_delEvent_clicked(); void on_tableWidget_event_cellDoubleClicked(int row, int column); void on_tableWidget_event_itemChanged(QTableWidgetItem *item); ///事件配置checkBox状态发生改变 void onCheckBoxStateChanged(int state); ///事件配置ComboBox选择发生改变 void onEventBoxTextChanged(const QString &arg1); ///动作配置中的设置点击后 void onSetActionButtonClicked(); void on_listWidget_status_currentRowChanged(int currentRow); private: Ui::StatusConfig *ui; enum class BoxType{Event,Effect,Action}; ///创建事件、动作、特效的下拉选项 QComboBox* createBox(QString choice,BoxType boxType); ///创建一个可勾选项 QCheckBox* createCheckBox(bool chosen); ///创建一个触发动作设置按钮 QPushButton* createSetButton(); ///当前正在设置ui,不要保存改变的数据 bool isSetUi = false; ///事件配置表格数据被双击修改 bool eventTableItemChanged = false; ///设置动画当前选择的项 void setAnimIndex(ElemPropertyData::StatusConfig statusData); ///点击动作配置的设置按钮后生成新窗口 void createSetWindow(QString actionName,int row); }; #endif // STATUSCONFIG_H