Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

[AutoIt] TabsList: открытие, сохранение, просмотр tab-файлов
Goto page Previous  1, 2
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Avada



Joined: 01 Aug 2008
Posts: 8615
Location: Россия, Саратов

Post (Separately) Posted: Sun Aug 07, 2016 18:54    Post subject: Reply with quote

Skif_off wrote:
всё, что происходит после нажатия кнопки "Сохранить с новым именем"

В таком разе прошу не счесть за труд и изложить по пунктам всё-всё-всё, что должно, по замыслу автора, происходить при нажатии этой кнопки. Видимо, я её предназначение по-прежнему понимаю неправильно. Кстати, наличие ридми на будущее категорически рекомендуется.
P.S. Вроде бы в новой версии это как-то уже стало похоже на написанное в шапке, а до этого новый файл создавался у меня без информации о вкладках, хотя там всё присутствовало. Но тогда не "clean", а "new", что ли. Или очистка — это приоритетная задача?
P.P.S. А вот подсказки (имена) у вкладок в новый файл не сохраняются. Это плохо. И ещё есть некоторые странности, но об этом позже, мне сейчас придётся прервать тестирование.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1028

Post (Separately) Posted: Sun Aug 07, 2016 19:49    Post subject: Reply with quote

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), видимо, упускаю, но в справке не вижу и как добавить - тоже.

Добавлено ранее, перенёс в конец поста для наглядности:
Обновил:
- в случае, если поле ввода будет очищено и будет нажата кнопка "Ок", скрипт всё равно пытался переименовать файл или изменить путь в просматриваемом файле. Не знаю, насколько это искуственная ситуация, но файл портится.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 8615
Location: Россия, Саратов

Post (Separately) Posted: Sun Aug 07, 2016 22:21    Post subject: Reply with quote

Skif_off
Я, видимо, позже (как только изыщу время) напишу в ЛC. C примерами и прочим. Мне ещё некоторые глюки записать и систематизировать надо.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1028

Post (Separately) Posted: Wed Aug 10, 2016 02:41    Post subject: Reply with quote

Обновил:
- теперь подсказки (имена) вкладок сохраняются в новый файл.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 8615
Location: Россия, Саратов

Post (Separately) Posted: Wed Aug 10, 2016 08:04    Post subject: Reply with quote

Skif_off
Да, комментарии сохраняются. Это хорошо.
Но кое-что сохраняться не хочет. Вот реальный пример для тестирования на основе одного из моих наборов вкладок (чтобы попроще, сделал вариант только со вкладками для одной панели):
 Содержимое TAB-файла
При сохранении под другим именем вкладка с корнем диска игнорируется, новый набор получается усечённым на одну вкладку (их останется 6, а не 7).

Комментарии в INI-файле надо привести в полное соответствие с изменившимися названиями опций (я про "Добавить несколько"), а для Lang — расписать нормально: "Выбрать язык (Russian, English)". И, кстати, на перспективу подумать о выносе переключалки языка в окно TabList (куда-то вниз в главном окне?).
Частичная рамка вокруг списка TAB-файлов (только справа и внизу) — это фича?
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1028

Post (Separately) Posted: Wed Aug 10, 2016 18:03    Post subject: Reply with quote

Avada wrote:
Частичная рамка вокруг списка TAB-файлов (только справа и внизу) — это фича?

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

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

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


Обновил:
- исправлен баг с сохранением вкладки корня диска;
- поправлены комментарии в ini-файле.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 8615
Location: Россия, Саратов

Post (Separately) Posted: Wed Aug 10, 2016 19:30    Post subject: Reply with quote

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

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

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

Правильная мысль. Делать средство управления этими делами — так уж по всем функциям. Я как раз собирался предложить. Будет у меня со временем получше — можем в ЛС обсудить, что там и как.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1028

Post (Separately) Posted: Wed Aug 10, 2016 20:57    Post subject: Reply with quote

Avada
ini-файл генерируется, если его нет, и достаточно только запустить скрипт (на русской ОС русский будет выбран автоматически), потому что следующий шаг - поиск окна ТС и сообщение об ошибке, если не найдено.
Не стал класть в архив конфиг по умолчанию, т.к. скрипт не подхватывает автоматом тот, который рядом, а ищет в зависимости от взаимного расположения скрипта, %COMMANDER_PATH% и %COMMANDER_INI%.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1028

Post (Separately) Posted: Thu Aug 11, 2016 09:20    Post subject: Reply with quote

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

В попытках предусмотреть ошибки при сохранении файла упустил из виду возможность, что отсутствовать физически могут все пути в секции => записывать будет нечего, придётся подумать, как изменить алгоритм...
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1028

Post (Separately) Posted: Fri Aug 12, 2016 00:19    Post subject: Reply with quote

Обновил:
- исправлен баг с удалением просматриваемого файла в случае какой-либо ошибки при попытке сохранить его с новым именем;
- в некоторых случаях в путях могли удваиваться слэши;
- файл конфигурации: поправлены опечатка и изменено название (TabAction >> OpenTabAction, AitoCloseMain >> AutoCloseMain), небольшие правки комментариев;
- правки локализации;
- внутренние изменения/уточнения;
- несколько изменений в связи с намерением прикрутить работу с SAVETABS* (не влияют на работу скрипта).

TabsList.ini можно удалить и создать новый или изменить вручную, ini-файл целиком в первом сообщении темы.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1028

Post (Separately) Posted: Fri Oct 07, 2016 01:24    Post subject: Reply with quote

TabsList 0.1.5.0 (2016.10.06):
 Изменения:

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

 В планах:

Не знаю, нужно ли.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1028

Post (Separately) Posted: Sat Nov 26, 2016 12:18    Post subject: Reply with quote

TabsList 0.1.5.1 (2016.11.26): поправлен размер контрола (текст весь не умещался), пара опечаток (в описании и комментариях).
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1028

Post (Separately) Posted: Sat Apr 22, 2017 16:55    Post subject: Reply with quote

TabsList 0.1.5.2 (2017.04.22): в InputBox нажатие клавиши Enter работало аналогично нажатию кнопки Ок даже если фокус был на кнопке Отмена.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group