[WFX] VirtualPanel - временная панель для ТК (Unicode)

Обсуждение только плагинов и утилит для Total Commander.

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

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

Сообщение MVV »

GGS писал(а):
MVV писал(а):для удаленных exe и lnk значки все равно не изменились...
Есть такое. У меня ещё удалённые папки "без креста"
Ты имеешь в виду ссылки на папки или именно папки?

Когда ты копируешь обычным способом на временную панель папку, у тебя создается виртуальная папка, которая не связана с физической папкой, и внутрь папки добавляются ссылки на файлы в папке. Значок таких папок имеет красную окантовку (впрочем, значок виртуальных папок можно задавать в конфиге).

Но если ты создаешь ссылку на папку командой <add <имя_папки> <путь_к_физической_папке> (обычным способом их создать невозможно, т.к. ТК сам дублирует структуру, создавая виртуальные папки) - тут создается лишь один элемент виртуальной структуры - ссылка на папку. Она имеет значок обычной папки, и при входе в нее ты всегда видишь реальное содержимое папки-источника, можешь изменять его (при удалении файлов будет предупреждение). Такие папки независимо от их объема занимают одну строчку в файле сохраненного состояния. И только для таких папок имеет смысл значок перечеркнутой папки.

Прошу не использовать внутренние команды с ? вместо параметров, а также не удлиннять скрипт командой <edit в версии 1.0.0.340 - вылетит. :)
GGS
Сообщения: 322
Зарегистрирован: Сб май 02, 2009 13:00

Сообщение GGS »

MVV
Теперь получилось!
Спасибо за терпеливое разжёвывание азов. Пытаюсь освоить работу с VP, но не во всё сразу могу врубиться. Надеюсь этот ликбез будет полезен не только мне.
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Есть в <? описание параметров
Виноват. Глаза надо было разуть. Но в readme.txt точно нет.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Эх, я тут такую телегу накатал, как вдруг форум сдох, и до конца рабочего дня...

Мысли, которые остались неопубликованными:

Разделить команду del на команды del и rd, удаляющие только файлы или только каталоги, тогда можно будет для команды del сделать флаг рекурсивного удаления файлов по маске;
Добавить команду типа for [/d] %i (<маска>) <скрипт для выполнения> - это позволит, например, применять скрипт рекурсивно для подкаталогов (флаг /d для обработки папок, а не файлов) - в частности, удалять определенные файлы.

Но это планы на будущее, которые будут рады комментариям. Пока выложу слегка обновленную версию, позволяющую использовать команду edit и показывающую правильные значки для удаленных EXE и LNK.

В общем, VirtualPanel 1.0.0.342 готова. :D
GGS
Сообщения: 322
Зарегистрирован: Сб май 02, 2009 13:00

Сообщение GGS »

В WinCmd.ini имею запись:

[FileSystemPlugins]
Virtual Panel=%Commander_Path%\Plugins\wfx\VirtualPanel\VirtualPanel.wfx

При установке новой версии VP получаю сообщение:
---------------------------
plugins
---------------------------
Был найден плагин с тем же именем, но установленный в другой каталог.
Вы хотите удалить его?
---------------------------
Да Нет
---------------------------

Приходится говорить [Да] и в WinCmd.ini прописывается абсолютный путь:

[FileSystemPlugins]
Virtual Panel=F:\Program Files\TotalCmd\Plugins\wfx\VirtualPanel\VirtualPanel.wfx

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

Сообщение MVV »

Точно не я и не панелька моя. :D

Кстати, на днях тоже замечал это. Видимо, ТК неверно сравнивает пути. Но он вроде позволяет при этом ставить модуль в ту же папку.

А вообще, проще вручную кидать VirtualPanel.wfx в папку, где установлен модуль. Перед этим необходимо (если панель использовалась после запуска ТК) закрыть все вкладки с виртуальной панелью и выполнить команду cm_UnloadPlugins - у меня она в главном меню) - и можно заменять файл.
GGS
Сообщения: 322
Зарегистрирован: Сб май 02, 2009 13:00

Сообщение GGS »

1. Создаю папку F:\WINDOWS\TEMP\xxx\
2. В панели VP выполняю команду: <add TESTxxx {F:\WINDOWS\TEMP\xxx\}
2.1 Папка TESTxxx создалась в VP
3. Удаляю папку F:\WINDOWS\TEMP\xxx\
3.1 Команда cm_Rereadsource в VP не меняет иконку TESTxxx
4. Вышел/зашел из/в VP
4.1 Иконка TESTxxx "с крестом"

Вроде всё как надо (кроме 3.1), но...
пытаюсь удалить TESTxxx "с крестом" F8 или Del - не удалить.
"Крестатые" ссылки на файлы удаляются, на папки - нет
---
VP 1.0.0.342
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

GGS писал(а):3.1 Команда cm_Rereadsource в VP не меняет иконку TESTxxx
Да, я видел, ТК не всегда по F2 запрашивает значки для объектов на панели. После захода в другую папку и возврата значки становятся правильными.
GGS писал(а):пытаюсь удалить TESTxxx "с крестом" F8 или Del - не удалить.
"Крестатые" ссылки на файлы удаляются, на папки - нет
Спасибо, вижу, разберемся.

Кстати, удалять можно командой del (особенно удобна при удалении большой структуры виртуальных папок, т.к. при удалении не использует рекурсию и пофайловый подход ТК, а сразу удаляет объект - при этом подобъекты уничтожаются автоматически).

Посмотрел я, понял, в чем причина. ТК при удалении вначале удаляет содержимое папки, а потом только папку. Здесь же он дважды (!) пытается прочитать содержимое папки, потом успокаивается, не посылая ни одной команды на удаление. Если интересно, включи лог и посмотри, увидишь примерно следующее:

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

FsStatusInfo:	delete operation (8) is started in ""
FsFindFirst:	FFFFFFFF, "", for "\TESTxxx"
FsFindFirst:	FFFFFFFF, "", for "\TESTxxx"
FsStatusInfo:	delete operation (8) is finished in ""
В общем, написал про этот глюк в теме про виртуальные панели, предложил добавить в интерфейс функцию, возвращающую флаги для предстоящей операции (например, для операции удаления это может быть флаг доверить модулю удаление папки с содержимым, в таком случае ТК просто указал бы путь к этой папке, помог бы такой флаг и добавлять ссылки на реальные папки без команды add). Надеюсь, Гислер меня услышит и поймет:)
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Итак, свежий выпуск. Основные изменения коснулись внутренних команд - благодаря добавленным командам можно извращаться еще более не по-детски.

Например, ранее невозможное, удаление всех файлов заданного типа в папке и ее подпапках, теперь выполняется запуском скрипта с указанием маски файлов для удаления в качестве параметра. Создать такой скрипт можно командой (приведена в Readme):

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

<add \>rdelete { <for %%f . "%1" { <del "%%f" } <for /d! %%d . * { <cd "%%d" <exec \>rdelete "%1" } }
В общем,

VirtualPanel 1.0.0.370:
+ поддержка передачи параметров файлам скриптов (%0 для вставки текста всего скрипта, %1-%9 для вставки параметров)
+ улучшенная команда del: удаление только файлов, только папок, или всех подряд
+ условные команды ifexist, ifdef and ifok
+ команда for, позволяющая запускать скрипт для каждого найденного объекта (только файлов, только папок, или всех подряд)
+ команда cd для изменения текущей папки в пределах скрипта
+ защита от зацикливания скриптов
* для недоступных EXE and LNK отображались неправильные значки
* сбой после ввода текста в запрашивающий диалог ТК
* другие исправления, которых и не упомнить :)

Также дополнен Readme-файл, теперь он содержит описание всех существующих на данный момент команд (надеюсь, достаточно понятное).


Ну и напоследок маленькая шалость:

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

MIME-Version: 1.0
Content-Type: application/octet-stream; name="1049u.7z"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="1049u.7z"

N3q8ryccAAPr4T6zlQMAAAAAAABUAAAAAAAAAB4jeqwAf7+DJQD3wOYTeCa7Ssrfk3+Q52MQa4fG
J34qz9FHhemtsoHUt4LzYgy8O8R2sf6QCuTdWkwftaEZ19tiSfoFzEW/sTAx8InZysfEtfLI8YtR
xFeP270HD10juxn5rSZGapwpNam2eD6iBClOsKffOdyIaZwbWkpiup9hnNKQnUNQRNhL2QmCwyoc
ALM5SEoCi7HcXHi5do0Ssv6TH/kStoWb766cZDwkiEtuRHela4Q2KjhtBrEhMlycWa6KfnKALmvQ
eWCtd/HoMaQIq6hTpsQBHtNCERLm9m/1C1sH+I5AgIsB4L5iLhedvHJMmlS4iAG/RTWEq/xz/jDW
FIECKcKsBQCAo2MnXtqpoKLaE42UHmcaRI9gauRIqGT8PxhTLRdgpb+3qIlF0l22SpEcuyIrMo7w
HKwPHGmtgiiLYCt5TGqBwdIOHtVYq0I8ybNrnxGJbL4bvQtoqlgcaEGYa/aJ5gvmb2ylcjOZqlDX
TnYxlzn8/tDFb+7G6sTZNbtTR1vPrEKTJw5Yhq2MtXX1Fd8Js6kjgjydxVwardGkXFzCacyW73p3
eFBRhcLrBF3W1Q+G3G4q6QLgmWOtXj/ps9THlvPDDkTqNqR0kheRbW0hkJFR6pEoZ1MfvezUSqz0
YLwUUHNKd0C29KB9mQ3HhzqRlKaACQ5IVA0nFqVhrVWmFZvcJT3Bipa18Td/0tW8LTl47liiC9P+
Vp0eF254plvlXbB3cnj55L5oFLlZs9pC+QFsVa4q8B1orEBtkdfqlwNYCjJqBuqswgiJuYWBxUV4
zsbutvxpNCil71rDMj000dFxOLDA5AhZOAzEb7u2yUoP6ICI9IllHU3SaHW1rnUouzNRvN3ULxOd
X6aCZ/1+wryyfwdgfDgTRtNFhonD26/jh4llmp9lJe0RT9yVyojfJzsNB0xx0bLHEsqIuQoqZ3xC
4fyrSnnsTyb52USnCcjOkdHtosyzhQydh12dvs3rX6LdChmXp0Y2Qp0aa37VFhxH/s20eAHsGzxU
qIa7IT9RZMx0xu4MTt9oKS1ARC+xZKgKkZ8grSBdxoGolt9ovbJ+Wm27/RfWUCkeMzsaYEkxDLQP
vHFzMSvCNZ9iovb5H9vTCUbxetbTiV7niRbkunrMAUYHXqET+UW8QJeO2TVXH13u5Kgm1Yk1Uui+
TW6M4MFK4VSdnnIlk5Sdd/rEo38pSHU6WW/0KP9wZS7w/AMw1AEEBgABCYOVAAcLAQABIwMBAQVd
AAABAAyJ6AAICgEDpNZrAAAFAREVADEAMAA0ADkAdQAuAGwAbgBnAAAAFAoBAK7Gz24WpcoBFQYB
ACAIAAAAAA==
Аватара пользователя
Афи
Сообщения: 132
Зарегистрирован: Пт янв 29, 2010 12:55
Откуда: Одесса

Сообщение Афи »

Этот файлик можно и в набор по умолчанию ложить :D
Кое-что изменил...
Код:

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

MIME-Version: 1.0
Content-Type: application/octet-stream; name="1049u.7z"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="1049u.7z"

N3q8ryccAAPdYeZrngMAAAAAAABsAAAAAAAAAN9lUFMAf7+DJQD3wOYTeCa7Ssrfk3+Q52MQa4fG
J34qz9FHhemtsoHUt4LzYgy8O8R2sf6QCuTdWkwftaEZ19tiSfoFzEW/sTAx8InZysfEtfLI8YtR
xFeP270HD10juxn5rSZGapwpNam2eD6iBClOr8ZTmJGIHSMZMBpeinGeY+M0N1H0FqYzOLVsTIMP
Bf/DkDKOw074yWA+HLdBbZ2pSgpeZDb2uHCZAv576wQyQ4l65AGVTz80WgkquOHBg85dOXRQpvR3
OthpGQoxVNfHSsIfHUflb3jzIilExnWySquiCObqPRb3IVfI9lnTFVSAP//yOkFzNcdRHTQuANQB
75P+betDRrx3s8ACsM/yoJuCSQRLuLMJ/8LKLM+3+iFTxwKa4HIgFvdk2nxc4SFfeVvNOfDHPZm1
7kosb+xDO6BD31vb7M2cjypxsTLq4zZoIuc214GPTyhrufCMojxhD49y6+z4wKvKqFEnckBD3CMk
GGL2oCxnMoylg1q/izDEd+vvk7f5OqygbxHQdiADsPNTReXQQkyQeVkJbyH3yZOX+b0sgdY5xF0L
muH50pdxSqKjQA/1PqJgbbmgiMWV1N8vuQ41vOLFWSKCJbgwIq6p2GjJSB+fbEri+lYnNeFDLcPa
tArdagjRVMk1FpOoUUEdG6jv2V31u8UHzW4WHML4jEavjET1ZtFwCWWrUn+rSawM2iG6senXSRGl
yzGUdxybJlMoPpqmwE9g7nZaM55UHoHwAMD5gzxuBZ35iWtre6oEM9vWc4C+gVhCjl0bOjLbKKKv
XQ8+pgyjuOcPff3yhGObKRsltsr6NmZgtuSittVITJVS9DrT4brXp7qXW2uJVpti/VgVNs8xHAY6
GWbGk9aDV+OX5hMxsnNek+KKy2xGUmUJARmoSpb6K108kq4ta03JOZ8wxAOmlXoSY2OUrUD28I7d
DjsWFezSLckQMvZOzkHdK/RKXhsZoXh355O1/GrjxFWWvZAi53Az1PHzp2Lw8igyq8DLDYVfRV+J
DgFJmTTvivLYPxsEqMX1E9Ik/cEq8/W2vwpeQY7G0z3TUv9cViGJDxqlk0rj4/qDRuSiFMYlZXYQ
6GSSn4MUPVTsxX2EYZBFPSnNNouDrW1I/+CeolF9x/Nz9W1siHsTq73J2MlYcOE8G7hHpPeCKnfI
V2hqOVifqOTWyMNGDbaK3Lea/4dQNhOgJSyLGZdfK3LJR1Lfquo/HClorK8vAAEEBgABCYOeAAcL
AQABIwMBAQVdAAABAAyKDAAICgGN1hOlAAAFAREVADEAMAA0ADkAdQAuAGwAbgBnAAAAEgoBAIKh
sMOHpcoBEwoBAIKhsMOHpcoBFAoBAKorqb6HpcoBFQYBACAAAAAAAA==
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Афи писал(а):Этот файлик можно и в набор по умолчанию ложить :D
Кое-что изменил...
Тоже вариант. :D
Но тогда наверное лучше не "Ага", а "Угу". :)
А вообще, полет фантазии безграничен. 8)

Забыл я, что файл в Юникоде, в ANSI бы лучше ужался, код был бы короче.
GGS
Сообщения: 322
Зарегистрирован: Сб май 02, 2009 13:00

Сообщение GGS »

При удалении файла с VP и файла на диске (Shift при запросе), этот Shift срабатывает и для удаления мимо карзины.
Как-то неправильно это.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

GGS писал(а):При удалении файла с VP и файла на диске (Shift при запросе), этот Shift срабатывает и для удаления мимо карзины.
Как-то неправильно это.
Дык при чем тут корзина? Об удалении в корзину не было и речи, ведь удаление выполняет не ТК, а VP.

Но если удаление файла в корзину еще можно сделать, то удаление папки - только по файлам. К слову, я никогда не понимал, еще с тех пор как при удалении папки в корзину система стала кидать ее туда целиком, а не по файлам, почему нет возможности посмотреть содержимое папки - это идиотизм восстанавливать всю папку ради одного файла.

По желанию трудящихся сделал по умолчанию удаление в корзину, если при подтверждении физического удаления не зажата клавиша Shift. Но опять же, при удалении в корзине будут появляться отдельные файлы, а не папки целиком, как со времен Windows 98 модно у Микрософта.
GGS
Сообщения: 322
Зарегистрирован: Сб май 02, 2009 13:00

Сообщение GGS »

MVV писал(а):Об удалении в корзину не было и речи, ведь удаление выполняет не ТК, а VP
Мне кажется естественным ожидать, что плагин для TC будет использовать метод удаления заданный в настройках TC.
MVV писал(а):Но если удаление файла в корзину еще можно сделать, то удаление папки - только по файлам.
Дык... TC удаляет папки пофайлово, не надо пристёгивать "фичи" проводника.

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

Сообщение MVV »

GGS писал(а):Кстати, про папки я не говорил, просто обратил внимание на игнорирование настроек, собственно, TC.
Не ну если я еще и тоталовский INI буду парсить...
ОК, сделал проверку значения параметра UseTrash в тоталовском INI. Путь к INI беру из переменной окружения COMMANDER_INI, которая появилась где-то начиная с 7 версии. Если ключ не найден, или не равен 0, и при этом клавиша Shift в момент подтверждения удаления зажата не была, удаляю в корзину.
Извините, если "достал".
Ну почему же, критика по делу приветствуется. :)
Ответить