Files
bishe-QT_MainWindow/include/SettingsDialog.h
T
2026-05-01 10:51:39 +08:00

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