OutWiker 4.0.0.966 beta 4. В основном исправление ошибок
Выложил новую бета-версию OutWiker в номером 4.0.0.966. В этой версии сначала я сосредоточился на исправлении ошибок и добавлении новых настроек внешнего вида, а затем внезапно для себя самого ввязался в большой рефакторинг кода (изменение структуры без изменения функциональности). Ну и продолжаю обновлять значки для заметок, переводя их в векторный формат.
Для начала была исправлена ошибка, связанная с настройками шрифта в редакторе заметок. В предыдущих версиях при изменении шрифта он менялся не для всех стилей в редакторе, поэтому могла получиться ситуация, когда основной текст был написан одним шрифтом, а подкрашенные ссылки или другие элементы викинотации — другим. Теперь такой проблемы нет.
В продолжение разговора о редакторе, меня просили добавить больше настроек внешнего вида левого поля редактора, где показаны номера строк. По просьбе пользователей сделал настройку для изменения ширины этого поля. Она расположена в диалоге настроек в разделе «Редактор — Общее».
По умолчанию там установлено значение 0. Это значит, что ширина должна подстраиваться автоматически под то количество символов, которое требуется, чтобы показать наибольший номер строки (так это работало до сих пор). Если в этом поле установить значение, отличное от 0, то ширина будет фиксированная.
В этой версии добавил возможность поменять цвет шрифта для номеров строк. Это делается в разделе настроек «Интерфейс — Цвета», параметр называется «Цвет шрифта номеров строк».
Исправил баг, связанный с пользовательским словарем для проверки орфографии, который настраивается в разделе параметров «Редактор — Проверка орфографии». Раньше пользовательский словарь обновлялся при перезапуске программы, а теперь при закрытии диалога настроек.
Из мелочей можно отметить, что теперь при перемещении заметки от одной родительской заметки к другой обновляется дата последней правки перемещаемой страницы.
И дальше понеслось самое интересное (для меня, а не для пользователей программы). Началось все с того, что я решил поправить работу закладок на страницы. Дело в том, что когда еще в первых версиях программы появилась возможность добавлять страницы в закладки, у страниц не было уникальных идентификаторов, и все ссылки на страницы осуществлялись по путям относительно корня дерева. Отсюда возникают сложности, связанные с тем, что страницы в процессе работы могут переименовываться, удаляться или перемещаться от одного родителя к другому. И класс для работы с закладками все эти события должен отслеживать. Я не буду сейчас вдаваться в тонкости реализации, но я заметил, что перемещение страниц не отслеживалось, и поэтому, если страницу из списка закладок переместить к другому родителю, она пропадала из закладок. Решить эту проблему, а заодно сильно упростить работу с закладками можно, если в закладки сохранять идентификаторы страниц вместо относительных путей. При этом хотелось оставить обратную совместимость со старыми закладками. Именно этим я и занялся. Дальше все как в тумане 🙂
Мне пришлось лезть в такие археологические слои кода, которые я не трогал много лет, чуть ли не с первых версий OutWiker. По ходу дела мне захотелось упростить работу с идентификаторами страниц, которые в коде были приделаны сбоку и держались на изоленте. В итоге этот рефакторинг у меня занял недели две. В процессе его реализации я сам не до конца представлял, к чему он приведет, но в итоге получилось, кажется, неплохо. Код стал чуть проще. Хорошо, что эта часть кода была хорошо обложена тестами, которые тоже пришлось постоянно подстраивать под новое поведение, но по крайней мере они дали хоть какую-то уверенность, что код работает так, как ожидается.
В результате работу с закладками я переделал, теперь они хранят идентификаторы страниц, но старые закладки тоже сохранились. Правда, для старых закладок по-прежнему не отслеживается перемещение от родителю к родителю, но для новых закладок это не является проблемой. Поэтому, если вам не лень, то лучше пройтись по закладкам, убрать эти страницы из закладок и добавить заново. Но имейте в виду, что новые закладки не будут видны, если вы решите открыть эту базу заметок в старой версии программы. А вообще внешне с точки зрения пользователя ничего поменяться не должно, все выглядит так, как и раньше.
Ну и в последнюю неделю я добавил несколько новых значков для заметок и часть старых значков переделал в векторный формат. Но в этот раз таких значков было не много.
Кажется, это все изменения в этой версии. В следующей версии я продолжу исправлять баги и перерисовывать значки, и надо уже обновлять справку по программе. Надеюсь, что дальше все обойдется без больших переделок кода.
Последнюю бета-версию OutWiker, как обычно, можно скачать на этой странице.
Подписывайтесь на OutWiker в социальных сетях:
PS. Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.







Leave a comment