delegate specific database operations to widgets, use SQLiteCpp wrapper

This commit is contained in:
yggverse 2024-09-08 22:13:52 +03:00
parent 35f4741a1c
commit f98b0e55e9
16 changed files with 72 additions and 147 deletions

View file

@ -4,6 +4,7 @@
using namespace app::browser;
Main::Main(
SQLite::Database & db,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__REFRESH,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_CLOSE_ACTIVE,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_CLOSE_ALL,
@ -22,6 +23,7 @@ Main::Main(
// Init components
mainTab = Gtk::make_managed<main::Tab>(
db,
ACTION__REFRESH,
ACTION__MAIN_TAB_CLOSE_ACTIVE,
ACTION__MAIN_TAB_CLOSE_ALL,

View file

@ -7,6 +7,7 @@
#include <glibmm/ustring.h>
#include <gtkmm/box.h>
#include <gtkmm/object.h>
#include <SQLiteCpp/SQLiteCpp.h>
namespace app::browser
{
@ -26,6 +27,7 @@ namespace app::browser
public:
Main(
SQLite::Database & db,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__REFRESH,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_CLOSE_ACTIVE,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_CLOSE_ALL,

View file

@ -5,6 +5,7 @@
using namespace app::browser::main;
Tab::Tab(
SQLite::Database & db,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__REFRESH,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__TAB_CLOSE_ACTIVE,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_CLOSE_ALL,
@ -12,6 +13,18 @@ Tab::Tab(
const Glib::RefPtr<Gio::SimpleAction> & ACTION__TAB_PAGE_NAVIGATION_HISTORY_FORWARD,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__TAB_PAGE_NAVIGATION_UPDATE
) {
// Init database
db.exec(
R"SQL(
CREATE TABLE IF NOT EXISTS `app_browser_tab`
(
`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
`time` INTEGER NOT NULL,
`request` VARCHAR(1024)
)
)SQL"
);
// Init actions
action__refresh = ACTION__REFRESH;
action__tab_close_active = ACTION__TAB_CLOSE_ACTIVE;

View file

@ -6,6 +6,7 @@
#include <glibmm/refptr.h>
#include <glibmm/ustring.h>
#include <gtkmm/notebook.h>
#include <SQLiteCpp/SQLiteCpp.h>
namespace app::browser::main
{
@ -41,6 +42,7 @@ namespace app::browser::main
public:
Tab(
SQLite::Database & db,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__REFRESH,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__TAB_CLOSE_ACTIVE,
const Glib::RefPtr<Gio::SimpleAction> & ACTION__MAIN_TAB_CLOSE_ALL,