View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002573 | Wishes | Macro | public | 2014-01-23 10:31 | 2014-01-25 18:03 |
Reporter | JohnDoe | Assigned To | shmuel | ||
Priority | normal | Severity | feature | Reproducibility | N/A |
Status | closed | Resolution | fixed | ||
Product Version | 3.0 | ||||
Fixed in Version | 3.0 | ||||
Summary | 0002573: far.Show: возвращать выбранный пункт меню | ||||
Description | В настоящий момент функция ничего не возвращает. Было бы удобно получать выбранный пункт, в виде, возвращаемом функцией Menu (т.е. возвращаться будет Item,Pos) | ||||
Additional Information | Данное пожелание связано с 0002572. | ||||
Tags | No tags attached. | ||||
Build | LMb274 | ||||
|
Ранее это пожелание озвучивалось на форуме: http://forum.farmanager.com/viewtopic.php?p=106457#p106457 Тогда предлагалось первым значением возвращать Item.text. Однако при условии реализации 0002572 полезнее будет получать весь Item. |
|
far.Show (которую легко реализовать на Lua, но реализована на Си, чтобы быть "из коробки") задумывалась исключительно как *интерактивная* ф-ция для быстрого одновременного показа нескольких значений. Она не используется у меня ни в плагинах, ни в макросах - именно потому, что это функция "для показа". Поэтому в ней и не предусмотрено возвращаемых значений. |
|
Да, я эту функцию использую так же. А в случае реализации данного тикета сфера применения расширилась бы. И для этого надо всего лишь вернуть значение, которое внутри уже есть (The function calls far.MakeMenuItems internally, then far.Menu.) Но это конечно с моей колокольни, вероятно на Си это потребует несколько больше телодвижений, что просто добавить строчку c return. Или вы хотите сказать что возвращаемое значение идеологически не вписывается (исходя из названия функции)? |
|
Нет, на Си это также очень легко, да и идеология тут ни при чём. Просто когда мне нужно возвращаемое значение, использую far.Menu. В принципе можно добавить, то-есть хуже от этого не будет. |
|
Остаётся однако вопрос, что должна возвращать эта ф-ция, если выбран пункт, относящийся к строковому многострочному элементу: выбранную строку или весь элемент. |
|
Нужен весь элемент. Выбранная строка и так доступна в поле text (там ещё может быть номер, но не думаю что это принципиально) |
|
> Выбранная строка и так доступна в поле text Это как? Откуда у нас поле text? |
|
Я полагал что функция будет не мудрствуя лукаво возвращать весь Item, полученный от far.Menu. Но это не принципиально, можно действительно упростить и возвращать сразу объект. С многострочными вижу такие варианты: а) не возиться: кому нужно детализировать, тот сможет воспользоваться far.Menu() б) возвращать текст вторым значением (мне больше нравится а) И отдельный момент: что делать с Pos? Если возвращать, то номер пункта или номер аргумента? (я за номер аргумента) (хотя откуда его взять, он же скрыт в недрах MakeMenuItems...) |
|
Проще всего в реализации было бы возвращать то, что возвращает far.Menu - полностью отвлекаясь от понятия объектов-аргументов и их порядковых номеров. Если же мы хотим возвращать объект и его порядковый номер, то придётся это выводить из номера строки в меню (это возможно, но не элементарно). Вопрос в другом: стоит ли овчинка выделки? Не хотелось бы тратить время на фичу, которая непонятно насколько полезна будет. |
|
Согласен с вашими доводами, не стоит усложнять. Вероятнее всего стоит возвращать то же, что far.Menu() Если возвращать объект, то возникнет ещё один вопрос: как отличить выбор объекта со значением nil от отмены меню? (Впрочем не такой уж вопрос, в случае отмены не возвращается Pos) |
|
Возможно, стоит сделать отдельные функции far.Show и far.MakeMenuItems (для #2572) с требуемым функционалом. |
|
"Сделать отдельные" значит существующие не менять, а сделать вместо этого другие? |
|
Да. Если изменения существенные, нет смысла усложнять far.Show, который в текущей реализации является просто многострочным аналогом far.Message и удобен для вывода какого-либо информационного текста и, в частности, для отладки. |
|
Речь исключительно о том мелком изменении, которое указано в описании тикета. |
|
Я имел в виду изменения кода. А существенность и необходимость изменений определяет Shmuel. |
|
>Я имел в виду изменения кода. И я. Shmuel тоже высказался чуть выше: 0002573:0011748 |
|
LuaMacro build 274. |
|
То что надо! |
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 |