Browse Source

implement clean method

CPP-GTK4
yggverse 1 week ago
parent
commit
f0ff57e799
  1. 55
      src/app/browser/main/tab.cpp
  2. 4
      src/app/browser/main/tab.hpp

55
src/app/browser/main/tab.cpp

@ -109,23 +109,63 @@ int Tab::restore() @@ -109,23 +109,63 @@ int Tab::restore()
return PREPARE_STATUS;
}
int Tab::save()
void Tab::clean()
{
char * error; // @TODO
sqlite3_stmt * statement;
// Delete previous tab session
const int EXEC_STATUS = ::sqlite3_exec(
const int PREPARE_STATUS = ::sqlite3_prepare_v3(
db,
R"SQL(
DELETE FROM `app_browser_main_tab__session`
SELECT * FROM `app_browser_main_tab__session`
)SQL",
-1,
SQLITE_PREPARE_NORMALIZE,
&statement,
nullptr
);
if (PREPARE_STATUS == SQLITE_OK)
{
while (::sqlite3_step(statement) == SQLITE_ROW)
{
const int APP_BROWSER_MAIN_TAB__SESSION_ID = ::sqlite3_column_int(
statement,
DB::APP_BROWSER_MAIN_TAB__SESSION::ID
);
// @TODO Delegate cleanup to the child components
// Delete record
::sqlite3_exec(
db,
Glib::ustring::sprintf(
R"SQL(
DELETE FROM `app_browser_main_tab__session` WHERE `id` = %d
)SQL",
APP_BROWSER_MAIN_TAB__SESSION_ID
).c_str(),
nullptr,
nullptr,
&error
);
}
}
::sqlite3_finalize(
statement
);
close_all();
}
void Tab::save()
{
char * error; // @TODO
// Delete previous data
clean();
if (EXEC_STATUS == SQLITE_OK)
{
// Save current tab session
for (int page_number = 0; page_number < get_n_pages(); page_number++)
{
@ -167,9 +207,6 @@ int Tab::save() @@ -167,9 +207,6 @@ int Tab::save()
)
);
}
}
return EXEC_STATUS;
}
// Actions

4
src/app/browser/main/tab.hpp

@ -99,7 +99,9 @@ namespace app::browser::main @@ -99,7 +99,9 @@ namespace app::browser::main
int restore();
int save();
void clean();
void save();
// Getters
Glib::ustring get_page_title(

Loading…
Cancel
Save