[AutoIt] TabsList: открытие, сохранение, просмотр tab-файлов
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2  :| |:
Total Commander -> Автоматизация Total Commander

#16:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Aug 07, 2016 18:54
    —
Skif_off wrote:
всё, что происходит после нажатия кнопки "Сохранить с новым именем"

В таком разе прошу не счесть за труд и изложить по пунктам всё-всё-всё, что должно, по замыслу автора, происходить при нажатии этой кнопки. Видимо, я её предназначение по-прежнему понимаю неправильно. Кстати, наличие ридми на будущее категорически рекомендуется.
P.S. Вроде бы в новой версии это как-то уже стало похоже на написанное в шапке, а до этого новый файл создавался у меня без информации о вкладках, хотя там всё присутствовало. Но тогда не "clean", а "new", что ли. Или очистка — это приоритетная задача?
P.P.S. А вот подсказки (имена) у вкладок в новый файл не сохраняются. Это плохо. И ещё есть некоторые странности, но об этом позже, мне сейчас придётся прервать тестирование.

#17:  Author: Skif_off PostPosted: Sun Aug 07, 2016 19:49
    —
Avada
Допустим, в файле есть только одна секция, пусть activetabs, после нажатия кнопки "Сохранить с новым именем" скрипт:
- показывает окно с просьбой ввести имя;
- проверяет, что файл с таким именем не существует;
- пробует создать пустой файл с введённым именем;
- пробует прочитать "0_path" в секции activetabs, если нет, то пробует inactivetabs, если опять мимо - считает, что файл кривой;
- читает значение "activetab" и путь под этим номером;
- последовательно читаются пути в просматриваемом файле и проверяется их существование в файловой системе, если существует - сохраняется в переменную. Если опция "Сохранять пути FS-плагинов и FTP" отмечена, то соответствующие пути будут добавлены в переменную, иначе - проигнорированы;
- далее используется путь и число из пункта курсивом: если путь найден в переменной, то скрипт запишет его порядковый номер в значение activetab, иначе - номер последнего пути (наибольший). Если какая-то ошибка с получением номера или поиском соответствующего пути, то используется номер последнего пути.
- всё пишется в файл и скрипт показывает сообщение.

Если в файле есть и activetabs, и inactivetabs, то для каждой происходит то, что выделено тёмно-синим цветом. В случае ошибки на любом из этапов функция удалит пустой файл и завершится с соответствующим сообщением.
Список tab-файлов в главном окне будет автоматически обновлён, если это необходимо, только после закрытия окна просмотра.

(Возможность удаления произвольного пути несколько нетривиальна из-за нумерации и усложняется, если есть и activetabs, и inactivetabs + вероятность, что пользователь редактировал файл вручную.)

Avada wrote:
Кстати, наличие ридми на будущее категорически рекомендуется.

TabsList.7z\TabsList\TabsList.txt?

Добавлено спустя 5 минут:

Avada wrote:
Но тогда не "clean", а "new", что ли. Или очистка — это приоритетная задача?

По сути происходит очистка, а с "clean" понятнее, что именно сделано. Как-то так задумывалось Smile В принципе, наверное, теперь это не особо критично, т.к. имя запрашивается у пользователя.
Avada wrote:
А вот подсказки (имена) у вкладок в новый файл не сохраняются. Это плохо.

Это очень плохо. Можно пример файла? Или как их создать?
Есть N_path, N_options, N_session (для FTP), видимо, упускаю, но в справке не вижу и как добавить - тоже.

Добавлено ранее, перенёс в конец поста для наглядности:
Обновил:
- в случае, если поле ввода будет очищено и будет нажата кнопка "Ок", скрипт всё равно пытался переименовать файл или изменить путь в просматриваемом файле. Не знаю, насколько это искуственная ситуация, но файл портится.

#18:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Aug 07, 2016 22:21
    —
Skif_off
Я, видимо, позже (как только изыщу время) напишу в ЛC. C примерами и прочим. Мне ещё некоторые глюки записать и систематизировать надо.

#19:  Author: Skif_off PostPosted: Wed Aug 10, 2016 02:41
    —
Обновил:
- теперь подсказки (имена) вкладок сохраняются в новый файл.

#20:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Aug 10, 2016 08:04
    —
Skif_off
Да, комментарии сохраняются. Это хорошо.
Но кое-что сохраняться не хочет. Вот реальный пример для тестирования на основе одного из моих наборов вкладок (чтобы попроще, сделал вариант только со вкладками для одной панели):
 Содержимое TAB-файла
При сохранении под другим именем вкладка с корнем диска игнорируется, новый набор получается усечённым на одну вкладку (их останется 6, а не 7).

Комментарии в INI-файле надо привести в полное соответствие с изменившимися названиями опций (я про "Добавить несколько"), а для Lang — расписать нормально: "Выбрать язык (Russian, English)". И, кстати, на перспективу подумать о выносе переключалки языка в окно TabList (куда-то вниз в главном окне?).
Частичная рамка вокруг списка TAB-файлов (только справа и внизу) — это фича?

#21:  Author: Skif_off PostPosted: Wed Aug 10, 2016 18:03
    —
Avada wrote:
Частичная рамка вокруг списка TAB-файлов (только справа и внизу) — это фича?

Это что-то вроде придания объёма, полагаю. Мне не удалось подобрать стили так, чтобы убрать это, поэтому - фича Smile

О выносе переключалки языка в GUI подумаю, но, если честно, идея не особо по душе, к тому же потребует перезапуска.

Ещё с тех пор, когда стало ясно, что командам сохранения вкладок быть, периодически всплывает мысль прикрутить SAVETABS, SAVETABSL, SAVETABSR, SAVETABS2, SAVETABS2L, SAVETABS2R... Но это 6 em-команд и есть ли смысл? Пока на 9ку не пересел и плохо представляю, в каком виде на тулбаре пригодились бы лично мне.


Обновил:
- исправлен баг с сохранением вкладки корня диска;
- поправлены комментарии в ini-файле.

#22:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Aug 10, 2016 19:30
    —
Skif_off wrote:
О выносе переключалки языка в GUI подумаю, но, если честно, идея не особо по душе, к тому же потребует перезапуска.

Если есть желание сделать полноценную поддержку английского — придётся делать и опцию. Поменять значение ключа до запуска TabList в готовом INI не получится, поскольку INI генерируется автоматически, так? А чтобы он сгенерировался, надо запустить TabList и что-то там сделать. Желательно — с пониманием того, что делается. Дальше, думаю, можно не пояснять.

Skif_off wrote:
периодически всплывает мысль прикрутить SAVETABS, SAVETABSL, SAVETABSR, SAVETABS2, SAVETABS2L, SAVETABS2R...

Правильная мысль. Делать средство управления этими делами — так уж по всем функциям. Я как раз собирался предложить. Будет у меня со временем получше — можем в ЛС обсудить, что там и как.

#23:  Author: Skif_off PostPosted: Wed Aug 10, 2016 20:57
    —
Avada
ini-файл генерируется, если его нет, и достаточно только запустить скрипт (на русской ОС русский будет выбран автоматически), потому что следующий шаг - поиск окна ТС и сообщение об ошибке, если не найдено.
Не стал класть в архив конфиг по умолчанию, т.к. скрипт не подхватывает автоматом тот, который рядом, а ищет в зависимости от взаимного расположения скрипта, %COMMANDER_PATH% и %COMMANDER_INI%.

#24:  Author: Skif_off PostPosted: Thu Aug 11, 2016 09:20
    —
Обнаружил пару неприятных ошибок, одна совсем нехорошая: если при сохранении в новый файл произойдёт какая-то из предусмотренных (вроде все) ошибок, то скрипт удалит ПРОСМАТРИВАЕМЫЙ файл! Вероятность низкая, поэтому не всплыло, прошу пока не использовать эту фичу (скомпилить и выложить исправленные версии могу только ближе к вечеру по Мск, ссылку в первом сообщении пока убрал).

В попытках предусмотреть ошибки при сохранении файла упустил из виду возможность, что отсутствовать физически могут все пути в секции => записывать будет нечего, придётся подумать, как изменить алгоритм...

#25:  Author: Skif_off PostPosted: Fri Aug 12, 2016 00:19
    —
Обновил:
- исправлен баг с удалением просматриваемого файла в случае какой-либо ошибки при попытке сохранить его с новым именем;
- в некоторых случаях в путях могли удваиваться слэши;
- файл конфигурации: поправлены опечатка и изменено название (TabAction >> OpenTabAction, AitoCloseMain >> AutoCloseMain), небольшие правки комментариев;
- правки локализации;
- внутренние изменения/уточнения;
- несколько изменений в связи с намерением прикрутить работу с SAVETABS* (не влияют на работу скрипта).

TabsList.ini можно удалить и создать новый или изменить вручную, ini-файл целиком в первом сообщении темы.

#26:  Author: Skif_off PostPosted: Fri Oct 07, 2016 01:24
    —
TabsList 0.1.5.0 (2016.10.06):
 Изменения:

TabsList.ini предыдущих версий лучше удалить.

 В планах:

Не знаю, нужно ли.

#27:  Author: Skif_off PostPosted: Sat Nov 26, 2016 12:18
    —
TabsList 0.1.5.1 (2016.11.26): поправлен размер контрола (текст весь не умещался), пара опечаток (в описании и комментариях).

#28:  Author: Skif_off PostPosted: Sat Apr 22, 2017 16:55
    —
TabsList 0.1.5.2 (2017.04.22): в InputBox нажатие клавиши Enter работало аналогично нажатию кнопки Ок даже если фокус был на кнопке Отмена.



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2  :| |:
Page 2 of 2

Powered by phpBB © 2001, 2005 phpBB Group