campoviy

|
Posted: Mon May 09, 2011 19:31 Post subject: Пустота в строке вкладок после OPENTABS |
|
|
У меня появилось желание сделать кнопку, при нажатии которой, вид панелей TC возвращался к заранее заданному (в плане вкладок, их расположения, активности, открытых каталогов). На ум пришла команда OPENTABS, коей в качестве параметра полагается передавать путь к TAB-файлу.
Приступив за дело, создал юзер-команду:
Code: | [em_OpenTabs_My]
button=C:\TOTALCMD\WCMICONS.DLL,83
cmd=OPENTABS
param=C:\TOTALCMD\Tabs\My_Tabs.tab
menu=Мои табы в ФП |
Оно, по сути, значения не имеет, но вот содержимое C:\TOTALCMD\Tabs\My_Tabs.tab:
Code: | [activetabs]
0_path=C:\TOTALCMD\
0_options=0|0|0|0|0|0|0
1_path=C:\Program Files\Tools\
1_options=0|0|0|0|0|0|0
2_path=C:\Program Files\Winamp\
2_options=0|0|0|0|0|0|0
activetab=0
[inactivetabs]
0_path=D:\Docs\
0_options=0|0|0|0|0|0|0
1_path=D:\Docs\Soft\
1_options=0|0|0|0|0|0|0
2_path=D:\Docs\_Progs\Pascal\
2_options=0|0|0|0|0|0|0
3_path=D:\Music\
3_options=0|0|0|0|0|0|0
4_path=D:\Docs\TEMP\
4_options=0|0|0|0|0|0|0
5_path=D:\SandBoxIE\
5_options=0|0|0|0|0|0|0
6_path=D:\Downloads\
6_options=0|0|0|0|0|0|0
activetab=0 |
Однако, выполнив юзер-команду, я получил вот что (скриншот: PNG, 1024*768, 52 Кб; то, на что стоит обратить внимание, выделено красным).
Почему появляется это пространство? Кстати, флажок "Все вкладки имеют одинаковую ширину" в "Конфигурация->Настройка...\Вкладки папок" отмечен.
Если в таком состоянии вкладок создать вкладку, то она займёт своё место именно в этой пустоте (пустота исчезнет).
На основе этого, я сделал мега-костыль (EM-команда, юзающая em_OpenTabs_My), использующий TCMC, который просто потрясает своей неуниверсальностью, однако, работает:
Code: | [em_My_Tabs]
button=C:\TOTALCMD\WCMICONS.DLL,83
cmd=C:\TOTALCMD\Plugins\Tools\TCMC\TCMC.exe
menu=Открытие дефолтных табов в ФП
param=CMcm_LeftActivateTab1 EMem_OpenTabs_My CMcm_LeftActivateTab1 CMcm_OpenNewTabBg CMcm_LeftActivateTab4 CMcm_CloseCurrentTab CMcm_RightActivateTab1 CMcm_OpenNewTabBg CMcm_RightActivateTab8 CMcm_CloseCurrentTab CMcm_RightActivateTab1 CMcm_LeftActivateTab1 |
Вы и так прекрасно понимаете, что за команды выполняются, но для упрощения поясню:
1. Активация 1-й вкладки левой панели, это сделано для того, чтобы следующая команда выполнялась именно при активной левой панели, и каталоги открывались именно так, как необходимо (cm_LeftActivateTab1).
2. Выполнение заранее созданной юзер-команды, которая открывает TAB-файл, используя OPENTABS. Вот на этом этапе мы и получаем то, что отмечено на скриншоте: пустое место в каждой панели после последней вкладки, по размеру равно всем вкладкам панели (em_OpenTabs_My).
3. Опять на 1-ую вкладку левой панели переключение, в данном случае шаг, возможно, лишний - я не проверял (cm_LeftActivateTab1).
4. При активной левой панели, фоновое открытие новой вкладки (cm_OpenNewTabBg).
5. Так как известно, что новосозданная в активной левой панели фоновая вкладка будет строго 4-я, на неё переключение (cm_LeftActivateTab4).
6. В прошлой команде произошло переключению на 4-ю вкладку левой панели, теперь закроем её, как текущую. (cm_CloseCurrentTab).
7. Оставляем в покое левую панель, в ней активной остаётся 3-я вкладка, переключение на 1-ую вкладку правой панели (cm_RightActivateTab1).
8. Аналогично шагу №4, однако уже в активной правой панели происходит открытие новой фоновой вкладки (cm_OpenNewTabBg).
9. Как и в шаге №5, известно, что новосозданная, теперь уже в активной правой панели вкладка, является 8-ой, на неё, соответственно, переключение. (cm_RightActivateTab8).
10. Опять, схоже с шагом №6, закрытие текущей вкладки, которой является 8-я в правой активной панели (cm_CloseCurrentTab).
11. Как и шаг №7, активация 1-ой вкладки правой панели (cm_RightActivateTab1).
12. Так же, как в шагах №1 и №3 - активация первой вкладки левой панели (cm_LeftActivateTab1).
Итог: в файловых панелях открыты все необходимые вкладки, в каждой панели активна 1-я вкладка, пустых мест, как на скрине - нет.
Кстати, вот ещё что удивило и в некоторой степени относится к теме. В TAB-файле, как видно выше, используются имена секций [activetabs] и [inactivetabs], по логике их можно заменять на [lefttabs] и [righttabs], что позволило бы избежать использование пары-тройки команд в приведённой ниже TCMC-em-команде, однако - НЕ работает.
ОС: Windows XP SP2 (однако, уверен, что воспроизведётся всюду).
TC: 7.56a; TwinKey не используется.
Сейчас попытаюсь воспроизвести проблему на чистом Тотале, в песочнице, позднее отпишусь о результатах.
Просьба - пожалуйста, отписаться, кто, что думает по вышеизложенному поводу: баг ли это, и т. п. |
|