Latest post of the previous page:
Прямо сейчас нет времени. Имеет смысл поместить виш на мантис, в раздел макросов.Alexey Samlyukov wrote:просьба, меню кастомной сортировки показывать в стандартном диалоге, т.е. через сепаратор после основных.
Latest post of the previous page:
Прямо сейчас нет времени. Имеет смысл поместить виш на мантис, в раздел макросов.Alexey Samlyukov wrote:просьба, меню кастомной сортировки показывать в стандартном диалоге, т.е. через сепаратор после основных.
Огромное спасибо! Прямо, то что нужно.Shmuel wrote: ↑Thu 12 Oct, 2017 07:52Пожалуйста, пробуйте. В приложенном файле - то же самое, что и под спойлером.
tPluginPanelItem
; в каждой есть UserData = {Tail=n}
, где n - целое число. Мне нужно отсортировать элементы панели по этому UserData.Tail
. В структуре SortingPanelItem
это поле описано так:
Code: Select all
struct
{
void *Data;
FARPANELITEMFREECALLBACK FreeData;
} UserData;
Данный сценарий не был предусмотрен. Но если бы и был, это убило бы производительность сортировки. Сортировка не случайно была сделана через FFI.buniak_a_h wrote: ↑Thu 05 Aug, 2021 19:14 Я так и не понял, как из этой структуры "вытащить" поле Tail.
SortingPanelItem
есть поле Position
Позиция элемента во внутреннем списке. Иногда это - номер элемента без сортировки. Т.е. для сортировки если сравниваются элементы с одним и тем же FileName, то в этом случае прекрасно подходил бы Position. Увы, это не проходит: видимо, Position
не всегда соответствует номеру элемента в положении "без сортировки". Я прав? И если да - есть ли какой-то закон формирования Position
?Как показал опыт, при первой сортировке так работает. При следующих - нет. Буду смотреть…
Для этого было бы здорово, если б в
InitSort
и в EndSort
можно было бы передать список lua-таблиц tPluginPanelItem
в которых временно (на время сортировки) подменить значение. а потом в EndSort
- вернуть на место… А лучше на время сортировки убрать записи-"хвосты", а потом вернуть. Эх! Некому теперь сделать…