OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 28 Апрель, 2024 03:04

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 388 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8, 9 ... 20  След.
Автор Сообщение
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Воскресенье, 08 Январь, 2023 18:30 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
окей, сейчас выпью кофе, пересажу изменения на чистый git master и выдам.

также я привинтил к StdGrid автоматическое притаскивание активного таба в видимую область (ну, то есть, автоскролл при переключении табов), тоже поделюсь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Воскресенье, 08 Январь, 2023 19:04 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
вот, пересадил Field на текущий git master. добавил только скролл, чтобы каретка не улетала, больше ничего не трогал, раз всё равно планируется большая переделка.


Вложения:
Комментарий к файлу: StdCFrames, Field со скроллом
StdStdCFrames.7z [12.28 КБ]
Скачиваний: 37
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Воскресенье, 08 Январь, 2023 19:27 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
и вот апдейт StdGrids, тоже на git master. при активации нового таба линейка табов автоматически (если надо) скроллится к нему. также я там добавил выбор нескольких методов навигации по табам, чисто для себя. по умолчанию такой как был: C-PgUp и C-PgDown.

а. ещё привинтил ограничения на скролл колёсиком, чтобы табы не улетали в дальнюю даль: теперь нельзя ускроллить их совсем за экран.


Вложения:
Комментарий к файлу: автоскролл к активному табу
StdGrids.7z [15.84 КБ]
Скачиваний: 40
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Воскресенье, 08 Январь, 2023 19:44 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
p.s.: сделайте мне, пожалуйста, взамен работающее сохранение и загрузку главного трека! ну невозможно же так жить! не надо всю среду, только главный трек с открытыми документами! ну пожалуйста! ;-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Воскресенье, 08 Январь, 2023 20:01 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3778
Спасибо, скачал, переношу. Чтобы не вводить людей в заблуждение, вы синхронизируете с веткой git blackbox20 всё же. В мастере лежит старая версия 1.8 до сих пор. Посмотрю, что там было недоделано с воркспейсами. Думаю, что простую функциональность я быстро починю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Воскресенье, 08 Январь, 2023 20:09 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
Иван Денисов писал(а):
Чтобы не вводить людей в заблуждение, вы синхронизируете с веткой git blackbox20 всё же.
а, да, извините, пожалуйста. имел в виду одно, написал другое. ;-)

Иван Денисов писал(а):
Посмотрю, что там было недоделано с воркспейсами. Думаю, что простую функциональность я быстро починю.
спасибо большое!

я попробовал — там оно всю среду пытается восстановить, вместе с "ultimate frame" (то есть, по сути, переоткрывает заново). и адово на этом фэйлится: и лог криво открывает, и документы восстанавливает рандомно. мне кажется, это лишняя генерализация: достаточно только рабочий трек сохранять/восстанавливать, а треки лога и трапов не трогать. тогда и пересоздавать ничего не придётся.

мне пока, в принципе, не надо чтобы при старте автоматом всё открывало, вполне устроят пункты в меню, которые ручками тыкать. и сохранение/восстановление «отцепленых» окон тоже не обязательно. думаю, в таком упрощённом виде будет проще доделать нужное. остальное подождёт. ;-)

p.s.: почти закончил переделку FilesBrowser, или сегодня попозже или завтра тоже закину.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Понедельник, 09 Январь, 2023 03:32 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
ещё немного апдейтов (снова поверх только что утащеного бранча 2.0). во-первых, правильно реализовал ListBox: это не комбо! а там была копипаста с комбо. нихотеть такие листбоксы, хотеть правильные! также чуть-чуть подправил SelectionBox.

второе — переработаный FilesBrowser. в основном изменения касаются клавиатурной навигации: теперь должно быть возможно полностью порулить ним с клавиатуры (за исключением действия «Create Folder»). то, что Home и End прыгают странновато — не баг: оно специально так сделано, чтобы удобно прыгать к первому файлу. также можно нажать арабскую циферку или латинскую буковку (национальные буковки заломало, простите), и курсор прыгнет на следующий пункт, начинающийся с этой буквы. Ctrl+PageUp выходит на уровень выше (так же, как и Backspace); Ctrl+PageDown входит в выбраный каталог (так же, как и Enter). Ctrl+Home делает то же самое, что и "Project folder". при выходе на уровень выше курсор позиционируется на каталог, из которого вышли. Alt+Down открывает список конвертеров, и там тоже можно стрелочками выбирать. закрыть список — Enter или Esc. Tab и Ctrl+Tab (не Shift+Tab, потому что это событие отчего-то не приходит) позволяют перемещаться между строкой ввода имени (в "save as") и списком файлов. вот как-то так.


Вложения:
Комментарий к файлу: новый ListBox, фиксы в SelectionBox
StdStdCFrames.7z [12.91 КБ]
Скачиваний: 40
Комментарий к файлу: улучшеный FilesBrowser
StdFilesBrowser.7z [13.28 КБ]
Скачиваний: 41
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Понедельник, 09 Январь, 2023 07:35 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
ещё есть небольшие правки к LinBackend (понимание стрелочек и прочего на нумпаде — за что вы его так не любите-то? ;-), и более лучшие овощи^w парзеры шорткатов (понимают вдобавок к стандартным еще и emacs-like, красившее — и без наличествующих ошибок — форматируют вывод в менюшках). н-нада?

заодно новый парзер правильно сообщает, какой шорткат зафэйлился (там был бажок), и название пункта меню с ним (а то запыхаешься искать же). а если использовать emacs-like, то можно подвешивать альт+символ, например (удобно для циферок, чтобы закладки по alt+digit ставить).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Понедельник, 09 Январь, 2023 10:13 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
и такой вопрос: есть ли компонент/пример, как перехватывать клавиатуру в форме? ну вот мне хочется туда хоткеев докинуть, чтобы разные контролы активировать и всё такое. некультурно, но удобно. можно, конечно, сделать свой фрэйм и всё туда сложить, по идее — но я тоже не помню, как. ткните носом в что-то, что можно украсть, пожалуйста (если оно есть, и если вы поняли, о чём я).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Понедельник, 09 Январь, 2023 14:51 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3778
arisu писал(а):
и такой вопрос: есть ли компонент/пример, как перехватывать клавиатуру в форме? ну вот мне хочется туда хоткеев докинуть, чтобы разные контролы активировать и всё такое. некультурно, но удобно. можно, конечно, сделать свой фрэйм и всё туда сложить, по идее — но я тоже не помню, как. ткните носом в что-то, что можно украсть, пожалуйста (если оно есть, и если вы поняли, о чём я).

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

И вот там в новом коде как раз есть узкое место, которое сделано в виде крюка. И вот сюда я и посоветовал бы ваш перехватчик встроить, заменяя стандартный крюк MainMenuHook.

Код:
   PROCEDURE (hook: MainMenuHook) HandleShortcut (VAR msg: StdMenuTool.ShortcutMsg);
   BEGIN
      ASSERT(~msg.done, 20);
      IF hook.win # NIL THEN ForwardCtrlMsg(hook.win, msg) END
   END HandleShortcut;


Все эти наработки лежать в ветке blackbox20dev20dirty, однако возможно Антон в скором времени выкатит свою версию Блэкбокса, и там он как-то иначе уже это организовал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Понедельник, 09 Январь, 2023 14:55 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3778
arisu писал(а):
ещё немного апдейтов...

Огромное спасибо! Я чутка вынужден сбавить темп по внедрению, надо срочно доделать по работе несколько задачек. Но в фоновом режиме я продолжу всё внедрять! И про сохранения рабочих столов я тоже помню. Вчера уже сделал, чтобы журнал с корректным названием восстанавливался. И проблему диагностировал, что новым прокси-видам не присваевается при загрузке оконный бэкенд, поэтому они не рисуются, как положено. Но уже сейчас корректно восстанавливается по одному документу в каждой плитке. Я добавил команды для сохранения и восстановления верстака в меню окна.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Понедельник, 09 Январь, 2023 20:05 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
Иван Денисов писал(а):
Огромное спасибо! Я чутка вынужден сбавить темп по внедрению
не переживайте, по независящим от меня условиям я тоже вынужден сбавить темп. я потому так и спешил, пока возможность была. сейчас всё станет намного медленней, увы. я понимаю, что у всех есть жизнь помимо BBCB (увы ;-), так что без проблем, "when it's done" — отличный срок. ;-)

Иван Денисов писал(а):
И про сохранения рабочих столов я тоже помню.
да, спасибо большое, я видел коммит. как минимум на один баг с именами стало меньше, это прогресс (тут вообще без иронии).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Понедельник, 09 Январь, 2023 20:08 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
Иван Денисов писал(а):
И вот там в новом коде как раз есть узкое место, которое сделано в виде крюка. И вот сюда я и посоветовал бы ваш перехватчик встроить, заменяя стандартный крюк MainMenuHook.
но это же глобальный перехват получается, правильно? я неточно спросил, видимо, простите: мне надо, чтобы вот открыли диалог через `Open()`, и вот в этом конкретном диалоге, а не по всей системе. то есть, я открываю, например, окошко навигатора по процедурам — и хочу, чтобы если я начинаю набирать буквы при любом активном контроле — то автоматически активировалась строка ввода маски, и всё шло туда. а по нажатию на M-f, например, активировался листбокс со списком процедур. я чую, что это можно как-то сделать вообще стандартными средствами среды (как-то оборачивать главный view фрэйма?), но я ещё не настолько хорошо её вспомнил, чтобы сообразить сходу, как.

глобально-то я себе мог бы вхачить туда, где обработка шорткатов меню идёт, но… но ведь для глобального как раз и есть меню, меня оно для таких целей устраивает пока. ;-)

p.s.: по независящим от меня внешним форс-мажорным причинам пока что не могу дочистить и пересадить новый парзер шорткатов; постараюсь сделать как только будет возможность.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Понедельник, 09 Январь, 2023 20:46 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3778
arisu писал(а):
Иван Денисов писал(а):
И вот там в новом коде как раз есть узкое место, которое сделано в виде крюка. И вот сюда я и посоветовал бы ваш перехватчик встроить, заменяя стандартный крюк MainMenuHook.
но это же глобальный перехват получается, правильно? я неточно спросил, видимо, простите: мне надо, чтобы вот открыли диалог через `Open()`, и вот в этом конкретном диалоге, а не по всей системе. то есть, я открываю, например, окошко навигатора по процедурам — и хочу, чтобы если я начинаю набирать буквы при любом активном контроле — то автоматически активировалась строка ввода маски, и всё шло туда. а по нажатию на M-f, например, активировался листбокс со списком процедур. я чую, что это можно как-то сделать вообще стандартными средствами среды (как-то оборачивать главный view фрэйма?), но я ещё не настолько хорошо её вспомнил, чтобы сообразить сходу, как.

глобально-то я себе мог бы вхачить туда, где обработка шорткатов меню идёт, но… но ведь для глобального как раз и есть меню, меня оно для таких целей устраивает пока. ;-)

p.s.: по независящим от меня внешним форс-мажорным причинам пока что не могу дочистить и пересадить новый парзер шорткатов; постараюсь сделать как только будет возможность.

А... для это задачи реализуйте свой контроллер, по аналогии с тем, как сделано в StdDocuments, у установите его для этой формы через doc.SetController(c); Я так сам не делал, поэтому там могут быть подводные камни, но в целом оно так задумано, как я понимаю каркас.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Понедельник, 09 Январь, 2023 21:20 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
а, вот, спасибо, я забыл опять про контроллеры! буду копать в эту сторону. отвык уже за столько лет от среды с честным MVC.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Вторник, 10 Январь, 2023 04:16 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
и не могу не похвастаться. ну очень хочется! вот это уже работает даже. можно открывать гиторепы, в них коммиты/бранчи с путями, читать оттуда файлы, получать списки файлов и каталогов. почти как настоящая ФС! ;-)

а вот кстати, в локаторах не хватает апи для разбора путей, да. а если бы он был, то FileBrowser смог бы с такой штукой работать прямо из коробки!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Вторник, 10 Январь, 2023 04:46 
Аватара пользователя

Зарегистрирован: Воскресенье, 09 Декабрь, 2018 15:14
Сообщения: 113
Откуда: Equestria
а мне сказал что такой апи плохой и не годится!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Вторник, 10 Январь, 2023 07:22 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
SovietPony писал(а):
а мне сказал что такой апи плохой и не годится!
плохой и не годится! но лучше плохой, чем ничего.

алсо, полностью переписал FilesBrowser (ну да, не могу от него отцепиться). вместо постоянного рескана диска сделал одноразовый рескан при смене пути, и сохранение списка файлов внутри таблички. благодаря этому код значительно упростился (теперь один массив с именами, не надо вести два курсора, и постоянно всё перебирать-считать). по уму, конечно, это надо бы сделать моделью, но простите, пока я на такой подвиг не готов. заодно повыносил все вложеные процедуры наружу, а то некультурно, что они лазят в переменные родителя.

ещё потестирую, и потом закину апдейт.

p.s.: ну чем вам не понравилось красивое число `-666`? это лучше, чем `-1024`, такие плэйсхолдеры намного проще искать! ;-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Вторник, 10 Январь, 2023 09:34 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3778
arisu писал(а):
вместо постоянного рескана диска сделал одноразовый рескан при смене пути, и сохранение списка файлов внутри таблички. благодаря этому код значительно упростился (теперь один массив с именами, не надо вести два курсора, и постоянно всё перебирать-считать). по уму, конечно, это надо бы сделать моделью, но простите, пока я на такой подвиг не готов. заодно повыносил все вложеные процедуры наружу, а то некультурно, что они лазят в переменные родителя.

Может тогда сделать кнопочку "обновить", а то если файл появился, то придётся выходить/заходить, чтобы его увидеть.
Предлагаю пиктограмму с круговой стрелкой в правом верхнем углу списка файлов.

arisu писал(а):
p.s.: ну чем вам не понравилось красивое число `-666`? это лучше, чем `-1024`, такие плэйсхолдеры намного проще искать! ;-)

Разные культурные и личные особенности стараюсь приводить в социально-нейтральному формату Блэкбокса. Ну и, надеюсь, что вас это не смутит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BlackBox 2.0
СообщениеДобавлено: Вторник, 10 Январь, 2023 10:08 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1167
Иван Денисов писал(а):
Может тогда сделать кнопочку "обновить"
там можно нажать Ctrl+R сейчас, но это неочевидно, да. вот только стрелку я не нарисую, у меня с рисованием (в смысле artistry) всё плохо. ;-) а в шрифтах она не во всех есть, увы. если вы мне дадите код, который рисует стрелочку — с удовольствием вставлю.

Иван Денисов писал(а):
Ну и, надеюсь, что вас это не смутит.
да без проблем, я шучу так. просто когда мне нужно «случайное бесполезное число», я автоматически печатаю 666 и даже не замечаю.

алсо уже почти можно:
Код:
      Dvcs.OpenRepo;
      StdFilesBrowser.AddPlace("Current Git HEAD", "GIT:HEAD:/");

то есть, прозрачная installable FS, и можно посмотреть списочек уже. в теории даже открыть прямо оттуда. надо только починить несколько багов в парзинге гит-путей (они довольно специфические). в смысле, в самом модуле Dvcs, FilesBrowser совершенно стандартный.

собственно, перепись FilesBrowser отчасти была мотивирована именно поддержкой Dvcs: получать списки из libgit2 — довольно накладная операция.

p.s.: ура! удалось побродить по подкаталогам в репозитории, и даже совершенно нормально открыть оттуда документ!

но нужна правка Dialogs: надо экспортировать хуки как read-only. иначе я не могу вызывать старый `Dialog.hostLocHook`.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 388 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8, 9 ... 20  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB