Как можно сделать, чтобы все не помеченные как read-only до

Автор ForumOOo (бот), 18 июля 2011, 16:53

0 Пользователи и 1 гость просматривают эту тему.

ForumOOo (бот)

Компонент: Общие вопросы
Версия OpenOffice.org: 3.3.2
Сборка: LibreOffice 3.4.1 Final (2011-07-01)
ОС: Windows XP

Как можно сделать, чтобы все не помеченные как read-only документы по умолчанию открывались для чтения, но при
этом сохранялась возможность быстро переключиться в режим редактирования (то бишь параметр -view не подходит)?

--
Подпись: F.Phoenix
Эл. почта: rusifer2004@yandex.ru

Yakov


FPhoenix

#2
Пффф... Ладно, по порядку >:( У всех офисных приложений есть 2 режима - режим чтения и режим правки. И переключаются эти режимы вот этой вот кнопкой: (скриншот). И как офис себя ведет с дефолтными настройками:

  • При создании нового документа автоматически включается режим правки. Кнопка вообще неактивна до первого сохранения.
  • При открытии существующего файла с атрибутом read-only наоборот включается режим чтения. При нажатии вышеуказаной кнопки офис говорит, что прав на изменение данного файла у меня нет и предлагает мне создать новый файл на основе данного, после чего повторяется первый пункт.
  • При открытии любого файла с параметром командной строки -view (скриншот) так же по умолчанию выставлятся режим чтения, но редактирования включается безо всяких диалоговых окон. Тем не менее команда "Сохранить" недоступна - можно только "Сохранить как..."
  • А вот при открытии файла без атрибута "только чтение" и без аргумента -view по умолчанию включается как раз-таки правка. То бишь это я на кнопку ту должен нажать не для того, чтоб что-то исправить, а наоборот чтоб ничего не исправлять :-X

Вот именно это мне и неудобно несколько. Хотелось бы, чтоб просто эта кнопка была не нажата при открытии документа в Writer'е или там в чем угодно. То бишь чтоб программа была при запуске оптимизирована на чтение - не было лишних панелек, сам я просто так не мог бы случайно файл изменить и так далее, но в то же время если б наткнулся на что-либо, что захотелось бы исправить, мог бы врубить редактирование, внести нужные поправки, нажать сохранить и продолжить себе читать дальше. Через "Сохранить как" будет еще менее удобно, чем сейчас. Но ни в настройках, ни в хелпе я об этом ничего не нашел. Понимаю, конечно, что опен-серс, и что сам могу и по исходникам это дело поискать, и в случае чего переписать, как мне будет угодно, но все же не очень хочется туда лезть - своих исходников пока хватает =) Может, все же стандартное средство для такого есть? Ну или хотя бы полустандартное типа изменения какого-нибудь значения в каком-нибудь cfg-файле?

VlhOwn

#3
Сервис-Настройка, выбирайте событие (например, открытие документа) и назначайте ему макрос, который сделает текущим режим чтения.
Вы также можете сделать это с пустым документом, сохранить его в качестве шаблона, и все последующие документы создавать на основе этого шаблона.

[вложение удалено Администратором]

FPhoenix

Если этот вопрос кому интересен, то тогда сначала и прикрепил макрос (не знаю и не люблю бейсик, но LibO только в него умеет записывать - полуавтоавтоматически и сделал):
REM  *****  BASIC  *****

sub SwitchEditMode
dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:EditDoc", "", 0, Array())
end sub


Однако, это получилось не особо удобно. Сейчас просто в свойствах документов выставляю "только чтение" (Файл - Свойства - Безопасность - Открывать только для чтения). В отличие от установки атрибута файлу, когда кнопка редактирования вообще становится недоступной, это свойство обрабатывается как раз так, как мне нужно - т.е. редактировать-то можно, но режим чтения идет по дефолту. Кстати, при первом сохранении новых документов нужная вкладка сама открывается. И че я сразу эту штуку не заметил? Может, в старых версиях просто не открывалась... ;D