View Issue Details

IDProjectCategoryView StatusLast Update
0002270WishesUser Menupublic2017-12-17 11:13
ReporterSmitis Assigned To 
PrioritynormalSeverityfeatureReproducibilityhave not tried
Status newResolutionreopened 
Product Version3.0 
Fixed in Version3.0 
Summary0002270: Пользовательское меню из любого файла
DescriptionПо F2 вызывается пользовательское меню из файла с фиксированым именем и фиксированым размещением (кроме локального, где фиксировано только имя).
Предлагаю сделать возможным вызов из макросов пользовательского меню из любых файлов. Например так: Menu.Open(filemenu [,mode])
где
filemenu - имя файла, содержащего меню
mode - режим открытия:
       0 - по умолчанию, если путь к файлу не задан, искать в текущей папке
       1 - если путь к файлу не задан, искать в папке menu профиля
       0x10 - запретить вносить изменения в меню
       и т.п.
Возвращаемые значения:
0 - файл меню не найден
1 - меню закрыто по Esc
2 - выполнен пункт меню
и т.д.

Вызваное меню может редактироваться, как обычное пользовательское по F2 (вставка/удаление пунктов и подменю, изменение положение, AltF4)

Расширение по умолчанию использовать .farmenu (что бы можно было повесить ассоциации).

Можно изменить поведение F2 для локальных меню - если в текущей папке несколько файлов меню, выводить их список.
Additional InformationОбсуждение
http://forum.farmanager.com/viewtopic.php?f=6&t=7649
TagsNo tags attached.
Build3226

Relationships

related to 0003570 new Действие клавиши BS в "Меню пользователя" сделать полновесным. 

Activities

vskirdin

2013-02-28 07:53

administrator   bugnote:0010397

Last edited: 2013-02-28 07:53

build 3222. Часть 1: внутренняя реализация.
Добавлен конструктор UserMenu(filename). Ожидается, что filename - полный путь к файлу с меню.

Можно реализовывать упомянутую макрофункцию Menu.Open(filemenu [,mode]) :-)

shmuel

2013-02-28 17:00

developer   bugnote:0010404

3223: добавлена макрофункция mf.usermenu(filename [,mode]).
Если 'mode' равен 0 или не задан, файл открывается "как есть", т.е. по заданному 'filename'.
Если 'mode' равен 1, файл открывается в %farprofile%\Menus (папка создаётся автоматически).

shmuel

2013-02-28 19:49

developer   bugnote:0010405

3224: расширение функциональности mf.usermenu. Полное описание - в macroapi_manual.chm.

Smitis

2013-03-07 20:57

reporter   bugnote:0010483

Наверное, можно закрывать

shmuel

2013-03-07 21:09

developer   bugnote:0010484

Закрываю. Если надо будет, всегда можно переоткрыть.

Smitis

2013-08-29 14:06

reporter   bugnote:0011369

Предлагается доработка - добавить необязательный третий параметр, выводимый в заголовок меню вместо непонятных "User menu".

Diff в теме обсуждения http://forum.farmanager.com/viewtopic.php?f=15&t=7770&p=112771#p112771

shmuel

2013-08-29 14:21

developer   bugnote:0011370

Я смотрел ваш предыдущий патч и новый тоже сейчас. Предлагаемые изменения говорят о том, что вы не изучили usermenu.cpp в достаточной степени, в частности, моменты, связанные с реакцией меню на некоторые клавиши, кроме того, там есть завязки на Title==nullptr, - эти вещи поломаются. Да и в macros.cpp изменение не проверяет, есть ли достаточно аргументов, что может привести к падению. Не всё так просто.

Как и раньше, у меня нет времени заниматься самим usermenu. Найдите кого-нибудь из Far-team, кто бы привёл usermenu.hpp/.cpp к нужному вам состоянию, остальное я сделаю.

Smitis

2013-08-30 15:36

reporter   bugnote:0011387

Last edited: 2013-08-30 15:37

Именно так - если заголовок nullptr, выводится "User menu" или "Main menu". А мы теперь передаём значение, отличное от null и оно выводится в заголовок. А потом от него строится вся цепочка menu\submenu\subsubmenu выводимая в заголовок. При пустой строке всё остаётся по старому.

Количество аргументов не проверяется, просто при создании меню вызывается соответствующий конструктор.

Во всяком случае, я с мая месяца использую патченую версию (самые последние билды только не патчил, кроме 3625 к которому делал diff). Меню пользуюсь очень интенсивно (и глобальное и пользовательское). Никаких падений.

shmuel

2013-08-30 17:15

developer   bugnote:0011388

Не буду спорить (нет времени). Юзерменю - не моя область Фара, вносить в неё изменения для меня означает будущую поддержку этих изменений - вот этого-то мне и не надо. Просто, чтобы вы поняли мою позицию. Есть живые и здравствующие члены Far-team, которые знают юзерменю вдоль и поперёк, вот пусть они это и делают, а я по части макросов доведу их изменения до конца.

Issue History

Date Modified Username Field Change
2013-01-24 09:21 Smitis New Issue
2013-01-29 22:50 alexy Project Far Manager => Wishes
2013-01-29 22:51 alexy Category Macro => User Menu
2013-02-28 07:53 vskirdin Note Added: 0010397
2013-02-28 07:53 vskirdin Note Edited: 0010397
2013-02-28 17:00 shmuel Note Added: 0010404
2013-02-28 19:49 shmuel Note Added: 0010405
2013-03-07 14:57 shmuel Assigned To => shmuel
2013-03-07 14:57 shmuel Status new => feedback
2013-03-07 20:57 Smitis Note Added: 0010483
2013-03-07 20:57 Smitis Status feedback => assigned
2013-03-07 21:09 shmuel Build => 3226
2013-03-07 21:09 shmuel Note Added: 0010484
2013-03-07 21:09 shmuel Status assigned => closed
2013-03-07 21:09 shmuel Resolution open => fixed
2013-03-07 21:09 shmuel Fixed in Version => 3.0
2013-08-29 14:06 Smitis Note Added: 0011369
2013-08-29 14:06 Smitis Status closed => feedback
2013-08-29 14:06 Smitis Resolution fixed => reopened
2013-08-29 14:21 shmuel Note Added: 0011370
2013-08-29 14:53 shmuel Status feedback => new
2013-08-29 14:53 shmuel Assigned To shmuel =>
2013-08-30 15:36 Smitis Note Added: 0011387
2013-08-30 15:37 Smitis Note Edited: 0011387
2013-08-30 17:15 shmuel Note Added: 0011388
2017-12-17 11:13 JohnDoe Relationship added related to 0003570