mirror of
https://git.pwmt.org/pwmt/zathura.git
synced 2025-01-30 15:24:57 +01:00
Store page_right_to_left in sqlite database
This commit is contained in:
parent
2df776b329
commit
538d18039e
1 changed files with 29 additions and 13 deletions
|
@ -155,7 +155,8 @@ sqlite_db_init(ZathuraSQLDatabase* db, const char* path)
|
||||||
"first_page_column TEXT,"
|
"first_page_column TEXT,"
|
||||||
"position_x FLOAT,"
|
"position_x FLOAT,"
|
||||||
"position_y FLOAT,"
|
"position_y FLOAT,"
|
||||||
"time TIMESTAMP"
|
"time TIMESTAMP,"
|
||||||
|
"page_right_to_left INTEGER"
|
||||||
");";
|
");";
|
||||||
|
|
||||||
/* create history table */
|
/* create history table */
|
||||||
|
@ -190,6 +191,10 @@ sqlite_db_init(ZathuraSQLDatabase* db, const char* path)
|
||||||
static const char SQL_FILEINFO_ALTER4[] =
|
static const char SQL_FILEINFO_ALTER4[] =
|
||||||
"ALTER TABLE fileinfo ADD COLUMN zoom FLOAT;";
|
"ALTER TABLE fileinfo ADD COLUMN zoom FLOAT;";
|
||||||
|
|
||||||
|
/* update fileinfo table (part 5) */
|
||||||
|
static const char SQL_FILEINFO_ALTER5[] =
|
||||||
|
"ALTER TABLE fileinfo ADD COLUMN page_right_to_left INTEGER;";
|
||||||
|
|
||||||
/* update bookmark table */
|
/* update bookmark table */
|
||||||
static const char SQL_BOOKMARK_ALTER[] =
|
static const char SQL_BOOKMARK_ALTER[] =
|
||||||
"ALTER TABLE bookmarks ADD COLUMN hadj_ratio FLOAT;"
|
"ALTER TABLE bookmarks ADD COLUMN hadj_ratio FLOAT;"
|
||||||
|
@ -249,6 +254,15 @@ sqlite_db_init(ZathuraSQLDatabase* db, const char* path)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ret1 = check_column(session, "fileinfo", "page_right_to_left", &res1);
|
||||||
|
|
||||||
|
if (ret1 == true && res1 == false) {
|
||||||
|
girara_debug("old database table layout detected; updating ...");
|
||||||
|
if (sqlite3_exec(session, SQL_FILEINFO_ALTER5, NULL, 0, NULL) != SQLITE_OK) {
|
||||||
|
girara_warning("failed to update database table layout");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ret1 = check_column(session, "bookmarks", "hadj_ratio", &res1);
|
ret1 = check_column(session, "bookmarks", "hadj_ratio", &res1);
|
||||||
ret2 = check_column(session, "bookmarks", "vadj_ratio", &res2);
|
ret2 = check_column(session, "bookmarks", "vadj_ratio", &res2);
|
||||||
|
|
||||||
|
@ -648,23 +662,24 @@ sqlite_set_fileinfo(zathura_database_t* db, const char* file,
|
||||||
ZathuraSQLDatabasePrivate* priv = zathura_sqldatabase_get_instance_private(sqldb);
|
ZathuraSQLDatabasePrivate* priv = zathura_sqldatabase_get_instance_private(sqldb);
|
||||||
|
|
||||||
static const char SQL_FILEINFO_SET[] =
|
static const char SQL_FILEINFO_SET[] =
|
||||||
"REPLACE INTO fileinfo (file, page, offset, zoom, rotation, pages_per_row, first_page_column, position_x, position_y, time) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, DATETIME('now'));";
|
"REPLACE INTO fileinfo (file, page, offset, zoom, rotation, pages_per_row, first_page_column, position_x, position_y, time, page_right_to_left) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, DATETIME('now'), ?);";
|
||||||
|
|
||||||
sqlite3_stmt* stmt = prepare_statement(priv->session, SQL_FILEINFO_SET);
|
sqlite3_stmt* stmt = prepare_statement(priv->session, SQL_FILEINFO_SET);
|
||||||
if (stmt == NULL) {
|
if (stmt == NULL) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sqlite3_bind_text(stmt, 1, file, -1, NULL) != SQLITE_OK ||
|
if (sqlite3_bind_text(stmt, 1, file, -1, NULL) != SQLITE_OK ||
|
||||||
sqlite3_bind_int(stmt, 2, file_info->current_page) != SQLITE_OK ||
|
sqlite3_bind_int(stmt, 2, file_info->current_page) != SQLITE_OK ||
|
||||||
sqlite3_bind_int(stmt, 3, file_info->page_offset) != SQLITE_OK ||
|
sqlite3_bind_int(stmt, 3, file_info->page_offset) != SQLITE_OK ||
|
||||||
sqlite3_bind_double(stmt, 4, file_info->zoom) != SQLITE_OK ||
|
sqlite3_bind_double(stmt, 4, file_info->zoom) != SQLITE_OK ||
|
||||||
sqlite3_bind_int(stmt, 5, file_info->rotation) != SQLITE_OK ||
|
sqlite3_bind_int(stmt, 5, file_info->rotation) != SQLITE_OK ||
|
||||||
sqlite3_bind_int(stmt, 6, file_info->pages_per_row) != SQLITE_OK ||
|
sqlite3_bind_int(stmt, 6, file_info->pages_per_row) != SQLITE_OK ||
|
||||||
sqlite3_bind_text(stmt, 7, file_info->first_page_column_list, -1, NULL)
|
sqlite3_bind_text(stmt, 7, file_info->first_page_column_list, -1, NULL)
|
||||||
!= SQLITE_OK ||
|
!= SQLITE_OK ||
|
||||||
sqlite3_bind_double(stmt, 8, file_info->position_x) != SQLITE_OK ||
|
sqlite3_bind_double(stmt, 8, file_info->position_x) != SQLITE_OK ||
|
||||||
sqlite3_bind_double(stmt, 9, file_info->position_y) != SQLITE_OK) {
|
sqlite3_bind_double(stmt, 9, file_info->position_y) != SQLITE_OK ||
|
||||||
|
sqlite3_bind_int(stmt, 10, file_info->page_right_to_left) != SQLITE_OK) {
|
||||||
sqlite3_finalize(stmt);
|
sqlite3_finalize(stmt);
|
||||||
girara_error("Failed to bind arguments.");
|
girara_error("Failed to bind arguments.");
|
||||||
return false;
|
return false;
|
||||||
|
@ -688,7 +703,7 @@ sqlite_get_fileinfo(zathura_database_t* db, const char* file,
|
||||||
ZathuraSQLDatabasePrivate* priv = zathura_sqldatabase_get_instance_private(sqldb);
|
ZathuraSQLDatabasePrivate* priv = zathura_sqldatabase_get_instance_private(sqldb);
|
||||||
|
|
||||||
static const char SQL_FILEINFO_GET[] =
|
static const char SQL_FILEINFO_GET[] =
|
||||||
"SELECT page, offset, zoom, rotation, pages_per_row, first_page_column, position_x, position_y FROM fileinfo WHERE file = ?;";
|
"SELECT page, offset, zoom, rotation, pages_per_row, first_page_column, position_x, position_y, page_right_to_left FROM fileinfo WHERE file = ?;";
|
||||||
|
|
||||||
sqlite3_stmt* stmt = prepare_statement(priv->session, SQL_FILEINFO_GET);
|
sqlite3_stmt* stmt = prepare_statement(priv->session, SQL_FILEINFO_GET);
|
||||||
if (stmt == NULL) {
|
if (stmt == NULL) {
|
||||||
|
@ -715,6 +730,7 @@ sqlite_get_fileinfo(zathura_database_t* db, const char* file,
|
||||||
file_info->first_page_column_list = sqlite3_column_text_dup(stmt, 5);
|
file_info->first_page_column_list = sqlite3_column_text_dup(stmt, 5);
|
||||||
file_info->position_x = sqlite3_column_double(stmt, 6);
|
file_info->position_x = sqlite3_column_double(stmt, 6);
|
||||||
file_info->position_y = sqlite3_column_double(stmt, 7);
|
file_info->position_y = sqlite3_column_double(stmt, 7);
|
||||||
|
file_info->page_right_to_left = sqlite3_column_int(stmt, 8) != 0;
|
||||||
|
|
||||||
sqlite3_finalize(stmt);
|
sqlite3_finalize(stmt);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue