#pragma once #include #include #include #include #include #include #include #include class DatabaseManager : public QObject { Q_OBJECT public: static DatabaseManager &instance() { static DatabaseManager inst; return inst; } bool init(); // History void addHistoryEntry(const QString &url, const QString &title); // Bookmarks void addBookmark(const QString &url, const QString &title); bool isBookmarked(const QString &url); void removeBookmark(const QString &url); // Domain settings (key-value per domain) void setDomainSetting(const QString &domain, const QString &key, const QString &value); QString getDomainSetting(const QString &domain, const QString &key, const QString &defaultValue = {}); // Vault (Direct SQL access for VaultManager) QSqlQuery executeQuery(const QString &queryStr); bool setVaultMeta(const QString &key, const QByteArray &value); QByteArray getVaultMeta(const QString &key); private: DatabaseManager() = default; ~DatabaseManager() = default; DatabaseManager(const DatabaseManager &) = delete; DatabaseManager &operator=(const DatabaseManager &) = delete; QSqlDatabase db; bool createTables(); };