2026-06-17 22:44:27 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <QWidget>
|
|
|
|
|
#include <QTabWidget>
|
|
|
|
|
#include <QVBoxLayout>
|
|
|
|
|
#include <QHBoxLayout>
|
|
|
|
|
#include <QPushButton>
|
|
|
|
|
#include <QLabel>
|
|
|
|
|
#include <QListWidget>
|
|
|
|
|
#include <QComboBox>
|
|
|
|
|
#include <QCheckBox>
|
|
|
|
|
#include <QRadioButton>
|
|
|
|
|
#include <QButtonGroup>
|
|
|
|
|
#include <QVariant>
|
2026-07-05 10:45:44 +02:00
|
|
|
#include "services/accountservice.h"
|
2026-06-17 22:44:27 +02:00
|
|
|
|
|
|
|
|
class SettingsView : public QWidget {
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
explicit SettingsView(QWidget *parent = nullptr);
|
|
|
|
|
~SettingsView() override = default;
|
|
|
|
|
|
2026-07-05 10:45:44 +02:00
|
|
|
void setAccountService(AccountService *service);
|
|
|
|
|
|
2026-06-17 22:44:27 +02:00
|
|
|
signals:
|
|
|
|
|
void accountAddRequested();
|
2026-07-05 10:45:44 +02:00
|
|
|
void accountEditRequested(int accountId);
|
|
|
|
|
void accountDeleteRequested(int accountId);
|
2026-06-17 22:44:27 +02:00
|
|
|
void themeChanged(const QString &theme);
|
|
|
|
|
void settingChanged(const QString &key, const QVariant &value);
|
|
|
|
|
|
2026-07-05 10:45:44 +02:00
|
|
|
private slots:
|
|
|
|
|
void onAccountListChanged();
|
|
|
|
|
void loadAccounts();
|
|
|
|
|
void onEditClicked();
|
|
|
|
|
void onDeleteClicked();
|
|
|
|
|
void onAccountSelectionChanged();
|
|
|
|
|
|
2026-06-17 22:44:27 +02:00
|
|
|
private:
|
|
|
|
|
void setupUI();
|
|
|
|
|
QWidget* createAccountsTab();
|
|
|
|
|
QWidget* createGeneralTab();
|
|
|
|
|
QWidget* createAppearanceTab();
|
|
|
|
|
|
|
|
|
|
QTabWidget *m_tabWidget;
|
|
|
|
|
QListWidget *m_accountList;
|
|
|
|
|
QComboBox *m_syncIntervalCombo;
|
|
|
|
|
QButtonGroup *m_themeGroup;
|
2026-07-05 10:45:44 +02:00
|
|
|
QPushButton *m_editBtn;
|
|
|
|
|
QPushButton *m_addBtn;
|
|
|
|
|
QPushButton *m_deleteBtn;
|
|
|
|
|
|
|
|
|
|
AccountService *m_accountService;
|
|
|
|
|
int m_selectedAccountId;
|
2026-06-17 22:44:27 +02:00
|
|
|
};
|