76 lines
1.6 KiB
C++
76 lines
1.6 KiB
C++
#ifndef SETTINGSDIALOG_H
|
|
#define SETTINGSDIALOG_H
|
|
|
|
#include <QDialog>
|
|
#include <QTableWidget>
|
|
#include <QPushButton>
|
|
#include <QTimeEdit>
|
|
#include <QLineEdit>
|
|
#include <QCheckBox>
|
|
#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<TimeSlot> 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
|