DatabaseManager.h raw
 1#pragma once
 2
 3#include <QDateTime>
 4#include <QDebug>
 5#include <QDir>
 6#include <QObject>
 7#include <QSqlDatabase>
 8#include <QSqlError>
 9#include <QSqlQuery>
10#include <QStandardPaths>
11
12class DatabaseManager : public QObject {
13	Q_OBJECT
14public:
15	static DatabaseManager &instance() {
16		static DatabaseManager inst;
17		return inst;
18	}
19
20	bool init();
21
22	// History
23	void addHistoryEntry(const QString &url, const QString &title);
24
25	// Bookmarks
26	void addBookmark(const QString &url, const QString &title);
27	bool isBookmarked(const QString &url);
28	void removeBookmark(const QString &url);
29
30	// Domain settings (key-value per domain)
31	void setDomainSetting(const QString &domain, const QString &key, const QString &value);
32	QString getDomainSetting(const QString &domain, const QString &key, const QString &defaultValue = {});
33
34	// Vault (Direct SQL access for VaultManager)
35	QSqlQuery executeQuery(const QString &queryStr);
36	bool setVaultMeta(const QString &key, const QByteArray &value);
37	QByteArray getVaultMeta(const QString &key);
38
39private:
40	DatabaseManager() = default;
41	~DatabaseManager() = default;
42	DatabaseManager(const DatabaseManager &) = delete;
43	DatabaseManager &operator=(const DatabaseManager &) = delete;
44
45	QSqlDatabase db;
46	bool createTables();
47};