Проблема: Рекурсивное открытие окна настроек при попытке их сохранения
Актуальность проблемы: актуальна
Версия ОС: любая
Версия ABTool: любая выше 0.5.2
Исходные случаи:
- ABTool запускается. Происходит приостановка загрузки и в левом верхнем углу экрана отображается окно настроек.
- ABTool запущена. Окно настроек открыто. На вкладке «Пакеты» имя одного из пакетов было убрано.
Поведение:
- Нажатие на кнопку «Сохранить» открывает всё новое и новое окно настроек на вкладке «Пакеты».
- Нажатие на кнопку «Закрыть» приводит к закрытию всех окон настроек.
Причина: в одной или обеих секциях пользовательских пакетов файла настроек abtool.ini неверно указан номер последнего использованного пакета. Этот номер ссылается на неуказанный файл пакета.
Описание проблемы:
Случай 1.
Работа с настройками разделена на несколько фаз. При открытии окна настроек из файла abtool.ini они считываются. На данный момент всегда выбран какой-то пакет, например, сейчас это третий пакет софта. Окно открывается, считанные настройки отобразились.
Например, теперь третий пакет программ стал не нужен и мы убираем его название из соответствующей строки.
Нажимаем на кнопку «Сохранить». Настройки сохранились, после чего они снова считываются из файла в память, обнуляя прежние, и применяются.
Когда применяются настройки, происходит и считывание пакетов. Но последний использованный (выбранный и отображённый в главном окне) пакет у нас был как раз третьим. В этом и заключается проблема.
В самом файле настроек творится следующее:
... [UserSoftPackages] UserSoftPkg1=soft.package1.ini UserSoftPkg2=soft.package2.ini UserSoftPkg3= LastUserSoftPkg=3 ...
Фактически происходит попытка загрузить неуказанный пакет. В этот момент и открывается очередное окно настроек, как раз после программного выбора третьего пакета (как если бы его выбрали через выпадающее меню на вкладке «Программы»). Если бы в нашем случае LastUserSoftPkg был = 1, то первый пакет успешно бы и загрузился.
Случай 2.
Если закрыть все окна настроек, то отобразится главное окно с какой-то белибердой в списке:
Временное решение:
- нажать на кнопку «Закрыть» ИЛИ нажать на кнопку «Сброс», после чего — «Сохранить» (настройки будут утеряны!);
- исправить ABTool.ini вручную:
- значения параметров LastUserSoftPkg или LastUserToolPkg выставить =0;
- обязательно проверить верность значений параметров UserSoftPkgX или UserToolPkgX;
- проверить существование и корректность всех файлов пакетов.
Ссылка на этот пост добавлена в раздел «Известные ошибки».