.clang-format
.clang-tidy
.gitignore
.vimrc
BrowserTab.cpp
BrowserTab.h
BrowserView.cpp
BrowserView.h
CMakeLists.txt
DatabaseManager.cpp
DatabaseManager.h
DownloadBar.cpp
DownloadBar.h
DownloadWidget.cpp
DownloadWidget.h
MainWindow.cpp
MainWindow.h
Makefile
MasterPasswordDialog.cpp
MasterPasswordDialog.h
PasswordHelper.cpp
PasswordHelper.h
README.md
ThemeConfig.h
VaultManager.cpp
VaultManager.h
browser.desktop
browser.qrc
compile_commands.json
main.cpp
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};