Latest post of the previous page:
Ну, не знаю. Раньше была совершенно другая проблема: настройка цвета сохранялась только если два раза нажать F2. И она, кстати, осталась. А ошибка доступа - это что-то новое.FarNet — плагин для написания плагинов на .NET языках
Re: FarNet — плагин для написания плагинов на .NET языках
Пишу плагин файловой системы (если кому интересно, то работа с MTP протоколом для андроид-устройств). Спасибо за фреймворк, гораздо приятнее чем на С++ кодить. Однако есть непонятки.
1. Обнаружил, что вместо одного GetFiles/PutFiles, у ФарНета есть куча разных методов. Причем реализовать их похоже надо все, чтобы была полная функциональность. Встроенной в Panel возможности откатиться на стандартный фаровский механизм не нашел. Что очень странно, т.к. Panel0::AsGetFiles в сишном коде реализован, но если пользоваться Panel, судя по всему, никогда не вызывается. Было бы неплохо добавить такую фичу.
2. Если переопределить у панели UIKeyPressed и не отдавать функциональные клавиши стандартному обработчику, вроде как выходит как я хочу. Правильно? Ничего не поломается?
3. Обнаружил загадочный эффект, заключающийся в том, что этот несчастный, нигде не используемый, Panel0::AsGetFiles, если его все-таки использовать, приводит к потере имен целевых файлов. Вместо исходных имен получаются цифры равные порядковому номеру файла в каталоге. В чем глубокий смысл и можно ли эту "фичу" убрать? Ключевые места: 1 2 3
Спасибо
1. Обнаружил, что вместо одного GetFiles/PutFiles, у ФарНета есть куча разных методов. Причем реализовать их похоже надо все, чтобы была полная функциональность. Встроенной в Panel возможности откатиться на стандартный фаровский механизм не нашел. Что очень странно, т.к. Panel0::AsGetFiles в сишном коде реализован, но если пользоваться Panel, судя по всему, никогда не вызывается. Было бы неплохо добавить такую фичу.
2. Если переопределить у панели UIKeyPressed и не отдавать функциональные клавиши стандартному обработчику, вроде как выходит как я хочу. Правильно? Ничего не поломается?
3. Обнаружил загадочный эффект, заключающийся в том, что этот несчастный, нигде не используемый, Panel0::AsGetFiles, если его все-таки использовать, приводит к потере имен целевых файлов. Вместо исходных имен получаются цифры равные порядковому номеру файла в каталоге. В чем глубокий смысл и можно ли эту "фичу" убрать? Ключевые места: 1 2 3
Спасибо
Re: FarNet — плагин для написания плагинов на .NET языках
В догонку:
1. UIViewFile выставляет ExplorerModes.Edit. Баг?
2. При попытке скопировать что-то из нативной панели в панель модуля, в открывающемся диалоге в качестве пути стоит "::". Location выставляю правильно, в коммандной строке все нормально. ЧЯДНТ?
3. Есть ли какой-то готовый код для стандартных диалогов копирования/создания папки итд?
1. UIViewFile выставляет ExplorerModes.Edit. Баг?
2. При попытке скопировать что-то из нативной панели в панель модуля, в открывающемся диалоге в качестве пути стоит "::". Location выставляю правильно, в коммандной строке все нормально. ЧЯДНТ?
3. Есть ли какой-то готовый код для стандартных диалогов копирования/создания папки итд?
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: FarNet — плагин для написания плагинов на .NET языках
Много букав Разбираюсь, отвечаю по мере.
http://bugs.farmanager.com/view.php?id=1699
http://bugs.farmanager.com/view.php?id=1702
Логично, вроде. Чтобы была полная, надо все. Но все зависит от панели. Есть панели, где минимум требуется.Обнаружил, что вместо одного GetFiles/PutFiles, у ФарНета есть куча разных методов. Причем реализовать их похоже надо все, чтобы была полная функциональность.
Наверное, было бы неплохо. Однако, стандартные механизмы Фара в Фарнет не очень хорошо вписывается (попробовано так и сяк). Хоть и не связано напрямую, есть пара вишей на Мантисе, надеюсь, что что-то подвинется в этом направлении. До тех пор наворачивать в Фарнет что-то свое в обход нюансов, возможно, нерационально. Если виши так и не осуществятся, там видно будет. Но пока надежда есть. В основном, на первом више свет клином сходится.Встроенной в Panel возможности откатиться на стандартный фаровский механизм не нашел. Что очень странно, т.к. Panel0::AsGetFiles в сишном коде реализован, но если пользоваться Panel, судя по всему, никогда не вызывается. Было бы неплохо добавить такую фичу.
http://bugs.farmanager.com/view.php?id=1699
http://bugs.farmanager.com/view.php?id=1702
По идее, нормальный сценарий.Если переопределить у панели UIKeyPressed и не отдавать функциональные клавиши стандартному обработчику, вроде как выходит как я хочу. Правильно? Ничего не поломается?
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: FarNet — плагин для написания плагинов на .NET языках
Навскидку выглядит как баг, разберусь с этим, продолжу с остальным.UIViewFile выставляет ExplorerModes.Edit. Баг?
А в чем проявляется?
Re: FarNet — плагин для написания плагинов на .NET языках
Особо вроде ни в чем, GetContent не может отличить F3 от F4, но юз-кейс для этого я с трудом себе представляю. Но "неаккуратненько как-то" Случаянно заметил, пока разбирался как что работает.NightRoman wrote:Навскидку выглядит как баг, разберусь с этим, продолжу с остальным.UIViewFile выставляет ExplorerModes.Edit. Баг?
А в чем проявляется?
Ну я имел ввиду добавить флаг в эксплорер, который просто отключит все нестандартные обработчики функциональных клавиш у панели. Тогда достаточно будет реализовать GetContent и ImportFiles, а все остальное выйдет автоматически. Впрочем меня устроит и хак с наследованием от панели, при условии что удастся вернуть родные имена файлов.Наверное, было бы неплохо. Однако, стандартные механизмы Фара в Фарнет не очень хорошо вписывается (попробовано так и сяк)
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: FarNet — плагин для написания плагинов на .NET языках
Меня тоже интересует что это за :: и ЧЯДНТ. А есть в природе плагины, которые копируют со стандартной панели на плагиновую и у них не ::? Я бы посмотрел код или с автором связался поучиться чтоб.При попытке скопировать что-то из нативной панели в панель модуля, в открывающемся диалоге в качестве пути стоит "::". Location выставляю правильно, в коммандной строке все нормально. ЧЯДНТ?
Нет. В виртуальной системе эти операции, вообще говоря, не очень стандартные, могут требовать дополнительные данные, например.Есть ли какой-то готовый код для стандартных диалогов копирования/создания папки итд?
Ты смотрел этот модуль? http://forum.farmanager.com/viewtopic.php?f=11&t=6499
С его автором многие вопросы здесь в форуме уже поднимались.
Re: FarNet — плагин для написания плагинов на .NET языках
Ээээ... Ну arclite, ftp. Все стандартные вроде нормально работают.Меня тоже интересует что это за :: и ЧЯДНТ. А есть в природе плагины, которые копируют со стандартной панели на плагиновую и у них не ::? Я бы посмотрел код или с автором связался поучиться чтоб.
Угум, подсматриваю в код периодически.Ты смотрел этот модуль? viewtopic.php?f=11&t=6499
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: FarNet — плагин для написания плагинов на .NET языках
Да, точно, у arclite стоит arc:, а не ::. Независимо куда в него копируется (в какую подпапку архива). Пытаюсь понять, какая польза от этого.
Re: FarNet — плагин для написания плагинов на .NET языках
В данном случае никакой, разумеется. Но хотелось бы туда свой текст подставлять, или на худой конец Location. Вот еще нашел: Network правильно работает.NightRoman wrote:Да, точно, у arclite стоит arc:, а не ::. Независимо куда в него копируется (в какую подпапку архива). Пытаюсь понять, какая польза от этого.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: FarNet — плагин для написания плагинов на .NET языках
Описал бы хоть свой юз-кейс чуть подробнее, если не сложно.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: FarNet — плагин для написания плагинов на .NET языках
А как именно правильно?Вот еще нашел: Network правильно работает.
Re: FarNet — плагин для написания плагинов на .NET языках
В диалоге копирования пишет сразу полный путь, куда копировать.А как именно правильно?
Да такой же как стандартное поведение Фара. Чтобы можно было с клавиатуры вводить каталог назначения. Меня двоеточия смутили слегка, я думал там автоматически будет текущий путь подставляться.NightRoman wrote:Описал бы хоть свой юз-кейс чуть подробнее, если не сложно.
Но это в общем-то не очень важно, просто странно. Меня больше беспокоит в данный момент то, что имена файлов на цифры меняются в AsGetFiles. Я еще на код повтыкал, понял что в стандартной ситуации это использоуется только по Ctrl+Q. Посему вопрос: можно ли вот тут заменить canExploreLocation на canExploreLocation || !(opMode & OPM_QUICKVIEW)? Тогда для дефолтной панели ничего не изменится, а если я переопределю UIKeyPressed, как выше описано, то будут браться имена файлов из эксплорера. Или там в комментариях чуть выше что-то очень похожее написано, но флага SystemNames я не нашел.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: FarNet — плагин для написания плагинов на .NET языках
Ну какой, конкретно? Ты со стандартной панелью не путаешь, случайно?В диалоге копирования пишет сразу полный путь, куда копировать.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: FarNet — плагин для написания плагинов на .NET языках
Смотрю. Понадобится какое-то время для ответа. И на замену, если будет положительный.Посему вопрос: можно ли вот тут заменить...
Re: FarNet — плагин для написания плагинов на .NET языках
Активная панель - стандартная, пассивная - Network. Нажимаем F5, открывается диалог копирования, в нем сразу введен полный путь назначения: \\MAKC-PC\Users\ например.NightRoman wrote:Ну какой, конкретно? Ты со стандартной панелью не путаешь, случайно?В диалоге копирования пишет сразу полный путь, куда копировать.