Browse Source

add nullable value support, change field datatype

master
yggverse 2 months ago
parent
commit
a2643d953d
  1. 1
      src/app/browser/window/tab/item/page/navigation/request.rs
  2. 8
      src/app/browser/window/tab/item/widget.rs
  3. 6
      src/app/browser/window/tab/item/widget/database.rs

1
src/app/browser/window/tab/item/page/navigation/request.rs

@ -151,6 +151,7 @@ impl Request { @@ -151,6 +151,7 @@ impl Request {
transaction: &Transaction,
app_browser_window_tab_item_page_navigation_id: &i64,
) -> Result<(), String> {
// Keep value in memory until operation complete
let text = self.widget.text();
match Database::add(

8
src/app/browser/window/tab/item/widget.rs

@ -93,10 +93,16 @@ impl Widget { @@ -93,10 +93,16 @@ impl Widget {
transaction: &Transaction,
app_browser_window_tab_item_id: &i64,
) -> Result<(), String> {
// Keep value in memory until operation complete
let title = self.gobject.title();
match Database::add(
transaction,
app_browser_window_tab_item_id,
Some(&self.gobject.title().to_string()),
match title.is_empty() {
true => None,
false => Some(title.as_str()),
},
) {
Ok(_) => {
// let id = Database::last_insert_id(transaction);

6
src/app/browser/window/tab/item/widget/database.rs

@ -3,7 +3,7 @@ use sqlite::{Error, Transaction}; @@ -3,7 +3,7 @@ use sqlite::{Error, Transaction};
pub struct Table {
pub id: i64,
// pub app_browser_window_tab_item_id: i64, not in use
pub title: Option<String>,
pub title: Option<String>, // can be stored as NULL
}
pub struct Database {
@ -17,7 +17,7 @@ impl Database { @@ -17,7 +17,7 @@ impl Database {
(
`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
`app_browser_window_tab_item_id` INTEGER NOT NULL,
`title` TEXT
`title` VARCHAR(1024)
)",
[],
)
@ -26,7 +26,7 @@ impl Database { @@ -26,7 +26,7 @@ impl Database {
pub fn add(
tx: &Transaction,
app_browser_window_tab_item_id: &i64,
title: Option<&String>,
title: Option<&str>,
) -> Result<usize, Error> {
tx.execute(
"INSERT INTO `app_browser_window_tab_item_widget` (

Loading…
Cancel
Save