Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Files highlighting and sort groups bugs #2605

Open
spnethw opened this issue Dec 29, 2024 · 2 comments · May be fixed by #2612
Open

Files highlighting and sort groups bugs #2605

spnethw opened this issue Dec 29, 2024 · 2 comments · May be fixed by #2612

Comments

@spnethw
Copy link
Contributor

spnethw commented Dec 29, 2024

Есть какие-то проблемы с диалогом раскраски файлов.

  1. Скажем, если с дефолтными настройками (для чистоты эксперимента можно сброситься к ним по Ctrl+R) удалить самую верхнюю группу "Broken", сохранить настройки и перезапустить far2l, то сбивается маркировка у всех нижележащих групп.
    У группы "Hidden files" меткой становится "*" (как у вышестоящей группы "Executable files"), у "Shared" меткой становится "«" (как у группы "Hardlinks > 1") и т.д.
    Похожий эффект получается, если просто пересортировать группы в списке с помощью Ctrl+Up / Ctrl+Down.

  2. Если удалить ВСЕ группы из списка по очереди Del-ом, а потом сохраниться — в colors.ini большая часть из них всё равно остаётся, начиная с
    [Colors/Highlight/Group5]
    и кончая
    [Colors/Highlight/Group24]

@akruphi
Copy link
Contributor

akruphi commented Jan 2, 2025

Причина похоже в том, что запись настроек исторически идёт по принципу псевдореестра, т.е. через ConfigWriter меняется только соответствующий параметр.

Вроде кардинально должно помочь в https://github.com/elfmz/far2l/blob/master/far2l/src/hilight.cpp в начало HighlightFiles::SaveHiData() вставить две строки

{
	ConfigWriter(RegColorsHighlight).RemoveSection();
	ConfigWriter(SortGroupsKeyName).RemoveSection();
}

Решение подсказано тем, как сделано по case KEY_CTRLR и возможно там тоже добавить строку

ConfigWriter(SortGroupsKeyName).RemoveSection();

но тут я не уверен, т.к. во всей этой текущей логике немного запутался.

Я не уверен, что это не ломает чего-то еще - не очень понимаю как это исчерпывающе протестировать. Будет замечательно, если кто сможет проверить решает ли это замеченные проблемы и точно не ломает ли ничего ещё.

@spnethw
Copy link
Contributor Author

spnethw commented Jan 2, 2025

Описанную симптоматику, вроде бы, всю излечивает. А вот ломает что-то ещё или нет, — тут уже сложнее, тестить надо.

В логику не вникал, просто скомпилил и погонял немного.
Из замеченного: если удалить прямо ВСЕ группы раскраски, тогда они при перезапуске восстанавливаются к дефолтным.

spnethw added a commit to spnethw/far2l that referenced this issue Jan 2, 2025
@spnethw spnethw linked a pull request Jan 2, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants