|
|
| Название | WDXdetect |
| Имя файла (*.txt) | WDXdetect.txt |
| Описание | Загружает пользовательский вид для текущей директории |
| Автор | Вахмурка |
| Параметры | ("%P") |
| Вызываемые плагины | win, ini, vec, file |
| Иконка |
|
| Версия | 1.1 |
| Дата обновления | 07.02.2006 |
local NewLine = esc(?+\r\n+, ?+\+)
local Path = arg(1)
local Config = "путь\wincmd.ini"
local Settings = "путь\WDXdetect.ini"
local hwnd = win.handle("c=TTOTAL_CMD")
local Temp = ini.get(Config, "CustomFields", "Titles")
Temp = replacechars(Temp, "|", NewLine)
v = vec.createfromlines(Temp)
local Plugins = vec.length(v)
local Str, i, j
flag clear 1
if(file.validpath(Path ++ "descript.ion") == 1) do
local Hand = file.open(Path ++ "descript.ion", "r")
if(Hand > 1) do
for(not(file.eof(Hand)))
Str = file.readstring(Hand)
if(index(Str, ":") == "1") do
file.close(Hand)
flag set 1
break
endif
endfor
if(pproflag(1)) do
for(i = 0; i < Plugins; i = i + 1)
if(index(Str, v[i]) != 0) do
Temp = 271 + i
win.postmessage(hwnd, 0x400+51, Temp, 0)
vec.destroy(v)
quit
endif
endfor
endif
else
messagebox("ok error", "File not opened", "FILE plugin error")
quit
endif
endif
;Sub_ParsePath - имя скрипта ParsePath
local Depth = runfile.Subs\Sub_ParsePath(Path, "")
Path = remove(Path, -1)
for(j = 1; j < Depth; j = j + 1)
if(ini.check_exists(Settings, "Dirs", Path) == 3) do
Str = ini.get(Settings, "Dirs", Path)
for(i = 0; i < Plugins; i = i + 1)
if(index(Str, v[i]) != 0) do
Temp = 271 + i
win.postmessage(hwnd, 0x400+51, Temp, 0)
vec.destroy(v)
quit
endif
endfor
endif
Str = file.folder(remove(Path, -1))
Path = Str
endfor
vec.destroy(v)
На обоих форумах Total Commander, которые я посещаю - русскоязычном и англоязычном - с регулярностью и настойчивостью, заслуживающих куда более полезных приложений, появляется один и тот же запрос: автоматическая загрузка "пользовательского вида" (custom view) на основе content-плагинов. Разумеется, предлагаемый скрипт не решает поставленной задачи, а лишь совершает первое приближение к этому решению.
При нажатии кнопки на панели или горячей клавиши происходит переход к тому пользовательскому виду, который сам пользователь считает наиболее подходящим для текущей директории. Задание вида может происходить двумя способами.
Способ первый. В директории должен находиться файл descript.ion, содержащий следующую строчку:
:CustomView
где CustomView - название пользовательского вида. Это название содержится в ключе Titles раздела [CustomFields] файла конфигурации wincmd.ini. Проще всего получить список всех видов, щелкнув право кнопкой крысы на Tabstop header (не знаю, как это по-русски). Вот скриншот:
Наконец, третий способ получить список - открыть меню Configuration\Options\Custom Columns.
Итак, в descript.ion должна содержаться строчка, начинающаяся с двоеточия и содержащее одно из имен (например, Dirinfo - см. скриншот). Двоеточие избрано потому, что с него не может начинаться имя файла. Строка может быть единственной в descript.ion или содержаться там наряду с обычными комментариями к файлам, при этом она может располагаться в произвольном месте, но чем ближе к началу, тем быстрее скрипт ее обнаружит.
Если же в текущей директории нет файла descript.ion или он не содержит описанной строчки, то скрипт обращается к Способу второму, то есть к собственному файлу конфигурации WDXdetect.ini, путь к которому, разумеется, должен быть прописан в коде скрипта.
Файл WDXdetect.ini имеет единственный раздел [Dirs], содержащий произвольное число ключей типа
путь=вид
например
[Dirs]
c:\Utils\Temp=dirinfo
c:\User\Pictures=Image
Первый способ определения вида (через descript.ion) имеет приоритет перед вторым (через WDXdetect.ini).
В версии 1.1 были внесены следующие изменения во второй способ: во-первых, путь в конфигурации теперь не должен оканчиваться на "\", во-вторых, вид соответствует не только директории, указанной в конфигурации, но и ее дочерним директориям. В этом и состоит разница между способами.
Видимо, имеет смысл внести в конфигурацию скрипта те директории и соответствующие виды, которые не будут подвергаться изменениям. А файл descript.ion использовать для временных или пробных изменений. При этом следует учитывать, что, найдя первую строчку, начинающуюся с ":", скрипт прекращает поиск, поэтому можно создать несколько таких строчек, и просто меняя их порядок, загружать тот или иной вид для директории, где данный descript.ion живет.
Итак, ранее был один способ загрузки нужного вида - нажать правой кнопкой крысы на Tabstop header и в открывшемся списке найти требуемый вид. Этот способ имел два недостатка. Во-первых, список может быть достаточно длинным (у меня, например, 15 видов, но найдется немало пользователей, у которых их намного больше). Поэтому поиск нужного может представлять некоторое неудобство. Во-вторых, можно просто забыть имя вида, который лучше знаком нам по названиям колонок.
Скрипт позволяет, потратив на настройку несколько минут, получить в результате возможность загрузки нужного вида одним щелчком и пользоваться ей бесконечно долго.
|
На главную |
|
Все о Total Commander |
|
PowerPro | Все скрипты |
|