Réparer la position d'ouverture d'un document

Bonjour,

Quelqu'un saurait-il où est stockée l'information sur la position à laquelle était le curseur lors du dernier enregistrement avant fermeture d'un document ?

C'est, en principe, à cette position que le curseur devrait se retrouver lors de l'ouverture suivante.

Le contexte : de temps en temps et seulement avec les versions de développement, LO rouvre des documents à un endroit qui n'était pas celui du curseur lors du dernier enregistrement. C'est agaçant. La seule méthode que je connaisse pour réparer ça est le marteau-pilon, c'est-à-dire la suppression du profil utilisateur. Comme explorer les fichiers de configuration ne me fait pas peur, j'aimerais trouver une méthode moins dévastatrice, soit pour réinitialiser la position du curseur, soit pour lui indiquer la fin du document.

Quelqu'un a-t-il une idée ?

Merci pour votre aide.

JBF

Bonjour,

Quelqu'un saurait-il où est stockée l'information sur la position à
laquelle était le curseur lors du dernier enregistrement avant fermeture
d'un document ?

C'est, en principe, à cette position que le curseur devrait se retrouver
lors de l'ouverture suivante.

Le contexte : de temps en temps et seulement avec les versions de
développement, LO rouvre des documents à un endroit qui n'était pas
celui du curseur lors du dernier enregistrement. C'est agaçant. La seule
méthode que je connaisse pour réparer ça est le marteau-pilon,
c'est-à-dire la suppression du profil utilisateur. Comme explorer les
fichiers de configuration ne me fait pas peur, j'aimerais trouver une
méthode moins dévastatrice, soit pour réinitialiser la position du
curseur, soit pour lui indiquer la fin du document.

Quelqu'un a-t-il une idée ?

peut-être simplement réactualiser les informations utilisateurs mais
c'est tellement simple que je suppose que tu as déjà essayé

Merci pour votre aide.

JBF

Gérard

Je vois deux endroits où ça pourrait se nicher (hormis dans les fichiers
eux-mêmes mais si c'est pour tous les fichiers...), enfin, à peu près
logiquement :

- registrymodifications.xcu et là bon courage pour trouver l'info
- éventuellement dans l'un des dossiers config > soffice.cfg > modules,
mais lequel ? Cela dit la plupart de ces dossiers est vide et il n'y a
que peu de fichiers quand ils ne le sont pas.

Mais effectivement la proposition de Gérard passe avant :slight_smile:

ce sont les item "<item oor:path="/org.openoffice.UserProfile/Data>"
il y en a 18 chez moi à partir de la ligne 1867

Gérard

Super !

Comment as-tu trouvé ?

(bon je n'avais pas cherché personnellement).

Bonjour Gérard,

Bonjour,

Quelqu'un saurait-il où est stockée l'information sur la position à
laquelle était le curseur lors du dernier enregistrement avant fermeture
d'un document ?

C'est, en principe, à cette position que le curseur devrait se retrouver
lors de l'ouverture suivante.

Le contexte : de temps en temps et seulement avec les versions de
développement, LO rouvre des documents à un endroit qui n'était pas
celui du curseur lors du dernier enregistrement. C'est agaçant. La seule
méthode que je connaisse pour réparer ça est le marteau-pilon,
c'est-à-dire la suppression du profil utilisateur. Comme explorer les
fichiers de configuration ne me fait pas peur, j'aimerais trouver une
méthode moins dévastatrice, soit pour réinitialiser la position du
curseur, soit pour lui indiquer la fin du document.

Quelqu'un a-t-il une idée ?

peut-être simplement réactualiser les informations utilisateurs mais
c'est tellement simple que je suppose que tu as déjà essayé

Merci pour la suggestion mais en effet j'avais essayé. Cela ne réinitialise pas cette info.

Je ne pense pas qu'elle soit d'ailleurs dans le fichier lui-même car j'ai pu expérimenter qu'avec 2 installations de LO différentes, le même document peut s'ouvrir à 2 endroits différents.

Bonne journée

JBF

Bonjour,

- registrymodifications.xcu et là bon courage pour trouver l'info

ce sont les item "<item oor:path="/org.openoffice.UserProfile/Data>"
il y en a 18 chez moi à partir de la ligne 1867

Tu es sûr ? Je n'y vois que les infos renseignées dans les options sous "Données d'identité". Rien relatif à un fichier particulier.

Bonne journée

JBF

JBF,

C'est, en principe, à cette position que le curseur devrait se retrouver
lors de l'ouverture suivante.

As-tu vérifié cette entrée Ask ?

https://ask.libreoffice.org/en/question/133362/save-cursor-position/

en particulier la réponse à 2 votes.

Amicalement,

Bonjour,

- registrymodifications.xcu et là bon courage pour trouver l'info

ce sont les item "<item oor:path="/org.openoffice.UserProfile/Data>"
il y en a 18 chez moi à partir de la ligne 1867

Tu es sûr ? Je n'y vois que les infos renseignées dans les options sous
"Données d'identité". Rien relatif à un fichier particulier.

Disons que c'est cela qui permet de laisse le pointeur à la place du
dernier enregistrement si c'est le bon utilisateur.
Dans fichier/Propriétés/Général
"Utiliser les données d'identité" est-il coché ? le bouton réinitialiser
fera peut-être ce que tu cherches

Bonne journée

JBF

Gérard

Bonjour,

- registrymodifications.xcu et là bon courage pour trouver l'info

ce sont les item "<item oor:path="/org.openoffice.UserProfile/Data>"
il y en a 18 chez moi à partir de la ligne 1867

Tu es sûr ? Je n'y vois que les infos renseignées dans les options sous
"Données d'identité". Rien relatif à un fichier particulier.

dans meta.xml, il y a
<meta:initial-creator>Gérard</meta:initial-creator><dc:date>2018-11-28T15:07:53.223853599</dc:date><dc:creator>Gérard
</dc:creator>

Bonjour

De ce que je constate il suffit de modifier les paramètres de la section
ooo:view-settings dans le settings.xml.

Si tu supprimes carrément la section la réouverture se fera en début
de document...

Une manière "d'assurer" la pérennité pourrait être de stocker les
infos de la section par macro. Je n'ai pas essayé.

À tester sur des copies bien sûr :slight_smile:

Bonjour,

Bonjour

De ce que je constate il suffit de modifier les paramètres de la section
ooo:view-settings dans le settings.xml.

Si tu supprimes carrément la section la réouverture se fera en début
de document...

Une manière "d'assurer" la pérennité pourrait être de stocker les
infos de la section par macro. Je n'ai pas essayé.

À tester sur des copies bien sûr :slight_smile:

J'ai essayé mais j'obtiens un fichier que LO considère comme corrompu. Il réussi à faire une réparation du document mais le résultat est mauvais, la structure du document est cassée.

La réponse de Pierre (en dehors du fil de discussion, donc malcommode à repérer) signale le raccourci clavier Maj+F5 qui permet de "restaurer l'affichage d'édition". Or cela fonctionne parfaitement sur mon fichier ce qui signifie que la position du curseur est enregistrée correctement.

À l'aide de l'enregistreur de macro, j'ai créé une macro qui exécute cette fonction. Cela donne ceci :

sub RestaurerAffichageEdition
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:RestoreEditingView", "", 0, Array())
end sub

Ma question devient donc : à quel évènement dois-je assigner cette macro pour que, lorsque j'ouvre mon fichier, la macro soit exécutée juste avant que LO me rende la main ? J'ai essayé l'événement "Chargement du document terminé" mais manifestement ça lance la macro trop tôt car j'obtiens une erreur comme quoi CurrentController n'existe pas . J'ai aussi essayé "Document créé" et "Vue créée" mais il ne se passe rien.

Bonne journée
JBF

Bonjour

Jean-Baptiste Faure-3 wrote

La réponse de Pierre (en dehors du fil de discussion, donc malcommode à
repérer) signale le raccourci clavier Maj+F5 qui permet de "restaurer
l'affichage d'édition".

Je pensais plutôt à l'api currentController.restoreViewData (qui doit
d'ailleurs être celle appelée par le raccourci).

Jean-Baptiste Faure-3 wrote

Ma question devient donc : à quel évènement dois-je assigner cette macro
pour que, lorsque j'ouvre mon fichier, la macro soit exécutée juste
avant que LO me rende la main

L'événement /Ouvrir le document/ .

Jean-Baptiste Faure-3 wrote

J'ai essayé l'événement "Chargement du document terminé" mais
manifestement ça lance la macro trop tôt car j'obtiens une erreur
comme quoi CurrentController n'existe pas .

Nous avions aussi un pbm de ce genre avec le tableur auparavant :
tdf#53899 <https://bugs.documentfoundation.org/show_bug.cgi?id=53899>

Jean-Baptiste Faure-3 wrote

J'ai aussi essayé "Document créé" et "Vue créée" mais il ne se passe rien.

C'est lancé quand tu utilises le doc comme modèle et quand tu fais un
aperçu avant impression (ou nouvelle fenêtre).

Je joins un exemple de document. À l'ouverture (si les macros sont
autorisées) la vue "enregistrée" est réactivée (page 1 zoom 100%)
puis après validation du message une autre vue est activée
(page 4 en largeur optimale).

https://framadrop.org/r/rgHjCjn77h#1miI2UVEG2zgZ34GpWPNhfJz7Qkj5KVyH6nVCrlmkuA=

Bon week-end :slight_smile: