Переключение режимов просмотра

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

HEXFIX
Сообщения: 177
Зарегистрирован: Пт июн 25, 2010 19:54
Откуда: Калининград

Сообщение HEXFIX »

1.Имхо, больно уж порог вхождения высок для использования плагина. Топик читал, пару вкусностей увидел, но, что называется, неасилил :D
2. :shock:
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

1. это не плагин, а утилита. Вкусностей там море, просто внимательно к вопросу подходить надо. :wink:
2. Пардон, я имел в виду - сколько наборов колонок, а не колонок в одном единственном наборе. Исправил.

Ладно, не важно. В общем так. Распаковываешь TCFS2 в какую-то подпапку ТС, устанавливаешь autorun.wdx (c переносом на первое место в цветовых схемах), в подкаталог Plugins кидаешь TCFS2Tools.dll. В autorun.cfg вставляешь строку: LoadLibrary Plugins\TCFS2Tools.dll
Возвращаешься в каталог TCFS2, открываешь в редакторе TCFS2.ini, находишь строку ; Вспомогательные команды и после неё вставляешь кусок (я эту команду уже приводил):
column1L=set_tcini(left,SpecialView,0) tcm(302), tcini(left,SpecialView,#!=0) | set_tcini(left,SpecialView,3) tcm(271)
column1R=set_tcini(right,SpecialView,0) tcm(302), tcini(right,SpecialView,#!=0) | set_tcini(right,SpecialView,3) tcm(271)
sw_column1=run_item(column1L), tcm(65551) | run_item(column1R) ; Переключаться между первым набором колонок и подробным режимом

column2L=set_tcini(left,SpecialView,0) tcm(302), tcini(left,SpecialView,#!=0) | set_tcini(left,SpecialView,4) tcm(272)
column2R=set_tcini(right,SpecialView,0) tcm(302), tcini(right,SpecialView,#!=0) | set_tcini(right,SpecialView,4) tcm(272)
sw_column2=run_item(column2L), tcm(65551) | run_item(column2R) ; Переключаться между вторым набором колонок и подробным режимом
Сохраняешь. По этой же аналогии продолжаешь создание списка команд в ini. Потом создаешь кнопки/юзеркоманды TC со строками в поле "Команда":
"%COMMANDER_PATH%\...\TCFS2\TCFS2.exe" /ei sw_columnX
где X - номер набора колонок.
Последний раз редактировалось Flasher Пн май 09, 2011 00:03, всего редактировалось 4 раза.
HEXFIX
Сообщения: 177
Зарегистрирован: Пт июн 25, 2010 19:54
Откуда: Калининград

Сообщение HEXFIX »

Всего 6 наборов колонок. Но они созданы не только с помощью File Description.

Добавлено спустя 1 минуту 26 секунд:

Интернет тупит, опоздал :D
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Чуток подкорректировал, будут вопросы - пиши.
HEXFIX
Сообщения: 177
Зарегистрирован: Пт июн 25, 2010 19:54
Откуда: Калининград

Сообщение HEXFIX »

Вот этот момент не понял.
Flasher писал(а): По этой же аналогии продолжаешь создание списка команд в ini.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Ты наверняка обратил внимание на числа красного цвета. С каждой следующей командой число увеличивается на один. Тебе осталось создать ещё 4 куска кода с приращениями +1 для всех выделенных чисел.
HEXFIX
Сообщения: 177
Зарегистрирован: Пт июн 25, 2010 19:54
Откуда: Калининград

Сообщение HEXFIX »

Не получается.

Error:
Unavailable key

Items:
sw_column1
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

После копирования дочерней библиотеки в autorun\Plugins и дописки соотв. строки в autorun.cfg перезагружал ТС?
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

HEXFIX писал(а):Не получается.

Error:
Unavailable key

Items:
sw_column1
Сообщение означает, что в секции Items не найден элемент sw_column1. Убедись, что там такой есть.
HEXFIX
Сообщения: 177
Зарегистрирован: Пт июн 25, 2010 19:54
Откуда: Калининград

Сообщение HEXFIX »

MVV
Объясни, пожалуйста, в каком файле эту секцию искать. И что конкретно надо добавить? :oops:
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

TCFS2.ini, естественно. А что добавить я написал в описании с пометками.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

А посмотри пример выше у Flasher. Он пишет, что надо добавить в секцию Items (под комментарием "Вспомогательные команды") такие-то команды, в том числе и ту, которая у тебя не найдена. А его фраза "по этой же аналогии" наверняка означала, что для каждого режима нужно создать отдельную троицу команд, каждую со своим индексом (он даже выделил индексы красным).

А вообще, не помешало бы хоть немного ознакомиться со структурой файла TCFS2.ini, прочитав хотя бы первый раздел Readme-файла.
HEXFIX
Сообщения: 177
Зарегистрирован: Пт июн 25, 2010 19:54
Откуда: Калининград

Сообщение HEXFIX »

Разобрался. Всё работает.
Flasher, огромное спасибо!

P.S.Всех с Днём Победы!
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

С днем Победы!!! :)

С TCFS2Tools.dll версии 1.4.1.100 и старше (пока можно скачать по ссылке в этом посте, но потом будет и релиз на wincmd.ru) можно переключаться, не создавая кучи команд. Достаточно трех строк в [Items] и любого числа юзер-команд в тотале, использующих эти строки для переключения между текущим режимом и заданным в юзер-команде.

Это команды в [Items]:

Код: Выделить всё

switch_viewmode_L=set_tcini(left, viewmode_old, L_viewMode) tcm(#1), test(L_viewMode != (#1)) | tcm(tcini(left, viewmode_old, #))
switch_viewmode_R=set_tcini(right, viewmode_old, R_viewMode) tcm(#1), test(R_viewMode != (#1)) | tcm(tcini(right, viewmode_old, #))
switch_viewmode_S=run_item(switch_viewmode_L, #1-200), test(L_isActive) | run_item(switch_viewmode_R, #1-100)
Первая принимает в параметр команду переключения режима на левой панели и запоминает прежний режим в секции [left] файла wincmd.ini в параметре viewmode_old. Вторая делает то же самое для правой панели и запоминает прежний режим в секции [right]. Третья узнает, какая панель активна, и вызывает одну из первых двух, автоматически корректируя параметр режима.

Это параметры кнопки для переключения между текущим режимом и любым другим:

Код: Выделить всё

/u- /ei switch_viewmode_S(269)
Здесь 269 - это номер команды для переключения в нужный режим на активной панели. В данном случае кнопка будет переключать в режим эскизов и обратно (269 - это cm_SrcThumbs). Если после нажатия кнопки режим менялся вручную, то следующее нажатие кнопки включит режим эскизов и запомнит последний активный режим.

Эта кнопка должна работать так, как запрашивалось в первом посте - переключаться в подробный режим и обратно:

Код: Выделить всё

/u- /ei switch_viewmode_S(269)
Если панель и так в полном режиме, команда переключает на предыдущий, или ничего не делает, если прошлый переход в полный режим выполнялся другим способом.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

С днём Победы всех!
MVV писал(а):можно переключаться, не создавая кучи команд
Только переключение будет не между двумя конкретными режимами как в моих примерах.

Две последние команды - одинаковые. А если использовать 302 вместо 269, то не будет работать, переключается всегда в подробно и в нём остаётся.
MVV писал(а):или ничего не делает, если прошлый переход в полный режим выполнялся другим способом.
Тогда это уже не реверсивная команда. Нужно постоянное переключение.
Ответить