воскресенье, 1 декабря 2024 г.

Выпуск LibreOffice 25.2 alpha 1 - что нового?

Xisco Fauli в QA блоге проекта написал, что первая альфа LibreOffice 25.2 доступна для тестирования. Скачать можно по ссылкам, а новшества версии якобы написаны в РелизНотес.

Глянул я на тот РелизНотес, а там почти пусто =)) Разработчики забыли написать туда, свои активности или может вся работа делалась"под капотом" и юзеру просто не видна? Это отношение разрабов к наполнению релизнотесов в проекте мне всегда не нравилось, но и заставить их никто не может, такие дела...

вторник, 26 ноября 2024 г.

Управление макросами в LibreOffice - мы хотим перемен

Все, кто когда-либо сталкивался с макросами в LibreOffice, сталкиваются с забавной и раздражающей вещью - наличием кучи диалогов для выполнения одних и тех же действий для каждого языка программирования макросов, который поддерживает наш проект. В главном меню это выглядит вот так:

Мало разделения по языкам, так ещё и управление диалогами (которые можно создавать для макросов внутри LibreOffice) - это отдельная команда и свой диалог, выполнение макроса - это свой диалог.

У меня в свое время появилась идея, что все эти дела, связанные с управлением макросами должны быть в одном месте, в одном диалоге главном, который бы мог отображать макросы на всех ЯП, диалоги, и позволял бы выполнять действия над ними всеми в зависимости от языка и типа объекта. И я написал баг репорт - https://bugs.documentfoundation.org/show_bug.cgi?id=120658.

Идея единого диалога выглядела вот так, всё в одном диалоге:

Он был воспринят не очень однозначно и долго висел без какой-либо реакции (как и большинство наших баг репортов, кстати). Я сам-то не могу код на плюсах писать, а вот приставать к людям, которые код писать могут - это я могу. И вот мне повезло, я дважды просил Jim Raykowski глянуть, может ли он это реализовать и во второй раз он согласился и таки написал патч на почти четыре тысячи строк, который реализует мою идею. Вот ссылка на патч - https://gerrit.libreoffice.org/c/core/+/176254.

А вот видео - результат реализации:

В настоящее время патч ещё не влит в кодовую базу, идет процесс код-ревью. После того, как патч будет смержен, функционал надо будет потестить и потом надо будет поправить некоторые вещи в UI.
А самое забавное, что у нас нет под капотом механизма, который бы позволял управлять макросами на Python также, как идёт управление макросами на Basic. И в новом диалоге при выбранном макросе Python - выводится ошибка.
И дальнейшим планом видится именно допиливание нашего фреймворка для управления макросами так, чтобы можно было работать с Python макросами без лишних движений в виде установки расширения APSO и прочего. Но это тема для отдельного поста =)

среда, 9 октября 2024 г.

Для тех, кто захочет контрибьютить в LibreOffice

Этот пост - просто информация для желающих, с чего начинать контрибьютить в проект LibreOffice.

Вся актуальная информация на английском языке, но для программиста это не должно стать препятствием. Также вы уже должны знать С++, учить вас программировать с нуля здесь никто не будет.

Итак, для тех, кто захотел написать пару строк кода для LibreOffice:

Начать следует с прочтения вот этой ссылки - https://wiki.documentfoundation.org/Development/GetInvolved. Это ровно информация для новичков в проекте, как скачать исходники, как собрать свой билд, какие зависимости, для каких IDE есть предварительные настройки и как их включить, какой код стайл мы используем, как пишем патчи и как их засылаем. Обратите внимание, вам нужно достаточно современное железо с многоядреным процессором (4 и более ядер) и большое количество ОЗУ (8 или более Гб), потому что первоначальная сборка на 4-х ядерном Core i5 2,5 ГГц занимет ровно два часа времени (а в 14 потоков и 16 Гб памяти - ровно один час). Также необходимо около 30Гб сводобного места на диске (который уже должен быть SSD).

После того, как вы настроите окружение, встанет вопрос, а с чего же можно начать знакомиться с проектом. У нас есть список так называемых изи хаков именно для этой цели. Обычно это баг репорт, в котором достаточно подробно расписано что надо сделать и указана ссылка на конкретный файл или даже строку в исходниках. Вот этот список - https://wiki.documentfoundation.org/Development/EasyHacks/by_Required_Skill/Skill_C%2B%2B. Обратите внимание, список разбит на три группы по сложности, выбирайте себе любую цель и пробуйте написать патч.

Если вы достаточно опытный разработчик и вам сразу все понятно и возможно просто интересна какая-то конкретная тема, например производительность, утечки памяти, проблемы в поддержке каких-то форматов, UI, новые фичи - у нас есть багзилла с бесконечно длинным списком проблем. Также у нас есть некая сортировка проблем по темам, мы называем это МЕТА багами, найти их можно вот здесь -  https://wiki.documentfoundation.org/QA/Tracking_Bugs. Там есть фильтры, можно отсортировать то, что вам надо и покопаться в конкретных баг репортах по выбранной теме.

После написания патча, он должен попасть к нам в геррит - https://gerrit.libreoffice.org/q/status:open+-is:wip+branch:master. Конечно мы используем Git, однако у нас имеется возможность поправить пару строк, используя веб-интерфейс. До пуша в геррит вы обязаны прогнать свой патч, используя команду make check - это позволит вам локально прогнать все юнит-тесты. В геррите патч проверит бот Дженкинс, который также гоняет юнит-тесты для каждой из популярных десктопных ОС, а затем ваш патч должен пройти код-ревью и кто-то из опытных разработчиков с правами должен вам поставить +2 и замержить ваш патч.

Найти разработчиков всегда можно в рабочие часы по средне-европейскому времени в IRC канале - https://web.libera.chat/?chan=#libreoffice-dev. Общение на английском языке.

Также можно задать технический вопрос в список рассылки для разработчиков (также на английском языке) - https://wiki.documentfoundation.org/Development/Mailing_List

Насчет использования ИИ при написании патчей - это допускается, но вы должны явно про это указать в описании патча, и вы должны суметь объяснить сами, что делает код, который вам нагенерил бредогенератор. Естественно патч должен собираться и проходить тесты у вас локально. 

По каким-то организационным вопросам можно спросить у меня в Телеграм (пока его не прибили), ник @Kompilainenn.

пятница, 26 июля 2024 г.

Выпуск LibreOffice 24.8 RC1. Что нового в 24.8?

The Document Foundation объявил о доступности для тестирования первого релиз кандидата LibreOffice 24.8. По ссылке можно скачать дистрибутив под любую ОС.

Что же нового нам предлагает LibreOffice 24.8?

Writer

  • Теперь можно изменить размер панели комментариев справа от документа
  • Улучшена поддержка многостраничных "плавающих" таблиц
  • Добавлена поддержка хитрых конечных ссылок для документов DOCX, DOC и RTF
  • Подсветка стилей теперь применяется только к стилям, которые используются в документе
  • Во всплывающей подсказке при наведении на гиперссылку теперь показывается URL адрес
  • На Боковую панель добавлена панель Поиск с отображением результатов поиска и некоторого текста вокруг
  • Реализованы различные улучшения для работы с переносами слов

Навигатор в Writer

  • Теперь позволяет вставлять перекрестные ссылки в документ путем перетаскивания соответсвующего имени объекта из Навигатора в текст, при этом показывается контекстное меню, если вариантов для вставки несколько
  • Теперь позволяет удалять простые и концевые сноски
  • Теперь показывает специальный значок для связанных картинок с некорректной ссылкой

Calc

  • Теперь можно задать диапазон ячеек для экспорта в PDF
  • Добавлены функции LET, XLOOKUP, XMATCH, FILTER, RANDARRAY, SEQUENCE, SORT, SORTBY, UNIQUE, аналогичные существующим в MS Excel
  • Улучшена поддержка копирования данных из Google Sheets в Calc
  • Комментарии могут быть отредактированы или удалены прямо из Навигатора
  • Добавлена поддержка форматирования сводных таблиц MS Excel (поддерживается импорт и экспорт)
  • Проверка вводимых данных теперь различает заглавыне и строчные символы
  • Диалог Лист > Вставить ячейки теперь позволяет вставить более одной строки или столбца
  • Добавлена настройка цвета фона ячейка, когда она в режиме редактирования
  • Улучшен и упрощен выбор операций сравнения при настройке условного форматирования с использованием набора значков

Impress

  • В основном режиме отображения слайдов была добавлена скрываемая панель Примечания
  • Встроенные шаблоны презентаций были доработаны
  • Добавлен диалог для перехода к нужному слайду
  • Нажатие на Enter в пустом элементе списка теперь завершает список
  • Перелистывание слайдов теперь работает в обычном режиме
  • Презентации в формате PPTX с большим количеством графики теперь открываются быстрее

Draw

  • Наведение курсора мыши на вкладку слоя теперь подсвечивает фигуры на этом слое
  • Ускорено открытие некоторых PDF файлов

Base

  • Исправлена пара проблем с Firebird

Диаграммы

  • Добавлены две новые суб-диаграммы для расшифровки одной из долей круговой диаграммы (хз, как это называется в Эксель)

Общие изменения

  • Список последних открытых документов теперь отображает только документы того модуля, в котором открыт (текстовые в Writer, таблицы в Calc, презентации в Impress и так далее)
  • Пользователю показывается уведомление о необходимости переоткрыть документ, если изменен уровень безопасности макросов
  • Различные улучшения в поддержке языков юговосточной азии
  • Кнопки для выбора шрифта, подсветки и фона теперь запоминают свое состояние между сессиями с использованием офиса
  • Вроде бы включили автоматическое обновление офиса по аналогии с тем, как это делает Firefox, но я не уловил, как это работает и работает ли вообще
  • Объекты Галереи теперь можно искать, используя специальное поле для поиска в Боковой панели
  • Изменена система шифрования файлов!!! Если в этой версии вы сохраните файл с шифрованием, то чтобы его открыть, вам понадобиться версия офиса не ниже 24.8!

Фильтры

  • Настройка "Удалять персональные данные при сохранении" теперь работает для всех форматов и удаляет вообще все персональные данные из всех мест документа
  • Добавлена реализация  feMerge, feComposite и feBlend свойств для формата SVG

Basic IDE

  • Добавлен выбор тем оформления и подсветки кода
  • Текущая строка в коде теперь подсвечивается
  • Теперь сохраняется вид IDE между сессиями
  • Щелчок на номере строки в строке состояния откроет диалог "Перейти к строке"

Поддержка платформ

  • Поддержка Windows 7, 8 и 8.1 объявлена не поддержкой. Офис будет работать, но возможны проблемы с частью, написанной на Python (это некоторые мастера из меню Файл)

среда, 5 июня 2024 г.

Функция LET тоже будет добавлена в LibreOffice Calc

Balazs Varga продолжает нас радовать своими патчами. На очереди функция LET! Вот ссылка на патч. Интересно, там ещё десяток функций ещё в МС Эксель 2021 добавили, которые пока в LibreOffice Calc не реализованы, будет ли Balazs Varga продолжать свое дело и с ними?

четверг, 2 мая 2024 г.

пятница, 26 апреля 2024 г.

Функции динамических массивов в Calc. SEQUENCE

Вот и настал черёд следующей функции динамических массивов SEQUENCE. Balazs Varga создал соответствующий патч. Осталось добавить всего пару - UNIQUE, RANDARRAY.

воскресенье, 7 апреля 2024 г.

Быстрый поиск на Боковой панели Writer

Видели, как работает быстрый поиск в MS Word? Там сбоку от текста появляются фрагменты текста, где встречается искомое выражение. Виден контекст просто. В Writer такого не было до вчера буквально. А вчера запилили именно такую фичу в Writer!

Выглядит это пока вот так:

 

Единственно, пока по Ctrl+F эта панель не вызывается, но есть соответствующий запрос в багзилле, плюс при темной теме есть бага с отображением фрагментов текста в Боковой панели. Но это всё починят, я думаю, достаточно быстро. А так, фича достаточно полезная.