Latest post of the previous page:
Проблема в том, что Far "юзает" SetDirectoryInfo в терминах "имени"...Хмм... есть пара идей. Начнем вот с этого патча:
Latest post of the previous page:
Проблема в том, что Far "юзает" SetDirectoryInfo в терминах "имени"...Code: Select all
OpenPanelInfo Info;
Global->CtrlObject->Plugins->GetOpenPanelInfo(ArcItem.hPlugin,&Info);
string strSaveDir = NullToEmpty(Info.CurDir);
...
1) SetPluginDirectory(FindData.strFileName,ArcItem.hPlugin);
...
2) SetPluginDirectory(strSaveDir,ArcItem.hPlugin);
...
Code: Select all
bool bGet=GetPluginFile(FindItem.ArcIndex,FindItem.FindData,strTempDir,strSearchFileName);
добавить OPIF_USERDATA и struct UserData в OpenPanelInfo. ну или без флага, но занулять OpenPanelInfo в Plugin::GetOpenPanelInfo. даже наверное лучше без флага.Skirda wrote:Перечитай, что я выше написал (hint: strSaveDir)
ФАР в этом случае будет ожидать в UserData данные для CurDir? (по аналогии с PluginPanelItem)zg wrote:добавить OPIF_USERDATA и struct UserData в OpenPanelInfo.
ХЗ.zg wrote:а почему UserData.Data передаётся, а UserData.FreeData нет? смысл теряется ж.
да.Skirda wrote:ФАР в этом случае будет ожидать в UserData данные для CurDir? (по аналогии с PluginPanelItem)
такой необходимости нет.Skirda wrote:Ломаем" АПИ?
Мои тесты отработали все. Это очень хороший знак. Но раз "Поисковик по прежнему отдает NULL.", то новый SetDirectoryW у меня используется только в режиме без поиска (раньше использовался воркэраунд с получением текущего элемента). Как будут подвижки с поиском, продолжу тестирование и, наверное, допишу новые тесты, так как функциональность существенно расширится. А пока режим родного Фар-поиска в панелях Фарнет отключен, используется свой поиск, но он не может 100% заменить родной (всякие F3, CtrlQ не работают на папках).svs 19.12.2012 13:13:17 +0400 - build 3033
1. Mantis#0002207: SetDirectoryW() всегда передает в поле SetDirectoryInfo->UserData NULL
Продолжаем. Переделан механизм - ищем UserData не по имени, а берем из конкретного элемента панели.
Поисковик по прежнему отдает NULL.
Как бы слом не предвидится.zg wrote:такой необходимости нет.Skirda wrote:Ломаем" АПИ?
именно на этот очевидный вариант я и «намекал».Skirda wrote:Как бы слом не предвидится.