Изменений не так много, но над некоторыми пришлось постараться как следует
👀 Изменения за эту версию
Внешний вид и функционал:
• На страницы тайтлов добавлена секция «Оставить комментарий»
• Для комментариев реализован парсинг стилевых тегов (жирный, курсив, подчёркнутый и
Незаметные улучшения:
• Добавлены переменные срады для стабилизации работы WebKit
• Исправлена логика отмечания пользователя статусом «В сети» на сайте
✏️ Истории разработки: Сложно, но красиво
На этой неделе пришлось повозиться с новой проблемой — тегами стилей, а также тегом спойлера. Со стилевыми тегами ничего сложно не было, так как виджет Gtk.Label поддерживает форматирование с использованием тегов, но тег-спойлер — это особый тег, который позволяет скрывать и раскрывать содержимое. В итоге при нажатии на кнопку, текст в виджете меняется, а кнопка для скрытия переезжает в конец текста, и наоборот. Однако могут встречаться баги, если несколько спойлеров или спойлер и ник находятся в одном комментарии — это будет фикситься на грядущей неделе.
Сложнее было разобраться с поведением поля ввода для оставления собственных комментариев. Для ввода текста используется Gtk.TextView, который в том числе поддерживает и операции отмены последних действий и восстановления отменённых действий (undo/redo). Добавить форматирование текста по сочетанию клавиш тоже было не сложно, однако после этого обнаружилась проблема — отмена и восстановление действий не видит наложения тегов, то есть если пользователь вставил текст, сделал его жирным, курсивным или что-то ещё, а потом нажал Ctrl + Z, то отменяемым действием будет вставка текста. На эту тему даже открыта Задача в баг-трекере библиотеки GTK — https://gitlab.gnome.org/GNOME/gtk/-/issues/7993, однако пока что подвижек по этому поводу нет. Поэтому сейчас эта проблема остаётся и в приложении.
💬 Если у вас есть идеи для проекта или вы нашли баг — пишите под постами, в чате проекта или в Задачах на ALT Linux Space
Канал | Чат | Сайт
