RU
EN
Main Page
Download
Addons
Forum
Blog
Feedback
Please
login
or
register
.
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
Home
Help
Search
Login
Register
News:
Скины для плагина Analog Meter
AIMP Forum
»
AIMP for Windows
»
Skin Editor, Skin Engine
»
Bugs
(Moderator:
Tarik
) »
Paste structure - completely borked
« previous
next »
Print
Pages: [
1
]
Go Down
Author
Topic: [1042] Copy structure / Paste structure - completely borked (Read 4609 times)
0 Members and 1 Guest are viewing this topic.
[1042] Copy structure / Paste structure - completely borked
«
on:
September 19, 2018, 02:35:17 »
Killy
Новичок
Posts: 49
Карма: +7/-0
Или я не понимаю, как работает фича Copy structure / Paste structure, или она не работает. Пока что только получается ломать ранее сделанную работу.
У меня есть кусок дерева из контейнеров и контролов (например окно), который надо скопировать (сделать новое окно с такой же структурой для последующей модификации).
В контекстном меню имеющегося окна я выбираю "Copy structure", на новом пустом окне выбираю "Paste structure" (тут ещё можно попытаться вставить что-то в якобы родительский непустой объект, затерев его содержимое таким образом, но допустим первый урок усвоили).
Дальше происходит следующее, насколько я понимаю:
- для айтема применяются все свойства из того, чью структуру скопировали (включая имя айтема!);
- добавляются дочерние айтемы в соответствии со структурой;
- для них процесс повторяется рекурсивно.
Получается что этот процесс работает для айтемов-контейнеров, поскольку по какой-то причине в дереве допускается присутствие одноименных контейнеров. На первом же айтеме-контроле процесс прерывается с ошибкой "Айтем с таким именем уже есть".
При попытке скопировать структуру с айтема одного типа на айтем другого типа, сначала переписываются его свойства (включая имя), и только потом выдаётся сообщение об ошибке.
Соответственно, нужно доработки, чтобы этой полезной фичей можно было как-то пользоваться:
- проверять целевой айтем на пустоту, чтобы случайно не затереть имеющиеся айтемы (вариант добавлять а не затирать дочерние элементы, думаю, не слишком полезен);
- проверять соответствие типов айтемов перед тем как начинать что-то модифицировать;
- обеспечить уникальность имён (добавить/инкрементировать номер в имени айтема до тех пор, пока не получится уникальное имя).
Logged
Re: [1042] Copy structure / Paste structure - completely borked
«
Reply #1 on:
September 19, 2018, 18:07:56 »
Artem
Администратор
Супермен
Posts: 15796
Карма: +2925/-56
идея этой функции в переносе структуры из одного проекта в другой. Почему копируются имена? тут все просто - к объектам может идти обращение из скриптов. поскольку обращение к объектам идет по их именам (а имя это просто строка, и она может формироваться динамически), движок не может отследить есть ли обращения.
Logged
Re: [1042] Copy structure / Paste structure - completely borked
«
Reply #2 on:
September 19, 2018, 18:46:12 »
Killy
Новичок
Posts: 49
Карма: +7/-0
Одно другому не мешает.
Ещё раз:
Если объектов с таким именем нет - вставлять как есть.
Если объект с таким именем уже есть - совсем не обязательно с ошибкой прерывать процесс на середине. Может ли процесс вставки быть завершён и на каких условиях - лучше проверить заранее и спросить, согласен ли я на замену имён. Я буду предупреждён на случай, если у меня есть скрипты обращающиеся к релевантным объектам.
Пока что мне видится более надёжной ситуация, когда вставляемая копия имеет уникальное имя и не будет затронута никакими скриптами до тех пор пока я сам не впишу новое имя в них.
Logged
Print
Pages: [
1
]
Go Up
« previous
next »
AIMP Forum
»
AIMP for Windows
»
Skin Editor, Skin Engine
»
Bugs
(Moderator:
Tarik
) »
Paste structure - completely borked