diff options
author | Thibaut Girka <thib@sitedethib.com> | 2018-03-22 16:10:52 +0100 |
---|---|---|
committer | fiaxh <git@lightrise.org> | 2021-01-21 15:31:12 +0100 |
commit | 830eba3a06506fd5ac527a74c8ce4ad5ba39cbf0 (patch) | |
tree | 022b90b826667940499c49f39506e19e4c7ad213 /main/src/ui/chat_input/spell_checker.vala | |
parent | f94d8f56c79b0fe792b471a2423edb7beb4abd89 (diff) | |
download | dino-830eba3a06506fd5ac527a74c8ce4ad5ba39cbf0.tar.gz dino-830eba3a06506fd5ac527a74c8ce4ad5ba39cbf0.zip |
Add spell-checking using Gspell
Diffstat (limited to 'main/src/ui/chat_input/spell_checker.vala')
-rw-r--r-- | main/src/ui/chat_input/spell_checker.vala | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/main/src/ui/chat_input/spell_checker.vala b/main/src/ui/chat_input/spell_checker.vala new file mode 100644 index 00000000..a05d9251 --- /dev/null +++ b/main/src/ui/chat_input/spell_checker.vala @@ -0,0 +1,35 @@ +using Gdk; +using Gee; +using Gspell; + +using Dino.Entities; + +namespace Dino.Ui { + +public class SpellChecker { + + private Conversation? conversation; + private TextView gspell_view; + private HashMap<Conversation, Language> language_cache = new HashMap<Conversation, Language>(Conversation.hash_func, Conversation.equals_func); + + public SpellChecker(Gtk.TextView text_input) { + this.gspell_view = TextView.get_from_gtk_text_view(text_input); + gspell_view.basic_setup(); + } + + public void initialize_for_conversation(Conversation conversation) { + Checker spell_checker = TextBuffer.get_from_gtk_text_buffer(gspell_view.view.buffer).spell_checker; + + if (this.conversation != null) language_cache[this.conversation] = spell_checker.language; + + this.conversation = conversation; + + if (language_cache.has_key(this.conversation)) { + spell_checker.language = language_cache[conversation]; + } else { + spell_checker.language = null; + } + } +} + +} |