SASGIS - SAS.Планета
View Issue Details
0001371SAS.Планета[All Projects] Хотелкаpublic02-07-2012 19:0205-10-2012 09:57
zed 
zed 
normalminorN/A
resolvedfixed 
WindowsXPSP3
110418 
121010121010 
0001371: Всплывающее меню при клике по строке статуса
Для того, чтобы иметь быстрый доступ к настройкам статусной строки, хотелось бы, чтобы появлялась менюшка с чекбоксами, включая и отключая которые, можно было бы включать/отключать определённые "поля" в статусной строке.
Оттуда же, хотелось бы вызывать и окошко со всеми настройками для строки (цвет, шрифт и проч.), присутствующими в ini.
меню, строка состояния, строка статуса
Issue History
02-07-2012 19:02zedNew Issue
02-07-2012 19:02zedTag Attached: строка состояния
02-07-2012 19:02zedTag Attached: меню
02-07-2012 19:03zedTag Attached: строка статуса
02-07-2012 19:09vdemidovAssigned To => zed
02-07-2012 19:09vdemidovStatusnew => assigned
02-07-2012 19:09vdemidovTarget Version => 26xxxx
02-07-2012 19:13zedNote Added: 0007741
02-07-2012 19:19vdemidovNote Added: 0007742
02-07-2012 19:26GarlNote Added: 0007743
02-07-2012 19:27vasketsovNote Added: 0007744
02-07-2012 19:29zedNote Added: 0007745
02-07-2012 19:33vdemidovNote Added: 0007746
09-08-2012 07:17vdemidovProduct Version.Nightly => 110418
28-08-2012 14:43zedAssigned Tozed =>
28-08-2012 14:43zedStatusassigned => confirmed
03-10-2012 16:29zedNote Added: 0009137
03-10-2012 16:40zedAssigned To => zed
03-10-2012 16:40zedStatusconfirmed => assigned
03-10-2012 18:32vdemidovNote Added: 0009138
03-10-2012 18:33zedNote Added: 0009139
03-10-2012 20:05vdemidovNote Added: 0009140
03-10-2012 21:02vdemidovNote Added: 0009141
04-10-2012 06:36zedNote Added: 0009142
04-10-2012 06:46vdemidovNote Added: 0009143
04-10-2012 12:28zedStatusassigned => resolved
04-10-2012 12:28zedFixed in Version => 121010
04-10-2012 12:28zedResolutionopen => fixed
04-10-2012 12:29zedTarget Version26xxxx => 121010
05-10-2012 06:23TolikNote Added: 0009144
05-10-2012 06:48zedNote Added: 0009146
05-10-2012 06:51zedNote Added: 0009147
05-10-2012 09:38TolikNote Added: 0009155
05-10-2012 09:52vdemidovNote Added: 0009156
05-10-2012 09:57zedNote Added: 0009157

Notes
(0007741)
zed   
02-07-2012 19:13   
>Ответственный => zed
Хех. Дело в том, что я без понятия, с какой стороны подступиться. А так бы да, сделал.
(0007742)
vdemidov   
02-07-2012 19:19   
А в чем сложности?
(0007743)
Garl   
02-07-2012 19:26   
кстати может "отображать линейку" тоже в эту менюшку засунуть?
(0007744)
vasketsov   
02-07-2012 19:27   
Ну видимо галочки - это пункты меню с чекбоксами.
А на цвета - окошко.
(0007745)
zed   
02-07-2012 19:29   
>А в чем сложности?
Так: "я без понятия, с какой стороны подступиться" (c)

>кстати может "отображать линейку" тоже в эту менюшку засунуть?
Кстати, для линейки нужно своё меню, при клике по ней.

>А на цвета - окошко.
Ну и пункты с чекбоксами там можно повторить, для комплекту.
(0007746)
vdemidov   
02-07-2012 19:33   
Смотри как контекстное меню сделано в миникарте и делай по образу и подобию. Точнее гораздо проще, ибо там динамически пункты генеряться, а тут тупо статическое меню навесить.
(0009137)
zed   
03-10-2012 16:29   
C бОльшего вроде всё получилось, но есть трудность с меню для линейки: там создаётся достаточно большая битмапка, которая перекрывает карту. Надо бы сделать так, чтобы меню вызывалось только при клике в нижней части экрана (по горизонтальному участку линейки), но что-то не соображу как вызывать родительское меню. Так же, в районе линейки перестаёт действовать событие OnMouseMove родительского слоя (основной карты), так что там нельзя схватить и подвинуть карту. Если включена только горизонтальная линейка, то это ещё не очень сильно мешает и можно как-то выкрутиться (подогнать размер битмапки, чтобы она не перекрывала лишнего), но вот при включении вертикальной линейки получается неудобно и обходного пути не видно...

Есть мысли, как можно это всё порешить?
(0009138)
vdemidov   
03-10-2012 18:32   
Вариантов два. Разделить вертикальную и горизонтальную линейку на разные слои. Или включить хит-тест по прозрачности.
(0009139)
zed   
03-10-2012 18:33   
Про второй вариант по-подробнее можно?
(0009140)
vdemidov   
03-10-2012 20:05   
У TBitmapLayer есть пропертя AlphaHit, вот что про нее написано в документации:
If AlphaHit=True, layer checks the opacity of the pixel lying under the specified point and passes the hit test only when the alpha channel of the pixel is greater when zero.

Я правда сам этого никода не пробовал включать.
(0009141)
vdemidov   
03-10-2012 21:02   
Еще. Я бы на твоем месте создал сами поп-ап менюшки прямо в дизайн-тайме на главной форме и просто передал их в конструкторы слоев. Так бы ты избежал проблем с локализацией этих пунктов меню и временем их жизни. А то сейчас есть утечка памяти.
(0009142)
zed   
04-10-2012 06:36   
>У TBitmapLayer есть пропертя AlphaHit
О, именно то, что надо!

>Так бы ты избежал проблем с локализацией этих пунктов меню
Хм, про локализацию я как-то сразу не подумал. Хотя, в принципе, ведь достаточно все строки сделать ресорсными и должно заработать? Правда не известно, как оно себя поведёт при динамическом изменении языка.
С другой стороны, если делать менюшки в дизайне, то в главной форме появится ещё пачка OnClick методов, для пунктов меню, что ещё больше загромоздит и без того перегруженный юнит. Да и переделывать эти менюшки уже неохота.

>А то сейчас есть утечка памяти.
Уже нету.
(0009143)
vdemidov   
04-10-2012 06:46   
>Хотя, в принципе, ведь достаточно все строки сделать ресорсными и должно заработать?
Неправда. Придется вешать обработчик события смены языка, который будет заново расставлять кепшены.
>С другой стороны, если делать менюшки в дизайне, то в главной форме появится ещё пачка OnClick методов, для пунктов меню, что ещё больше загромоздит и без того перегруженный юнит.
Это конечно так, но кто мешает ограничиться одним онкликом с проверкой тега как это сделано у тебя сейчас, а во-вторых, это даст возможность добавить эти пункты в главное меню и повесить на них хоткеи, если кому-то это понадобиться.
(0009144)
Tolik   
05-10-2012 06:23   
Супер!
Только заметил мелкие недочёты (ну работа у меня такая :)

1. Если кликнуть по линейке правой кн., выбрать опции, поставить галку у вертикальной шкалы, ок - она включается. Но если снова кликнуть - галочка у пункта Show Vertical... контекстного меню не активна. То же самое с форматом чисел и, вероятно, всеми остальными параметрами. То же самое со строкой статуса.
2. Я думаю, Scale Legend надо всюду заменить на Scale (и в меню View тоже).
3. Чтобы попасть в конт. меню линейки, надо слишком точно прицеливаться в линию или цифру.
(0009146)
zed   
05-10-2012 06:48   
1. Ничего не понял, что значит не активна? У меня всё активно и включается и отключается именно столько раз, сколько я захочу. Во всех пунктах менюшек и в окошке настроек. Если там какой-то неадекват, то это уже в новый тикет - будем разбираться.
2. Не надо.
3. Да, и по другому никак.
(0009147)
zed   
05-10-2012 06:51   
А, понял. Да, есть такое.
(0009155)
Tolik   
05-10-2012 09:38   
Ещё пункт меню Settings - Interface Options выровняйте, пожалуйста, с остальными п.
(0009156)
vdemidov   
05-10-2012 09:52   
Ой перемудрил ты с руссификацией. А сделал бы как я предлагал с простой передачей готового поп-апа в слой, то оно б это все автоматом реализовало.
(0009157)
zed   
05-10-2012 09:57   
Та, мелочи.