View Issue Details

IDProjectCategoryView StatusLast Update
0001371SAS.ПланетаХотелка / Feature requestpublic05-10-2012 09:57
Reporterzed Assigned Tozed  
PrioritynormalSeverityminorReproducibilityN/A
Status resolvedResolutionfixed 
PlatformWindowsOSXPOS VersionSP3
Product Version110418 
Target Version121010Fixed in Version121010 
Summary0001371: Всплывающее меню при клике по строке статуса
DescriptionДля того, чтобы иметь быстрый доступ к настройкам статусной строки, хотелось бы, чтобы появлялась менюшка с чекбоксами, включая и отключая которые, можно было бы включать/отключать определённые "поля" в статусной строке.
Оттуда же, хотелось бы вызывать и окошко со всеми настройками для строки (цвет, шрифт и проч.), присутствующими в ini.
Tagsменю, строка состояния, строка статуса

Activities

zed

02-07-2012 19:13

manager   ~0007741

>Ответственный => zed
Хех. Дело в том, что я без понятия, с какой стороны подступиться. А так бы да, сделал.

vdemidov

02-07-2012 19:19

manager   ~0007742

А в чем сложности?

Garl

02-07-2012 19:26

manager   ~0007743

кстати может "отображать линейку" тоже в эту менюшку засунуть?

vasketsov

02-07-2012 19:27

manager   ~0007744

Ну видимо галочки - это пункты меню с чекбоксами.
А на цвета - окошко.

zed

02-07-2012 19:29

manager   ~0007745

>А в чем сложности?
Так: "я без понятия, с какой стороны подступиться" (c)

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

>А на цвета - окошко.
Ну и пункты с чекбоксами там можно повторить, для комплекту.

vdemidov

02-07-2012 19:33

manager   ~0007746

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

zed

03-10-2012 16:29

manager   ~0009137

C бОльшего вроде всё получилось, но есть трудность с меню для линейки: там создаётся достаточно большая битмапка, которая перекрывает карту. Надо бы сделать так, чтобы меню вызывалось только при клике в нижней части экрана (по горизонтальному участку линейки), но что-то не соображу как вызывать родительское меню. Так же, в районе линейки перестаёт действовать событие OnMouseMove родительского слоя (основной карты), так что там нельзя схватить и подвинуть карту. Если включена только горизонтальная линейка, то это ещё не очень сильно мешает и можно как-то выкрутиться (подогнать размер битмапки, чтобы она не перекрывала лишнего), но вот при включении вертикальной линейки получается неудобно и обходного пути не видно...

Есть мысли, как можно это всё порешить?

vdemidov

03-10-2012 18:32

manager   ~0009138

Вариантов два. Разделить вертикальную и горизонтальную линейку на разные слои. Или включить хит-тест по прозрачности.

zed

03-10-2012 18:33

manager   ~0009139

Про второй вариант по-подробнее можно?

vdemidov

03-10-2012 20:05

manager   ~0009140

У 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.

Я правда сам этого никода не пробовал включать.

vdemidov

03-10-2012 21:02

manager   ~0009141

Еще. Я бы на твоем месте создал сами поп-ап менюшки прямо в дизайн-тайме на главной форме и просто передал их в конструкторы слоев. Так бы ты избежал проблем с локализацией этих пунктов меню и временем их жизни. А то сейчас есть утечка памяти.

zed

04-10-2012 06:36

manager   ~0009142

>У TBitmapLayer есть пропертя AlphaHit
О, именно то, что надо!

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

>А то сейчас есть утечка памяти.
Уже нету.

vdemidov

04-10-2012 06:46

manager   ~0009143

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

Tolik

05-10-2012 06:23

manager   ~0009144

Супер!
Только заметил мелкие недочёты (ну работа у меня такая :)

1. Если кликнуть по линейке правой кн., выбрать опции, поставить галку у вертикальной шкалы, ок - она включается. Но если снова кликнуть - галочка у пункта Show Vertical... контекстного меню не активна. То же самое с форматом чисел и, вероятно, всеми остальными параметрами. То же самое со строкой статуса.
2. Я думаю, Scale Legend надо всюду заменить на Scale (и в меню View тоже).
3. Чтобы попасть в конт. меню линейки, надо слишком точно прицеливаться в линию или цифру.

zed

05-10-2012 06:48

manager   ~0009146

1. Ничего не понял, что значит не активна? У меня всё активно и включается и отключается именно столько раз, сколько я захочу. Во всех пунктах менюшек и в окошке настроек. Если там какой-то неадекват, то это уже в новый тикет - будем разбираться.
2. Не надо.
3. Да, и по другому никак.

zed

05-10-2012 06:51

manager   ~0009147

А, понял. Да, есть такое.

Tolik

05-10-2012 09:38

manager   ~0009155

Ещё пункт меню Settings - Interface Options выровняйте, пожалуйста, с остальными п.

vdemidov

05-10-2012 09:52

manager   ~0009156

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

zed

05-10-2012 09:57

manager   ~0009157

Та, мелочи.

Issue History

Date Modified Username Field Change
02-07-2012 19:02 zed New Issue
02-07-2012 19:02 zed Tag Attached: строка состояния
02-07-2012 19:02 zed Tag Attached: меню
02-07-2012 19:03 zed Tag Attached: строка статуса
02-07-2012 19:09 vdemidov Assigned To => zed
02-07-2012 19:09 vdemidov Status new => assigned
02-07-2012 19:09 vdemidov Target Version => 42xxxx
02-07-2012 19:13 zed Note Added: 0007741
02-07-2012 19:19 vdemidov Note Added: 0007742
02-07-2012 19:26 Garl Note Added: 0007743
02-07-2012 19:27 vasketsov Note Added: 0007744
02-07-2012 19:29 zed Note Added: 0007745
02-07-2012 19:33 vdemidov Note Added: 0007746
09-08-2012 07:17 vdemidov Product Version .Nightly => 110418
28-08-2012 14:43 zed Assigned To zed =>
28-08-2012 14:43 zed Status assigned => confirmed
03-10-2012 16:29 zed Note Added: 0009137
03-10-2012 16:40 zed Assigned To => zed
03-10-2012 16:40 zed Status confirmed => assigned
03-10-2012 18:32 vdemidov Note Added: 0009138
03-10-2012 18:33 zed Note Added: 0009139
03-10-2012 20:05 vdemidov Note Added: 0009140
03-10-2012 21:02 vdemidov Note Added: 0009141
04-10-2012 06:36 zed Note Added: 0009142
04-10-2012 06:46 vdemidov Note Added: 0009143
04-10-2012 12:28 zed Status assigned => resolved
04-10-2012 12:28 zed Fixed in Version => 121010
04-10-2012 12:28 zed Resolution open => fixed
04-10-2012 12:29 zed Target Version 42xxxx => 121010
05-10-2012 06:23 Tolik Note Added: 0009144
05-10-2012 06:48 zed Note Added: 0009146
05-10-2012 06:51 zed Note Added: 0009147
05-10-2012 09:38 Tolik Note Added: 0009155
05-10-2012 09:52 vdemidov Note Added: 0009156
05-10-2012 09:57 zed Note Added: 0009157
08-08-2025 13:24 zed Category Хотелка => Хотелка / Feature request