Разработчики из команды дизайна опубликовали интересный пост о своём видении проблем в управлении объектами в Draw и о том, как нужно улучшить в связи с этим Навигатор. Мой немного вольный перевод ниже.
Как Навигатор может помочь в управлении объектами в LibreOffice Draw
Управление различными объектами имеет большое значение для LibreOffice Draw, особенно в случае, когда рисунок или схема становятся сложными, с большим количеством объектов и групп, размещённых на разных слоях с тщательно проработанным порядком.
Улучшения для работы со слоями пользователи просят не только в прошедшем недавно опросе о Draw, но также в запросах на улучшения в LibreOffice в багзилле проекта. Метабаг #99648 собирает в себе все ошибки и запросы относительно слоев в Draw.
Есть также много запросов об улучшении выделения объектов и их организации. Например, как привязать несколько объектов, легко выбрать пересекающиеся объекты, как визуализировать мульти-выбор и уметь находить фигуры по атрибуту или формату. Метабаг #100155 собирает в себе улучшения по выделению объектов и их выравниванию.
Этот текст направлен на решение указанных вопросов путем расширения возможностей Навигатора.
Текущее состояние
В то время, как имеются запросы от пользователей на улучшение работы со слоями, многое зависит от того факта, что стандарт ODF, и, следовательно, LibreOffice, обрабатывает слои отлично от других программ. Формат файла SVG не имеет определения «слой», но программы, работающие с SVG, такие как Inkscape, определяет слой, как «тип группы объектов», а порядок слоев влияет на то, какие объекты появляются над другими. Спецификация ODF говорит также «Слои группы рисованых объектов. Назначение фигуры слою не меняет его порядок рендеринга, как это определено его атрибутом draw:Z-index». Из Руководства LibreOffice Draw: «Слои в LibreOffice Draw позволяют собрать связанные элементы на странице рисования .... Слои не определяют порядок расположения объектов на странице рисования ...».
Таким образом, наше первое предложение – переименовать существующие в Draw слои во что-то вроде «коллекции», чтобы устранить недоразумение, которое сейчас существует, потому что текущие «слои» не влияют на порядок наслоения объектов.
Объекты имеют порядок появления в рисунке, который определяет последовательность, в которой они выбираются при нажатии клавиши Tab (если не менять вручную расположение объектов по оси z). Они также имеют порядок наложения, который определяет, какие объекты появляются над другими (также известный как z-порядок), а также информация об их принадлежности к группе и «слою» (коллекции) — и все полностью независимы друг от друга. Благодаря этой «гибкости», объекты могут быть сгруппированы по различным слоям / коллекциям, которые усложняют структуру рисунка.
Слои / коллекции представлены сегодня в панели вкладок в нижней части области просмотра документа. На рисунке 1, два слоя / коллекции названные Circles и Rectangles содержат соответствующие фигуры. В Навигаторе перечислены именованные фигуры и группы. Обратите внимание на то, что желтые и синие объекты сгруппированы, находясь при этом в разных слоях / коллекциях.
Навигатор не обеспечивает взаимодействие с объектами, за исключением выделения двойным щелчком, если объект имеет определенное пользователем имя (ошибка #62851). Тем не менее, выбор объекта не приводит к соответствующему выбору в Навигаторе. Панель инструментов над деревом объектов используется для навигации по страницам (хотя всплывающие подсказки говорят: «слайд») и показывает или все фигуры, или только фигуры имеющие имена. В выпадающем списке, расположенном ниже дерева объектов, перечислены открытые документы. Список позволяет пользователям просматривать структуру альтернативного документа, выбрав его имя.
Групповое выделение возможно в области документа при нажатой клавише Shift, однако аналогично одиночному выделению, этот факт не отображается в Навигаторе. Выбор через стопку объектов осуществляется с помощью нажатия клавиши Alt (или Shift + Alt для обратной последовательности).
Для управления «слоями» / коллекциями есть контекстное меню, которое становится доступно при щелчке правой кнопкой мыши на панели вкладок.
Предложения пользователей
Пара участников-новичков в команде дизайна, Benjamin и Eve, хотели бы иметь следующее:
Benjamin хочет иметь возможность:
Основная идея состоит в том, чтобы иметь все возможности для размещения и выделения объектов в одном месте, в Навигаторе.
Простой режим
В этом режиме по умолчанию в списке Навигатора отображаются все объекты, а не только тогда, когда имя объекта было изменено пользователем. Первый созданный в рисунке элемент является самым верхним в порядке «укладки» и группе обозначения иерархического отступа. Выбор объектов в области рисования выбирает соответствующие элементы в Навигаторе и наоборот, как для одиночного, так и для мульти-выбора. Дерево ведет себя так же, как в обозревателе файлов: одним щелчком мыши выбирается элемент, нажатие на кнопки Ctrl / Shift + щелчок мышью выполняют множественный выбор, двойной щелчок запускает функцию по умолчанию, которой является Переименование. Контекстно зависимое меню предоставляет доступ ко всем связанным функциям. В меню будет пункт «Зафиксировать положение» и «Свойства» для быстрого доступа к свойствам объекта и фиксирования положения и размера объекта.
Перетаскивание объектов в дереве поддерживает группировку и сортировку: когда объект перетаскивается на другой объект – они будут сгруппированы. Если он помещается между объектами, то просто перемещается в это положение, изменяя порядок расположения (и будет разгруппирован, если ранее был в группе). Нажатие клавиши Shift во время перетаскивания дублирует объект.
Разработчики должны позаботиться и о 3D-сценах (например, сферы, кубы, или преобразованные в 3D объекты): должно быть возможным перемещение объектов между сценами, так же, как обычных фигур, однако не между группами.
Экспертный режим
Коллекции и объекты являются видимыми в экспертном режиме и иерархическое представление сохраняется в контексте текущей страницы.
Из названия должно быть понятно с какой коллекцией связаны объект или группа (контекстное меню является хорошим местом, чтобы переключить эту подсказку или выключить). Помещение объекта в коллекцию заменит текущее поведение – перетаскивание объекта на вкладку соответствующего слоя. Коллекция предоставляет функциональные возможности для своих объектов, чтобы настроить видимость, блокировку от редактирования, и частичный вывод на печать или экспорт (последняя функция будет новая ).
В ходе обсуждения мы рассматривали, чтобы эти возможности были также доступны для объектов и групп, но делать это – значит расширять спецификацию ODF (с чем есть некоторые проблемы), но, что ещё более актуально – это делает лёгкий доступ менее лёгким. Другая проблема – мы будет иметь в результате неопределенное состояние: коллекция может быть скрыта, а входящий в коллекцию объект настроен быть видимым.
Контекстное меню должно быть разработано очень тщательно, и функции, которые не имеют отношения к текущему выделению, должны быть отключены. Например, группа не имеет отношения к коллекции, поэтому пункт меню «Выбрать все в текущей коллекции» будет отключен. Но когда меню относится к объекту «Желтый круг», оно может предоставить функцию, которая позволит, например, выделить все круги.
Поиск / фильтр
Фильтр должен сделать поиск в больших рисунках более удобным. Когда, например, при вводе в фильтр букв «Прям» все объекты, которые не содержат этот текст в своих именах, будут скрыты. Кроме того, поиск может быть сделан в расширенном режиме с комбинацией ключей-значений, таких как: Тип: прямоугольник, Цвет: красный, Цвет линии: # 00FFAB или Стиль линии: пунктирный, подобно тому, что сделано в Google. Управляющий элемент должен обеспечивать автозаполнение характеристик для оказания помощи в поиске.
Обобщение
Данная концепция не ограничивается коллекциями и объектами в Draw. Навигатор представляет собой очень мощный виджет, и он не должен быть ограничен только визуализацией содержания. Он должен вести себя, как обычные древовидные виджеты с взаимодействием с элементами и опциями контекстного меню, вместо неуклюжей панели инструментов. Навигатор должен быть усилен вкладками (реализованными в виде реальных вкладок или, как небольшие кнопки переключения), дающих доступ к различным видам документа.
Поиск является ключевой и мощной функцией, что позволяет Вам искать элементы с определенным стилем, типа Стиль: Текст, или для комментариев, когда эта вкладка активна, Дата: Вчера.
Панель страниц в Draw, а также панель слайдов в Impress будут признаны устаревшим (или, скорее, заменены альтернативными), так как в Навигаторе на вкладке страниц будет обеспечен просмотр эскизов документа. Пользователи будут все еще иметь возможность повторной активации панелей, которые используются для этого.
В Writer заголовки отделены от других объектов, таких, как таблицы, рисунки и т.д., страница с миниатюрами предварительного просмотра добавлена для совместимости с другими модулями, а также, в качестве примера, показанного на рисунке 4, показаны комментарии.
Итоги
Для решения проблем со слоями (которые мы предлагаем переименовать в «коллекции») и управлением объектами в LibreOffice Draw, мы предлагаем улучшить Навигатор, делая элементы интерактивными, и, получая простой и экспертный вид. Новый пользовательский интерфейс Навигатора разработан в чиста последовательной концепции и с добавлением нескольких удобных функций.
Мы долго и упорно обсуждали идею простоты. Макеты на рисунках выше не имеют панели инструментов (в отличие от загроможденного Навигатора в текущей версии LibreOffice 5.1) и все функции доступны в контекстном меню. Некоторые люди в команде дизайна хотят сохранить панель инструментов в Навигаторе, чтобы обеспечить прямой доступ к важным функциям управления, таким, как дублирование элементов, а также настройки их взаимного расположения и удаления.
А что вы думаете? Вы предпочли бы использовать простой или экспертный режим Навигатора, и почему?
Как Навигатор может помочь в управлении объектами в LibreOffice Draw
Управление различными объектами имеет большое значение для LibreOffice Draw, особенно в случае, когда рисунок или схема становятся сложными, с большим количеством объектов и групп, размещённых на разных слоях с тщательно проработанным порядком.
Улучшения для работы со слоями пользователи просят не только в прошедшем недавно опросе о Draw, но также в запросах на улучшения в LibreOffice в багзилле проекта. Метабаг #99648 собирает в себе все ошибки и запросы относительно слоев в Draw.
Есть также много запросов об улучшении выделения объектов и их организации. Например, как привязать несколько объектов, легко выбрать пересекающиеся объекты, как визуализировать мульти-выбор и уметь находить фигуры по атрибуту или формату. Метабаг #100155 собирает в себе улучшения по выделению объектов и их выравниванию.
Этот текст направлен на решение указанных вопросов путем расширения возможностей Навигатора.
Текущее состояние
В то время, как имеются запросы от пользователей на улучшение работы со слоями, многое зависит от того факта, что стандарт ODF, и, следовательно, LibreOffice, обрабатывает слои отлично от других программ. Формат файла SVG не имеет определения «слой», но программы, работающие с SVG, такие как Inkscape, определяет слой, как «тип группы объектов», а порядок слоев влияет на то, какие объекты появляются над другими. Спецификация ODF говорит также «Слои группы рисованых объектов. Назначение фигуры слою не меняет его порядок рендеринга, как это определено его атрибутом draw:Z-index». Из Руководства LibreOffice Draw: «Слои в LibreOffice Draw позволяют собрать связанные элементы на странице рисования .... Слои не определяют порядок расположения объектов на странице рисования ...».
Таким образом, наше первое предложение – переименовать существующие в Draw слои во что-то вроде «коллекции», чтобы устранить недоразумение, которое сейчас существует, потому что текущие «слои» не влияют на порядок наслоения объектов.
Объекты имеют порядок появления в рисунке, который определяет последовательность, в которой они выбираются при нажатии клавиши Tab (если не менять вручную расположение объектов по оси z). Они также имеют порядок наложения, который определяет, какие объекты появляются над другими (также известный как z-порядок), а также информация об их принадлежности к группе и «слою» (коллекции) — и все полностью независимы друг от друга. Благодаря этой «гибкости», объекты могут быть сгруппированы по различным слоям / коллекциям, которые усложняют структуру рисунка.
Слои / коллекции представлены сегодня в панели вкладок в нижней части области просмотра документа. На рисунке 1, два слоя / коллекции названные Circles и Rectangles содержат соответствующие фигуры. В Навигаторе перечислены именованные фигуры и группы. Обратите внимание на то, что желтые и синие объекты сгруппированы, находясь при этом в разных слоях / коллекциях.
Навигатор не обеспечивает взаимодействие с объектами, за исключением выделения двойным щелчком, если объект имеет определенное пользователем имя (ошибка #62851). Тем не менее, выбор объекта не приводит к соответствующему выбору в Навигаторе. Панель инструментов над деревом объектов используется для навигации по страницам (хотя всплывающие подсказки говорят: «слайд») и показывает или все фигуры, или только фигуры имеющие имена. В выпадающем списке, расположенном ниже дерева объектов, перечислены открытые документы. Список позволяет пользователям просматривать структуру альтернативного документа, выбрав его имя.
Групповое выделение возможно в области документа при нажатой клавише Shift, однако аналогично одиночному выделению, этот факт не отображается в Навигаторе. Выбор через стопку объектов осуществляется с помощью нажатия клавиши Alt (или Shift + Alt для обратной последовательности).
Для управления «слоями» / коллекциями есть контекстное меню, которое становится доступно при щелчке правой кнопкой мыши на панели вкладок.
Предложения пользователей
Пара участников-новичков в команде дизайна, Benjamin и Eve, хотели бы иметь следующее:
Benjamin хочет иметь возможность:
- добавлять объекты, чтобы создавать рисунок.
- удалять объекты, которые не требуются.
- группировать объекты, чтобы расположить их вместе.
- легко изменять порядок расположения объектов не покрывая определенный объект.
- блокировать объекты, чтобы убедиться, что они остаются в указанном месте.
- переименовывать объекты, чтобы сделать их легко узнаваемыми.
- осуществлять поиск по имени объекта в больших рисунках.
- загружать старые рисунки, сохраняя полную обратную совместимость.
- доступа ко всем свободным коллекциям, чтобы создавать современные рисунки.
- поиска по атрибутам, чтобы искать объекты по их свойствам.
- скрывать коллекции, которые в настоящее время не актуальны и отвлекают внимание.
- запретить печать / экспорт коллекций, что поможет на этапе подготовки.
- выбирать все объекты в коллекции, чтобы выборочно модифицировать множество объектов.
- использовать клавишу TAB для доступа к содержимому чертежа без использования мыши.
Основная идея состоит в том, чтобы иметь все возможности для размещения и выделения объектов в одном месте, в Навигаторе.
Простой режим
В этом режиме по умолчанию в списке Навигатора отображаются все объекты, а не только тогда, когда имя объекта было изменено пользователем. Первый созданный в рисунке элемент является самым верхним в порядке «укладки» и группе обозначения иерархического отступа. Выбор объектов в области рисования выбирает соответствующие элементы в Навигаторе и наоборот, как для одиночного, так и для мульти-выбора. Дерево ведет себя так же, как в обозревателе файлов: одним щелчком мыши выбирается элемент, нажатие на кнопки Ctrl / Shift + щелчок мышью выполняют множественный выбор, двойной щелчок запускает функцию по умолчанию, которой является Переименование. Контекстно зависимое меню предоставляет доступ ко всем связанным функциям. В меню будет пункт «Зафиксировать положение» и «Свойства» для быстрого доступа к свойствам объекта и фиксирования положения и размера объекта.
Перетаскивание объектов в дереве поддерживает группировку и сортировку: когда объект перетаскивается на другой объект – они будут сгруппированы. Если он помещается между объектами, то просто перемещается в это положение, изменяя порядок расположения (и будет разгруппирован, если ранее был в группе). Нажатие клавиши Shift во время перетаскивания дублирует объект.
Разработчики должны позаботиться и о 3D-сценах (например, сферы, кубы, или преобразованные в 3D объекты): должно быть возможным перемещение объектов между сценами, так же, как обычных фигур, однако не между группами.
Экспертный режим
Коллекции и объекты являются видимыми в экспертном режиме и иерархическое представление сохраняется в контексте текущей страницы.
Из названия должно быть понятно с какой коллекцией связаны объект или группа (контекстное меню является хорошим местом, чтобы переключить эту подсказку или выключить). Помещение объекта в коллекцию заменит текущее поведение – перетаскивание объекта на вкладку соответствующего слоя. Коллекция предоставляет функциональные возможности для своих объектов, чтобы настроить видимость, блокировку от редактирования, и частичный вывод на печать или экспорт (последняя функция будет новая ).
В ходе обсуждения мы рассматривали, чтобы эти возможности были также доступны для объектов и групп, но делать это – значит расширять спецификацию ODF (с чем есть некоторые проблемы), но, что ещё более актуально – это делает лёгкий доступ менее лёгким. Другая проблема – мы будет иметь в результате неопределенное состояние: коллекция может быть скрыта, а входящий в коллекцию объект настроен быть видимым.
Контекстное меню должно быть разработано очень тщательно, и функции, которые не имеют отношения к текущему выделению, должны быть отключены. Например, группа не имеет отношения к коллекции, поэтому пункт меню «Выбрать все в текущей коллекции» будет отключен. Но когда меню относится к объекту «Желтый круг», оно может предоставить функцию, которая позволит, например, выделить все круги.
Поиск / фильтр
Фильтр должен сделать поиск в больших рисунках более удобным. Когда, например, при вводе в фильтр букв «Прям» все объекты, которые не содержат этот текст в своих именах, будут скрыты. Кроме того, поиск может быть сделан в расширенном режиме с комбинацией ключей-значений, таких как: Тип: прямоугольник, Цвет: красный, Цвет линии: # 00FFAB или Стиль линии: пунктирный, подобно тому, что сделано в Google. Управляющий элемент должен обеспечивать автозаполнение характеристик для оказания помощи в поиске.
Обобщение
Данная концепция не ограничивается коллекциями и объектами в Draw. Навигатор представляет собой очень мощный виджет, и он не должен быть ограничен только визуализацией содержания. Он должен вести себя, как обычные древовидные виджеты с взаимодействием с элементами и опциями контекстного меню, вместо неуклюжей панели инструментов. Навигатор должен быть усилен вкладками (реализованными в виде реальных вкладок или, как небольшие кнопки переключения), дающих доступ к различным видам документа.
Поиск является ключевой и мощной функцией, что позволяет Вам искать элементы с определенным стилем, типа Стиль: Текст, или для комментариев, когда эта вкладка активна, Дата: Вчера.
Панель страниц в Draw, а также панель слайдов в Impress будут признаны устаревшим (или, скорее, заменены альтернативными), так как в Навигаторе на вкладке страниц будет обеспечен просмотр эскизов документа. Пользователи будут все еще иметь возможность повторной активации панелей, которые используются для этого.
В Writer заголовки отделены от других объектов, таких, как таблицы, рисунки и т.д., страница с миниатюрами предварительного просмотра добавлена для совместимости с другими модулями, а также, в качестве примера, показанного на рисунке 4, показаны комментарии.
Итоги
Для решения проблем со слоями (которые мы предлагаем переименовать в «коллекции») и управлением объектами в LibreOffice Draw, мы предлагаем улучшить Навигатор, делая элементы интерактивными, и, получая простой и экспертный вид. Новый пользовательский интерфейс Навигатора разработан в чиста последовательной концепции и с добавлением нескольких удобных функций.
Мы долго и упорно обсуждали идею простоты. Макеты на рисунках выше не имеют панели инструментов (в отличие от загроможденного Навигатора в текущей версии LibreOffice 5.1) и все функции доступны в контекстном меню. Некоторые люди в команде дизайна хотят сохранить панель инструментов в Навигаторе, чтобы обеспечить прямой доступ к важным функциям управления, таким, как дублирование элементов, а также настройки их взаимного расположения и удаления.
А что вы думаете? Вы предпочли бы использовать простой или экспертный режим Навигатора, и почему?