AIMP Forum

Разное => Предложения (архив) / Suggestions (archive) => Архив / Archive => Реализовано в AIMP v5.0X / Implemented in AIMP v5.0X => Topic started by: gr-e on April 03, 2020, 20:46:40

Title: [Реализовано] Список зависимостей для провайдеров
Post by: gr-e on April 03, 2020, 20:46:40
Хотелось бы иметь возможность для каждого провайдера видеть список элементов, с которыми он имеет связи, скриптов, в которых он упоминается и т.п.
Это удобно при удалении, переименовании, ну и для понимания, что этот провайдер делает.
Сейчас приходится распаковывать скин в папку и искать по .xml файлам.
Title: Re: Список зависимостей для провайдеров
Post by: Black_AVP on April 03, 2020, 21:53:15
А ещё бы карту всего проекта, хотя бы схематично. Порой трудно найти, с чем тот или иной провайдер связан.
Title: Re: Список зависимостей для провайдеров
Post by: Artem on April 03, 2020, 23:05:54
А ещё бы карту всего проекта, хотя бы схематично. Порой трудно найти, с чем тот или иной провайдер связан.

не редактируемую? пойдет?
Title: Re: Список зависимостей для провайдеров
Post by: Black_AVP on April 04, 2020, 08:31:50
не редактируемую? пойдет?
Разумеется! Но, если будет возможность по клику мышки показать выбранный элемент в инспекторе свойств или перейти в редактор связей провайдера, это будет совсем здорово.
Title: Re: Список зависимостей для провайдеров
Post by: Artem on April 14, 2020, 09:13:38
Попробуйте:
https://yadi.sk/d/qXaZRgxO3chYtg

(https://www.aimp.ru/forum/index.php?action=dlattach;topic=64507.0;attach=60737)
Title: Re: Список зависимостей для провайдеров
Post by: Black_AVP on April 14, 2020, 12:15:33
Спасибо, Артём, уже близко к желаемому.
Непривычно что карта отзеркалена - обычно провайдеры справа, но не суть. Много лишнего захватывается: и компонентов, и связей.
На картинке карта построена для элемента Bob_Left (TASEAnimator, на карте обведён красным прямоугольником), где его ещё не сразу найдёшь. Линии связей местами проходят очень близко к компонентам и цвет их коротких отрезков порой трудно разглядеть.

(https://www.aimp.ru/forum/index.php?action=dlattach;topic=64507.0;attach=60738)

Реально все связи с тем же элементом выглядят так:

(https://www.aimp.ru/forum/index.php?action=dlattach;topic=64507.0;attach=60739)

Дерево связей должно обрываться на стандартных провайдерах, поскольку связи их с другими компонентами нас в данном случае не интересуют. Проверять на продолжение связей надо счётчики и аниматоры у которых связи могут быть с "двух сторон".

Скроллинга не хватает от колеса мышки, а лучше - перетаскивать всю карту с сзажатой ЛКМ.
Title: Re: Список зависимостей для провайдеров
Post by: Artem on April 14, 2020, 15:43:03
Ок, доработаю
Title: Re: Список зависимостей для провайдеров
Post by: Artem on April 14, 2020, 16:05:22
Перезалил:
https://yadi.sk/d/qXaZRgxO3chYtg
Title: Re: Список зависимостей для провайдеров
Post by: Black_AVP on April 15, 2020, 10:01:22
Уже лучше, но всё же "мусора" много:

(https://www.aimp.ru/forum/index.php?action=dlattach;topic=64507.0;attach=60741)

В данном случае виновники размножения связей - счётчики, которые используются ещё и для других элементов.
Видимо, надо собирать связи от выбранного элемента до первого подключения, и всё.
Исключения составят многовходовые провайдеры:
LogicalOperatorCommutator,
LogicalOperatorMultiplexer,
StringOperatorConcatenator,
StringOperatorConcatenatorNotificator
и от них связи (от точек ValueX) отображать тоже до первого подключения.

Особняком ещё стоят такие провайдеры (и некоторые элементы), как
LogicalOperatorCounter,
LogicalOperatorDelayer,
LogicalOperatorTimer
у которых связи могут быть с двух сторон. Если программно можно различить, с какой стороны подходит связь, то их тоже надо отслеживать.

И ещё, такую же карту хорошо бы строить и для пользовательских провайдеров, вызывать её прямо из диалога "Custom Providers". К примеру, к тому же счётчику может быть подключено несколько кнопок, а в скине их отыскать непросто.
Title: Re: Список зависимостей для провайдеров
Post by: Artem on April 15, 2020, 11:03:44
Слишком много исключений получится. Может сделать возможность прятать не нужные в режиме превью?
Title: Re: Список зависимостей для провайдеров
Post by: Black_AVP on April 15, 2020, 11:15:07
А как определить, что нужно, а что нет, особенно, если проект чужой?
Да и так уж ли много исключений, в основном, 4 многовходовых провайдера.
Title: Re: Список зависимостей для провайдеров
Post by: Zhenya on April 15, 2020, 22:46:51
И ещё, такую же карту хорошо бы строить и для пользовательских провайдеров, вызывать её прямо из диалога "Custom Providers".

+1

Хотелось бы иметь возможность для каждого провайдера видеть список элементов, с которыми он имеет связи, скриптов, в которых он упоминается и т.п.

+1
Но как быть со скриптами? Парсить скрипты? А если переименовать элемент в дереве, скрипт тоже должен обновиться?
Может как-то этот момент улучшить? Например, использовать для этого секцию описания констант в скрипте? Или создать отдельную секцию для этого? Переименовал в скине элемент, использующийся в скрипте, — автоматически обновилась и строка с названием элемента у константы. Или использовать вместо секции констант связи? Привязал элемент к скрипту и обращаешься к элементу уже через эту связь, независимо от того, как на самом деле называется элемент. Только сейчас нельзя привязывать элементы управления.
Title: Re: Список зависимостей для провайдеров
Post by: gr-e on April 16, 2020, 00:43:55
Но как быть со скриптами? Парсить скрипты? А если переименовать элемент в дереве, скрипт тоже должен обновиться?
Может как-то этот момент улучшить? Например, использовать для этого секцию описания констант в скрипте? Или создать отдельную секцию для этого? Переименовал в скине элемент, использующийся в скрипте, — автоматически обновилась и строка с названием элемента у константы. Или использовать вместо секции констант связи? Привязал элемент к скрипту и обращаешься к элементу уже через эту связь, независимо от того, как на самом деле называется элемент. Только сейчас нельзя привязывать элементы управления.
Автоматическое переименование провайдера в скриптах не сильно критично, но удобно, да.
Можно просто добавить чекбокс "найти и заменить" в окно переименования, а ответственность за совпадение имен элементов и ресурсов/строк оставить на пользователя. При этом заменять только текст в одиночных кавычках, естественно.
Title: Re: Список зависимостей для провайдеров
Post by: Black_AVP on April 16, 2020, 08:39:14
В отношении скриптов - ИМХО, достаточно иметь инструмент поиска (может и замены) по ним, не сильно это напрягает и не так уж их (скриптов) много.
Title: Re: Список зависимостей для провайдеров
Post by: D2NP on April 17, 2020, 00:50:15
Интересная функция, пока два замечания:
- элементы узкие, т.е. названия не вписываются, а посмотреть полное название элемента никак нельзя.
- всплывающая подсказка появляется без смещения, сразу под курсором.

скриншот (https://i.imgur.com/auDSYQD.png)

Еще была мысль, что не хватает типа элемента отдельной строкой под названием, TASEButton, TASEPanel ... т.е. чтобы сразу было видно какой элемент с каким связан.
Title: Re: Список зависимостей для провайдеров
Post by: Artem on April 17, 2020, 08:50:28
ок
Title: Re: Список зависимостей для провайдеров
Post by: Black_AVP on April 17, 2020, 09:02:57
В плане избыточных связей, похоже, пока ничего не изменилось?
У аниматора Band всего две связи с одним счётчиком:

(https://www.aimp.ru/forum/index.php?action=dlattach;topic=64507.0;attach=60759)

а выстраивается чуть ли не половина всего проекта:

(https://www.aimp.ru/forum/index.php?action=dlattach;topic=64507.0;attach=60760)

Коротковаты отрезки линий связей возле элементов, трудно разглядеть их цвет, приходится постоянно подсвечивать искомую связь:

(https://www.aimp.ru/forum/index.php?action=dlattach;topic=64507.0;attach=60761)

Тема у элементов остаётся всегда дневной.
При перемещении элементов связи порой становятся наклонными (не ортогональными).
Title: Re: Список зависимостей для провайдеров
Post by: Artem on April 17, 2020, 09:36:28
В плане избыточных связей, похоже, пока ничего не изменилось?
У аниматора Band всего две связи с одним счётчиком:

Пока ничего.

Коротковаты отрезки линий связей возле элементов, трудно разглядеть их цвет, приходится постоянно подсвечивать искомую связь:

К сожалению, из-за потенциально большой карты связей и возможности перемещать объекты, я не могу сделать более интеллектуальное размещение связей, как это сделано в самом редакторе связей.

Тема у элементов остаётся всегда дневной.

Поправил

При перемещении элементов связи порой становятся наклонными (не ортогональными).

Это случается, когда точка выхода или входа скрыта другим элементом, т.е. до нее нельзя построить путь, минуя другие препятствия. Поправлю.
Title: Re: Список зависимостей для провайдеров
Post by: Black_AVP on April 17, 2020, 09:51:17
... я не могу сделать более интеллектуальное размещение связей, как это сделано в самом редакторе связей.
Я не за интеллектульность связей ратую, а за увеличение отступа линий от элемента до первого излома, хотя бы вдвое.
Title: Re: Список зависимостей для провайдеров
Post by: Artem on April 17, 2020, 10:31:30
Вот, попробуй:
https://yadi.sk/d/SYkOs8wD7vrRMQ
Title: Re: Список зависимостей для провайдеров
Post by: Black_AVP on April 17, 2020, 10:40:19
Вот, попробуй:
Отлично! Со связями теперь всё ОК.
Спасибо, Артём!
Title: Re: Список зависимостей для провайдеров
Post by: Black_AVP on April 17, 2020, 10:48:04
Единственное, на будущее, если возможно, оптимизировать пустое пространство.

(https://www.aimp.ru/forum/index.php?action=dlattach;topic=64507.0;attach=60762)
Title: Re: Список зависимостей для провайдеров
Post by: Black_AVP on April 17, 2020, 10:56:57
Шрифт в ночной теме в названиях точек доступа остался тёмным.
Title: Re: Список зависимостей для провайдеров
Post by: Artem on April 17, 2020, 11:37:47
Шрифт в ночной теме в названиях точек доступа остался тёмным.

Поправил
Title: Re: Список зависимостей для провайдеров
Post by: Black_AVP on April 17, 2020, 20:05:48
Осталось добавить пункт "Карта связей" в контекстное меню дерева элементов, кнопку в панель инструментов и горячую клавишу.