Skip to content

Commit 1c69525

Browse files
committed
Moved more recent documents logic into Rust, ditched unused FFI helpers.
1 parent f8ef1dd commit 1c69525

File tree

4 files changed

+4
-122
lines changed

4 files changed

+4
-122
lines changed

app/config_manager.cpp

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@ std::vector<long> to_long_vector(const rust::Vec<long long>& values) {
2828
return result;
2929
}
3030

31-
bookmark to_bookmark(const FfiBookmark& fb) {
32-
return bookmark(static_cast<long>(fb.start), static_cast<long>(fb.end), to_wx_string(fb.note));
33-
}
3431
} // namespace
3532

3633
config_manager::~config_manager() {
@@ -84,27 +81,6 @@ void config_manager::add_recent_document(const wxString& path) {
8481
if (is_initialized()) config_manager_add_recent_document(backend_mut(), to_utf8(path));
8582
}
8683

87-
wxArrayString config_manager::get_recent_documents() const {
88-
if (!is_initialized()) return {};
89-
return to_wx_array(config_manager_get_recent_documents(backend_ref()));
90-
}
91-
92-
void config_manager::clear_recent_documents() {
93-
if (is_initialized()) config_manager_clear_recent_documents(backend_mut());
94-
}
95-
96-
void config_manager::add_opened_document(const wxString& path) {
97-
if (is_initialized()) config_manager_add_opened_document(backend_mut(), to_utf8(path));
98-
}
99-
100-
void config_manager::remove_opened_document(const wxString& path) {
101-
if (is_initialized()) config_manager_remove_opened_document(backend_mut(), to_utf8(path));
102-
}
103-
104-
void config_manager::clear_opened_documents() {
105-
if (is_initialized()) config_manager_clear_opened_documents(backend_mut());
106-
}
107-
10884
void config_manager::set_document_position(const wxString& path, long position) {
10985
if (is_initialized()) config_manager_set_document_position(backend_mut(), to_utf8(path), static_cast<std::int64_t>(position));
11086
}
@@ -176,31 +152,6 @@ void config_manager::update_bookmark_note(const wxString& path, long start, long
176152
if (is_initialized()) config_manager_update_bookmark_note(backend_mut(), to_utf8(path), static_cast<std::int64_t>(start), static_cast<std::int64_t>(end), to_utf8(note));
177153
}
178154

179-
std::vector<bookmark> config_manager::get_bookmarks(const wxString& path) const {
180-
if (!is_initialized()) return {};
181-
const auto rust_bookmarks = config_manager_get_bookmarks(backend_ref(), to_utf8(path));
182-
std::vector<bookmark> result;
183-
result.reserve(rust_bookmarks.size());
184-
std::transform(rust_bookmarks.begin(), rust_bookmarks.end(), std::back_inserter(result), [](const FfiBookmark& bm) {
185-
return to_bookmark(bm);
186-
});
187-
return result;
188-
}
189-
190-
void config_manager::clear_bookmarks(const wxString& path) {
191-
if (is_initialized()) config_manager_clear_bookmarks(backend_mut(), to_utf8(path));
192-
}
193-
194-
bookmark config_manager::get_next_bookmark(const wxString& path, long current_position) const {
195-
if (!is_initialized()) return bookmark(-1, -1);
196-
return to_bookmark(config_manager_get_next_bookmark(backend_ref(), to_utf8(path), static_cast<std::int64_t>(current_position)));
197-
}
198-
199-
bookmark config_manager::get_previous_bookmark(const wxString& path, long current_position) const {
200-
if (!is_initialized()) return bookmark(-1, -1);
201-
return to_bookmark(config_manager_get_previous_bookmark(backend_ref(), to_utf8(path), static_cast<std::int64_t>(current_position)));
202-
}
203-
204155
void config_manager::set_document_format(const wxString& path, const wxString& format) {
205156
if (is_initialized()) config_manager_set_document_format(backend_mut(), to_utf8(path), to_utf8(format));
206157
}

app/config_manager.hpp

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,6 @@ struct bookmark {
2626
bookmark() : start{0}, end{0}, note{wxEmptyString} {
2727
}
2828

29-
bool is_whole_line() const {
30-
return start == end;
31-
}
32-
33-
bool has_note() const {
34-
return !note.IsEmpty();
35-
}
36-
3729
bool operator==(const bookmark& other) const {
3830
return start == other.start && end == other.end;
3931
}
@@ -81,11 +73,6 @@ class config_manager {
8173
}
8274

8375
void add_recent_document(const wxString& path);
84-
wxArrayString get_recent_documents() const;
85-
void clear_recent_documents();
86-
void add_opened_document(const wxString& path);
87-
void remove_opened_document(const wxString& path);
88-
void clear_opened_documents();
8976
void set_document_position(const wxString& path, long position);
9077
long get_document_position(const wxString& path) const;
9178
void set_navigation_history(const wxString& path, const std::vector<long>& history, size_t history_index);
@@ -100,10 +87,6 @@ class config_manager {
10087
void remove_bookmark(const wxString& path, long start, long end);
10188
void toggle_bookmark(const wxString& path, long start, long end, const wxString& note = wxEmptyString);
10289
void update_bookmark_note(const wxString& path, long start, long end, const wxString& note);
103-
std::vector<bookmark> get_bookmarks(const wxString& path) const;
104-
void clear_bookmarks(const wxString& path);
105-
bookmark get_next_bookmark(const wxString& path, long current_position) const;
106-
bookmark get_previous_bookmark(const wxString& path, long current_position) const;
10790
void set_document_format(const wxString& path, const wxString& format);
10891
wxString get_document_format(const wxString& path) const;
10992
void set_document_password(const wxString& path, const wxString& password);

app/main_window.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1007,9 +1007,9 @@ void main_window::on_recent_document(wxCommandEvent& event) {
10071007
const int id = event.GetId();
10081008
const int index = id - ID_RECENT_DOCUMENTS_BASE;
10091009
auto& config_mgr = wxGetApp().get_config_manager();
1010-
const wxArrayString recent_docs = config_mgr.get_recent_documents();
1011-
if (index >= 0 && index < static_cast<int>(recent_docs.GetCount())) {
1012-
const wxString& path = recent_docs[index];
1010+
auto recent_docs = get_recent_documents_for_menu(config_mgr.backend_for_ffi(), config_mgr.get(config_manager::recent_documents_to_show));
1011+
if (index >= 0 && index < static_cast<int>(recent_docs.size())) {
1012+
const wxString path = wxString::FromUTF8(recent_docs[static_cast<size_t>(index)].path.c_str());
10131013
[[maybe_unused]] const bool success = doc_manager->open_file(path);
10141014
}
10151015
}

lib/src/bridge.rs

Lines changed: 1 addition & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -214,12 +214,6 @@ pub mod ffi {
214214
pub closest_index: i32,
215215
}
216216

217-
pub struct FfiBookmark {
218-
pub start: i64,
219-
pub end: i64,
220-
pub note: String,
221-
}
222-
223217
pub struct FfiNavigationHistory {
224218
pub positions: Vec<i64>,
225219
pub index: usize,
@@ -298,11 +292,6 @@ pub mod ffi {
298292
fn config_manager_set_doc_bool(manager: &mut ConfigManager, path: &str, key: &str, value: bool);
299293
fn config_manager_set_doc_int(manager: &mut ConfigManager, path: &str, key: &str, value: i64);
300294
fn config_manager_add_recent_document(manager: &mut ConfigManager, path: &str);
301-
fn config_manager_get_recent_documents(manager: &ConfigManager) -> Vec<String>;
302-
fn config_manager_clear_recent_documents(manager: &mut ConfigManager);
303-
fn config_manager_add_opened_document(manager: &mut ConfigManager, path: &str);
304-
fn config_manager_remove_opened_document(manager: &mut ConfigManager, path: &str);
305-
fn config_manager_clear_opened_documents(manager: &mut ConfigManager);
306295
fn config_manager_set_document_position(manager: &mut ConfigManager, path: &str, position: i64);
307296
fn config_manager_get_document_position(manager: &ConfigManager, path: &str) -> i64;
308297
fn config_manager_set_navigation_history(
@@ -328,14 +317,6 @@ pub mod ffi {
328317
end: i64,
329318
note: &str,
330319
);
331-
fn config_manager_get_bookmarks(manager: &ConfigManager, path: &str) -> Vec<FfiBookmark>;
332-
fn config_manager_clear_bookmarks(manager: &mut ConfigManager, path: &str);
333-
fn config_manager_get_next_bookmark(manager: &ConfigManager, path: &str, current_position: i64) -> FfiBookmark;
334-
fn config_manager_get_previous_bookmark(
335-
manager: &ConfigManager,
336-
path: &str,
337-
current_position: i64,
338-
) -> FfiBookmark;
339320
fn config_manager_set_document_format(manager: &mut ConfigManager, path: &str, format: &str);
340321
fn config_manager_get_document_format(manager: &ConfigManager, path: &str) -> String;
341322
fn config_manager_set_document_password(manager: &mut ConfigManager, path: &str, password: &str);
@@ -531,7 +512,7 @@ use std::{fs::File, path::Path};
531512

532513
use self::ffi::UpdateStatus;
533514
use crate::{
534-
config::{Bookmark, ConfigManager as RustConfigManager, NavigationHistory},
515+
config::{ConfigManager as RustConfigManager, NavigationHistory},
535516
document::{DocumentHandle, TocItem},
536517
parser, update as update_module,
537518
utils::{encoding, text, zip as zip_module},
@@ -611,11 +592,6 @@ fn config_manager_set_doc_int(manager: &mut RustConfigManager, path: &str, key:
611592
}
612593

613594
ffi_wrapper!(mut config_manager_add_recent_document, add_recent_document(path: &str));
614-
ffi_wrapper!(config_manager_get_recent_documents, get_recent_documents -> Vec<String>);
615-
ffi_wrapper!(mut config_manager_clear_recent_documents, clear_recent_documents);
616-
ffi_wrapper!(mut config_manager_add_opened_document, add_opened_document(path: &str));
617-
ffi_wrapper!(mut config_manager_remove_opened_document, remove_opened_document(path: &str));
618-
ffi_wrapper!(mut config_manager_clear_opened_documents, clear_opened_documents);
619595
ffi_wrapper!(mut config_manager_set_document_position, set_document_position(path: &str, position: i64));
620596
ffi_wrapper!(config_manager_get_document_position, get_document_position(path: &str) -> i64);
621597

@@ -656,28 +632,6 @@ fn config_manager_update_bookmark_note(manager: &mut RustConfigManager, path: &s
656632
manager.update_bookmark_note(path, start, end, note);
657633
}
658634

659-
fn config_manager_get_bookmarks(manager: &RustConfigManager, path: &str) -> Vec<ffi::FfiBookmark> {
660-
manager.get_bookmarks(path).into_iter().map(Into::into).collect()
661-
}
662-
663-
ffi_wrapper!(mut config_manager_clear_bookmarks, clear_bookmarks(path: &str));
664-
665-
fn config_manager_get_next_bookmark(
666-
manager: &RustConfigManager,
667-
path: &str,
668-
current_position: i64,
669-
) -> ffi::FfiBookmark {
670-
manager.get_next_bookmark(path, current_position).into()
671-
}
672-
673-
fn config_manager_get_previous_bookmark(
674-
manager: &RustConfigManager,
675-
path: &str,
676-
current_position: i64,
677-
) -> ffi::FfiBookmark {
678-
manager.get_previous_bookmark(path, current_position).into()
679-
}
680-
681635
ffi_wrapper!(mut config_manager_set_document_format, set_document_format(path: &str, format: &str));
682636
ffi_wrapper!(config_manager_get_document_format, get_document_format(path: &str) -> String);
683637
ffi_wrapper!(mut config_manager_set_document_password, set_document_password(path: &str, password: &str));
@@ -688,12 +642,6 @@ ffi_wrapper!(config_manager_export_document_settings, export_document_settings(d
688642
ffi_wrapper!(mut config_manager_import_document_settings, import_document_settings(path: &str));
689643
ffi_wrapper!(mut config_manager_import_settings_from_file, import_settings_from_file(doc_path: &str, import_path: &str));
690644

691-
impl From<Bookmark> for ffi::FfiBookmark {
692-
fn from(bookmark: Bookmark) -> Self {
693-
Self { start: bookmark.start, end: bookmark.end, note: bookmark.note }
694-
}
695-
}
696-
697645
fn check_for_updates(current_version: &str, is_installer: bool) -> ffi::UpdateResult {
698646
match update_module::check_for_updates(current_version, is_installer) {
699647
Ok(outcome) => match outcome {

0 commit comments

Comments
 (0)