View Issue Details

IDProjectCategoryView StatusLast Update
0002573WishesMacropublic2014-01-25 18:03
ReporterJohnDoe Assigned Toshmuel  
PrioritynormalSeverityfeatureReproducibilityN/A
Status closedResolutionfixed 
Product Version3.0 
Fixed in Version3.0 
Summary0002573: far.Show: возвращать выбранный пункт меню
DescriptionВ настоящий момент функция ничего не возвращает.
Было бы удобно получать выбранный пункт, в виде, возвращаемом функцией Menu (т.е. возвращаться будет Item,Pos)
Additional InformationДанное пожелание связано с 0002572.
TagsNo tags attached.
BuildLMb274

Activities

JohnDoe

2014-01-23 10:39

updater   bugnote:0011742

Ранее это пожелание озвучивалось на форуме: http://forum.farmanager.com/viewtopic.php?p=106457#p106457
Тогда предлагалось первым значением возвращать Item.text.
Однако при условии реализации 0002572 полезнее будет получать весь Item.

shmuel

2014-01-23 12:35

developer   bugnote:0011746

far.Show (которую легко реализовать на Lua, но реализована на Си, чтобы быть "из коробки") задумывалась исключительно как *интерактивная* ф-ция для быстрого одновременного показа нескольких значений. Она не используется у меня ни в плагинах, ни в макросах - именно потому, что это функция "для показа". Поэтому в ней и не предусмотрено возвращаемых значений.

JohnDoe

2014-01-23 12:49

updater   bugnote:0011747

Да, я эту функцию использую так же.
А в случае реализации данного тикета сфера применения расширилась бы.
И для этого надо всего лишь вернуть значение, которое внутри уже есть (The function calls far.MakeMenuItems internally, then far.Menu.)

Но это конечно с моей колокольни, вероятно на Си это потребует несколько больше телодвижений, что просто добавить строчку c return.

Или вы хотите сказать что возвращаемое значение идеологически не вписывается (исходя из названия функции)?

shmuel

2014-01-23 12:57

developer   bugnote:0011748

Нет, на Си это также очень легко, да и идеология тут ни при чём. Просто когда мне нужно возвращаемое значение, использую far.Menu.

В принципе можно добавить, то-есть хуже от этого не будет.

shmuel

2014-01-23 13:32

developer   bugnote:0011749

Last edited: 2014-01-23 13:33

Остаётся однако вопрос, что должна возвращать эта ф-ция, если выбран пункт, относящийся к строковому многострочному элементу: выбранную строку или весь элемент.

JohnDoe

2014-01-23 13:45

updater   bugnote:0011750

Нужен весь элемент.
Выбранная строка и так доступна в поле text (там ещё может быть номер, но не думаю что это принципиально)

shmuel

2014-01-23 13:48

developer   bugnote:0011751

> Выбранная строка и так доступна в поле text

Это как? Откуда у нас поле text?

JohnDoe

2014-01-23 13:59

updater   bugnote:0011752

Last edited: 2014-01-23 14:11

Я полагал что функция будет не мудрствуя лукаво возвращать весь Item, полученный от far.Menu.

Но это не принципиально, можно действительно упростить и возвращать сразу объект.
С многострочными вижу такие варианты:
а) не возиться: кому нужно детализировать, тот сможет воспользоваться far.Menu()
б) возвращать текст вторым значением
(мне больше нравится а)

И отдельный момент: что делать с Pos?
Если возвращать, то номер пункта или номер аргумента?
(я за номер аргумента)
(хотя откуда его взять, он же скрыт в недрах MakeMenuItems...)

shmuel

2014-01-23 14:17

developer   bugnote:0011753

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

Вопрос в другом: стоит ли овчинка выделки? Не хотелось бы тратить время на фичу, которая непонятно насколько полезна будет.

JohnDoe

2014-01-23 14:24

updater   bugnote:0011754

Last edited: 2014-01-23 14:29

Согласен с вашими доводами, не стоит усложнять.
Вероятнее всего стоит возвращать то же, что far.Menu()

Если возвращать объект, то возникнет ещё один вопрос: как отличить выбор объекта со значением nil от отмены меню?
(Впрочем не такой уж вопрос, в случае отмены не возвращается Pos)

Aidar

2014-01-24 08:07

reporter   bugnote:0011758

Возможно, стоит сделать отдельные функции far.Show и far.MakeMenuItems (для #2572) с требуемым функционалом.

JohnDoe

2014-01-24 08:11

updater   bugnote:0011759

Last edited: 2014-01-24 08:12

"Сделать отдельные" значит существующие не менять, а сделать вместо этого другие?

Aidar

2014-01-24 09:31

reporter   bugnote:0011760

Да. Если изменения существенные, нет смысла усложнять far.Show, который в текущей реализации является просто многострочным аналогом far.Message и удобен для вывода какого-либо информационного текста и, в частности, для отладки.

JohnDoe

2014-01-24 09:56

updater   bugnote:0011761

Речь исключительно о том мелком изменении, которое указано в описании тикета.

Aidar

2014-01-24 10:18

reporter   bugnote:0011762

Я имел в виду изменения кода.
А существенность и необходимость изменений определяет Shmuel.

JohnDoe

2014-01-24 10:21

updater   bugnote:0011763

Last edited: 2014-01-24 10:21

>Я имел в виду изменения кода.
И я.
Shmuel тоже высказался чуть выше: 0002573:0011748

shmuel

2014-01-24 18:24

developer   bugnote:0011776

LuaMacro build 274.

JohnDoe

2014-01-25 13:13

updater   bugnote:0011781

То что надо!

Issue History

Date Modified Username Field Change
2014-01-23 10:31 JohnDoe New Issue
2014-01-23 10:39 JohnDoe Note Added: 0011742
2014-01-23 12:35 shmuel Note Added: 0011746
2014-01-23 12:49 JohnDoe Note Added: 0011747
2014-01-23 12:57 shmuel Note Added: 0011748
2014-01-23 13:32 shmuel Note Added: 0011749
2014-01-23 13:33 shmuel Note Edited: 0011749
2014-01-23 13:45 JohnDoe Note Added: 0011750
2014-01-23 13:48 shmuel Note Added: 0011751
2014-01-23 13:59 JohnDoe Note Added: 0011752
2014-01-23 14:01 JohnDoe Note Edited: 0011752
2014-01-23 14:11 JohnDoe Note Edited: 0011752
2014-01-23 14:17 shmuel Note Added: 0011753
2014-01-23 14:24 JohnDoe Note Added: 0011754
2014-01-23 14:29 JohnDoe Note Edited: 0011754
2014-01-23 14:29 JohnDoe Note Edited: 0011754
2014-01-24 08:07 Aidar Note Added: 0011758
2014-01-24 08:11 JohnDoe Note Added: 0011759
2014-01-24 08:12 JohnDoe Note Edited: 0011759
2014-01-24 09:31 Aidar Note Added: 0011760
2014-01-24 09:56 JohnDoe Note Added: 0011761
2014-01-24 10:18 Aidar Note Added: 0011762
2014-01-24 10:21 JohnDoe Note Added: 0011763
2014-01-24 10:21 JohnDoe Note Edited: 0011763
2014-01-24 18:24 shmuel Note Added: 0011776
2014-01-24 18:24 shmuel Assigned To => shmuel
2014-01-24 18:24 shmuel Status new => feedback
2014-01-25 13:13 JohnDoe Note Added: 0011781
2014-01-25 13:13 JohnDoe Status feedback => assigned
2014-01-25 13:13 JohnDoe Status assigned => resolved
2014-01-25 18:03 shmuel Build => LMb274
2014-01-25 18:03 shmuel Status resolved => closed
2014-01-25 18:03 shmuel Resolution open => fixed
2014-01-25 18:03 shmuel Fixed in Version => 3.0