пятница, 30 ноября 2018 г.

Разработка LibreOffice. Создание панели инструментов (GtkToolbar) в Glade

Ранее я писал о процессе создания диалога с элементами управления в Glade. В той статье мы затронули создание и размещение кнопок, выпадающих списков, чекбоксов, меток.
Сейчас мне потребовалось внутри существующего диалога создать панель инструментов (GtkToolbar) с парой кнопок для форматирования текста. И я столкнулся с тем, что контейнер GtkToolbar не позволяет на себе размещать кнопки так, как мы делали это ранее с контейнером типа GtkGrid. Оказывается панель инструментов (GtkToolbar) - это отдельный тип контейнера, он позволяет себя редактировать (Edit). Итак, щелкаем правой кнопкой мыши по уже добавленному контейнеру прямо в центральной рабочей области, либо по имени нашей панели инструментов в древовидной структуре в левой части окна Glade, и выбираем пункт контекстного меню Edit.
Откроется вот такой крайне плохо реализованный диалог (его просто трудно заметить на фоне главного окна Glade, он рамок не имеет):
В левой части диалога редактирования панели инструментов есть специальная область, которая отображает доступные элементы управления на этой панели инструментов, аналогичная по назначению структуре в левой части основного окна Glade. В нижней части этой области есть две кнопки: "плюс" и "минус". По нажатию на кнопку "плюс" в список элементов управления добавляется новый элемент, по нажатию на "минус" - удаляется текущий выделенный элемент. Причем удалить существующую кнопку с панели инструментов можно так же, как и все иные виджеты: выделите и нажмите клавишу Delete на клавиатуре. Все оказалось просто (когда знаешь).
Каждый элемент управления может быть нескольких типов: просто кнопкой, кнопкой-переключателем, радиокнопкой, разделителем,  выпадающим меню. В соответствии с типом немного изменяются доступные для правки параметры элемента управления. Причем все параметры кнопок на панели инструментов доступны и в правой части  главного окна Glade, при условии, что такая кнопка выделена.

понедельник, 19 ноября 2018 г.

Выпуск LibreOffice 6.2 beta 1

The Document Foundation объявил о доступности для тестирования LibreOffice 6.2 beta 1. Скачать можно по ссылке https://dev-builds.libreoffice.org/pre-releases/ для операционных систем Windows, Linux, macOS в 32- и 64-битных версиях.
Обо всех найденных ошибках нужно сообщать разработчикам в багзиллу проекта .
Список исправленных ошибок и нового функционала доступен по ссылке https://dev-builds.libreoffice.org/pre-releases/src/bugs-changelog-libreoffice-6-2-release-6.2.0.0.beta1.log 

суббота, 17 ноября 2018 г.

Обзор изменений в теме значков Elementary

Rizal Muttaqin, автор темы значков Karasa Jaga, описал в своем блоге изменения, которые произошли в другой теме значков, Elementary, с тех пор, как он стал активно данную тему дорабатывать.
Просто чтобы вы знали, различных значков в каждой отдельной теме LibreOffice более 2000 штук.
Пройдите по ссылке и посмотрите иллюстрации (там все очевидно до/после), вполне наглядно видно, что была проделана огромная работа.

воскресенье, 11 ноября 2018 г.

Разработка LibreOffice. Копирование патча из gerrit в локальный репозиторий

Представим ситуацию, что патч для LibreOffice вы сделали в веб-интерфейсе, а теперь вам захотелось работу этого патча локально оценить в вашей собственной сборке (как эту самую сборку сделать, я писал ранее).
Итак, консоль наш лучший друг. Переходим в каталог с локальным репозиторием LibreOffice и даём там команду git checkout -B some_name master.
Эта команда создаст у вас в репозитории локальную новую ветку с именем some_name (имя можно задать любое вообще).
Далее нужно открыть сайт https://gerrit.libreoffice.org/ перейти в ваш патч и в правом верхнем углу раскрыть выпадающее меню Download.
В строке Cherry Pick справа есть значок "Copy to clipboard", нажмите его. В буфер обмена будет скопирована определённая команда. Вставьте её в консоль через контекстное меню и выполните.
Далее нужно собрать обновленную сборку с вашим патчем, делается это командой make build-nocheck. В этом случае, сборка будет создана быстро, буквально пара минут. Далее мы запускаем LibreOffice с включённым вашим патчем все той же командой instdir/program/soffice.
На этом всё, можно наглядно увидеть, как работает (или не работает, что бывает чаще) ваш патч на живую.
Выйти из локальной новой ветки обратно в главную мастер ветку можно командой git checkout master.

суббота, 10 ноября 2018 г.

Разработка LibreOffice. Правим код по мелочи, используя веб-интерфейс

18 мая 2020г. Я обновил этот пост, поскольку TDF обновил версию gerrit до более новой, молодёжной и прогрессивной.
Если вы знаете, что ваш патч в проект LibreOffice будет состоять из пары новых строк кода (или изменения пары строк существующего), то такой патч можно сделать на коленке с планшета, сидя в метро, используя веб-интерфейс по адресу https://gerrit.libreoffice.org/.
Примечание: в этой статье мы не станем рассматривать необходимость проведения предварительных изысканий в кодовой базе LibreOffice, будем считать, что вы уже знаете, где именно и какие нужно вносить правки.
Примечание: изменения в Справку вносятся точно также, за исключением одного нюанса при выборе репозитория.
Перво наперво нужно авторизоваться на указанном сайте. В правом верхнем углу есть ссылка SIGN IT. Переходим по ссылке и видим такое:
Поддерживается авторизация исключительно по логину/паролю от вашего аккаунта в TDF!  Если у вас нет аккаунта, то создайте его, используя ту оранжевую кнопку. Авторизуйтесь на сайте.
Далее, чтобы создать патч, нужно выбрать соответствующие проект и ветку (в данной статье мы планируем создать патч в основной разрабатываемой ветке "master").
В верхней части сайта жмем на ссылку Browse и в выпадающем меню выбираем Repositories:
В поле Filter вбиваем core (или help, если вы хотите внести изменения в справку). Чуть ниже из огромного списка осталась одна строка с именем core (или соответственно help). Щёлкаем в этой строке по слову core (help):
Страница обновится. В левой части нажмите на слово Commands.

По центру появится кнопка CREATE CHANGE, жмём её.
Далее появляется вот такое окно (без всяких подсказок, что печально):
В первой строке Select branch for new change вбивайте master и в появившемся списке выбирайте вариант просто master. В поле Enter topic for new change ничего не вводите, в поле Description нужно ввести номер ошибки из багзиллы в формате tdf#номер_бага (это в случае, если вы исправляете ошибку, если нет, то конечно же номер не нужен) и краткое описание изменения. Общая длина описания здесь не должна быть более 75 символов в одной строке (в дальнейшем описание можно будет сделать более подробным и объемным). И жмём кнопку CREATE в правом нижнем углу окошка и видим такое:
В верхнем правом углу нажимаем кнопку EDIT и далее нам нужно выбрать тот файл в исходном коде, в который мы вносим правки. В нижней трети экрана справа есть строка со словами:
 
Нажмите кнопку ADD/OPEN/UPLOAD и в открывшемся окне введите путь до файла, который собираемся изменять, например startcenter.ui:
при вводе имени файла вам будет показан список-подсказка, в поле для ввода должен быть прописан полный путь до нужного файла, а не просто одно имя файла.
Далее нажмите кнопку OPEN и откроется окно редактора (к сожалению обновление gerrit принесло с собой задержки в работе интерфейса, так что если ничего не происходит на экране, просто подождите пару секунд):
После внесения изменений в исходный код, нажмите кнопку SAVE (дождитесь появления в нижнем левом углу сообщения All changes saved), а затем кнопку CLOSE. Вы вернетесь на предыдущий экран, который будет  содержать строку со ссылкой на ваш измененный файл:
Если нужно в рамках одного патча править несколько файлов, то опять жмём ADD/OPEN/UPLOAD, и так далее, как было чуть выше описано.
Далее жмём в правом верхнем углу PUBLISH EDIT.
Если у вас есть знакомый разработчик LibreOffice, который готов вам помочь, то лучше всего его добавить в ревьюеры вашего патча. В левой части страницы находим слово ADD REVIEWER и щёлкаем на него. В появившемся окне в верхней строке пишем либо ник, либо электронную почту разработчика и жмём кнопку START REVIEW в правом нижнем углу окна.
Если знакомого нет, то придется просто ждать, пока кто-то из разработчиков не посмотрит на патч в порядке живой очереди. Также можно попросить кого-нибудь из разработчиков сделать ревью на IRC канале #libreoffice-dev в сети freenode.net.
Если вы никого не знаете в проекте, тогда просто нажмите кнопку START REVIEW.
После этого сайт можно закрыть и ждать двух сообщений минимум: первое от тестирующего все патчи бота jenkins, второе от ревьюера-разработчика.
Только при условии получения +1 от jenkins'a и +2 от человека-ревьюера ваш патч может быть принят, его ревьюер и вольет в кодовую базу, сразу, как проставит +2.
Удачи!

понедельник, 5 ноября 2018 г.

Выпуск LibreOffice 6.0.7 и 6.1.3

The Document Foundation объявил о выпуске LibreOffice версий 6.0.7 и 6.1.3. Всем пользователям соответствующих веток рекомендуется обновиться.
Списки исправленных ошибок для 6.0.7:
Списки исправленных ошибок для 6.1.3:

Скачать новые версии LibreOffice, как всегда, можно отсюда https://www.libreoffice.org/download/.

воскресенье, 4 ноября 2018 г.

Новое расположение вкладок в диалогах LibreOffice 6.2

Случайно увидел в ежедневной сборке, что диалог "Формат ячейки" в Calc стал выглядеть оригинально, если используется бэкэнд gtk3. Скриншот сделан в среде Openbox, а не в Gnome, поэтому общий внешний вид странноватый и выглядит, как неродной, но не это важно:

Вкладки сбоку! Я не очень уловил и пока не интересовался у разработчиков - это для всех диалогов будет уже в 6.2 и только для gtk3, или это вообще пока эксперимент.
Update: я глянул в Glade, изменить расположение вкладок на положение "слева" - это очень просто, изменяется одно единственное свойство у контейнера. Вопрос в том, какова причина таких изменений.
Update 2: пообщался с разработчиком, который это пилит. Оказывается GTK 3 не умеет в многострочное расположение вкладок, он умеет вкладки только прокручивать по горизонтали, если они все не вмещаются целиком в размеры диалога. Поэтому, если вкладок много, то в некоторых диалогах они (может быть!) будут перемещаться сверху в левую часть диалога. Будет ли это полностью реализовано к выходу LibreOffice 6.2, пока не понятно.