OberonCore https://forum.oberoncore.ru/ |
|
BlackBox 2.0 https://forum.oberoncore.ru/viewtopic.php?f=134&t=6819 |
Страница 19 из 20 |
Автор: | arisu [ Четверг, 01 Июнь, 2023 20:25 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
Иван Денисов писал(а): А у вас есть гипотезы, почему так происходит? Раньше не было такой истории. У откреплённых окон были откреплённые дочерние окна. я никогда отцеплеными не пользовался, так что не помню, как раньше. ;-) а сейчас вполне логично всё: тайлер же перехватывает создание любых окон, и суёт в.я сильно подозреваю, что хак с `StdTiler.targetTrack` этим всем заведовал. если я верно понял остатки логики там, то когда `targetTrack` — пустая строка, окно должно было быть отцепленым. потому что `GetThisTrack()` возвращает пустую строку для отцепленых окон (хотя это чисто совпадение, никто не мешает иметь безымянный трек, конечно). соответственно, надо проверить все места, где `targetTrack` насильно меняется, и проверить, есть ли логика делать отцепки, если целевой трек пустой. где-то в этом районе, я думаю. |
Автор: | Иван Денисов [ Четверг, 01 Июнь, 2023 20:32 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
Да, в общем это надо будет допиливать на свежую голову. Сейчас если закрыть все документы и нажать F2 среда уходил в зависание. Но чувствую, что победа над окнами уже близко. Что-то даже начал понимать. |
Автор: | arisu [ Четверг, 01 Июнь, 2023 20:33 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
а почему оно вообще работает? `Dup Window` без окон должен быть серенький, неактивный. у меня так и происходит, например. |
Автор: | Иван Денисов [ Четверг, 01 Июнь, 2023 20:35 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
arisu писал(а): а почему оно вообще работает? `Dup Window` без окон должен быть серенький, неактивный. у меня так и происходит, например. F2 у меня в репозитории настроено на команду просто создать дополнительное окно. Это из старого меню MDI, которое перекрывает новое Windows. Поэтому New window активно. Наверное в этом дело, надо охрану допилить, чтобы была как у DupWindow. Однако, если нажать F2 в сборке без открытых документов, то происходит авост... Код: dia@lenovo:~/desktop$ bbcb2 -DEBUG
(blackbox:33037): Gtk-WARNING **: 00:36:49.621: Загружаемый модуль тем не найден в module_path: «adwaita», ********* TRAP REPORT - BEGIN ********* <PC=F624C9CB, FP=FFF629E8, SP=FFF629E0> dirty = { } 23 (precondition violated) 0: Views.InstallRoot [@=28501] <PC=F624C9CB FP=FFF629E8> 1: StdWindows.InstallRoot [@=12352] <PC=F61CD98B FP=FFF62A10> 2: StdTiles.Proxy.Restore [@=17623] <PC=F5E291A8 FP=FFF62AD0> 3: Views.RestoreFrame2 [@=41494] <PC=F624DBE3 FP=FFF62B10> 4: Views.RestoreFrame2 [@=41655] <PC=F624DC38 FP=FFF62B50> 5: Views.RestoreFrame2 [@=41655] <PC=F624DC38 FP=FFF62B90> 6: Views.RestoreFrame2 [@=41655] <PC=F624DC38 FP=FFF62BD0> 7: Views.BuildFrameTree [@=42735] <PC=F624DD79 FP=FFF62BFC> 8: StdTiles.Backend.Select [@=24118] <PC=F5E29C8D FP=FFF62C90> 9: StdWindows.Select [@=34023] <PC=F61CF816 FP=FFF62CA0> 10: StdWindows.Open [@=39684] <PC=F61CFEC3 FP=FFF62D44> 11: StdWindows.StdDirectory.OpenSubWindow [@=42844] <PC=F61D02B9 FP=FFF62D60> 12: StdCmds.NewWindow [@=28779] <PC=F5EAC62C FP=FFF62E94> 13: StdTiles.ToggleSub [@=29541] <PC=F5E2A321 FP=FFF62EA8> 14: Kernel.Call [@=45274] <PC=0804A556 FP=FFF62ED4> 15: Meta.Item.ParamCallVal [@=27859] <PC=F626F6F6 FP=FFF63334> 16: StdInterpreter.CallProc [@=5342] <PC=F61C8159 FP=FFF6339C> 17: StdInterpreter.Command [@=9100] <PC=F61C8943 FP=FFF637B4> 18: StdInterpreter.CallHook.Call [@=9466] <PC=F61C8A09 FP=FFF63B70> 19: Dialog.Call [@=40562] <PC=F62788E2 FP=FFF63B98> 20: StdDialog.HandleItem [@=4504] <PC=F5EB515C FP=FFF63BD4> 21: StdMenus.SafeAction.Do [@=5595] <PC=F5E616A2 FP=FFF63BE8> 22: Services.TryHandler [@=8540] <PC=F7815381 FP=FFF63C00> 23: LinKernel.Try [@=9964] <PC=0804DE43 FP=FFF63CC0> 24: Kernel.Try [@=70552] <PC=0804C7BB FP=FFF63CE0> 25: Services.Try [@=8679] <PC=F78153B7 FP=FFF63D04> 26: StdMenus.DoExecute [@=13738] <PC=F5E62653 FP=FFF63D20> 27: StdMenus.Directory.Execute [@=14040] <PC=F5E626AD FP=FFF63D34> 28: LinBackends.KeyPressHandler.Do [@=7633] <PC=F5E6D98B FP=FFF63D70> 29: Services.TryHandler [@=8540] <PC=F7815381 FP=FFF63D88> 30: LinKernel.Try [@=9964] <PC=0804DE43 FP=FFF63E48> 31: Kernel.Try [@=70552] <PC=0804C7BB FP=FFF63E68> 32: Services.Try [@=8679] <PC=F78153B7 FP=FFF63E8C> 33: LinBackends.TrySignalHandler [@=3598] <PC=F5E6D3B8 FP=FFF63E9C> 34: LinBackends.KeyPressSignal [@=9496] <PC=F5E6DE87 FP=FFF63EC8> 35: <caller outside BB> <PC=F7425A1E FP=FFF64038> ********* TRAP REPORT - END ********* ********* TRAP REPORT - BEGIN ********* <PC=F61BB2EE, FP=FFF63C10, SP=FFF63C04> dirty = { } 203 illegal memory read [ad = 00000084] 0: LinFonts.ShapeUString [@=4165] <PC=F61BB2EE FP=FFF63C10> 1: LinFonts.ShapeString [@=4617] <PC=F61BB39D FP=FFF63C30> 2: LinFonts.Font.StringWidth [@=5212] <PC=F61BB45A FP=FFF63C58> 3: TextSetters.GatherString [@=20889] <PC=F5F10ED5 FP=FFF63C78> 4: TextSetters.StdReader.Read [@=24889] <PC=F5F1160E FP=FFF63C98> 5: TextSetters.StdSetter.GetLine [@=39656] <PC=F5F12DAB FP=FFF63D94> 6: TextViews.NewLine [@=8946] <PC=F5F04A76 FP=FFF63DB0> 7: TextViews.AddLine [@=9168] <PC=F5F04AC0 FP=FFF63DC4> 8: TextViews.ExtendLines [@=10252] <PC=F5F04C67 FP=FFF63DF0> 9: TextViews.ValidateLines [@=11236] <PC=F5F04E07 FP=FFF63E10> 10: TextViews.StdView.Restore [@=37536] <PC=F5F0795F FP=FFF63E44> 11: Views.RestoreFrame2 [@=41494] <PC=F624DBE3 FP=FFF63E84> 12: Views.RestoreFrame2 [@=41655] <PC=F624DC38 FP=FFF63EC4> 13: Views.BuildFrameTree [@=42735] <PC=F624DD79 FP=FFF63EF0> 14: StdTiles.Backend.Select [@=24118] <PC=F5E29C8D FP=FFF63F84> 15: StdWindows.Select [@=34023] <PC=F61CF816 FP=FFF63F94> 16: StdWindows.Open [@=39684] <PC=F61CFEC3 FP=FFF64038> 17: StdWindows.StdDirectory.Open [@=42253] <PC=F61D01A3 FP=FFF64050> 18: StdTiles.DoOpen [@=7019] <PC=F5E283E4 FP=FFF64318> 19: StdTiles.ViewHook.Open [@=8767] <PC=F5E2868F FP=FFF64458> 20: Views.OpenAux [@=47691] <PC=F624E5E0 FP=FFF64694> 21: DevDebug.OpenViewer [@=2758] <PC=F5E42F68 FP=FFF64728> 22: DevDebug.Action.Do [@=41403] <PC=F5E47EF9 FP=FFF647B8> 23: Services.Exec [@=2522] <PC=F7814B90 FP=FFF647C8> 24: Services.IterateOverActions [@=4381] <PC=F7814D8B FP=FFF647D8> 25: Services.StdHook.Step [@=4876] <PC=F7814DE6 FP=FFF647EC> 26: Loop.Loop [@=1452] <PC=F62622AC FP=FFF64814> 27: LinKernel.Platform.Start [@=7849] <PC=0804DC56 FP=FFF64820> 28: Kernel.Start [@=67213] <PC=0804C2DA FP=FFF6483C> 29: Loop.Start [@=1848] <PC=F626232C FP=FFF64850> 30: LinInit.Init [@=2405] <PC=F5E57409 FP=FFF6486C> 31: LinInit.$$ [@=2488] <PC=F5E572B9 FP=FFF6487C> 32: Kernel.InitModule [@=37067] <PC=08049A5F FP=FFF64888> 33: Kernel.RegisterMod [@=42014] <PC=0804A1D1 FP=FFF648A0> 34: StdLoader.LoadMod [@=12875] <PC=08056585 FP=FFF648B8> 35: StdLoader.Hook.ThisMod [@=13354] <PC=08056664 FP=FFF648CC> 36: Kernel.ThisMod [@=38012] <PC=08049BB5 FP=FFF648E8> 37: Kernel.LoadMod [@=38170] <PC=08049BE5 FP=FFF64904> 38: LinLoader.Load [@=268] <PC=080567EE FP=FFF65320> ********* TRAP REPORT - END ********* ********* TRAP REPORT - BEGIN ********* <PC=F5F04C1C, FP=FFF6456C, SP=FFF64558> dirty = { } 203 illegal memory read [ad = 0000000C] 0: TextViews.ExtendLines [@=10164] <PC=F5F04C1C FP=FFF6456C> 1: TextViews.ValidateLines [@=11236] <PC=F5F04E07 FP=FFF6458C> 2: TextViews.PollSection [@=23965] <PC=F5F061BA FP=FFF645A8> 3: TextViews.StdView.HandleCtrlMsg2 [@=43253] <PC=F5F080D4 FP=FFF645C0> 4: Containers.View.HandleCtrlMsg [@=9362] <PC=F61F9CF8 FP=FFF645DC> 5: Views.ForwardCtrlMsg [@=35583] <PC=F624D456 FP=FFF6461C> 6: StdDocuments.PollSection [@=20263] <PC=F61D92CC FP=FFF64654> 7: StdDocuments.Document.HandleCtrlMsg2 [@=34734] <PC=F61DAA84 FP=FFF64698> 8: Containers.View.HandleCtrlMsg [@=9362] <PC=F61F9CF8 FP=FFF646B4> 9: Views.ForwardCtrlMsg [@=35583] <PC=F624D456 FP=FFF646F4> 10: StdDocuments.GetSection [@=14649] <PC=F61D8A95 FP=FFF6471C> 11: StdDocuments.UpdateScrollbar [@=15275] <PC=F61D8BA6 FP=FFF64750> 12: StdDocuments.StdModel.UpdateScrollbars [@=16180] <PC=F61D8CC9 FP=FFF6477C> 13: StdDocuments.UpdateScrollbars [@=16997] <PC=F61D8DCD FP=FFF647AC> 14: StdWindows.Validate [@=14733] <PC=F61CDBDE FP=FFF647C4> 15: StdWindows.Validate [@=14879] <PC=F61CDC03 FP=FFF647DC> 16: LinInit.ValidateWindows [@=1410] <PC=F5E57307 FP=FFF647F0> 17: Loop.Loop [@=1193] <PC=F626221C FP=FFF64814> 18: LinKernel.Platform.Start [@=7849] <PC=0804DC56 FP=FFF64820> 19: Kernel.Start [@=67213] <PC=0804C2DA FP=FFF6483C> 20: Loop.Start [@=1848] <PC=F626232C FP=FFF64850> 21: LinInit.Init [@=2405] <PC=F5E57409 FP=FFF6486C> 22: LinInit.$$ [@=2488] <PC=F5E572B9 FP=FFF6487C> 23: Kernel.InitModule [@=37067] <PC=08049A5F FP=FFF64888> 24: Kernel.RegisterMod [@=42014] <PC=0804A1D1 FP=FFF648A0> 25: StdLoader.LoadMod [@=12875] <PC=08056585 FP=FFF648B8> 26: StdLoader.Hook.ThisMod [@=13354] <PC=08056664 FP=FFF648CC> 27: Kernel.ThisMod [@=38012] <PC=08049BB5 FP=FFF648E8> 28: Kernel.LoadMod [@=38170] <PC=08049BE5 FP=FFF64904> 29: LinLoader.Load [@=268] <PC=080567EE FP=FFF65320> ********* TRAP REPORT - END ********* |
Автор: | arisu [ Четверг, 01 Июнь, 2023 20:36 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
вообще, у меня такое подозрение, что и тайлер, и гриды (да и StdWindows) — это полуфабрикаты, которые А.А. положил в 2.0 чтобы хоть что-то было, а потом до них руки не дошли вычистить. интересно, я прав? ;-) |
Автор: | arisu [ Четверг, 01 Июнь, 2023 20:39 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
Иван Денисов писал(а): F2 у меня в репозитории настроено на команду просто создать дополнительное окно. Это из старого меню MDI, которое перекрывает новое Windows. Поэтому New window активно. Наверное в этом дело, надо охрану допилить, чтобы была как у DupWindow. ах… я давно F2 отцепил, тыкал в меню постоянно, и чисто по логике — на "Dup Window". но "New Window" у меня тоже серенькая, они одним и тем же сторожем в меню охраняются.
|
Автор: | arisu [ Четверг, 01 Июнь, 2023 20:48 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
Иван Денисов писал(а): Однако, если нажать F2 в сборке без открытых документов, то происходит авост… по-моему, оно у вас пытается сдублировать главное окно, и очень офигевает от такой идеи. ;-)
|
Автор: | Иван Денисов [ Четверг, 01 Июнь, 2023 20:55 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
arisu писал(а): вообще, у меня такое подозрение, что и тайлер, и гриды (да и StdWindows) — это полуфабрикаты, которые А.А. положил в 2.0 чтобы хоть что-то было, а потом до них руки не дошли вычистить. интересно, я прав? Это некий сплав наших намерений. Большей частью руками и головой Антона, но где-то моим усердием и провидением был создан сей Франкенштейн (не потому что чудовище, а потом что из идейных кусков). Однако я его очень люблю и верю, что смогу с божьей помощью и помощью неравнодушных граждан доделать до идеального в моём представлении состояния. |
Автор: | Иван Денисов [ Четверг, 01 Июнь, 2023 20:56 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
arisu писал(а): Иван Денисов писал(а): Однако, если нажать F2 в сборке без открытых документов, то происходит авост… по-моему, оно у вас пытается сдублировать главное окно, и очень офигевает от такой идеи. Да, чего-то там никакой защиты нет от такого. Нехорошо, надо будет поправить. Спасибо за наводку на GetTarget. |
Автор: | Иван Денисов [ Четверг, 01 Июнь, 2023 21:59 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
Провел сверку с последней доступной версией от Антона, и вроде теперь Dup Window для откреплённых окон делает откреплённые окна. Уже соображаю плохо. Завтра сложный день. В целом я уже доволен и прокруткой и окнами. Надо дать отлежаться коду. Да и пора переключиться на многострочные поля ввода. |
Автор: | arisu [ Четверг, 01 Июнь, 2023 22:00 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
Иван Денисов писал(а): Это некий сплав наших намерений. Большей частью руками и головой Антона, но где-то моим усердием и провидением был создан сей Франкенштейн (не потому что чудовище, а потом что из идейных кусков). Однако я его очень люблю и верю, что смогу с божьей помощью и помощью неравнодушных граждан доделать до идеального в моём представлении состояния. да оно нормальное вполне. просто видно, что неполировано, очень похоже на код, который где-то в процессе допилки завис — вот я и поинтересовался. ну, и дизайн видно что не завершён. но лично я особых претензий к этим штукам не имею, нормальный рабочий процесс, чего там.
|
Автор: | arisu [ Четверг, 01 Июнь, 2023 22:01 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
Иван Денисов писал(а): Да и пора переключиться на многострочные поля ввода. блин, мне их именно вот настолько делать не хочется! я уже и новый бэкэнд запилил, и треть системы перепахал — лишь бы не их… ;-)p.s.: а вообще, признаюсь, что никак особо отсутствие многострочного ввода не замечал. вообще, у меня такое подозрение, что это просто рудимент винды: в винде в edit control оно было — омики и сделали. а надо ли оно в принципе — не ясно. |
Автор: | Иван Денисов [ Четверг, 01 Июнь, 2023 22:47 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
arisu писал(а): Иван Денисов писал(а): Да и пора переключиться на многострочные поля ввода. блин, мне их именно вот настолько делать не хочется! я уже и новый бэкэнд запилил, и треть системы перепахал — лишь бы не их… p.s.: а вообще, признаюсь, что никак особо отсутствие многострочного ввода не замечал. вообще, у меня такое подозрение, что это просто рудимент винды: в винде в edit control оно было — омики и сделали. а надо ли оно в принципе — не ясно. не не, очень надо и руки как раз уже прямо горят, хочу этим заняться |
Автор: | Иван Денисов [ Четверг, 01 Июнь, 2023 22:48 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
Так я починил внезапно сломавшийся ToggleSub, и заодно полностью перенёс настройки роута в StdConfig, считаю, что именно там должна быть настройка пользовательской конфигурации воркспейса и роутинга. Выложил сборку 176. |
Автор: | Иван Денисов [ Четверг, 01 Июнь, 2023 22:54 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
arisu писал(а): Иван Денисов писал(а): И ещё обнаружил такой новый недочёт, что у откреплённых окон дочерние окна начали встраиваться в плитки. Должны отдельно быть также. дискусионный вопрос. F1, например, открывается в отдельном окне (если научить OpenAuxDialog открывать как detached). но клац по ссылке… ну, меня устраивает, например, что оно открывается в тайлере.а вот тут дочерние, я имел в виду, это именно SubWindows, а не те, что по ссылкам открываются. Те что открываются по ссылкам, те и будут в плитки встраиваться. В вот дочернее окно дубликат (SubWindow), оно именно также в отдельном окне открывается. Вот такая логика. |
Автор: | arisu [ Четверг, 01 Июнь, 2023 22:58 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
Иван Денисов писал(а): а вот тут дочерние, я имел в виду, это именно SubWindows, а не те, что по ссылкам открываются. Те что открываются по ссылкам, те и будут в плитки встраиваться. В вот дочернее окно дубликат (SubWindow), оно именно также в отдельном окне открывается. Вот такая логика. а, понял. это, конечно, логично, да.
|
Автор: | arisu [ Четверг, 01 Июнь, 2023 23:01 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
Иван Денисов писал(а): не не, очень надо и руки как раз уже прямо горят, хочу этим заняться в оригинале, кстати, довольно интересное поведение даже у однострочного: если по высоте в поле ввода больше одной строки влазит, то редактор хоть и не позволяет новые строки с клавиатуры делать, но врубает многострочный режим с переносом слов (или просто жёстко по границе, не помню).омики вообще любили такие фокусы: у них листбокс превращается в комбо-попап, например, если больше одной строки не влазит. а комбо превращается в поле ввода и листбокс, если место есть. в принципе-то логично, но больше так ни один UI не делает, кажется. ;-) а мне пришлось это поведение эмулировать, потому что некоторые формы на него заточены. |
Автор: | arisu [ Вторник, 06 Июнь, 2023 00:17 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
кстати. в StdMenus, в методе `PROCEDURE (v: LineView) Restore` — маленькая ошибочка. строку: Код: IF (l <= x) & (x < r) OR (l <= z) & (z < r) THEN нужно, во-первых, исправить на: Код: IF (x < r) & (z > l) THEN а во-вторых, проверять это условие эффективней сразу после вычисления `z`. обнаружил так: включаем режим «отрисовывать окна при таскании» (я фиг знает, где оно как, думаю, сейчас везде так: таскать не прямоугольничком, а чтобы таскаемое окно отрисовывалось полностью). и меееедленно тащим другое окошко поверх полосы меню; меееедленно и СТРОГО горизонтально. наблюдаем, как с меню исчезают надписи, офигеваем. горизонтальность важна, вертикального перемещения быть не должно. |
Автор: | Иван Денисов [ Понедельник, 12 Июнь, 2023 13:30 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
После обсуждения и голосования в телеграм канале, внесена правка, чтобы Блэкбокс не спрашивал у пользователя подтверждение при создании новых директорий. Если кто-то хочет у себя в проекте восстановить функциональность, которая была ранее, то это в модуле Gui для соответствующей платформы легко сделать ( LinGui, WinGui...). Там есть комментарий соответствующий про это. |
Автор: | arisu [ Пятница, 04 Август, 2023 17:12 ] |
Заголовок сообщения: | Re: BlackBox 2.0 |
возьмите уже у меня нормальные регулярки. ;-) код там, конечно, адский жоп — зато работает. я TextCmds под регулярки адаптировал, удобно. в замене вдобавок есть приятные фичи типа «преобразовать в верхний/нижний регистр», «capitalise», и прочая. надо бы ещё вызов команды добавить — в смысле, вызывать команду для обработки subexpressions в заменяторе. положительно не понимаю, как вы без регулярок живёте. |
Страница 19 из 20 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |