|
|
| Название | DetectColorFilter |
| Имя файла (*.txt) | DetectColorFilter.txt |
| Описание | Определяет, какие цветовые фильтры используются для текущего файла/директории |
| Автор | Вахмурка |
| Параметры | ("%P", "%N") |
| Вызываемые плагины | win, childwin, ini, tc, osd, vec, clip, file |
| Иконка |
|
| Версия | 2.0 |
| Дата обновления | 08.06.2009 |
args Path, Obj
local hwnd = win.handle("c=TTOTAL_CMD")
local Config = "путь\wincmd.ini"
local ColorKeys = ini.enum_keys(Config, "Colors")
local Counter = line(ColorKeys, 0)
local Panel = ifelse(tc.active(hwnd) == "left", 8, 7)
local TMLB = childwin.handle(hwnd, "TMyListBox", Panel)
local i, j, OneKey, Str
v = vec.create(0, 1)
if(not v) do
messagebox("ok error", "Vector not created", "VEC plugin error #1")
quit
endif
for(i = 1; i <= Counter; i++)
OneKey = line(ColorKeys, i)
if(index(OneKey, "ColorFilter") != 0 && revindex(OneKey, "Color") == 1) do
OneKey = ini.get(Config, "Colors", OneKey)
vec.insert(v, vec.length(v), OneKey)
endif
endfor
Counter = vec.length(v)
if(not Counter) do
Str = "No color filter is specified in configuration"
messagebox("ok warning", Str, "DetectColorFilter Script")
vec.destroy(v)
quit
endif
w = vec.create(0, 1)
if(not w) do
messagebox("ok error", "Vector not created", "VEC plugin error #2")
quit
endif
win.sendmessage(hwnd, 0x400+51, 524, 0)
ColorKeys = clip.get
if(file.isfolder(Path ++ Obj)) do
Obj ++= "\"
flag set 1
else
flag clear 1
endif
for(i = 0; i < Counter; i++)
osd.show(i + 1 ++ " / " ++ Counter, "INFINITE", "30", "Arial", "-1", "255 000 000")
for(win.class(win.getfocus()) != "TMyListBox")
endfor
win.postmessage(hwnd, 0x400+51, 521, 0)
for(win.class(win.getfocus()) == "TMyListBox")
endfor
OneKey = win.getfocus()
for(win.class(OneKey) != "Edit")
OneKey = win.getfocus()
endfor
win.settext(OneKey, v[i])
keys {enter}
for(win.class(OneKey) == "Edit")
OneKey = win.getfocus()
endfor
OneKey = win.getfocus()
win.sendmessage(OneKey, 245, 0, 0)
for(win.class(win.getfocus()) == "Button")
win.sendmessage(win.getfocus(), 245, 0, 0)
endfor
OneKey = win.sendmessage(TMLB, 0x0190, 0, 0)
if(OneKey) do
clip.clear
win.postmessage(hwnd, 0x400+51, 2017, 0)
wait.for(clip.get)
Str = clip.get
for(j = 1; j <= OneKey; j++)
if(line(Str, j) == Obj) do
Panel = ini.get(Config, "Colors", "ColorFilter" ++ i + 1)
vec.insert(w, 0, Panel)
endif
endfor
win.postmessage(hwnd, 0x400+51, 524, 0)
endif
endfor
osd.hide()
clip.set(ColorKeys)
Panel = vec.length(w)
if(not Panel) do
Str = "Are you really sure the file/directory " ++ Obj ++ " is colored?"
messagebox("ok warning", Str, "No appropriate color filter found")
vec.destroy(v)
vec.destroy(w)
quit
endif
OneKey = Panel ++ " color filters found for "
OneKey = OneKey ++ ifelse(pproflag(1), "directory ", "file ") ++ Obj
Str = ""
for(i = Panel - 1; i >= 0; i--)
for(j = 1; j <= Counter; j++)
if(v[j - 1] == w[i]) do
Str = Str ++ "Color filter #" ++ j ++ ": "
Str = Str ++ remove(w[i], 1) ++ esc(?+\n+, ?+\+)
endif
endfor
endfor
messagebox("ok information", Str, OneKey)
vec.destroy(v)
vec.destroy(w)
Внимание! Скрипт не работает в Total Commander 7.5 pb1 и pb2!
Версия данного скрипта для Total Commander 7.0 и старше.
Так называемые цветовые фильтры - очень удобное средство зрительного различения файлов и директорий. К сожалению, при большом количестве фильтров они начинают вступать в сложные взаимоотношения: каждый файл может оказаться удовлетворяющим критериям сразу нескольких фильтров. Тогда используется тот, который имеет наибольший приоритет (стоит выше в списке фильтров). Иногда бывает необходимо выяснить, какие именно фильтры используются для конкретного файла, и какой из них имеет приоритет. К сожалению, никаких средств ответить на этот вопрос Total Commander не предоставляет.
Установите курсор на интересующий файл или директорию и запустите скрипт. Если в текущей вкладке была выделена группа, выделение снимется. В течение работы скрипта не рекомендуется переключаться в другие окна. Закончив работу, скрипт выдаст диалоговое окно. В нем в приоритетном порядке будут перечислены все цветовые фильтры, подходящие для данного файла.
|
На главную |
|
Все о Total Commander |
|
PowerPro | Все скрипты |
|