OberonCore https://forum.oberoncore.ru/ |
|
i21sysDesktop - сохранялка конфигурации окон https://forum.oberoncore.ru/viewtopic.php?f=90&t=2791 |
Страница 1 из 3 |
Автор: | Евгений Темиргалеев [ Четверг, 19 Август, 2010 11:06 ] |
Заголовок сообщения: | i21sysDesktop - сохранялка конфигурации окон |
из http://www.inr.ac.ru/~info21/software.htm Цитата: Блэкбокс — базовая сборка Решил опробовать неоднократно рекламированное Info21 сохранение конфигурации окон.*Бета новой версии на 2010/2011 уч. год с учётом опыта: http://www.inr.ac.ru/~blackbox/rsrc/bla ... 1base10.7z (5M) Модуль не импортирует других модулей из i21sys, т.е. его можно использовать "сам по себе". В 1.6rc6 компилируется, работает. Возобновление прерванной работы в точке прерывания обеспечивает -- удобно. Важный (для школы --- не факт), на мой взгляд момент, пока не прописанный в документации: - документы, не связанные с файлом, сохраняются целиком внутри файла десктопа (Stores-ми). Прежде всего сюда относятся новые "untitled" документы и документы, открытые во вспомогательных окнах (напр., Info->Documentation, Info->Repository). - для документов, связанных с файлом (открытых из файла), сохраняются ссылки на файл. Обновлено 02.04.2011: версия i21sysDesktop для 1.6 выложена в коллекции: http://oberoncore.ru/bbcc/subs/i21sys/. Тема форума: viewtopic.php?f=90&t=3367 |
Автор: | Евгений Темиргалеев [ Четверг, 19 Август, 2010 11:28 ] |
Заголовок сообщения: | Re: i21sysDesktop |
Цитата: "Выйти" "" "HostCmds.SaveAll;i21sysDesktop.Save;HostMenus.Exit" "" Выделенная штука появилась для десктопа? В скачанной базовой версии она цветом не выделена, думал что от оригинала, проверил - нет.Сопутствующие заметки: 1) Если на вопрос о сохранении документа отвечать "Нет", то он будет задан дважды: HostCmds.SaveAll, затем из HostMenus.Exit. 2) Если "нет" ответить для нового документа, то он сохранится в десктопе. Если для старого -- не сохранится -- изменения пропадут. Вопрос и ответ одинаковые, результат разный. 3) Если для нового сначала сказать "нет", потом "да" и сохранить, то записанный по середине десктоп окажется неверным. Тоже касается i21sysDesktop.Close - сначала сохраняется десктоп; затем закрываются окна и пользователь может новый документ сохранить в файл. 4) Files->Exits сохранит декстоп. "Крестик окна" -- нет. О нюансах 2 и 4 в документации не отмечено. 1 и 3, на мой взгляд, желательно устранить (как -- пока ни одного варианта не придумал...) |
Автор: | Евгений Темиргалеев [ Четверг, 19 Август, 2010 11:31 ] |
Заголовок сообщения: | Re: i21sysDesktop |
Цитата: а в процедуре Config.Setup добавить следующий вызов: Резонно: если десктоп грузится автоматом и файла десктопа нету, то желательно поведение по-умолчанию --- открытие журнала. Открытый же журнал последующей загрузке десктопа не мешает.Dialog.Call("i21sysDesktop.Restore", "", res); Но: в скачанном комплекте вызов замещает открытие журнала. |
Автор: | Евгений Темиргалеев [ Четверг, 19 Август, 2010 15:08 ] |
Заголовок сообщения: | Re: i21sysDesktop |
Ещё один момент: если загружать десктоп с новыми untitled документами - это не влияет на счетчик HostWindows.newNumber. Т.е. - пустой стол: создал новый "untitled1", вышел - вошёл: создал новый - ещё один "untitled1"... Сохранение при выходе --- возникает путанница: когда задают вопрос сохранять или нет --- и не поймёшь, про какой документ. |
Автор: | Евгений Темиргалеев [ Четверг, 26 Август, 2010 13:29 ] |
Заголовок сообщения: | Re: i21sysDesktop |
Итого, пришёл для себя к следующей схеме. === При старте ББ рабочий стол загружается из док-та по-умолчанию (desktop.i21); при выходе — сохраняется, если desktop.i21 существует. Чтобы включить сохранение, надо первое выполнить вручную: Window->Save Desktop. Отказаться от сохранения — удалить desktop.i21. Если десктоп считался не полностью (например, из-за отсутсвия какого-то файла), и его хочется сохранить в оригинальном виде, — скопировать или переименовать desktop.i21 до выхода из ББ. === Чтобы её внедрить, правил i21sysDesktop и HostCmds. Правки HostCmds в основном связаны с устранением 1 и 3 (см. viewtopic.php?p=50649#p50649). Полный список изменений: Вложение:
|
Автор: | Евгений Темиргалеев [ Четверг, 26 Август, 2010 13:52 ] |
Заголовок сообщения: | Re: i21sysDesktop |
Касательно момента: - часто использую новые документы (которые потом не сохраняются) как "записные книжки" - проблема с новыми документами и десктопом в том, что они метятся как "грязные" и при каждом выходе идут запросы о сохранении Нашел решение: - вспомогательные окна не связаны с файлом (т.е. сохранятся в десктопе) - закрываются без вопросов Нужна только команда открытия вместо File->New: ^Q "StdCmds.OpenAux('Empty', 'записная книжка')" Более навороченный вариант, читающий заголовок из выделения: Код: PROCEDURE OpenNotes*;
VAR c: TextControllers.Controller; beg, end: INTEGER; rd: TextModels.Reader; i: INTEGER; title: ARRAY 256 OF CHAR; BEGIN c := TextControllers.Focus(); IF (c # NIL) & c.HasSelection() THEN c.GetSelection(beg, end); rd := c.text.NewReader(NIL); rd.SetPos(beg); i := 0; rd.ReadChar(title[i]); WHILE ~(rd.eot OR (rd.Pos() > end)) DO INC(i); rd.ReadChar(title[i]) END; title[i] := 0X ELSE title := "Записная книжка" END; StdCmds.OpenAux("Empty", title) END OpenNotes; |
Автор: | Info21 [ Воскресенье, 19 Сентябрь, 2010 09:39 ] |
Заголовок сообщения: | Re: i21sysDesktop |
Евгений Темиргалеев писал(а): Нашел решение: Это неплохо своей простотой (правда, то, что называют "записной книжкой", часто используется всё-таки для долгосохраняемой информации).- вспомогательные окна не связаны с файлом (т.е. сохранятся в десктопе) - закрываются без вопросов Нужна только команда открытия вместо File->New: ^Q "StdCmds.OpenAux('Empty', 'записная книжка')" Плохо тут то, что распыляется внимание: раз уж нужно сохранять, то почему не в файле по-честному. С распыленным вниманием проще чё-нить забыть и потерять. Или при переходе на ББ без этой сохранялки. Условность, предлагаемая для манипуляций с desktop.i21, -- нехороша своей закадровостью, не оправданной, по-моему, наваром. Тем более, что если уж не хочется сохранять desktop, то достаточно выйти по Alt+F4. Изменения HostCmds смотрю, но сомневаюсь, что решаемый там вопрос оправдывает такие усилия. Опять же нехорошая непрозрачность. ************************ Во всяком случае, тут получается тщательная проверка решения на устойчивость, что здорово. |
Автор: | Евгений Темиргалеев [ Воскресенье, 19 Сентябрь, 2010 17:28 ] |
Заголовок сообщения: | Re: i21sysDesktop |
Info21 писал(а): Это неплохо своей простотой (правда, то, что называют "записной книжкой", часто используется всё-таки для долгосохраняемой информации). "Записная книжка" действительно не подходит. Это скорее клочок бумаги с временными записями на один сеанс работы, который благодаря сохранению десктопа можно прерывать и возобновлять.Командой этой ни разу ещё не пользовался. Info21 писал(а): Условность, предлагаемая для манипуляций с desktop.i21, -- нехороша своей закадровостью, не оправданной, по-моему, наваром. Тем более, что если уж не хочется сохранять desktop, то достаточно выйти по Alt+F4. Касательно изменений для сохранения десктопа всегда: удобно (описанные проблемы решены, всё работает само в фоне и особых телодвижений/контроля не требует), новых проблем пока не замечено (ещё ни разу не пришлось с файлом вручную чего-то делать).Изменения HostCmds смотрю, но сомневаюсь, что решаемый там вопрос оправдывает такие усилия. Опять же нехорошая непрозрачность. Уже привык, что работа продолжается "с того же самого места". Причём независимо от места работы, т.к. удалось это дело с svn-м состыковать ... |
Автор: | Info21 [ Воскресенье, 19 Сентябрь, 2010 20:31 ] |
Заголовок сообщения: | Re: i21sysDesktop |
Евгений Темиргалеев писал(а): Командой этой ни разу ещё не пользовался. Понятно. Это была, что называется, просто идея.Евгений Темиргалеев писал(а): Касательно изменений для сохранения десктопа всегда: удобно Не понял, что именно удобно. Пока считаю удобным изначальный вариант.
|
Автор: | Пётр Кушнир [ Воскресенье, 19 Сентябрь, 2010 23:45 ] |
Заголовок сообщения: | Re: Сохранялка конфигурации окон i21sysDesktop |
А мне удобнее иметь N сохранённых столов с логом и открытым Tool-Map для каждого проекта, БЕЗ сохранения при выходе. |
Автор: | Евгений Темиргалеев [ Понедельник, 20 Сентябрь, 2010 01:06 ] |
Заголовок сообщения: | Re: Сохранялка конфигурации окон i21sysDesktop |
Пётр Кушнир писал(а): А мне удобнее иметь N сохранённых столов с логом и открытым Tool-Map для каждого проекта, БЕЗ сохранения при выходе. у меня по одному под каждый "проект". "Tool-Map" доступен по горячей клавише, а стол хранит предыдущий сеанс работы...
|
Автор: | Info21 [ Понедельник, 20 Сентябрь, 2010 12:09 ] |
Заголовок сообщения: | Re: Сохранялка конфигурации окон i21sysDesktop |
Пётр Кушнир писал(а): А мне удобнее иметь N сохранённых столов с логом и открытым Tool-Map для каждого проекта, БЕЗ сохранения при выходе. Евгений Темиргалеев писал(а): у меня по одному под каждый "проект". "Tool-Map" доступен по горячей клавише, а стол хранит предыдущий сеанс работы... Любопытно. Я в итоге отказался от схемы с N столами как основной из-за 1) необходимости постоянно таскать на флэшке подсистемки: в одном месте проектор к ноуту не подключить, в другом wi-fi глючит, в третьем ..., в четвертом ... 2) необходимости жонглировать совершенно разными проектами (переключаться между столами утомительно). Проект : папка : стол. Просто и надежно как репа. |
Автор: | Евгений Темиргалеев [ Понедельник, 20 Сентябрь, 2010 16:38 ] |
Заголовок сообщения: | Re: Сохранялка конфигурации окон i21sysDesktop |
У меня один проект = отдельная (вторичная|первичная) папка ББ, теперь с одним столом. Info21 писал(а): Проект : папка : стол. Вы про тоже?Пётр Кушнир писал(а): А мне удобнее иметь N сохранённых столов с логом и открытым Tool-Map для каждого проекта, БЕЗ сохранения при выходе. У Петра, насколько я понимаю, тоже один стол на один проект, но заранее заготовленный, с определённым набором стандартных документов (набор от проекта не зависит). И используется стол не для возврата к "состоянию отрыва от работы", а для того, чтобы эти стандартные документы каждый раз не открывать. Поэтому сохранения при выходе не д.б., чтобы изначально заданный набор документов не сбивался. ... Отметил один момент, когда возврат к предыдущему состоянию полезен во-время работы --- для перезагрзуки модулей. Идёт модернизация вьюшки, которая внедрена открытые документы, т.е. старый модуль так просто не выгрузить. Закрыл ББ [с сохранением стола], открыл и продолжаешь работу. |
Автор: | Info21 [ Понедельник, 20 Сентябрь, 2010 20:44 ] |
Заголовок сообщения: | Re: Сохранялка конфигурации окон i21sysDesktop |
Пётр Кушнир писал(а): открыть документ можно выделив имя модуля в тулмапе Сколько менюшек -- кипит работа Евгений Темиргалеев писал(а): У меня один проект = отдельная (вторичная|первичная) папка ББ, теперь с одним столом. Да.Info21 писал(а): Проект : папка : стол. Вы про тоже?Евгений Темиргалеев писал(а): возврат к предыдущему состоянию полезен во-время работы --- для перезагрзуки модулей. Кстати, да, всё время пользую.
|
Автор: | Пётр Кушнир [ Понедельник, 20 Сентябрь, 2010 23:05 ] |
Заголовок сообщения: | Re: Сохранялка конфигурации окон i21sysDesktop |
Info21 писал(а): Сколько менюшек -- кипит работа МАЛО это ж 1.6rc6, многое просто переносить не стали... раньше было в два ряда |
Автор: | Info21 [ Четверг, 21 Октябрь, 2010 13:15 ] | ||
Заголовок сообщения: | Re: Сохранялка конфигурации окон i21sysDesktop | ||
Нашел решения попроще для проблем, указанных Е.Э. Идея в том, что для операций с сохранением окон требуется, чтобы не было грязных документов, а любой отказ от их сохранения трактуется как прерывание всей операции. Проблему для дублирующих имен новых файлов тоже решил, но включать не стал, так как в этом варианте она стоит уже совсем не остро, чтобы оправдать влезание в Host. Прошу протыкать: распаковать в отдельную рабочую папку, и там запустить Блэкбокс в серверном режиме. Сделано на 1.5.
|
Автор: | Евгений Темиргалеев [ Четверг, 21 Октябрь, 2010 15:13 ] |
Заголовок сообщения: | Re: Сохранялка конфигурации окон i21sysDesktop |
Info21 писал(а): Нашел решения попроще для проблем, указанных Е.Э. Согласен, проще, т.к. решается по месту, без ковыряния стандартных модулей. Переключение на несохранённый документ --- хорошее решение:- для связанных с файлом документов --- выбор "сохранить", по-моему, наиболее вероятен (обычно вопрос возникает, если забыл сохранить). Когда надо отказаться от сохранения --- кнопка "нет" заменяется определённым числом Ctrl+Z, что не проблема, т.к. надо редко... - для новых документов выбор "сохранить" можно считать единственным, если "записные книжки" заводить особой командой как несохраняемые документы |
Автор: | Info21 [ Четверг, 21 Октябрь, 2010 17:44 ] |
Заголовок сообщения: | Re: Сохранялка конфигурации окон i21sysDesktop |
Спасибо за скорость, неохота растягивать, хочу спихнуть уже побыстрее. |
Автор: | Евгений Темиргалеев [ Пятница, 19 Ноябрь, 2010 13:13 ] |
Заголовок сообщения: | Re: Сохранялка конфигурации окон i21sysDesktop |
Кто использует для сохранения текущего десктопа --- вопрос о "частоте" операций: 1) Выход с сохранением 2) Выход без сохранения ? По-моему, 2) скорее исключение. Работаю с сохранением всегда, (2) изредка не хвататает. Если это у большинства так, то выгоднее иметь особой командой как раз "Выход без сохранения десктопа". А по-умолчанию (в т.числе по крестику) --- (1). |
Страница 1 из 3 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |