Пользовательский режим сортировки для панелей

Здесь обсуждается всё, что касается макросов.
User avatar
Alexey Samlyukov
Posts: 1765
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 7 times
Contact:

Re: Сортировка каталогов (папок) всегда по алфавиту

Post by Alexey Samlyukov »

Latest post of the previous page:

для билда 3620 можно теперь таким скриптом отделаться
User avatar
Alexey Samlyukov
Posts: 1765
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 7 times
Contact:

Re: Сортировка каталогов (папок) всегда по алфавиту

Post by Alexey Samlyukov »

Shmuel

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

Code: Select all

╔═════════════ Sort by ═════════════╗
║  Name                   Ctrl-F3   ║
║  Extension              Ctrl-F4   ║
║  Write time             Ctrl-F5   ║
║  Size                   Ctrl-F6   ║
║  Unsorted               Ctrl-F7   ║
║  Creation time          Ctrl-F8   ║
║  Access time            Ctrl-F9   ║
║  Change time                      ║
║  Descriptions           Ctrl-F10  ║
║  Owner                  Ctrl-F11  ║
║  Allocated size                   ║
║  Number of hard links             ║
║  Number of streams                ║
║  Size of streams                  ║
║  Full name                        ║
║  Custom data                      ║
╟───────────────────────────────────╢
║ + Sort files with StrCmpLogicalW  ║
╟───────────────────────────────────╢
║  Numeric sort                     ║
║  Uppercase before lowercase       ║
║  Use sort groups        Shift-F11 ║
║  Show selected first    Shift-F12 ║
║√ Show directories first           ║
╚═══════════════════════════════════╝
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: Сортировка каталогов (папок) всегда по алфавиту

Post by Shmuel »

Alexey Samlyukov wrote:просьба, меню кастомной сортировки показывать в стандартном диалоге, т.е. через сепаратор после основных.
Прямо сейчас нет времени. Имеет смысл поместить виш на мантис, в раздел макросов.
User avatar
Alexey Samlyukov
Posts: 1765
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 7 times
Contact:

Re: Сортировка каталогов (папок) всегда по алфавиту

Post by Alexey Samlyukov »

спасибо за реализацию.
Dmi3y
Posts: 3
Joined: Thu 05 Oct, 2017 06:47

Пользовательский режим сортировки для панелей

Post by Dmi3y »

Господа, а все-таки кто-нибудь реализовал макрос (может есть другие способы), чтобы сортировка каталогов была строго по алфавиту?
Меня в частности интересует, сортировка каталогов строго по алфавиту, а файлов по дате изменения. У меня это основной режим работы в другом файловом менеджере. Хотелось и Far также. С Lua к сожалению не знаком...
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Пользовательский режим сортировки для панелей

Post by Shmuel »

Dmi3y, сделать это не сложно, но прямо сейчас времени нет. Если вам никто другой не поможет, напомните через неделю (можно в личку).
Dmi3y
Posts: 3
Joined: Thu 05 Oct, 2017 06:47

Пользовательский режим сортировки для панелей

Post by Dmi3y »

Shmuel,
Доброго время суток! Напоминаю Вам, через неделю про макрос "чтобы сортировка каталогов была строго по алфавиту").
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Пользовательский режим сортировки для панелей

Post by Shmuel »

Пожалуйста, пробуйте. В приложенном файле - то же самое, что и под спойлером.

custom_sorts-20171012.7z
(907 Bytes) Downloaded 162 times
Dmi3y
Posts: 3
Joined: Thu 05 Oct, 2017 06:47

Пользовательский режим сортировки для панелей

Post by Dmi3y »

Shmuel wrote: Thu 12 Oct, 2017 07:52Пожалуйста, пробуйте. В приложенном файле - то же самое, что и под спойлером.
Огромное спасибо! Прямо, то что нужно.
Респект!
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Пользовательский режим сортировки для панелей

Post by buniak_a_h »

Уважаемые гуры!
Не могли бы вы мне помочь? Проблема на стыке ffi и сортировки (точнее, ffi в плане сортировки).
Для панельного модуля я создаю массив таблиц tPluginPanelItem; в каждой есть UserData = {Tail=n}, где n - целое число. Мне нужно отсортировать элементы панели по этому UserData.Tail. В структуре SortingPanelItem это поле описано так:

Code: Select all

  struct
  {
    void *Data;
    FARPANELITEMFREECALLBACK FreeData;
  } UserData;
Увы мне! Я так и не понял, как из этой структуры "вытащить" поле Tail.
Возможно, надо было писать в подфорум про ffi, я извиняюсь. Если ответа не будет, напишу туда со ссылочкой на это сообщение…
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Пользовательский режим сортировки для панелей

Post by Shmuel »

buniak_a_h wrote: Thu 05 Aug, 2021 19:14 Я так и не понял, как из этой структуры "вытащить" поле Tail.
Данный сценарий не был предусмотрен. Но если бы и был, это убило бы производительность сортировки. Сортировка не случайно была сделана через FFI.
Можно попробовать использовать для этого какое-то экзотическое поле, например CRC32.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Пользовательский режим сортировки для панелей

Post by buniak_a_h »

Shmuel, спасибо.
Уточняющий вопрос: а если я самому полю UserData присвою то самое значение n - его возможно будет использовать без потери скорости? Если да и не влом, не напишете, как его вытащить?
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Пользовательский режим сортировки для панелей

Post by buniak_a_h »

Shmuel, немножко подробностей (может, посоветуете что).
Изначально в панель заносится по нескольку элементов для одного файла, причем они располагаются так, что Tail растёт на единицу (номер элемента для конкретного файла). В структуре SortingPanelItem есть поле Position Позиция элемента во внутреннем списке. Иногда это - номер элемента без сортировки. Т.е. для сортировки если сравниваются элементы с одним и тем же FileName, то в этом случае прекрасно подходил бы Position. Увы, это не проходит: видимо, Position не всегда соответствует номеру элемента в положении "без сортировки". Я прав? И если да - есть ли какой-то закон формирования Position?
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Пользовательский режим сортировки для панелей

Post by Shmuel »

Поле UserData вытащить, имея только структуру SortingPanelItem, возможно только с использованием знания внутренностей LuaFAR, то есть не через API. И неважно, число там или таблица.
Насчёт Position - насколько мне помнится, это как раз то, как вы это описали. Почему не получается, не знаю. Но кастомные сортировки в основном испытывались на реальных панелях, где одному элементу соответствует один файл.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Пользовательский режим сортировки для панелей

Post by buniak_a_h »

Shmuel wrote: Thu 05 Aug, 2021 20:46 Насчёт Position - насколько мне помнится, это как раз то, как вы это описали. Почему не получается, не знаю.
Как показал опыт, при первой сортировке так работает. При следующих - нет. Буду смотреть…
Спасибо.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Пользовательский режим сортировки для панелей

Post by buniak_a_h »

Shmuel wrote: Thu 05 Aug, 2021 20:22 Можно попробовать использовать для этого какое-то экзотическое поле, например CRC32.
Для этого было бы здорово, если б в InitSort и в EndSort можно было бы передать список lua-таблиц tPluginPanelItem в которых временно (на время сортировки) подменить значение. а потом в EndSort - вернуть на место… А лучше на время сортировки убрать записи-"хвосты", а потом вернуть. Эх! Некому теперь сделать…
Post Reply

Return to “Обсуждение макросов”