SetDirectoryInfo::UserData

Разработка Far.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman »

Latest post of the previous page:

Хорошо. Повторю, что писал ранее, может, теперь понятнее будет о чем это я говорил
Но есть и хитрые ситуации, например, диалог результатов поиска, юзер жмакает на найденном элементе, Фар зовет SetDirectory. Что передавать? По аналогии надо бы заполнить UserData родительского элемента. Но это технически сложней реализовать. Но можно и UserData самого элемента, а уж плагин разберется, что там за директория у него. Но тогда надо отмечать этот факт каким-то дополнительным флагом.
Я ожидал, что будет тяжело организовать передачу UserData родителя. Если это так, то нужен вариант с UserData самого элемента, думаю, плагину этого будет достаточно. Но плагин должен этот случай отличать. Может сейчас? Если нет, то нужен новый флажок какой-то.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman »

Пока можно забить на диалог поиска. Пусть там пока передается 0. Если остальное будет работать, то это уже хороший шаг вперед.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: SetDirectoryInfo::UserData

Post by Skirda »

NightRoman wrote:В принципе это безобидное изменение, плагины-то пока не пользуют эту фичу. Только не делать ее гласной, пока не отшлифуется (на Фарнете пока). Я протестирую, как следует.
Я "опасный" код в #if`ы оберну.
We are the Borg. You will be assimilated.
So Say We All!
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman »

То есть мне надо будет компилить? ОК, тебе видней. Мне неохота с компиляцией Фара возиться, но могу. Тогда скажи чего и где надо установить перед компиляцией.

А чего там опасного может быть, раз плагины еще не пользовали это поле? Кто пользовал (0 причем?) - сам виноват, имхо.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: SetDirectoryInfo::UserData

Post by Skirda »

ты чем компилишь?
We are the Borg. You will be assimilated.
So Say We All!
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman »

Студией. Там только одно место вроде? Мне проще тогда будет в коде "раскомментировать". А что там опасного-то? Не могу пока понять. Ну ладно, разберусь. Начал уже Фарнет готовить. Это и без нового кода займет заметное время. Я тут буду отмечаться об успехах и проблемах.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: SetDirectoryInfo::UserData

Post by Skirda »

добавь макроопределение MANTIS_0002207=1 для компиляции.
как в студии - ХЗ. в комстроке это /DMANTIS_0002207
We are the Borg. You will be assimilated.
So Say We All!
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman »

Начал внедрять новый механизм. Пока без кода, который отключен условной компиляцией. Что-то в целом работает, а что-то глючит.

Вопрос - какая именно функциональность там отключена условной компиляцией? Ее обязательно надо задествовать или что-то должно работать и без нее? (Ибо "что-то" явно работает, пока бы это "что-то" и потестил, и проблемы описал).
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: SetDirectoryInfo::UserData

Post by Skirda »

Условная компиляция. По умолчанию макрос MANTIS_0002207 не определен. Определить его и перекомпилить...
We are the Borg. You will be assimilated.
So Say We All!
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman »

Skirda wrote:Условная компиляция. По умолчанию макрос MANTIS_0002207 не определен. Определить его и перекомпилить...
Да я не это спросил. Словами скажи, пожалуйста, что именно отключено. Всё (это вроде не так) или какая-то определенная часть? Какая?
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman »

Я глянул на код GetUserDataFromPluginItem. Правильно я понимаю, что оно по имени файла ищет? Если да, то это не будет работать, кажется, если одинаковые имена есть. Все эти приседания с юзер дата и нужны, чтобы подобного рода ограничения Фара обходить, типа одинаковых имен или плохих имен (.., \).
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman »

Skirda
Если мое опасение верно, то код под условной компиляцией работать правильно не будет. Вот я и спрашиваю - без этого кода что-то уже можно тестировать? SetDirectory передает юзер дата в каких-то случаях сейчас? По моим наблюдениям в дебаггере - вроде да. Если это уже можно тестировать, то есть и глюки. Уже пытаться баг репорт составлять (это не просто, надо сузить до точной проблемы) или рано, посмотришь еще в Фаре?
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: SetDirectoryInfo::UserData

Post by Skirda »

NightRoman wrote:Правильно я понимаю, что оно по имени файла ищет?
типа того; а иначе - ХЗ как победить... текущий элемент панели?
а че делать когда сканирование идет в том же поиске? там как такового нет текущего элемента...
NightRoman wrote:Skirda
Если мое опасение верно, то код под условной компиляцией работать правильно не будет. Вот я и спрашиваю - без этого кода что-то уже можно тестировать? SetDirectory передает юзер дата в каких-то случаях сейчас? По моим наблюдениям в дебаггере - вроде да. Если это уже можно тестировать, то есть и глюки. Уже пытаться баг репорт составлять (это не просто, надо сузить до точной проблемы) или рано, посмотришь еще в Фаре?
Да я бы посмотрел, но то, на что я смотрел - это был тестовый плагин (из "уроков"). Если найдется что-нибудь не сильно тяжеловестное (тестовый плагин, естественно) - то...
We are the Borg. You will be assimilated.
So Say We All!
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman »

Хм, нет такой подход с поиском по имени не годится. Как уже сказано, не будет работать с дублированными именами. А во-вторых, будет тормозить при поиске. Чем больше элементов, тем хуже. Известный "принцип Шлемиэля" :)


Но и не ожидалось, что сразу все брутальными методами в лоб организуется. Мне трудно посоветовать.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: SetDirectoryInfo::UserData

Post by NightRoman »

а че делать когда сканирование идет в том же поиске? там как такового нет текущего элемента...
Хоть в обычной ситуации, хоть при поиске, плагин не имена Фару дает, а структуры файлов, где юзер дата заполнены. Фар не эти структуры сканирует, а что-то другое? Вот это и надо копать, почему теряются юзер дата в какой-то момент.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: SetDirectoryInfo::UserData

Post by Skirda »

Проблема в том, что Far "юзает" SetDirectoryInfo в терминах "имени"...
Хмм... есть пара идей. Начнем вот с этого патча:
Attachments
!setdir.diff.7z
(796 Bytes) Downloaded 144 times
We are the Borg. You will be assimilated.
So Say We All!
Post Reply

Return to “Development”