View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000555 | Far Manager 1.7x | Macro | public | 2008-06-16 02:53 | 2011-12-26 17:23 |
Reporter | JohnDoe | Assigned To | vskirdin | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 1.70 | ||||
Summary | 0000555: Menu.Select и меню с хоткеями. | ||||
Description | При попытке выбрать пункт меню, на который назначен хоткей, не получается использовать режим MENUSELECT_MATCH_ENTIRE макрос для тестирования: F11 Home Menu.Select("Temporary panel",MENUSELECT_MATCH_ENTIRE) msgbox("Temporary panel","MENUSELECT_MATCH_ENTIRE") Home Menu.Select("Temporary panel",MENUSELECT_MATCH_TAIL) msgbox("Temporary panel","MENUSELECT_MATCH_TAIL") | ||||
Tags | No tags attached. | ||||
Build | 0 | ||||
|
При назначении хоткея пункту меню плагинов, он (хоткей) просто вписывается перед именем плагина. Т. е. надо так и писать: Menu.Select("T Temporary panel", MENUSELECT_MATCH_ENTIRE) |
|
Ок, но нужна ли эта фича? Она ведь не позволяет полноценно использовать MENUSELECT_MATCH_ENTIRE |
|
Ну это уже издевательство IMHO :) Думаю что фар должен не включать хоткей в строку при этой проверке. |
|
Я что, против? :) Только кроме меню плагинов таких "меню с хоткеями" в фаре ещё куча (конфигурация плагинов, юзерменю, главное меню, диски...), и расставлять в каждом костыли с отрезанием хоткея как-то некрасиво. Тут был бы уместен некий "service region" для меню, в который хоткей и пихать. |
|
Так фича же работает для любого меню, и класс меню прекрасно знает у каких пунктов есть хоткей, или я что то пропускаю? |
|
Класс знает про свой DWORD AccelKey, а спич о текстовых представлениях хоткеев, которые хранятся вместе с названием пункта в char Name[128], причем то спереди (как в меню плагинов) то сзади (как в главном), и отрезать которые тоже прийдётся руками. |
|
Значит за исключением главного меню везде хоткеи хранятся спереди? > и расставлять в каждом костыли с отрезанием хоткея как-то некрасиво. Так может в одном месте поставить костыль? В самой макро-функции Menu.Select? |
|
Эта же проблема актуальна также для Menu.Value и Menu.GetValue(). |
|
Не, костыль в Menu.Select() - это лишний ИИ, т.к. пункт меню, без хоткеев, сам по себе можно обозвать "T Temporary panel". И че тогда делать? Видимо разумнее перелопатить систему меню: отделить "_назначаемые_" хоткеи от строки наименования. "Назначаемые" - те, "кого" обычно по F4 назначают :-) Посему нужно сделать: 1. этот Инц закрыть (в пользу п.2) 2. завести новый, в котором описать разделение мух и котлет. В первую очередь это значительно упростит код формирования пунктов меню в коде Far (особенно херню с выравниванием в UserMenu). Т.е., например, вместо ListItem.strName.Format(L" %s", strName.CPtr()); будет ListItem.strName=strName; А вместо ListItem.strName.Format(L"&%c%s %s",strHotKey.At(0),(strHotKey.At(0)==L'&'?L"&":L""), strName.CPtr()); будет ListItem.strHotKey=strHotKey; ListItem.strName=strName; |
|
Кто заведёт новый инц? Я могу скопировать делали из сообщения выше, не более. |
|
а почему сам не хочешь завести? |
|
Запросто: 0001422 |
Date Modified | Username | Field | Change |
---|---|---|---|
2008-06-16 02:53 | JohnDoe | New Issue | |
2008-06-16 02:53 | JohnDoe | Status | new => assigned |
2008-06-16 02:53 | JohnDoe | Assigned To | => vskirdin |
2008-06-16 03:17 | DrKnS | Note Added: 0001593 | |
2008-06-16 03:20 | JohnDoe | Note Added: 0001594 | |
2008-06-16 03:20 | alexy | Note Added: 0001595 | |
2008-06-16 03:35 | DrKnS | Note Added: 0001597 | |
2008-06-16 07:45 | alexy | Note Added: 0001599 | |
2008-06-16 09:25 | DrKnS | Note Added: 0001600 | |
2008-08-12 04:45 | JohnDoe | Note Added: 0001733 | |
2010-06-20 23:55 | JohnDoe | Note Added: 0005493 | |
2010-06-29 13:15 | vskirdin | Note Added: 0005500 | |
2010-06-29 13:15 | vskirdin | Status | assigned => feedback |
2010-06-29 14:50 | JohnDoe | Note Added: 0005507 | |
2010-06-29 14:50 | JohnDoe | Status | feedback => assigned |
2010-06-29 15:05 | vskirdin | Note Added: 0005509 | |
2010-06-29 16:38 | JohnDoe | Note Added: 0005510 | |
2010-06-29 16:38 | JohnDoe | Status | assigned => resolved |
2010-07-12 00:20 | alexy | Build | => 0 |
2010-07-12 00:20 | alexy | Status | resolved => closed |
2010-07-12 00:20 | alexy | Resolution | open => fixed |