mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-04-01 09:05:27 +00:00
implement browser, main widget db session
This commit is contained in:
parent
c240c9faee
commit
c13cc44a59
6 changed files with 552 additions and 62 deletions
|
|
@ -31,14 +31,6 @@ Tab::Tab(
|
|||
SCROLLABLE
|
||||
);
|
||||
|
||||
// Init events
|
||||
signal_realize().connect(
|
||||
[this]
|
||||
{
|
||||
restore(); // last session from DB
|
||||
}
|
||||
);
|
||||
|
||||
signal_switch_page().connect(
|
||||
[this](Gtk::Widget*, guint)
|
||||
{
|
||||
|
|
@ -48,15 +40,20 @@ Tab::Tab(
|
|||
);
|
||||
}
|
||||
|
||||
int Tab::restore()
|
||||
{
|
||||
int Tab::restore(
|
||||
const sqlite3_int64 & APP_BROWSER_MAIN__SESSION__ID
|
||||
) {
|
||||
sqlite3_stmt* statement; // @TODO move to the DB model namespace
|
||||
|
||||
const int PREPARE_STATUS = sqlite3_prepare_v3(
|
||||
db,
|
||||
R"SQL(
|
||||
SELECT * FROM `app_browser_main_tab__session` ORDER BY `page_number` ASC
|
||||
)SQL",
|
||||
Glib::ustring::sprintf(
|
||||
R"SQL(
|
||||
SELECT * FROM `app_browser_main_tab__session`
|
||||
WHERE `app_browser_main__session_id` = %d ORDER BY `page_number` ASC
|
||||
)SQL",
|
||||
APP_BROWSER_MAIN__SESSION__ID
|
||||
).c_str(),
|
||||
-1,
|
||||
SQLITE_PREPARE_NORMALIZE,
|
||||
&statement,
|
||||
|
|
@ -103,22 +100,15 @@ int Tab::restore()
|
|||
);
|
||||
}
|
||||
|
||||
void Tab::clean() // @TODO menu action?
|
||||
{
|
||||
DB::SESSION::clean(
|
||||
db
|
||||
);
|
||||
|
||||
close_all();
|
||||
}
|
||||
|
||||
void Tab::save()
|
||||
{
|
||||
void Tab::save(
|
||||
const sqlite3_int64 & APP_BROWSER_MAIN__SESSION__ID
|
||||
) {
|
||||
char * error; // @TODO
|
||||
|
||||
// Delete previous data
|
||||
DB::SESSION::clean(
|
||||
db
|
||||
db,
|
||||
APP_BROWSER_MAIN__SESSION__ID
|
||||
); // @TODO run on background
|
||||
|
||||
// Save current tab session
|
||||
|
|
@ -127,6 +117,7 @@ void Tab::save()
|
|||
// Create new session
|
||||
const sqlite3_int64 APP_BROWSER_MAIN_TAB__SESSION__ID = DB::SESSION::add(
|
||||
db,
|
||||
APP_BROWSER_MAIN__SESSION__ID,
|
||||
page_number,
|
||||
page_number == get_current_page() ? 1 : 0
|
||||
);
|
||||
|
|
@ -377,16 +368,21 @@ int Tab::DB::SESSION::init(
|
|||
}
|
||||
|
||||
int Tab::DB::SESSION::clean(
|
||||
sqlite3 * db
|
||||
sqlite3 * db,
|
||||
const sqlite3_int64 & APP_BROWSER_MAIN__SESSION__ID
|
||||
) {
|
||||
char * error; // @TODO
|
||||
sqlite3_stmt * statement;
|
||||
|
||||
const int PREPARE_STATUS = sqlite3_prepare_v3(
|
||||
db,
|
||||
R"SQL(
|
||||
SELECT * FROM `app_browser_main_tab__session`
|
||||
)SQL",
|
||||
Glib::ustring::sprintf(
|
||||
R"SQL(
|
||||
SELECT * FROM `app_browser_main_tab__session`
|
||||
WHERE `app_browser_main_tab__session_id` = %d
|
||||
)SQL",
|
||||
APP_BROWSER_MAIN__SESSION__ID
|
||||
).c_str(),
|
||||
-1,
|
||||
SQLITE_PREPARE_NORMALIZE,
|
||||
&statement,
|
||||
|
|
@ -439,6 +435,7 @@ int Tab::DB::SESSION::clean(
|
|||
|
||||
sqlite3_int64 Tab::DB::SESSION::add(
|
||||
sqlite3 * db,
|
||||
const sqlite3_int64 & APP_BROWSER_MAIN__SESSION__ID,
|
||||
const int & PAGE_NUMBER,
|
||||
const bool & IS_CURRENT
|
||||
) {
|
||||
|
|
@ -449,13 +446,16 @@ sqlite3_int64 Tab::DB::SESSION::add(
|
|||
Glib::ustring::sprintf(
|
||||
R"SQL(
|
||||
INSERT INTO `app_browser_main_tab__session` (
|
||||
`app_browser_main__session_id`,
|
||||
`page_number`,
|
||||
`is_current`
|
||||
) VALUES (
|
||||
%d,
|
||||
%d,
|
||||
%d
|
||||
)
|
||||
)SQL",
|
||||
APP_BROWSER_MAIN__SESSION__ID,
|
||||
PAGE_NUMBER,
|
||||
IS_CURRENT
|
||||
).c_str(),
|
||||
|
|
|
|||
|
|
@ -43,11 +43,13 @@ namespace app::browser::main
|
|||
); // return sqlite3_exec status code
|
||||
|
||||
static int clean(
|
||||
sqlite3 * db
|
||||
sqlite3 * db,
|
||||
const sqlite3_int64 & APP_BROWSER_MAIN__SESSION__ID
|
||||
); // return sqlite3_finalize status code
|
||||
|
||||
static sqlite3_int64 add(
|
||||
sqlite3 * db,
|
||||
const sqlite3_int64 & APP_BROWSER_MAIN__SESSION__ID,
|
||||
const int & PAGE_NUMBER,
|
||||
const bool & IS_CURRENT
|
||||
); // return sqlite3_last_insert_rowid
|
||||
|
|
@ -121,11 +123,13 @@ namespace app::browser::main
|
|||
const int & PAGE_NUMBER
|
||||
);
|
||||
|
||||
int restore(); // return sqlite3_finalize status code
|
||||
int restore(
|
||||
const sqlite3_int64 & APP_BROWSER_MAIN__SESSION__ID
|
||||
); // return sqlite3_finalize status code
|
||||
|
||||
void clean();
|
||||
|
||||
void save();
|
||||
void save(
|
||||
const sqlite3_int64 & APP_BROWSER_MAIN__SESSION__ID
|
||||
);
|
||||
|
||||
// Getters
|
||||
Glib::ustring get_page_title(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue