diff --git a/ePublishing/Archive.xba b/ePublishing/Archive.xba index 2bcf2e3..70f1c6a 100644 --- a/ePublishing/Archive.xba +++ b/ePublishing/Archive.xba @@ -1,6 +1,6 @@ -Sub archMark27 +Sub archMark29 End Sub @@ -1118,8 +1118,10 @@ End Sub Sub replaceParaStyle dim oldStyleName As String + dim oldStyleNameLocalized As String dim oldStyle As Object dim newStyleName As String + dim newStyleNameLocalized As String dim paragraphStyles As Object dim userInput As Integer Dim listBox As Object @@ -1151,11 +1153,11 @@ Sub replaceParaStyle listBox.addItems(sortedDPSN , 0) oDialog.Title = getTranslation("replaceParaStyleDialogTitle") oDialog.Execute() - newStyleName = oDialog.model.Tag - If newStyleName="0" or newStyleName="" Then + newStyleNameLocalized = oDialog.model.Tag + If newStyleNameLocalized="0" or newStyleNameLocalized="" Then Exit sub EndIf - foundIndex = getIndex(displayParaStyleNames, newStyleName) + foundIndex = getIndex(displayParaStyleNames, newStyleNameLocalized) 'set style system name instead of display name newStyleName = paraStyleNames(foundIndex) @@ -1163,11 +1165,10 @@ Sub replaceParaStyle MsgBox getTranslation("replaceParaStyleStylesEqualsNotification") Exit sub EndIf - If oldStyleName <> "" Then oldStyle = paraStyles.getByName(oldStyleName) If NOT oldStyle.isUserDefined Then - MsgBox getTranslation("replaceParaStyleCurrentStyleIsStandard") + replaceDefaultParaStyle(getLocalizedParaStyleName(oldStyleName), newStyleNameLocalized) Exit sub EndIf oldStyle.ParentStyle = newStyleName @@ -1185,10 +1186,70 @@ Sub replaceParaStyle EndIf EndIf Wend - - End Sub +Function getLocalizedParaStyleName(styleName as String) As String + Dim style As Object + Dim styles As Object + styles = ThisComponent.StyleFamilies + style = styles.getByName(styles.elementNames(1)).getByName(styleName) + getLocalizedParaStyleName = style.DisplayName +End Function + +sub replaceDefaultParaStyle(fromStyle As String, toStyle As String) + + dim document as object + dim dispatcher as object + document = ThisComponent.CurrentController.Frame + dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") + dim args1(21) as new com.sun.star.beans.PropertyValue + args1(0).Name = "SearchItem.StyleFamily" + args1(0).Value = 2 + args1(1).Name = "SearchItem.CellType" + args1(1).Value = 0 + args1(2).Name = "SearchItem.RowDirection" + args1(2).Value = true + args1(3).Name = "SearchItem.AllTables" + args1(3).Value = false + args1(4).Name = "SearchItem.SearchFiltered" + args1(4).Value = false + args1(5).Name = "SearchItem.Backward" + args1(5).Value = false + args1(6).Name = "SearchItem.Pattern" + args1(6).Value = true + args1(7).Name = "SearchItem.Content" + args1(7).Value = false + args1(8).Name = "SearchItem.AsianOptions" + args1(8).Value = false + args1(9).Name = "SearchItem.AlgorithmType" + args1(9).Value = 0 + args1(10).Name = "SearchItem.SearchFlags" + args1(10).Value = 65536 + args1(11).Name = "SearchItem.SearchString" + args1(11).Value = fromStyle + args1(12).Name = "SearchItem.ReplaceString" + args1(12).Value = toStyle + args1(13).Name = "SearchItem.Locale" + args1(13).Value = 255 + args1(14).Name = "SearchItem.ChangedChars" + args1(14).Value = 2 + args1(15).Name = "SearchItem.DeletedChars" + args1(15).Value = 2 + args1(16).Name = "SearchItem.InsertedChars" + args1(16).Value = 2 + args1(17).Name = "SearchItem.TransliterateFlags" + args1(17).Value = 1280 + args1(18).Name = "SearchItem.Command" + args1(18).Value = 3 + args1(19).Name = "SearchItem.SearchFormatted" + args1(19).Value = false + args1(20).Name = "SearchItem.AlgorithmType2" + args1(20).Value = 1 + args1(21).Name = "Quiet" + args1(21).Value = true + dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1()) +end sub + Function getIndex(array As variant, value As variant) As Integer Dim id As Integer Dim nRight As Integer