room-details: Use the room's language for the spell checker

This commit is contained in:
Kévin Commaille 2023-10-29 17:13:37 +01:00
parent 57b0fc8749
commit 4e09079624
No known key found for this signature in database
GPG Key ID: 29A48C1F03620416
1 changed files with 6 additions and 8 deletions

View File

@ -27,7 +27,7 @@ use crate::{
media::{get_image_info, load_file},
not_expr, or_expr,
template_callbacks::TemplateCallbacks,
BoundObjectWeakRef, OngoingAsyncAction,
BoundObjectWeakRef, OngoingAsyncAction, RoomSpellChecker,
},
};
@ -67,6 +67,7 @@ mod imp {
pub changing_name: RefCell<Option<OngoingAsyncAction<String>>>,
pub changing_topic: RefCell<Option<OngoingAsyncAction<String>>>,
pub expr_watches: RefCell<Vec<gtk::ExpressionWatch>>,
pub spell_checker: RoomSpellChecker,
}
#[glib::object_subclass]
@ -134,13 +135,8 @@ mod imp {
crate::utils::sourceview::setup_style_scheme(&buffer);
// Spell checker.
let spell_checker = spelling::Checker::default();
let adapter = spelling::TextBufferAdapter::new(&buffer, &spell_checker);
let extra_menu = adapter.menu_model();
self.room_topic_text_view.set_extra_menu(Some(&extra_menu));
self.room_topic_text_view
.insert_action_group("spelling", Some(&adapter));
adapter.set_enabled(true);
self.spell_checker
.set_up_sourceview(&self.room_topic_text_view);
}
fn dispose(&self) {
@ -215,6 +211,8 @@ impl GeneralPage {
self.init_avatar(room);
self.init_edit_mode(room);
imp.spell_checker.set_room(Some(room));
// Keep strong reference to members list.
imp.room_members.replace(Some(room.get_or_create_members()));