#ifndef SETTINGSDIALOG_H #define SETTINGSDIALOG_H #include #include #include #include #include #include #include "TimeSlotConfig.h" #include "NetworkApiManager.h" /** * @brief 设置对话框 - 管理签到时间段 */ class SettingsDialog : public QDialog { Q_OBJECT public: explicit SettingsDialog(QWidget *parent = nullptr); ~SettingsDialog(); private slots: void onAddTimeSlot(); void onEditTimeSlot(); void onDeleteTimeSlot(); void onResetToDefault(); void onSave(); void onCancel(); void onTimeSlotsUploaded(bool success); // 新增:处理上传结果 private: void setupUI(); void loadTimeSlots(); void saveTimeSlots(); void refreshTimeSlots(); // 新增:只刷新表格显示,不重新加载数据 // UI组件 QTableWidget *m_tableWidget; QPushButton *m_addButton; QPushButton *m_editButton; QPushButton *m_deleteButton; QPushButton *m_resetButton; QPushButton *m_saveButton; QPushButton *m_cancelButton; // 临时存储 QVector m_tempTimeSlots; // 网络API管理器 NetworkApiManager *m_apiManager; }; /** * @brief 时间段编辑对话框 */ class TimeSlotEditDialog : public QDialog { Q_OBJECT public: explicit TimeSlotEditDialog(QWidget *parent = nullptr, const TimeSlot *slot = nullptr); TimeSlot getTimeSlot() const; private: void setupUI(); QLineEdit *m_nameEdit; QTimeEdit *m_startTimeEdit; QTimeEdit *m_endTimeEdit; QCheckBox *m_enabledCheckBox; }; #endif // SETTINGSDIALOG_H