[OXT] Espaces insécables avant ponctuation

Discussions sur les projets et applications développés en liaison avec une suite bureautique libre.

Modérateur : Vilains modOOs

OlivierR
SuppOOrter
SuppOOrter
Messages : 1037
Inscription : 24 mai 2006 20:34
Localisation : Lorraine, France

[OXT] Espaces insécables avant ponctuation

Message par OlivierR »

Merci pour le support.

Si les mots exclus sont les premiers mots que je tape dans une cellule, un espace insécable est quand même ajouté. Mais pas après.

Les tirets de dialogue
Est-il possible d'ajouter aussi un espace insécable après les tirets quadratin et demi-quadratin placés en début de paragraphe? Ce sont des tirets de dialogue, et un espace insécable est nécessaire après ces caractères.
LibreOffice 7.1Windows 10Grammalecte, correcteur grammatical et orthotypographique
jumbo444
InconditiOOnnel
InconditiOOnnel
Messages : 769
Inscription : 10 mars 2006 12:09
Localisation : Rouen, France

Re: [Writer] Espaces insécables avant ponctuation

Message par jumbo444 »

Bonjour,

Merci Hagar de l'Est de m'avoir signalé ta mise à jour.
Au lieu de rajouter les protocoles, ne serait-il pas possible de détecter la séquence :// qui annulerait l'espace insécable ?

En effet, si on veut faire une liste des protocoles :
- http: => l'espace n'est pas inséré
- nntp: => l'espace est inséré
le comportement est difficilement compréhensible pour un néophyte.
LibO 5.4.6.2 sous Ubuntu 16.04
Avatar de l’utilisateur
Hagar Delest
SuppOOrter
SuppOOrter
Messages : 1467
Inscription : 01 févr. 2006 08:12

Re: [Writer] Espaces insécables avant ponctuation

Message par Hagar Delest »

OlivierR a écrit :Si les mots exclus sont les premiers mots que je tape dans une cellule, un espace insécable est quand même ajouté. Mais pas après.
Oui, je sais, cela vient de la variable sBefore qui contient les 5 caractères avant la ponctuation. Si les 5 caractères 'sortent' du tableau, la variable contient une valeur nulle que je ne peux pas trop utiliser. J'avais amélioré cela il y a longtemps en vérifiant si le curseur était dans un tableau ou non mais ça ajoute pas mal de code pour pas grand chose, je ne pense pas qu'on trouve beaucoup de cellules commençant par les exceptions.
OlivierR a écrit :Les tirets de dialogue
Est-il possible d'ajouter aussi un espace insécable après les tirets quadratin et demi-quadratin placés en début de paragraphe? Ce sont des tirets de dialogue, et un espace insécable est nécessaire après ces caractères.
D'une part, ça ne rentre pas dans le champ de la macro qui cible la ponctuation, d'autre part, un AutoTexte peut le faire aussi bien je pense. Mais bon, c'est faisable, suffit d'adapter les cas de détection, il faut en revanche vérifier si le tiret est bien le premier caractère du paragraphe.
jumbo444 a écrit :Au lieu de rajouter les protocoles, ne serait-il pas possible de détecter la séquence :// qui annulerait l'espace insécable ?

En effet, si on veut faire une liste des protocoles :
- http: => l'espace n'est pas inséré
- nntp: => l'espace est inséré
Intéressant en effet, le problème c'est que l'espace insécable va être inséré, l'utilisateur va le voir et vouloir le supprimer tout de suite (sauf s'il se rappelle que la macro va l'enlever ensuite). Mais je vais essayer de voir ce que ça donne. Bizarre je suis sous Xubuntu là et l'activation automatique de la macro ne s'est pas faite avec mon extension :evil:
Désormais sur le forum anglophone avec une version Sun sur une xubuntu (maison) et Windows (boulot).
Avatar de l’utilisateur
Hagar Delest
SuppOOrter
SuppOOrter
Messages : 1467
Inscription : 01 févr. 2006 08:12

Re: [Writer] Espaces insécables avant ponctuation

Message par Hagar Delest »

Voilà, dites moi ce que vous en pensez et quelle est la meilleure solution. C'est sûr que la proposition de jumbo444 est plus élégante mais moins évidente pour l'utilisateur.

Code : Tout sélectionner

' Ajout d'espace insécable en cours de saisie (for french langage)
' Auteur du code d'origine : Luc-Olivier Rousseau
' Auteur : Alain Nowak anowak@starxpert.fr
' Modifications :  Hagar de l'Est June 5th, 2008

' ----------------------------------------------------------------------------------------------
' Ajout d'espace insécable en cours de saisie
'	- ajout d'espace avant les caractères ":", ";", "?", "!"
'	- prise en compte de *://
'  ----------------------------------------------------------------------------------------------

' table des caractères utiles
' 33 !    63 ?   58 : 59 ;    32 ' '
' espace insecable : 160

Function doFrenchSpacing(oDocument as Object, sKeyChar as String) As Boolean
Dim oViewCursor as Object
Dim oText as Object
Dim oCursor as Object

doFrenchSpacing = false	
on local error goto Fin_doFrenchSpacing
sBefore=""
select case sKeyChar
	case ":", ";", "?", "!":
		oViewCursor = oDocument.CurrentController.getViewCursor()
		oText=oViewCursor.getText()
		oCursor = oText.createTextCursorByRange(oViewCursor.getStart())
		
		' détecte les 5 précédents caractères
		oCursor.goLeft(3, true)
		sBefore = oCursor.getString()
		
		' si dans un tableau et moins de 3 caractères avant curseur, espace insécable
		if len(sBefore)=0 then
			sReplace = Chr(160) & sKeyChar
			oCursor.collapseToEnd
			oCursor.setString(sReplace)
			doFrenchSpacing = true
			
		else
			charBefore = Asc(Right(sBefore,1))
			' détection d'une espace simple devant sKeyChar : remplacer espace par espace insécable 
			if charBefore=32  then
				sReplace = Chr(160) & sKeyChar
				oCursor.collapseToEnd
				oCursor.goLeft(1, true)
				oCursor.setString(sReplace)
				doFrenchSpacing = true
			
			' si espace insécable ou ponctuation répétée : ne rien faire
			elseif (charBefore = 160 or charBefore=33 or charBefore=63 or charBefore=58 or charBefore=59) then
			
			' cas standard : insérer une espace insécable
			else
				sReplace = Chr(160) & sKeyChar
				oCursor.collapseToEnd
				oCursor.setString(sReplace)
				doFrenchSpacing = true
			endif
		endif
	
	case "/":
		oViewCursor = oDocument.CurrentController.getViewCursor()
		oText=oViewCursor.getText()
		oCursor = oText.createTextCursorByRange(oViewCursor.getStart())
		
		' détecte les 3 précédents caractères
		oCursor.goLeft(3, true)
		sBefore = oCursor.getString()
		
		if sBefore=chr(160) & ":/" then
			sReplace = ":/" & sKeyChar
			oCursor.setString(sReplace)
			doFrenchSpacing = true
		endif
	end select

exit function
Fin_doFrenchSpacing:
' en cas d'erreur,ne rien faire pour ne pas perturber l'utilisateur
End Function

Désormais sur le forum anglophone avec une version Sun sur une xubuntu (maison) et Windows (boulot).
jumbo444
InconditiOOnnel
InconditiOOnnel
Messages : 769
Inscription : 10 mars 2006 12:09
Localisation : Rouen, France

Re: [Writer] Espaces insécables avant ponctuation

Message par jumbo444 »

Bonsoir Hagar de l'Est,

J'ai testé ton nouveau code sur ma OOo BEA300_m2. Si j'utilise simplement ton code sans ouvrir l'éditeur de macro, tout va bien, le système est bien réactif.

Par contre si j'ouvre la macro, j'ai ce message d'avertissement :
Image

Je ne comprends pas le message, mais peut-être que la macro n'est pas totalement compatible avec la version 3 ? Cela le faisait déjà avec la version précédente.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 5.4.6.2 sous Ubuntu 16.04
Avatar de l’utilisateur
Hagar Delest
SuppOOrter
SuppOOrter
Messages : 1467
Inscription : 01 févr. 2006 08:12

Re: [Writer] Espaces insécables avant ponctuation

Message par Hagar Delest »

Bonsoir,

Oui, il me semble que j'avais la même chose sous Windows 2000 mais ça ne le fait pas sous Xubuntu ! Je pensais que ça venait du début de la macro :

Code : Tout sélectionner

If HasUnoInterfaces(Thiscomponent, "com.sun.star.frame.XModel") Then 
	If (ThisComponent.SupportsService("com.sun.star.text.TextDocument")) Then
	  oDocView = ThisComponent.CurrentController
	  oKeyHandler = createUnoListener("frenchSpacingHandler_", "com.sun.star.awt.XKeyHandler")
	  oDocView.addKeyHandler(oKeyHandler)		  
	End if  
End If
End sub
Et que l'interface IDE provoquait l'erreur à l'ouverture puisque ce n'est pas un document texte. Normalement ça ne gêne pas.
Désormais sur le forum anglophone avec une version Sun sur une xubuntu (maison) et Windows (boulot).
jumbo444
InconditiOOnnel
InconditiOOnnel
Messages : 769
Inscription : 10 mars 2006 12:09
Localisation : Rouen, France

Re: [Writer] Espaces insécables avant ponctuation

Message par jumbo444 »

Bonjour Hagar de l'Est,

Si tu as envie d'ajouter de nouvelles fonctionnalités :
- ne fonctionne pas dans les Notes
- ne fonctionne pas si on a activé l'enregistrement des modifications

Bon courage.
LibO 5.4.6.2 sous Ubuntu 16.04
Avatar de l’utilisateur
Hagar Delest
SuppOOrter
SuppOOrter
Messages : 1467
Inscription : 01 févr. 2006 08:12

Re: [Writer] Espaces insécables avant ponctuation

Message par Hagar Delest »

Bonsoir,

Pour les notes, effectivement mais la boite de dialogue des notes doit être d'une espèce un peu spéciale (ce n'est pas du texte normal). Pour l'enregistrement des modifications, ça marche sur mon Linux. En revanche, mon extension installe bien la personnalisation des évènements à la création d'un document mais pas à l'ouverture (d'un document existant). J'ai modifié l'extension de départ sauvagement avec un éditeur de texte donc il y a peut-être un truc qui cloche.
Désormais sur le forum anglophone avec une version Sun sur une xubuntu (maison) et Windows (boulot).
OlivierR
SuppOOrter
SuppOOrter
Messages : 1037
Inscription : 24 mai 2006 20:34
Localisation : Lorraine, France

Re: [Writer] Espaces insécables avant ponctuation

Message par OlivierR »

Bonjour Hagar,

Je n'ai pas d'avis sur ce qui est le mieux pour la macro. Mon avis, c'est que l'utilisateur veut que ça marche et se fout de la méthode employée... :oops:

En ce qui concerne l'espace insécable après les tirets de dialogue, il me semble que ça rentre parfaitement dans le champ de cette macro qui consiste à gérer les espaces typographiques entre les caractères de ponctuation, dont font partie les tirets.

Ne serait-il pas étrange de créer une autre macro juste pour ça? D'ailleurs, deux macros surveillant la texte tapé ne vont-elles pas entrer en conflit? (là, c'est mon ignorance qui pose la question...)

Voilà, c'était ma dernière tentative de te faire changer d'avis. :wink: Si tu n'es pas d'accord, je serais ravi de savoir comment faire, histoire que je bricole une macro de mon côté.
LibreOffice 7.1Windows 10Grammalecte, correcteur grammatical et orthotypographique
Avatar de l’utilisateur
Hagar Delest
SuppOOrter
SuppOOrter
Messages : 1467
Inscription : 01 févr. 2006 08:12

Re: [Writer] Espaces insécables avant ponctuation

Message par Hagar Delest »

En fait, pour moi, ça ne rentre pas trop dans le champ de la macro car celle-ci est destinée à rendre service à l'utilisateur pour ajouter une espace avant le caractère de ponctuation de manière automatique. Pour tout ce qui est des actions après le caractère, il n'y a pas vraiment nécessité, ça devient du confort. Donc ce n'est pas très compliqué, il suffit d'ajouter une routine :

Code : Tout sélectionner

case "-":
      oViewCursor = oDocument.CurrentController.getViewCursor()
      oText=oViewCursor.getText()
      oCursor = oText.createTextCursorByRange(oViewCursor.getStart())
      oCursor.setString("-" & chr(160))
      doFrenchSpacing = true
Dans le case, il faut mettre le tiret que l'on veut (mettre une condition 'or' si nécessaire). Mais attention, l'insertion sera systématique, même si le tiret ne représente pas un début de paragraphe. Dans ce cas, il faut ajouter un test pour vérifier que c'est le premier caractère d'un paragraphe.

Edit: code modifié, ça ne fonctionnait pas bien.
NB: à mon avis, il est préférable d'utiliser un autotexte dans ce cas, surtout si le tiret est un caractère spécial. L'autotext permettra de taper une lettre puis F3 pour insérer à la fois le tiret et l'espace insécable. Ca évitera donc de tester une valeur de plus dans la macro.
Désormais sur le forum anglophone avec une version Sun sur une xubuntu (maison) et Windows (boulot).
OlivierR
SuppOOrter
SuppOOrter
Messages : 1037
Inscription : 24 mai 2006 20:34
Localisation : Lorraine, France

Re: [Writer] Espaces insécables avant ponctuation

Message par OlivierR »

A chaque fois que je veux éditer la macro, j'ai ceci qui s'affiche:
runtime_error.png
Ceci dit, ça fonctionne quand même...
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.1Windows 10Grammalecte, correcteur grammatical et orthotypographique
Avatar de l’utilisateur
Hagar Delest
SuppOOrter
SuppOOrter
Messages : 1467
Inscription : 01 févr. 2006 08:12

Re: [Writer] Espaces insécables avant ponctuation

Message par Hagar Delest »

OlivierR a écrit :A chaque fois que je veux éditer la macro, j'ai ceci qui s'affiche:
Oui, c'est normal, la macro est toujours active et l'interface IDE provoque l'erreur car elle ne doit pas supporter les fonctions des documents classiques.
Désormais sur le forum anglophone avec une version Sun sur une xubuntu (maison) et Windows (boulot).
jumbo444
InconditiOOnnel
InconditiOOnnel
Messages : 769
Inscription : 10 mars 2006 12:09
Localisation : Rouen, France

Re: [Writer] Espaces insécables avant ponctuation

Message par jumbo444 »

Bonjour Hagar,

J'ai constaté que si on utilise Fenêtre > Nouvelle fenêtre (OOo2.4.1 et OOO300_m4) la macro ne fonctionne plus dans la nouvelle fenêtre (alors qu'elle fonctionne toujours dans l'ancienne).
LibO 5.4.6.2 sous Ubuntu 16.04
Avatar de l’utilisateur
Hagar Delest
SuppOOrter
SuppOOrter
Messages : 1467
Inscription : 01 févr. 2006 08:12

Re: [Writer] Espaces insécables avant ponctuation

Message par Hagar Delest »

Bonjour,

Effectivement, idem avec la 3.0 RC1. Je pense que ça vient de la fonction CurrentControler mais là, ça dépasse mes petites compétences en macros !
Désormais sur le forum anglophone avec une version Sun sur une xubuntu (maison) et Windows (boulot).
jumbo444
InconditiOOnnel
InconditiOOnnel
Messages : 769
Inscription : 10 mars 2006 12:09
Localisation : Rouen, France

Re: [OXT] Espaces insécables avant ponctuation

Message par jumbo444 »

Bonjour Hagar de l'Est,

Je propose une nouvelle version de la macro qui permet en plus :
- de n'activer l'insertion des espaces insécables que pour les textes en français, ce qui devrait ravir ceux utilisent d'autres langues que le français (j'ai supposé que tous les francophones utilisaient l'espace insécable avant les ponctuations doubles, il faudra peut-être affiner)
- de détecter a posteriori la séquence :// et de supprimer éventuellement l'espace insécable. En laissant les tests sur htpp, etc. cela ne "pertubera" l'utilisateur que dans l'écriture de protocole non prévus dans la liste.

Code : Tout sélectionner

' Ajout d'espace insécable en cours de saisie (for french language)
' Auteur du code d'origine : Luc-Olivier Rousseau
' Auteur : Alain Nowak anowak@starxpert.fr
' Modifications :  Hagar de l'Est June 5th, 2008
' Modifications : Jumbo444 5 novembre 2008

' ----------------------------------------------------------------------------------------------
' Ajout d'espace insécable en cours de saisie
'	- ajout d'espace avant les caractères ":", ";", "?", "!"
'	- prise de la langue locale : remplacement effectué que si langue française
'	- prise en compte de https://, http://, ftp://, file:// et svn://
'	- détection de :// pour ne pas mettre d'espace insécable
'  ----------------------------------------------------------------------------------------------

' table des caractères utiles
' 33 !    63 ?   58 : 59 ;    32 ' '
' espace insecable : 160

Function doFrenchSpacing(oDocument as Object, sKeyChar as String) As Boolean
Dim oViewCursor as Object
Dim oText as Object
Dim oCursor as Object

doFrenchSpacing = false	
on local error goto Fin_doFrenchSpacing
oViewCursor = oDocument.CurrentController.getViewCursor()
if (oViewCursor.CharLocale.Language = "fr") then ' limite le travail au texte en français
	sBefore=""
	select case sKeyChar
		case ":", ";", "?", "!":
			oText=oViewCursor.getText()
			oCursor = oText.createTextCursorByRange(oViewCursor.getStart())
		
			' détecte les 5 précédents caractères
			oCursor.goLeft(5, true)
			sBefore = oCursor.getString()
		
			' si dans un tableau et moins de 5 caractères avant curseur, espace insécable
			if len(sBefore)=0 then
				sReplace = Chr(160) & sKeyChar
				oCursor.collapseToEnd
				oCursor.setString(sReplace)
				doFrenchSpacing = true
				
			else
				charBefore = Asc(Right(sBefore,1))
				' détection d'une espace simple devant sKeyChar : remplacer espace par espace insécable 
				if charBefore=32  then
					sReplace = Chr(160) & sKeyChar
					oCursor.collapseToEnd
					oCursor.goLeft(1, true)
					oCursor.setString(sReplace)
					doFrenchSpacing = true
			
				' espace insécable ou ponctuation répétée ou https: ou http: ou file: ou ftp: ou svn: ne rien faire
				elseif ( (charBefore = 160 or charBefore=33 or charBefore=63 or charBefore=58 or charBefore=59) or _
				         (sKeyChar=":" and (sBefore="https" or Right(sBefore,4)="http" or Right(sBefore,4)="file" _
				         or Right(sBefore,3)="ftp" or Right(sBefore,3)="svn")) ) then
			
				' cas standard : insérer une espace insécable
				else
					sReplace = Chr(160) & sKeyChar
					oCursor.collapseToEnd
					oCursor.setString(sReplace)
					doFrenchSpacing = true
				endif
			endif
		case "/" :
			oText=oViewCursor.getText()
			oCursor = oText.createTextCursorByRange(oViewCursor.getStart())
		
			' détecte les 3 précédents caractères
			oCursor.goLeft(3, true)
			sBefore = oCursor.getString()
			if (Right(sBefore,2)=":/" and Left(sBefore,1)=Chr(160)) then ' efface le caractère insécable
				sReplace = "://"
				oCursor.collapseToEnd
				oCursor.goLeft(3, true)
				oCursor.setString(sReplace)
				doFrenchSpacing = true
			endif
	end select
endif

exit function
Fin_doFrenchSpacing:
' en cas d'erreur,ne rien faire pour ne pas perturber l'utilisateur
End Function
Je laisse le soin à Hagar de l'Est de remettre en forme l'extension car mes essais n'ont pas été très concluants.
LibO 5.4.6.2 sous Ubuntu 16.04
Avatar de l’utilisateur
Hagar Delest
SuppOOrter
SuppOOrter
Messages : 1467
Inscription : 01 févr. 2006 08:12

Re: [OXT] Espaces insécables avant ponctuation

Message par Hagar Delest »

Je ne sais même plus comment j'ai fait pour modifier le code à la façon extension ! Comme je n'ai plus trop le temps de regarder, voici ma dernière version, avec une petite modification pour améliorer la compatibilité avec d'autres extensions (un message sur ce sujet dans le sujet initial mais comme il est vérouillé, je n'ai pas pu continuer).
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Désormais sur le forum anglophone avec une version Sun sur une xubuntu (maison) et Windows (boulot).
jumbo444
InconditiOOnnel
InconditiOOnnel
Messages : 769
Inscription : 10 mars 2006 12:09
Localisation : Rouen, France

Re: [OXT] Espaces insécables avant ponctuation

Message par jumbo444 »

Bonjour Hagar,

En reprenant ta nouvelle version de l'extension, j'ai remis le code que je propose pour la fonction doFrenchSpacing dedans et j'ai changé la version en 1.3.

Voici ce que ça donne. À tester...

[Edit] Voici une version un peu plus "sexy" de l'extension : aucune fonctionnalité nouvelle mais dans le gestionnaire d'extension apparait un petit texte explicatif et un icône.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 5.4.6.2 sous Ubuntu 16.04
OlivierR
SuppOOrter
SuppOOrter
Messages : 1037
Inscription : 24 mai 2006 20:34
Localisation : Lorraine, France

Re: [OXT] Espaces insécables avant ponctuation

Message par OlivierR »

Bonjour Hagar, bonjour Jumbo

Vous devriez peut-être proposer cette nouvelle extension sur le site dédiés aux extensions.
Celle de StarXpert n'est plus mise à jour et il ne semble y avoir aucune réponse aux commentaires postés.
Votre travail répond au problème de la localisation soulevé par certains.

http://extensions.services.openoffice.o ... /insecable
LibreOffice 7.1Windows 10Grammalecte, correcteur grammatical et orthotypographique
jumbo444
InconditiOOnnel
InconditiOOnnel
Messages : 769
Inscription : 10 mars 2006 12:09
Localisation : Rouen, France

Re: [OXT] Espaces insécables avant ponctuation

Message par jumbo444 »

Bonjour OlivierR,

Merci de ce rappel ! En fait, c'est sur ces pages que j'ai eu l'idée d'intégrer la localisation du texte mais j'avais oublié. :tesfou:
Reste à comprendre comment on soumet une extension...
LibO 5.4.6.2 sous Ubuntu 16.04
OlivierR
SuppOOrter
SuppOOrter
Messages : 1037
Inscription : 24 mai 2006 20:34
Localisation : Lorraine, France

Re: [OXT] Espaces insécables avant ponctuation

Message par OlivierR »

Il faut avoir un identifiant, et cliquer sur Submit extension à gauche, puis remplir le formulaire.
Ce n'est pas difficile si j'ai bonne mémoire, mais il faut bien faire attention.

Je te suggère toutefois de changer ton numéro de version.
1.3.1 au lieu de 1.3.1 (Hagar de l'Est) par exemple.

Apparemment, 3.0.0-beta3 posait problème pour la mise à jour à 3.0.0. Le système pensait que la 3.0.0 était plus ancienne que la 3.0.0-beta3.
LibreOffice 7.1Windows 10Grammalecte, correcteur grammatical et orthotypographique
jumbo444
InconditiOOnnel
InconditiOOnnel
Messages : 769
Inscription : 10 mars 2006 12:09
Localisation : Rouen, France

Re: [OXT] Espaces insécables avant ponctuation

Message par jumbo444 »

Merci OlivierR pour ces explications. J'ai pour le moment contacté StarXpert en leur proposant l'extension. Je vais voir s'ils réagissent. Sinon, je soumettrai l'extension par la voie que tu indiques.

EDIT : Quelqu'un de StarXpert m'a déjà répondu : ils testent l'extension et la mettront en ligne si ça marche. À suivre...

EDIT2 : Ca y est StarXpert a répondu et a mis à disposition une version 1.4 sur le site des extensions : http://extensions.services.openoffice.org/node/1568
LibO 5.4.6.2 sous Ubuntu 16.04
jbfaure
Membre cOOnverti
Membre cOOnverti
Messages : 393
Inscription : 10 juil. 2008 06:42
Localisation : Lyon - France

Re: [OXT] Espaces insécables avant ponctuation

Message par jbfaure »

Bonjour,

j'ai comme l'impression qu'il y a un bug. J'ai un doc texte (odt) dans lequel j'ai mis une feuille de calcul. Quand l'extension version 1.4 est activée, toute tentative d'écriture dans une cellule de la feuille provoque une erreur d'exécution Basic "Propriété ou méthode introuvable".

L'éditeur de code s'ouvre et m'indique la ligne suivante :
oViewCursor = oDocument.CurrentController.getViewCursor()
dans la fonction doSpacing

Pour reproduire l'erreur rien de plus simple :
- ouvrir un nouveau doc Writer
- ouvrir un nouveau doc Calc
- sélectionner une plage quelconque dans la feuille Calc ouverte
- coller dans le doc texte
- double cliquer sur l'objet Calc dans le doc texte
- sélectionner une cellule et tenter d'écrire quelque chose dedans.

Je n'ai jamais eu ce problème avec la version précédente de l'extension. Si je désactive l'extension le problème disparaît.

Bonne journée.
LibreOffice 7 (avec la dernière mise à jour corrective) sous Linux Ubuntu 22.04
Listes de discussions francophones : https://fr.libreoffice.org/get-help/mailing-lists/
jumbo444
InconditiOOnnel
InconditiOOnnel
Messages : 769
Inscription : 10 mars 2006 12:09
Localisation : Rouen, France

Re: [OXT] Espaces insécables avant ponctuation

Message par jumbo444 »

Bonjour,

Effectivement, l'équipe de StarXpert a désactivé la sortie en douceur en cas d'erreur dans la fonction. Il suffit de supprimer l'apostrophe sur la ligne au dessus d'où se trouve l'erreur pour retrouver l'ancien fonctionnement.
Je contact StarXpert, pour savoir s'ils peuvent remettre la gestion des erreurs.
Dernière modification par jumbo444 le 20 nov. 2008 14:41, modifié 3 fois.
LibO 5.4.6.2 sous Ubuntu 16.04
OlivierR
SuppOOrter
SuppOOrter
Messages : 1037
Inscription : 24 mai 2006 20:34
Localisation : Lorraine, France

Re: [OXT] Espaces insécables avant ponctuation

Message par OlivierR »

Il y a des fautes d'orthographe dans le descriptif de l'extension.

Insert automatiquement une espace insécable devant les ponctuations doubles comme les double points, point virgules, points d'exclamation, etc., conformément aux règles typographiques du français.

>

Insère automatiquement une espace insécable devant les ponctuations doubles comme les doubles points, les points-virgules, les points d'exclamation, etc., conformément aux règles typographiques du français.
LibreOffice 7.1Windows 10Grammalecte, correcteur grammatical et orthotypographique
jumbo444
InconditiOOnnel
InconditiOOnnel
Messages : 769
Inscription : 10 mars 2006 12:09
Localisation : Rouen, France

Re: [OXT] Espaces insécables avant ponctuation

Message par jumbo444 »

En attendant la réponse de StarXpert, je vous propose l'extension avec à nouveau la gestion des erreurs qui évite les messages anxiogènes, ainsi que les corrections d'orthographe signalées par OlivierR.

[EDIT] Version supprimée à la demande de StarXpert pour ne pas amener de confusion entre les versions. StarXpert devrait prochainement amener un correctif.
Dernière modification par jumbo444 le 20 nov. 2008 17:41, modifié 2 fois.
LibO 5.4.6.2 sous Ubuntu 16.04
yrogge
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 14 juil. 2008 15:20

Re: [OXT] Espaces insécables avant ponctuation

Message par yrogge »

Bonjour,
Merci à tous pour votre participation à cette extension bien nécessaire.
J'ai toutefois un problème. Je la charge, l'installe, relance OOo... et il ne se passe rien !
Même si j'exécute la macro "starxpert_insecable>entryPoint>spacing_on".
Quel est donc le truc ou le mode d'emploi ?
Merci d'avance,
Yves
OpenOffice 3.0.1 RC2 Aqua en français (OOo300m15 ; Build:9379)
Mac OS X Leopard Intel (10.5.6) en français
jumbo444
InconditiOOnnel
InconditiOOnnel
Messages : 769
Inscription : 10 mars 2006 12:09
Localisation : Rouen, France

Re: [OXT] Espaces insécables avant ponctuation

Message par jumbo444 »

Si vous avez utilisé des versions antérieures de l'extension, il est possible que l'installation se soit mal faite.
Pour finir l'installation, il faut associer la macro Spacing_on aux évènements de création et d'ouverture de document. Pour cela :
- menu Outils > Personnaliser > Evènements
- Sélectionner en bas OpenOffice.org
- sélectionner Créer le document, cliquer sur Macro
- rechercher dans l'arborescence : Macros OpenOffice.org > starxpert_insecable > entryPoint (star étant écrit en minuscule, la bibliothèque est dans les dernières de la liste)
- sélectionner la macro spacing_on, OK
- répéter avec l'évènement Ouvrir le document

J'avais lu récemment un tutoriel sur le sujet dans le forum, mais je ne le retrouve plus.
LibO 5.4.6.2 sous Ubuntu 16.04
yrogge
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 14 juil. 2008 15:20

Re: [OXT] Espaces insécables avant ponctuation

Message par yrogge »

Merci,
Le fil est ici : http://user.services.openoffice.org/fr/ ... ble#p45740
J'avais bien personnalisé.
Mais rien n'y fait !
Serait-ce une spécificité Mac ?
Yves
OpenOffice 3.0.1 RC2 Aqua en français (OOo300m15 ; Build:9379)
Mac OS X Leopard Intel (10.5.6) en français
jumbo444
InconditiOOnnel
InconditiOOnnel
Messages : 769
Inscription : 10 mars 2006 12:09
Localisation : Rouen, France

Re: [OXT] Espaces insécables avant ponctuation

Message par jumbo444 »

Bizarre, je n'ai jamais lu que la macro ne marchait pas sur Mac. As-tu la macro définie pour les bons évènements dans OpenOffice.org et non dans le fichier en cours (cf. liste déroulante en bas de la boite Personnaliser) ? As-tu créé un nouveau fichier pour que la macro s'active ?
La boite de dialogue Personnaliser doit ressembler à la copie d'écran ci-joint.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 5.4.6.2 sous Ubuntu 16.04
yrogge
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 14 juil. 2008 15:20

Re: [OXT] Espaces insécables avant ponctuation

Message par yrogge »

Tout était bien configuré ainsi.
J'ai même redémarré le système, mais rien ne semble se produire.
Il doit y avoir des événements (clavier, par exemple) qui ne sont pas captés.
Suis-je le seul à avoir ce problème ?
Yves
OpenOffice 3.0.1 RC2 Aqua en français (OOo300m15 ; Build:9379)
Mac OS X Leopard Intel (10.5.6) en français