SASGIS - SAS.Планета
View Issue Details
0001751SAS.ПланетаРефакторингpublic29-12-2012 09:4430-12-2021 08:59
vdemidov 
vdemidov 
normalminorhave not tried
assignedopen 
121010 
26xxxx 
0001751: Вынести операции из пунктов главного меню главной формы в TActionList
Вынести операции из пунктов главного меню главной формы в TActionList, желательно лежащий в датамодуле. Датамодуль создвать в конструкторе главной формы и передавать ему все что надо через параметры конструктора.

Не уверен насколько просто это получиться сделать, но уже давно пора.
No tags attached.
parent of 0003143assigned vdemidov Переделать генерацию меню со списком карт 
child of 0001271confirmed  Возможность вынести на панель инструментов кнопки "поставить метку" и "сохранить трек в базе меток" 
child of 0002580confirmed  Настройка горячих клавиш для пунктов контекстного меню 
Not all the children of this issue are yet resolved or closed.
Issue History
29-12-2012 09:44vdemidovNew Issue
29-12-2012 09:45vdemidovStatusnew => confirmed
29-12-2012 09:45vdemidovProduct Version => 121010
29-12-2012 09:45vdemidovTarget Version121010 => 27xxxx
29-12-2012 09:47vdemidovRelationship addedchild of 0001271
23-01-2015 11:04vdemidovRelationship addedchild of 0002580
12-02-2015 19:34zedNote Added: 0015236
12-02-2015 19:41vdemidovNote Added: 0015237
12-02-2015 19:42vdemidovNote Added: 0015238
12-02-2015 19:48zedNote Added: 0015240
12-02-2015 20:09zedNote Added: 0015241
12-02-2015 20:17vdemidovNote Added: 0015242
12-02-2015 20:18vdemidovNote Added: 0015243
12-02-2015 20:19zedNote Added: 0015244
12-02-2015 20:31vdemidovNote Added: 0015245
06-09-2016 20:18vdemidovNote Added: 0017645
08-09-2016 12:06vdemidovNote Added: 0017647
09-09-2016 05:40zedNote Added: 0017648
09-09-2016 07:47vdemidovNote Added: 0017650
09-09-2016 08:36zedNote Added: 0017651
09-09-2016 09:47vdemidovNote Added: 0017652
27-09-2016 08:58vdemidovNote Added: 0017656
27-09-2016 12:44vdemidovTarget Version27xxxx => 181221
27-09-2016 12:50vdemidovAssigned To => vdemidov
27-09-2016 12:50vdemidovStatusconfirmed => assigned
17-10-2016 07:56vdemidovRelationship addedparent of 0003143
26-11-2016 08:36GarlNote Added: 0017698
01-12-2016 08:28vdemidovNote Added: 0017709
01-12-2016 08:30vdemidovNote Added: 0017710
01-12-2016 08:31vdemidovNote Edited: 0017710bug_revision_view_page.php?bugnote_id=17710#r7095
17-12-2016 17:21vdemidovNote Added: 0017747
01-12-2017 07:25vdemidovTarget Version181221 => 190707
23-07-2019 14:16vdemidovTarget Version190707 => 191221
23-07-2019 17:04vdemidovTarget Version191221 => 211230
30-12-2021 08:59zedTarget Version211230 => 26xxxx

Notes
(0015236)
zed   
12-02-2015 19:34   
Т.е. ты предлагаешь половину кода из frmMain перенести в датамодуль? Хотя, там наверное даже не половина, а процентов 80 - различные обработчики OnClick.
(0015237)
vdemidov   
12-02-2015 19:41   
В общем именно это и предлагаю. Сейчас файл главной формы просто таки несоразмерно огромный. Почти 8000 строк.
(0015238)
vdemidov   
12-02-2015 19:42   
И это будет где-то половина кода. Там еще много инициализации.
(0015240)
zed   
12-02-2015 19:48   
Да, достаточно грандиозная задача. Можешь начать и перенести пару пунктов для примера? А потом я подключусь и буду по-немного копи-пастить.
(0015241)
zed   
12-02-2015 20:09   
Там ещё оно как-то должно быть завязано на TShortcutManager, чтобы он учитывал и ActionList. По крайней мере в переходный период, пока не перенесутся все пункты меню. А в последствии ShortcutManager должен будет ориентироваться только на этот лист и не зависеть от менюшки.
(0015242)
vdemidov   
12-02-2015 20:17   
Легко сказать начать. Я пока к этому не готов. :) Но если ты займешься, то буду только рад. Я сейчас глубоко в матрицы тайлов закопался.
(0015243)
vdemidov   
12-02-2015 20:18   
И что делать с TShortcutManager я еще тоже не решил. Точнее делать что-то нужно, и возможно даже до начала миграции в ActionList. Но как это лучше сделать я тоже не знаю. В общем вопросов дофига, а ответов у меня нет и пока не предвидится.
(0015244)
zed   
12-02-2015 20:19   
Обнадёжил :)
(0015245)
vdemidov   
12-02-2015 20:31   
Вполне может быть, что я вообще все усложняю, и достаточно просто копировать пункты меню в ActionList и просто потом назначать пуктам меню нужные действия и не париться. У меня просто очень мало опыта работы с такими вещами как ActionList и менюшки. Я больше по бекенду, а не по ГУИ специалист :)
(0017645)
vdemidov   
06-09-2016 20:18   
Начал наполнять ActionList. Вроде бы проблем быть не должно, но будем смотреть.
(0017647)
vdemidov   
08-09-2016 12:06   
А что специфичного у нас из TBX используется? Может реально обойтись стандартными TActionManager, TActionMainMenuBar и TActionToolBar?

Zed, Garl подскажите, а то я что-то не уверен в этом вопросе?
(0017648)
zed   
09-09-2016 05:40   
Без понятия.
(0017650)
vdemidov   
09-09-2016 07:47   
Zed, ты писал:
> Можешь начать и перенести пару пунктов для примера? А потом я подключусь и буду по-немного копи-пастить.
Начал. Можно продолжать. Предлагаю давать экшенам по возможности понятные имена с префиксом act как у тех что я уже сделал. Пока никакого дата модуля - пока будет проще просто TActionList. Думаю потом перенести все в более навороченный TActionManager будет уже не сложно. Код по возможности причесывать. Заменять проверку и установку Checked пунктов меню и тулбаров на соответствующее обращение к экшену. Генерируемые програмно пункты и подменю пока не трогаем.

Для сокращения конфликтов предлагаю коммитить и пушить максимально часто - в идеале после каждого пункта меню. Я буду идти по главному меню слева направо, но будет это не быстро.
(0017651)
zed   
09-09-2016 08:36   
Да, писал. Только это было полтора года назад и у предложения уже истёк срок действия. Так что можешь рефакторить без опаски, конфликтов не будет.
(0017652)
vdemidov   
09-09-2016 09:47   
Печально.
(0017656)
vdemidov   
27-09-2016 08:58   
Забыл удалить NanimateClick
(0017698)
Garl   
26-11-2016 08:36   
а теперь на закрытие панельки результатов поиска нельзя прикрепить хоткей? или я проглядел?
(0017709)
vdemidov   
01-12-2016 08:28   
Да, судя по всему, потерялась такая возможность в процессе борьбы с лишними пунктами в списке хоткеев. Там добавилось условие, что у пункта меню должен быть обработчик или экшен, а у этих пунктов видимости панелей ни того ни другого нет.
(0017710)
vdemidov   
01-12-2016 08:30   
(edited on: 01-12-2016 08:31)
Но как мне надоел уже этот ГУЙ. Судя по всему нужно отвлечься. Займусь пока наработкой заготовок для реализации конвейеров подготовки видимого изображеня описанных здесь: http://www.sasgis.org/wikisasiya/doku.php/sasdev:конвейер_подготовки_видимого_изображения

(0017747)
vdemidov   
17-12-2016 17:21   
Вернул хоткеи для панелек. И для результатов поиска в том числе.