Доброго времени суток.
Подскажите как в LibreOffice макросом можно очистить список "Предыдущие документы"
или как вариант в каком файле храниться этот список.
Хотите очистить его раз и навсегда?
Если есть возможность, то лучше бы просто при выполнении макроса очищался. Но в крайнем случае раз и навсегда :)
А может еще какой вариант предложите. В общем заметил, что если в этом списке есть файлы с сетевых дисков, а эти диски отключены, то открытие офисом документа с локального диска очень медленное. Если же список почистить, то работает нормально.
- https://bugs.documentfoundation.org/show_bug.cgi?id=100895 - о проблемах производительности при наличии в списке файлов с сетевых дисков (Linux; неподтверждено). По возможности оставьте там комментарий о своём случае.
- https://bugs.documentfoundation.org/show_bug.cgi?id=74834 - об опции по отключению иконок в списке недавних документов - возможно, проблема в этом. Реализовано.
Для управления списком недавних документов:
меню Tools -> Options -> LibreOffice -> Advanced -> Open Expert Configuration -> перейдите к разделу org.openoffice.Office.Common -> History
- History Size - размер хранимого списка; по умолчанию 100; 0 - отключение
- History PickListSize - размер отображаемого списка; по умолчанию 25; 0 - не отображать (хранимый список при этом не отключается и продолжает обновляться, только не показывается)
- History RecentDocsThumbnail - переключатель отображения иконок предпросмотра
В меню File -> Recent Documents последним в списке идёт Clear List - можно просто очистить в ручную в момент необходимости (без макросов и изменения настроек); проверено на 5.2.1.2
Проще зайти в "Параметры— LibreOffice—Расширенные возможности" —> Экспертные настройки, в окошко поиска забить /org.openoffice.Office.Common/History и выставить PickListSize равным нулю.
Хотелось бы это сделать из макроса. Машин много в том числе и удаленных
А что же это за LAN-сеть такая, когда сетевые диски часто отваливаются?
Может пора пробежаться по офису, да переобжать всё, с термоусадкой? Заодно с девчатами познакомитесь, лазая у них под столом с феном и разглядывая прилепленные к столу жвачки :-)).
У себя в офисе кол-во пропаданий шар уменьшилось в 4 раза после подобного "субботника".
А если проблемы с удаленными/VPN/RDP - такой симптом даже тревожный: нет ничего хуже запоротого при сохранении важного файла. Вообще... - лечить симптом вместо болячки - это так по-нашему.
А представленных решений, имхо, достаточно.
Диски сами не отваливаются, они специально отключаются в некоторых случаях самим пользователем. Будем считать что это политика безопасности, на которую повлиять нельзя. Поэтому остается только лечить симптом :)
Кстати в LO 5.2.1.2 проблему пофиксили ( так что зря я намусорил в https://bugs.documentfoundation.org/show_bug.cgi?id=100895 :( ) Но мою проблему это не решает, т.к. в ближайшей перспективе обновление на всех рабочих местах не пройдет
Тогда тебе остаётся только расковырять код вот этой древней утилиты (http://extensions.openoffice.org/en/project/history-manager) и действительно получить макрос, который это сделает
Сами пользователи не могут обнулить настройку?
Ну да, вместо макроса написать циркулярное письмо с инструкцией...
С другой стороны, это ведь ПОЛЗАТЕЛИ! Те, которые не рождённые летать. Хоть один, но найдётся такой - "А я всё сделал как ты написал, а оно теперь не работает..."
Проблема в том, что макросом это сделать довольно трудно.
В LibreOffice сейчас этот список хранится в $user/registrymodifications.xcu
Нужно распарсить XML и удалить элементы:
<item oor:path="/org.openoffice.Office.Histories/Histories/org.openoffice.Office.Histories:HistoryInfo['PickList']/OrderList">,
<item oor:path="/org.openoffice.Office.Histories/Histories/org.openoffice.Office.Histories:HistoryInfo['PickList']/ItemList">
В принципе, пойдёт банальное удаление строк регэксом "^<item oor:path="/org[.]openoffice[.]Office[.]Histories/Histories/org[.]openoffice[.]Office[.]Histories:HistoryInfo\['PickList'\].+$".
Раньше в некоторых версиях использовался файл Histories.xcu (который можно было вообще удалить, там кроме истории мало что было). На него и был рассчитан плагин History Manager (History Master), но сейчас это не работает.
В настоящий момент доступа к встоенному функционалу через Uno нет. См. https://bugs.documentfoundation.org/show_bug.cgi?id=95788
mikekaganski Спасибо, попробую поработать с registrymodifications.xcu
JohnSUN Спасибо, History Manager мне тоже попадался на глаза, но смущало, что во времена его написания предыдущие документы хранились в Histories.xcu, и сейчас его код вряд ли поможет.
Всем спасибо за участие.
Bigor - отключенный сетевой диск сохраняется в реестре, его отключение не добавит безопасности. Также путь к сетевому диску и шарам виден в MRI-списках и даже в файлах внутри приложений. По своему опыту проверок - наличие отключенного сетевого диска не увеличивает и не уменьшает число вопросов к персоналу ни на йоту. А вот сервер я бы на вашем месте "тушил", ради безопасности.
Из "спортивного интереса" (пока указанный выше баг не исправлен) можно попробовать следующую последовательность действий:
1. Запомнить текущее значение параметра PickListSize (см. ответ Михаила #12) и обнулить его через сервис ConfigurationUpdateAccess (https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1configuration_1_1ConfigurationUpdateAccess.html) (можно использовать функцию GetRegistryKeyContent из библиотеки приложения Tools).
2. Используя интерфейс AccessibleContext "зайти" в дочернее меню Файл/Недавние документы/. В этот момент список недавно открытых документов должен стать пустым.
3. Восстановить значение параметра PickListSize через интерфейс ConfigurationUpdateAccess.