OutWiker 4.0.0.948 alpha 4. Новые возможности в дереве заметок
Выложил новую предновогоднюю версию OutWiker 4.0.0.948 alpha 4, в которую вошло много заметных изменений. В предыдущих альфа-версиях я начал переделывать дерево заметок, и вот, наконец, в этой версии стали появляться новые возможности, ради которых все это было задумано.
Начнем с того, что в посте к прошлой версии я обещал доделать. Для начала довел до ума перетаскивание элементов. Теперь с помощью перетаскивания можно не только менять родителя заметки, но еще и перемещать заметки вверх/вниз. Или одновременно переместить заметку к другому родителю и сразу поместить ее в нужную позицию. Раньше для этого приходилось несколько раз тыкать кнопки «Переместить страницу вверх» или «Переместить страницу вниз». Некоторые оформительские моменты я еще хочу поправить, но в целом оно работает так: если при перемещении попасть между заметками, то будет появляться маркер, обозначающий, что если заметку отпустить здесь, то она попадет до или после выделенной заметки.
Второе важное изменение, которое висит у меня в списке задач чуть ли не с момента сотворения мира первых версий — это возможность изменения цвета заметок в дереве. Для этого нужно в диалоге свойств страницы зайти на вкладку «Внешний вид», где раньше была только настройка стиля страницы. Теперь там появился новый элемент управления для выбора цвета, написанный совместно с искусственным интеллектом, о чем я писал в прошлом посте. В выпадающем списке можно выбрать нужный цвет.
По умолчанию для всех заметок цвет используется такой, какой он установлен в настройках (в разделе «Интерфейс — Цвета» опция «Цвет текста основных панелей»). Если в выпадающем списке нет нужного цвета, то можно щелкнуть на строку «Выбрать цвет», в результате откроется диалог выбора цвета, и там можно выбрать цвет, который вам нужен. После выбора своего цвета он появится в общем списке и сохранится после перезапуска программы. Это сделано с расчетом на то, что вряд ли пользователь будет каждый раз выбирать новый экзотический цвет, а скорее всего будет устанавливать цвета из небольшого набора.
Для себя эту возможность я применил следующим образом. Я в OutWiker-е веду дневник, где записываю, что сделал за день. И теперь записи за субботу и воскресенье стал раскрашивать красным цветом. Это сделало более наглядное разделение заметок на недели. Еще, если не забываю, и если не лень, иногда в конце месяца пишу итоги месяца, и эту заметку тоже стал выделять другим цветом. Выглядит у меня это так:
После того, как я добавил эту возможность, возник вопрос — каким цветом красить заметку, если она выбрана в данный момент? До сих пор такой вопрос не возникал, потому что обычный цвет был черный (или который выберет пользователь в настройках), но при выборе заметки цвет переключался на белый, чтобы хорошо был заметен на фоне голубого выделения. Забегая вперед, скажу, что в перспективе я собираюсь сделать настраиваемым цвет для выделения. А как быть с раскрашенной заметкой?
Первый вариант — оставлять надпись того же цвета, который для нее выбрал пользователь. Но скорее всего пользователь, если он не враг своему зрению, выберет цвет, контрастный основному фону, и тогда этот цвет был бы почти неразличим на фоне выделения. Если в выделенной заметке цвет устанавливать всегда белым, то возникает другая проблема. В этом случае, если изменяется цвет уже существующей выбранной заметки, то при изменении цвета не видно, что что-то произошло.
Я решил пойти на хитрость. Отображаемый цвет теперь рассчитывается на основе выбранного цвета и цвета фона выделения. Для этого установленный цвет и цвет выделения переводятся в цветовое пространство Lab, (где L отвечает за светлость светлоту), и если цвет выделения скорее темный, то к цвету заметки в канале L добавляется некоторое значение, а если цвет выделения — скорее светлый (с расчетом на темную тему), то из канала L некоторое значение вычитается. Таким образом общий тон сохраняется, но цвет становится светлее или темнее. Для того, чтобы все это провернуть, пришлось почитать теорию для перевода цвета из RGB в Lab и обратно. Узнал, что это не такая простая операция, как я предполагал изначально. Здесь я снова для генерации кода воспользовался подсказками искусственного интеллекта (опять Copilot код сгенерил более правильный по сравнению с GigaChat). Зато теперь я знаю, что такое цветовая модель XYZ, которая используется как промежуточное пространство для перевода цвета из одного пространства в другое. Раньше про XYZ я даже не слышал и наивно предполагал, что из одного цветового пространства в другое цвет переводится простыми формулами.
После подбора разных коэффициентов и добавок вроде бы получилось сносно.
Была еще идея сделать возможность установки цвета фона для заголовков страниц, но что-то я не уверен, что это можно как-то с пользой использовать. Если кому-то это очень надо, то пишите — сделать это теперь не сложно.
Еще одна штука, которую сделал в этой версии — это изменение размера шрифта в дереве заметок. По умолчанию используется размер шрифта, установленный в системе, но если нужен другой размер шрифта, то для его изменения есть два пути. Первый — зайти в диалог настроек в раздел «Интерфейс — Дерево заметок», и там выбрать нужный размер. Пока в этом разделе больше ничего нет, но я думаю, что со временем там еще что-то будет появляться.
И второй способ — нажать Ctrl и покрутить колесико мыши, когда курсор находится над деревом заметок. Оба эти способа пока делают одно и то же. «Пока», потому что в будущем я планирую сделать, чтобы масштабировались еще значки в дереве. На данный момент размер значков не меняется, хотя потенциально эта возможность уже заложена в новой версии дерева заметок, я это даже показывал на скриншоте в посте про вторую альфа-версию.
Кажется, это все, что успел сделать с момента выхода прошлой альфа-версии. На мой взгляд, получилось интересно. Есть еще, что надо подправить в плане оформления и внутреннего рефакторинга кода, но я надеюсь, что теперь в очередных версиях будут появляться внешне заметные изменения. Найти бы время, чтобы всем этим заниматься…
На этом пока все. Следующая альфа-версия будет скорее всего уже в следующем 2025 году. А текущую альфа-версию OutWiker, как обычно, можно скачать на этой странице.
Подписывайтесь на OutWiker в социальных сетях:
PS. Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.
Leave a comment