OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 13:53

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




Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу 1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: Четверг, 19 Август, 2010 11:06 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
из http://www.inr.ac.ru/~info21/software.htm
Цитата:
Блэкбокс — базовая сборка

*Бета новой версии на 2010/2011 уч. год с учётом опыта:
http://www.inr.ac.ru/~blackbox/rsrc/bla ... 1base10.7z (5M)
Решил опробовать неоднократно рекламированное Info21 сохранение конфигурации окон.

Модуль не импортирует других модулей из 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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: i21sysDesktop
СообщениеДобавлено: Четверг, 19 Август, 2010 11:28 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Цитата:
"Выйти" "" "HostCmds.SaveAll;i21sysDesktop.Save;HostMenus.Exit" ""
Выделенная штука появилась для десктопа? В скачанной базовой версии она цветом не выделена, думал что от оригинала, проверил - нет.

Сопутствующие заметки:
1) Если на вопрос о сохранении документа отвечать "Нет", то он будет задан дважды: HostCmds.SaveAll, затем из HostMenus.Exit.
2) Если "нет" ответить для нового документа, то он сохранится в десктопе. Если для старого -- не сохранится -- изменения пропадут. Вопрос и ответ одинаковые, результат разный.
3) Если для нового сначала сказать "нет", потом "да" и сохранить, то записанный по середине десктоп окажется неверным. Тоже касается i21sysDesktop.Close - сначала сохраняется десктоп; затем закрываются окна и пользователь может новый документ сохранить в файл.
4) Files->Exits сохранит декстоп. "Крестик окна" -- нет.

О нюансах 2 и 4 в документации не отмечено. 1 и 3, на мой взгляд, желательно устранить (как -- пока ни одного варианта не придумал...)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: i21sysDesktop
СообщениеДобавлено: Четверг, 19 Август, 2010 11:31 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Цитата:
а в процедуре Config.Setup добавить следующий вызов:
Dialog.Call("i21sysDesktop.Restore", "", res);
Резонно: если десктоп грузится автоматом и файла десктопа нету, то желательно поведение по-умолчанию --- открытие журнала. Открытый же журнал последующей загрузке десктопа не мешает.

Но: в скачанном комплекте вызов замещает открытие журнала.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: i21sysDesktop
СообщениеДобавлено: Четверг, 19 Август, 2010 15:08 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Ещё один момент: если загружать десктоп с новыми untitled документами - это не влияет на счетчик HostWindows.newNumber. Т.е.
- пустой стол: создал новый "untitled1", вышел
- вошёл: создал новый - ещё один "untitled1"...

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: i21sysDesktop
СообщениеДобавлено: Четверг, 26 Август, 2010 13:29 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Итого, пришёл для себя к следующей схеме.
===
При старте ББ рабочий стол загружается из док-та по-умолчанию (desktop.i21); при выходе — сохраняется, если desktop.i21 существует.

Чтобы включить сохранение, надо первое выполнить вручную: Window->Save Desktop. Отказаться от сохранения — удалить desktop.i21.

Если десктоп считался не полностью (например, из-за отсутсвия какого-то файла), и его хочется сохранить в оригинальном виде, — скопировать или переименовать desktop.i21 до выхода из ББ.
===
Чтобы её внедрить, правил i21sysDesktop и HostCmds. Правки HostCmds в основном связаны с устранением 1 и 3 (см. viewtopic.php?p=50649#p50649).

Полный список изменений:
Вложение:
chge-lst.odc [8.05 КБ]
Скачиваний: 533


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: i21sysDesktop
СообщениеДобавлено: Четверг, 26 Август, 2010 13:52 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Касательно момента:
- часто использую новые документы (которые потом не сохраняются) как "записные книжки"
- проблема с новыми документами и десктопом в том, что они метятся как "грязные" и при каждом выходе идут запросы о сохранении

Нашел решение:
- вспомогательные окна не связаны с файлом (т.е. сохранятся в десктопе)
- закрываются без вопросов

Нужна только команда открытия вместо 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;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: i21sysDesktop
СообщениеДобавлено: Воскресенье, 19 Сентябрь, 2010 09:39 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Евгений Темиргалеев писал(а):
Нашел решение:
- вспомогательные окна не связаны с файлом (т.е. сохранятся в десктопе)
- закрываются без вопросов

Нужна только команда открытия вместо File->New:
^Q "StdCmds.OpenAux('Empty', 'записная книжка')"
Это неплохо своей простотой (правда, то, что называют "записной книжкой", часто используется всё-таки для долгосохраняемой информации).

Плохо тут то, что распыляется внимание: раз уж нужно сохранять, то почему не в файле по-честному. С распыленным вниманием проще чё-нить забыть и потерять. Или при переходе на ББ без этой сохранялки.

Условность, предлагаемая для манипуляций с desktop.i21, -- нехороша своей закадровостью, не оправданной, по-моему, наваром. Тем более, что если уж не хочется сохранять desktop, то достаточно выйти по Alt+F4.

Изменения HostCmds смотрю, но сомневаюсь, что решаемый там вопрос оправдывает такие усилия. Опять же нехорошая непрозрачность.
************************
Во всяком случае, тут получается тщательная проверка решения на устойчивость, что здорово.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: i21sysDesktop
СообщениеДобавлено: Воскресенье, 19 Сентябрь, 2010 17:28 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Info21 писал(а):
Это неплохо своей простотой (правда, то, что называют "записной книжкой", часто используется всё-таки для долгосохраняемой информации).
"Записная книжка" действительно не подходит. Это скорее клочок бумаги с временными записями на один сеанс работы, который благодаря сохранению десктопа можно прерывать и возобновлять.

Командой этой ни разу ещё не пользовался.

Info21 писал(а):
Условность, предлагаемая для манипуляций с desktop.i21, -- нехороша своей закадровостью, не оправданной, по-моему, наваром. Тем более, что если уж не хочется сохранять desktop, то достаточно выйти по Alt+F4.

Изменения HostCmds смотрю, но сомневаюсь, что решаемый там вопрос оправдывает такие усилия. Опять же нехорошая непрозрачность.
Касательно изменений для сохранения десктопа всегда: удобно (описанные проблемы решены, всё работает само в фоне и особых телодвижений/контроля не требует), новых проблем пока не замечено (ещё ни разу не пришлось с файлом вручную чего-то делать).

Уже привык, что работа продолжается "с того же самого места". Причём независимо от места работы, т.к. удалось это дело с svn-м состыковать :) ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: i21sysDesktop
СообщениеДобавлено: Воскресенье, 19 Сентябрь, 2010 20:31 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Евгений Темиргалеев писал(а):
Командой этой ни разу ещё не пользовался.
Понятно. Это была, что называется, просто идея.

Евгений Темиргалеев писал(а):
Касательно изменений для сохранения десктопа всегда: удобно
Не понял, что именно удобно. Пока считаю удобным изначальный вариант.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 19 Сентябрь, 2010 23:45 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
А мне удобнее иметь N сохранённых столов с логом и открытым Tool-Map для каждого проекта, БЕЗ сохранения при выходе.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 20 Сентябрь, 2010 01:06 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Пётр Кушнир писал(а):
А мне удобнее иметь N сохранённых столов с логом и открытым Tool-Map для каждого проекта, БЕЗ сохранения при выходе.
у меня по одному под каждый "проект". "Tool-Map" доступен по горячей клавише, а стол хранит предыдущий сеанс работы...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 20 Сентябрь, 2010 12:09 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Пётр Кушнир писал(а):
А мне удобнее иметь N сохранённых столов с логом и открытым Tool-Map для каждого проекта, БЕЗ сохранения при выходе.


Евгений Темиргалеев писал(а):
у меня по одному под каждый "проект". "Tool-Map" доступен по горячей клавише, а стол хранит предыдущий сеанс работы...

Любопытно.

Я в итоге отказался от схемы с N столами как основной из-за
1) необходимости постоянно таскать на флэшке подсистемки: в одном месте проектор к ноуту не подключить, в другом wi-fi глючит, в третьем ..., в четвертом ...
2) необходимости жонглировать совершенно разными проектами (переключаться между столами утомительно).

Проект : папка : стол. Просто и надежно как репа.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 20 Сентябрь, 2010 16:38 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
У меня один проект = отдельная (вторичная|первичная) папка ББ, теперь с одним столом.
Info21 писал(а):
Проект : папка : стол.
Вы про тоже?
Пётр Кушнир писал(а):
А мне удобнее иметь N сохранённых столов с логом и открытым Tool-Map для каждого проекта, БЕЗ сохранения при выходе.
У Петра, насколько я понимаю, тоже один стол на один проект, но заранее заготовленный, с определённым набором стандартных документов (набор от проекта не зависит). И используется стол не для возврата к "состоянию отрыва от работы", а для того, чтобы эти стандартные документы каждый раз не открывать. Поэтому сохранения при выходе не д.б., чтобы изначально заданный набор документов не сбивался. :?:
...
Отметил один момент, когда возврат к предыдущему состоянию полезен во-время работы --- для перезагрзуки модулей. Идёт модернизация вьюшки, которая внедрена открытые документы, т.е. старый модуль так просто не выгрузить. Закрыл ББ [с сохранением стола], открыл и продолжаешь работу.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 20 Сентябрь, 2010 17:46 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Евгений Темиргалеев писал(а):
У Петра, насколько я понимаю...
ну да, один проект - один стол. каждый стол - это окно лога, список Tool-Map(для полной перекомпиляции и выгрузки). открыть документ можно выделив имя модуля в тулмапе, для меня это действие не критично.


Вложения:
Комментарий к файлу: Рабочий стол с двумя документами, открытыми вручную
Снимок.JPG
Снимок.JPG [ 213.33 КБ | Просмотров: 12793 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 20 Сентябрь, 2010 20:44 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Пётр Кушнир писал(а):
открыть документ можно выделив имя модуля в тулмапе
Сколько менюшек -- кипит работа :)

Евгений Темиргалеев писал(а):
У меня один проект = отдельная (вторичная|первичная) папка ББ, теперь с одним столом.
Info21 писал(а):
Проект : папка : стол.
Вы про тоже?
Да.

Евгений Темиргалеев писал(а):
возврат к предыдущему состоянию полезен во-время работы --- для перезагрзуки модулей.
Кстати, да, всё время пользую.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 20 Сентябрь, 2010 23:05 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Info21 писал(а):
Сколько менюшек -- кипит работа :)

МАЛО :) это ж 1.6rc6, многое просто переносить не стали... раньше было в два ряда :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 21 Октябрь, 2010 13:15 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Нашел решения попроще для проблем, указанных Е.Э.
Идея в том, что для операций с сохранением окон требуется, чтобы не было грязных документов, а любой отказ от их сохранения трактуется как прерывание всей операции.

Проблему для дублирующих имен новых файлов тоже решил, но включать не стал, так как в этом варианте она стоит уже совсем не остро, чтобы оправдать влезание в Host.

Прошу протыкать:
распаковать в отдельную рабочую папку, и там запустить Блэкбокс в серверном режиме.
Сделано на 1.5.


Вложения:
desktop.7z [29.94 КБ]
Скачиваний: 381
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 21 Октябрь, 2010 15:13 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Info21 писал(а):
Нашел решения попроще для проблем, указанных Е.Э.
Согласен, проще, т.к. решается по месту, без ковыряния стандартных модулей. Переключение на несохранённый документ --- хорошее решение:
- для связанных с файлом документов --- выбор "сохранить", по-моему, наиболее вероятен (обычно вопрос возникает, если забыл сохранить). Когда надо отказаться от сохранения --- кнопка "нет" заменяется определённым числом Ctrl+Z, что не проблема, т.к. надо редко...
- для новых документов выбор "сохранить" можно считать единственным, если "записные книжки" заводить особой командой как несохраняемые документы


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 21 Октябрь, 2010 17:44 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Спасибо за скорость, неохота растягивать, хочу спихнуть уже побыстрее.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 19 Ноябрь, 2010 13:13 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Кто использует для сохранения текущего десктопа --- вопрос о "частоте" операций:
1) Выход с сохранением
2) Выход без сохранения
?
По-моему, 2) скорее исключение. Работаю с сохранением всегда, (2) изредка не хвататает.

Если это у большинства так, то выгоднее иметь особой командой как раз "Выход без сохранения десктопа". А по-умолчанию (в т.числе по крестику) --- (1).


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 41 ]  На страницу 1, 2, 3  След.

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


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

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


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

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