w2x toolbar configuration dialog

git-svn-id: svn://svn.code.sf.net/p/writer2latex/code/trunk@235 f0f2a975-2e09-46c8-9428-3b39399b9f3c
This commit is contained in:
henrikjust 2015-04-05 13:47:15 +00:00
parent c1fecb5252
commit 199616dde6
22 changed files with 794 additions and 178 deletions

View file

@ -4,12 +4,15 @@ Changelog for Writer2LaTeX version 1.4 -> 1.6
Items marked with * are work in progress
[w2x] Added toolbar configuration dialog: Select XHTML and EPUB export format and behavior after export (do nothing,
display in default viewer or display with custom application)
[w2x] *Added EPUB 3 as export format and changed default export format for toolbar to EPUB 3
[all] Implementation detail: Moved descriptions to a separate folder within the extensions
[all] *Document the use of soffice --headless --convert-to
[w2x] *Added EPUB 3 as export format and changed the toolbar to export to EPUB 3
[all] The position of message boxes has changed from (0,0) to (200,100)
[w2l] Implementation detail: The dialog library W4LDialogs is now merged into W2LDialogs2. This avoids conflicts with
@ -29,7 +32,7 @@ Items marked with * are work in progress
[w2l] Various improvements to the log viewer dialog: Reduced height to better accommodate small screen resolutions.
Added checkbox to filter the LaTeX log to display only errors. Added help page and long tips.
[w2x] Changed export format for toolbar from XHTML+MathML to HTML5
[w2x] Changed default export format for toolbar from XHTML+MathML to HTML5
[w2l] *Added new option font to load font packages. It accepts a large number of standard font packages such as
cmbright or fourier. Only packages with math support are included. Unknown packages defaults to Computer Modern.

View file

@ -20,7 +20,7 @@
*
* All Rights Reserved.
*
* Version 1.6 (2015-01-09)
* Version 1.6 (2015-04-05)
*
*/
package org.openoffice.da.comp.w2lcommon.filter;
@ -85,7 +85,7 @@ public class UNOPublisher {
* (5) Post process the document, e.g. displaying the result
*
* @param format the target format
* @return true if the publishing was succesful
* @return true if the publishing was successful
*/
public boolean publish(TargetFormat format) {
if (documentSaved() && updateMediaProperties(format)) {
@ -131,7 +131,7 @@ public class UNOPublisher {
}
xStatus.setValue(7); // Document is converted, that's 70%
postProcess(getTargetURL(format));
postProcess(getTargetURL(format),format);
xStatus.setValue(10); // Export is finished (The user will usually not see this...)
xStatus.end();
@ -161,8 +161,9 @@ public class UNOPublisher {
/** Post process the document after conversion.
*
* @param format URL of the converted document
* @param format the target format
*/
protected void postProcess(String sTargetURL) {
protected void postProcess(String sTargetURL, TargetFormat format) {
}
/** Check that the document is saved in a location, we can use

View file

@ -16,23 +16,23 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
* Copyright: 2002-2009 by Henrik Just
* Copyright: 2002-2015 by Henrik Just
*
* All Rights Reserved.
*
* Version 1.2 (2009-03-30)
* Version 1.6 (2015-04-05)
*
*/
package org.openoffice.da.comp.writer2latex;
package org.openoffice.da.comp.w2lcommon.helper;
import java.io.*;
class StreamGobbler extends Thread {
public class StreamGobbler extends Thread {
InputStream is;
String type;
StreamGobbler(InputStream is, String type) {
public StreamGobbler(InputStream is, String type) {
this.is = is;
this.type = type;
}

View file

@ -20,7 +20,7 @@
*
* All Rights Reserved.
*
* Version 1.6 (2015-02-10)
* Version 1.6 (2015-04-05)
*
*/
@ -32,14 +32,10 @@ import java.net.URI;
import java.net.URISyntaxException;
import java.util.Vector;
import com.sun.star.awt.XControl;
import com.sun.star.awt.XControlContainer;
import com.sun.star.awt.XControlModel;
import com.sun.star.awt.XContainerWindowEventHandler;
import com.sun.star.awt.XDialog;
import com.sun.star.awt.XDialogProvider2;
import com.sun.star.awt.XWindow;
import com.sun.star.beans.XPropertySet;
import com.sun.star.lang.XMultiComponentFactory;
import com.sun.star.lang.XServiceInfo;
import com.sun.star.uno.AnyConverter;
@ -50,6 +46,7 @@ import com.sun.star.lib.uno.helper.WeakBase;
import org.openoffice.da.comp.w2lcommon.helper.DialogAccess;
import org.openoffice.da.comp.w2lcommon.helper.FilePicker;
import org.openoffice.da.comp.w2lcommon.helper.StreamGobbler;
/** This class provides a uno component which implements the configuration
* of applications for the Writer2LaTeX toolbar
@ -81,24 +78,27 @@ public final class ApplicationsDialog
// Implement XContainerWindowEventHandler
public boolean callHandlerMethod(XWindow xWindow, Object event, String sMethod)
throws com.sun.star.lang.WrappedTargetException {
XDialog xDialog = (XDialog)UnoRuntime.queryInterface(XDialog.class, xWindow);
DialogAccess dlg = new DialogAccess(xDialog);
try {
if (sMethod.equals("external_event") ){
return handleExternalEvent(xWindow, event);
return handleExternalEvent(dlg, event);
}
else if (sMethod.equals("ApplicationChange")) {
return changeApplication(xWindow);
return changeApplication(dlg);
}
else if (sMethod.equals("BrowseClick")) {
return browseForExecutable(xWindow);
return browseForExecutable(dlg);
}
else if (sMethod.equals("ExecutableUnfocus")) {
return updateApplication(xWindow);
return updateApplication(dlg);
}
else if (sMethod.equals("OptionsUnfocus")) {
return updateApplication(xWindow);
return updateApplication(dlg);
}
else if (sMethod.equals("AutomaticClick")) {
return autoConfigure(xWindow);
return autoConfigure(dlg);
}
}
catch (com.sun.star.uno.RuntimeException e) {
@ -131,7 +131,7 @@ public final class ApplicationsDialog
// Private stuff
private boolean handleExternalEvent(com.sun.star.awt.XWindow xWindow, Object aEventObject)
private boolean handleExternalEvent(DialogAccess dlg, Object aEventObject)
throws com.sun.star.uno.Exception {
try {
String sMethod = AnyConverter.toString(aEventObject);
@ -140,7 +140,7 @@ public final class ApplicationsDialog
return true;
} else if (sMethod.equals("back") || sMethod.equals("initialize")) {
externalApps.load();
return changeApplication(xWindow);
return changeApplication(dlg);
}
}
catch (com.sun.star.lang.IllegalArgumentException e) {
@ -150,35 +150,35 @@ public final class ApplicationsDialog
return false;
}
private boolean changeApplication(XWindow xWindow) {
String sAppName = getSelectedAppName(xWindow);
private boolean changeApplication(DialogAccess dlg) {
String sAppName = getSelectedAppName(dlg);
if (sAppName!=null) {
String[] s = externalApps.getApplication(sAppName);
setComboBoxText(xWindow, "Executable", s[0]);
setComboBoxText(xWindow, "Options", s[1]);
dlg.setComboBoxText("Executable", s[0]);
dlg.setComboBoxText("Options", s[1]);
}
return true;
}
private boolean browseForExecutable(XWindow xWindow) {
private boolean browseForExecutable(DialogAccess dlg) {
String sPath = filePicker.getPath();
if (sPath!=null) {
try {
setComboBoxText(xWindow, "Executable", new File(new URI(sPath)).getCanonicalPath());
dlg.setComboBoxText("Executable", new File(new URI(sPath)).getCanonicalPath());
}
catch (IOException e) {
}
catch (URISyntaxException e) {
}
updateApplication(xWindow);
updateApplication(dlg);
}
return true;
}
private boolean updateApplication(XWindow xWindow) {
String sAppName = getSelectedAppName(xWindow);
private boolean updateApplication(DialogAccess dlg) {
String sAppName = getSelectedAppName(dlg);
if (sAppName!=null) {
externalApps.setApplication(sAppName, getComboBoxText(xWindow, "Executable"), getComboBoxText(xWindow, "Options"));
externalApps.setApplication(sAppName, dlg.getComboBoxText("Executable"), dlg.getComboBoxText("Options"));
}
return true;
}
@ -281,7 +281,7 @@ public final class ApplicationsDialog
}
// Configure the applications automatically (OS dependent)
private boolean autoConfigure(XWindow xWindow) {
private boolean autoConfigure(DialogAccess dlg) {
String sOsName = System.getProperty("os.name");
String sOsVersion = System.getProperty("os.version");
String sOsArch = System.getProperty("os.arch");
@ -380,12 +380,12 @@ public final class ApplicationsDialog
// sudo apt-get install texlive-latex-extra
// sudo apt-get install tex4ht
displayAutoConfigInfo(info.toString());
changeApplication(xWindow);
changeApplication(dlg);
return true;
}
private String getSelectedAppName(XWindow xWindow) {
short nItem = getListBoxSelectedItem(xWindow, "Application");
private String getSelectedAppName(DialogAccess dlg) {
short nItem = dlg.getListBoxSelectedItem("Application");
//String sAppName = null;
switch (nItem) {
case 0: return ExternalApps.LATEX;
@ -417,7 +417,6 @@ public final class ApplicationsDialog
}
}
private void displayAutoConfigInfo(String sText) {
XDialog xDialog = getDialog("W2LDialogs2.AutoConfigInfo");
if (xDialog!=null) {
@ -428,57 +427,6 @@ public final class ApplicationsDialog
}
}
// Some helpers copied from DialogBase
private XPropertySet getControlProperties(XWindow xWindow, String sControlName) {
XControlContainer xContainer = (XControlContainer)
UnoRuntime.queryInterface(XControlContainer.class, xWindow);
XControl xControl = xContainer.getControl(sControlName);
XControlModel xModel = xControl.getModel();
XPropertySet xPropertySet = (XPropertySet)
UnoRuntime.queryInterface(XPropertySet.class, xModel);
return xPropertySet;
}
private String getComboBoxText(XWindow xWindow, String sControlName) {
// Returns the text of a combobox
XPropertySet xPropertySet = getControlProperties(xWindow, sControlName);
try {
return (String) xPropertySet.getPropertyValue("Text");
}
catch (Exception e) {
// Will fail if the control does not exist or is not a combo
return "";
}
}
private void setComboBoxText(XWindow xWindow, String sControlName, String sText) {
XPropertySet xPropertySet = getControlProperties(xWindow, sControlName);
try {
xPropertySet.setPropertyValue("Text", sText);
}
catch (Exception e) {
// Will fail if the control does not exist or is not a combo box or
// nText is an illegal value
}
}
private short getListBoxSelectedItem(XWindow xWindow, String sControlName) {
// Returns the first selected element in case of a multiselection
XPropertySet xPropertySet = getControlProperties(xWindow, sControlName);
try {
short[] selection = (short[]) xPropertySet.getPropertyValue("SelectedItems");
return selection[0];
}
catch (Exception e) {
// Will fail if the control does not exist or is not a list box
return -1;
}
}
}

View file

@ -35,6 +35,7 @@ import java.util.Map;
import java.util.Vector;
import org.openoffice.da.comp.w2lcommon.helper.RegistryHelper;
import org.openoffice.da.comp.w2lcommon.helper.StreamGobbler;
//import java.util.Map;
import com.sun.star.beans.XMultiHierarchicalPropertySet;

View file

@ -20,7 +20,7 @@
*
* All Rights Reserved.
*
* Version 1.6 (2015-02-18)
* Version 1.6 (2015-04-05)
*
*/
package org.openoffice.da.comp.writer2latex;
@ -140,7 +140,7 @@ public class LaTeXUNOPublisher extends UNOPublisher {
/** Postprocess the converted document with LaTeX and display the result
*/
@Override protected void postProcess(String sURL) {
@Override protected void postProcess(String sURL, TargetFormat format) {
if (texify==null) { texify = new TeXify(xContext); }
File file = new File(Misc.urlToFile(getTargetPath()),getTargetFileName());

View file

@ -0,0 +1,262 @@
/************************************************************************
*
* ToolbarSettingsDialog.java
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
* Copyright: 2002-2015 by Henrik Just
*
* All Rights Reserved.
*
* Version 1.6 (2015-04-05)
*
*/
package org.openoffice.da.comp.writer2xhtml;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import com.sun.star.awt.XContainerWindowEventHandler;
import com.sun.star.awt.XDialog;
import com.sun.star.awt.XWindow;
import com.sun.star.beans.XPropertySet;
import com.sun.star.lang.XServiceInfo;
import com.sun.star.uno.AnyConverter;
import com.sun.star.uno.Exception;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext;
import com.sun.star.util.XChangesBatch;
import com.sun.star.lib.uno.helper.WeakBase;
import org.openoffice.da.comp.w2lcommon.helper.DialogAccess;
import org.openoffice.da.comp.w2lcommon.helper.FilePicker;
import org.openoffice.da.comp.w2lcommon.helper.RegistryHelper;
import org.openoffice.da.comp.w2lcommon.helper.XPropertySetHelper;
/** This class provides a uno component which implements the configuration
* of the writer2xhtml toolbar
*/
public final class ToolbarSettingsDialog
extends WeakBase
implements XServiceInfo, XContainerWindowEventHandler {
public static final String REGISTRY_PATH = "/org.openoffice.da.Writer2xhtml.toolbar.ToolbarOptions/Settings";
private XComponentContext xContext;
private FilePicker filePicker;
/** The component will be registered under this name.
*/
public static String __serviceName = "org.openoffice.da.writer2xhtml.ToolbarSettingsDialog";
/** The component should also have an implementation name.
*/
public static String __implementationName = "org.openoffice.da.comp.writer2xhtml.ToolbarSettingsDialog";
/** Create a new ToolbarSettingsDialog */
public ToolbarSettingsDialog(XComponentContext xContext) {
this.xContext = xContext;
filePicker = new FilePicker(xContext);
}
// Implement XContainerWindowEventHandler
public boolean callHandlerMethod(XWindow xWindow, Object event, String sMethod)
throws com.sun.star.lang.WrappedTargetException {
XDialog xDialog = (XDialog)UnoRuntime.queryInterface(XDialog.class, xWindow);
DialogAccess dlg = new DialogAccess(xDialog);
try {
if (sMethod.equals("external_event") ){
return handleExternalEvent(dlg, event);
}
else if (sMethod.equals("XhtmlFormatChange")) {
return true;
}
else if (sMethod.equals("XhtmlViewChange")) {
return xhtmlViewChange(dlg);
}
else if (sMethod.equals("XhtmlBrowseClick")) {
return xhtmlBrowseClick(dlg);
}
else if (sMethod.equals("EpubFormatChange")) {
return true;
}
else if (sMethod.equals("EpubViewChange")) {
return epubViewChange(dlg);
}
else if (sMethod.equals("EpubBrowseClick")) {
return epubBrowseClick(dlg);
}
}
catch (com.sun.star.uno.RuntimeException e) {
throw e;
}
catch (com.sun.star.uno.Exception e) {
throw new com.sun.star.lang.WrappedTargetException(sMethod, this, e);
}
return false;
}
public String[] getSupportedMethodNames() {
String[] sNames = { "external_event", "XhtmlFormatChange", "XhtmlViewChange", "XhtmlBrowseClick",
"EpupFormatChange", "EpubViewChange", "EpubBrowseClick" };
return sNames;
}
// Implement the interface XServiceInfo
public boolean supportsService(String sServiceName) {
return sServiceName.equals(__serviceName);
}
public String getImplementationName() {
return __implementationName;
}
public String[] getSupportedServiceNames() {
String[] sSupportedServiceNames = { __serviceName };
return sSupportedServiceNames;
}
// Private stuff
private boolean handleExternalEvent(DialogAccess dlg, Object aEventObject)
throws com.sun.star.uno.Exception {
try {
String sMethod = AnyConverter.toString(aEventObject);
if (sMethod.equals("ok")) {
saveConfiguration(dlg);
return true;
} else if (sMethod.equals("back") || sMethod.equals("initialize")) {
loadConfiguration(dlg);
enableXhtmlExecutable(dlg);
enableEpubExecutable(dlg);
return true;
}
}
catch (com.sun.star.lang.IllegalArgumentException e) {
throw new com.sun.star.lang.IllegalArgumentException(
"Method external_event requires a string in the event object argument.", this,(short) -1);
}
return false;
}
private void loadConfiguration(DialogAccess dlg) {
RegistryHelper registry = new RegistryHelper(xContext);
try {
Object view = registry.getRegistryView(REGISTRY_PATH, false);
XPropertySet xProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,view);
dlg.setListBoxSelectedItem("XhtmlFormat",
XPropertySetHelper.getPropertyValueAsShort(xProps, "XhtmlFormat"));
dlg.setListBoxSelectedItem("XhtmlView",
XPropertySetHelper.getPropertyValueAsShort(xProps, "XhtmlView"));
dlg.setTextFieldText("XhtmlExecutable",
XPropertySetHelper.getPropertyValueAsString(xProps, "XhtmlExecutable"));
dlg.setListBoxSelectedItem("EpubFormat",
XPropertySetHelper.getPropertyValueAsShort(xProps, "EpubFormat"));
dlg.setListBoxSelectedItem("EpubView",
XPropertySetHelper.getPropertyValueAsShort(xProps, "EpubView"));
dlg.setTextFieldText("EpubExecutable",
XPropertySetHelper.getPropertyValueAsString(xProps, "EpubExecutable"));
} catch (Exception e) {
// Failed to get registry view
}
}
private void saveConfiguration(DialogAccess dlg) {
RegistryHelper registry = new RegistryHelper(xContext);
try {
Object view = registry.getRegistryView(REGISTRY_PATH, true);
XPropertySet xProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,view);
XPropertySetHelper.setPropertyValue(xProps, "XhtmlFormat", dlg.getListBoxSelectedItem("XhtmlFormat"));
XPropertySetHelper.setPropertyValue(xProps, "XhtmlView", dlg.getListBoxSelectedItem("XhtmlView"));
XPropertySetHelper.setPropertyValue(xProps, "XhtmlExecutable", dlg.getTextFieldText("XhtmlExecutable"));
XPropertySetHelper.setPropertyValue(xProps, "EpubFormat", dlg.getListBoxSelectedItem("EpubFormat"));
XPropertySetHelper.setPropertyValue(xProps, "EpubView", dlg.getListBoxSelectedItem("EpubView"));
XPropertySetHelper.setPropertyValue(xProps, "EpubExecutable", dlg.getTextFieldText("EpubExecutable"));
// Commit registry changes
XChangesBatch xUpdateContext = (XChangesBatch)
UnoRuntime.queryInterface(XChangesBatch.class,view);
try {
xUpdateContext.commitChanges();
}
catch (Exception e) {
// ignore
}
registry.disposeRegistryView(view);
}
catch (Exception e) {
// Failed to get registry view
}
}
private boolean xhtmlViewChange(DialogAccess dlg) {
enableXhtmlExecutable(dlg);
return true;
}
private void enableXhtmlExecutable(DialogAccess dlg) {
int nItem = dlg.getListBoxSelectedItem("XhtmlView");
dlg.setControlEnabled("XhtmlExecutable", nItem==2);
dlg.setControlEnabled("XhtmlBrowseButton", nItem==2);
}
private boolean xhtmlBrowseClick(DialogAccess dlg) {
browseForExecutable(dlg,"XhtmlExecutable");
return true;
}
private boolean epubViewChange(DialogAccess dlg) {
enableEpubExecutable(dlg);
return true;
}
private void enableEpubExecutable(DialogAccess dlg) {
int nItem = dlg.getListBoxSelectedItem("EpubView");
dlg.setControlEnabled("EpubExecutable", nItem==2);
dlg.setControlEnabled("EpubBrowseButton", nItem==2);
}
private boolean epubBrowseClick(DialogAccess dlg) {
browseForExecutable(dlg,"EpubExecutable");
return true;
}
private boolean browseForExecutable(DialogAccess dlg, String sControlName) {
String sPath = filePicker.getPath();
if (sPath!=null) {
try {
dlg.setComboBoxText(sControlName, new File(new URI(sPath)).getCanonicalPath());
}
catch (IOException e) {
}
catch (URISyntaxException e) {
}
}
return true;
}
}

View file

@ -16,11 +16,11 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
* Copyright: 2002-2014 by Henrik Just
* Copyright: 2002-2015 by Henrik Just
*
* All Rights Reserved.
*
* Version 1.6 (2014-10-06)
* Version 1.6 (2015-04-03)
*
*/
@ -114,6 +114,12 @@ public class W2XRegistration {
multiFactory,
regKey);
}
else if (implName.equals(ToolbarSettingsDialog.__implementationName)) {
xSingleServiceFactory = FactoryHelper.getServiceFactory(ToolbarSettingsDialog.class,
ToolbarSettingsDialog.__serviceName,
multiFactory,
regKey);
}
return xSingleServiceFactory;
}
@ -145,7 +151,9 @@ public class W2XRegistration {
FactoryHelper.writeRegistryServiceInfo(EpubMetadataDialog.__implementationName,
EpubMetadataDialog.__serviceName, regKey) &
FactoryHelper.writeRegistryServiceInfo(ConfigurationDialog.__implementationName,
ConfigurationDialog.__serviceName, regKey);
ConfigurationDialog.__serviceName, regKey) &
FactoryHelper.writeRegistryServiceInfo(ToolbarSettingsDialog.__implementationName,
ToolbarSettingsDialog.__serviceName, regKey);
}
}

View file

@ -20,7 +20,7 @@
*
* All Rights Reserved.
*
* Version 1.6 (2015-01-09)
* Version 1.6 (2015-04-05)
*
*/
@ -28,6 +28,7 @@ package org.openoffice.da.comp.writer2xhtml;
// TODO: Create common base for dispatcher classes
import com.sun.star.beans.XPropertySet;
import com.sun.star.frame.XFrame;
import com.sun.star.lang.XComponent;
import com.sun.star.lib.uno.helper.WeakBase;
@ -36,6 +37,8 @@ import com.sun.star.uno.Exception;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext;
import org.openoffice.da.comp.w2lcommon.filter.UNOPublisher.TargetFormat;
import org.openoffice.da.comp.w2lcommon.helper.RegistryHelper;
import org.openoffice.da.comp.w2lcommon.helper.XPropertySetHelper;
/** This class implements the ui (dispatch) commands provided by Writer2xhtml.
*/
@ -57,10 +60,6 @@ public final class Writer2xhtml extends WeakBase
public static final String __serviceName = "com.sun.star.frame.ProtocolHandler";
private static final String[] m_serviceNames = { __serviceName };
// TODO: These should be configurable
private TargetFormat xhtmlFormat = TargetFormat.html5;
private TargetFormat epubFormat = TargetFormat.epub3;
public Writer2xhtml(XComponentContext xContext) {
m_xContext = xContext;
}
@ -129,11 +128,11 @@ public final class Writer2xhtml extends WeakBase
com.sun.star.beans.PropertyValue[] aArguments ) {
if ( aURL.Protocol.compareTo(PROTOCOL) == 0 ) {
if ( aURL.Path.compareTo("PublishAsXHTML") == 0 ) {
publish(xhtmlFormat);
publishAsXhtml();
return;
}
else if ( aURL.Path.compareTo("PublishAsEPUB") == 0 ) {
publish(epubFormat);
publishAsEpub();
return;
}
else if ( aURL.Path.compareTo("EditEPUBDocumentProperties") == 0 ) {
@ -168,6 +167,39 @@ public final class Writer2xhtml extends WeakBase
}
}
private void publishAsXhtml() {
RegistryHelper registry = new RegistryHelper(m_xContext);
try {
Object view = registry.getRegistryView(ToolbarSettingsDialog.REGISTRY_PATH, false);
XPropertySet xProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,view);
short nXhtmlFormat = XPropertySetHelper.getPropertyValueAsShort(xProps, "XhtmlFormat");
switch (nXhtmlFormat) {
case 0: publish(TargetFormat.xhtml); break;
case 1: publish(TargetFormat.xhtml11); break;
case 2: publish(TargetFormat.xhtml_mathml); break;
case 3: publish(TargetFormat.html5);
}
} catch (Exception e) {
// Failed to get registry view
}
}
private void publishAsEpub() {
RegistryHelper registry = new RegistryHelper(m_xContext);
try {
Object view = registry.getRegistryView(ToolbarSettingsDialog.REGISTRY_PATH, false);
XPropertySet xProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,view);
short nEpubFormat = XPropertySetHelper.getPropertyValueAsShort(xProps, "EpubFormat");
switch (nEpubFormat) {
case 0: publish(TargetFormat.epub); break;
case 1: publish(TargetFormat.epub3);
}
} catch (Exception e) {
// Failed to get registry view
}
}
private void publish(TargetFormat format) {
if (unoPublisher==null) {
unoPublisher = new XhtmlUNOPublisher(m_xContext,m_xFrame,"Writer2xhtml");

View file

@ -16,11 +16,11 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
* Copyright: 2002-2014 by Henrik Just
* Copyright: 2002-2015 by Henrik Just
*
* All Rights Reserved.
*
* Version 1.6 (2014-11-03)
* Version 1.6 (2015-04-05)
*
*/
package org.openoffice.da.comp.writer2xhtml;
@ -28,13 +28,20 @@ package org.openoffice.da.comp.writer2xhtml;
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import java.util.Vector;
import org.openoffice.da.comp.w2lcommon.filter.UNOPublisher;
import org.openoffice.da.comp.w2lcommon.helper.MessageBox;
import org.openoffice.da.comp.w2lcommon.helper.RegistryHelper;
import org.openoffice.da.comp.w2lcommon.helper.StreamGobbler;
import org.openoffice.da.comp.w2lcommon.helper.XPropertySetHelper;
import writer2latex.util.Misc;
import com.sun.star.beans.XPropertySet;
import com.sun.star.frame.XFrame;
import com.sun.star.uno.Exception;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.XComponentContext;
public class XhtmlUNOPublisher extends UNOPublisher {
@ -44,27 +51,97 @@ public class XhtmlUNOPublisher extends UNOPublisher {
}
/** Display the converted document in the default application
/** Display the converted document depending on user settings
*
* @param sURL the URL of the converted document
* @param format the target format
*/
@Override protected void postProcess(String sURL) {
@Override protected void postProcess(String sURL, TargetFormat format) {
RegistryHelper registry = new RegistryHelper(xContext);
short nView = 1;
String sExecutable = null;
try {
Object view = registry.getRegistryView(ToolbarSettingsDialog.REGISTRY_PATH, false);
XPropertySet xProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class,view);
if (format==TargetFormat.xhtml || format==TargetFormat.xhtml11 || format==TargetFormat.xhtml_mathml || format==TargetFormat.html5) {
nView = XPropertySetHelper.getPropertyValueAsShort(xProps, "XhtmlView");
sExecutable = XPropertySetHelper.getPropertyValueAsString(xProps, "XhtmlExecutable");
}
else { // EPUB
nView = XPropertySetHelper.getPropertyValueAsShort(xProps, "EpubView");
sExecutable = XPropertySetHelper.getPropertyValueAsString(xProps, "EpubExecutable");
}
} catch (Exception e) {
// Failed to get registry view
}
File file = Misc.urlToFile(sURL);
if (file.exists()) {
// Open the file in the default application on this system (if any)
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop();
try {
desktop.open(file);
} catch (IOException e) {
System.err.println(e.getMessage());
}
}
}
else {
MessageBox msgBox = new MessageBox(xContext, xFrame);
msgBox.showMessage("Writer2xhtml","Error: Failed to open exported document");
if (nView==0) {
return;
}
else if (nView==1) {
if (openWithDefaultApplication(file)) {
return;
}
}
else if (nView==2) {
if (openWithCustomApplication(file, sExecutable)) {
return;
}
}
}
MessageBox msgBox = new MessageBox(xContext, xFrame);
msgBox.showMessage("Writer2xhtml","Error: Failed to open exported document");
}
// Open the file in the default application on this system (if any)
private boolean openWithDefaultApplication(File file) {
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop();
try {
desktop.open(file);
return true;
} catch (IOException e) {
System.err.println(e.getMessage());
}
}
return false;
}
// Open the file with the user defined application
private boolean openWithCustomApplication(File file, String sExecutable) {
try {
Vector<String> command = new Vector<String>();
command.add(sExecutable);
command.add(file.getPath());
ProcessBuilder pb = new ProcessBuilder(command);
Process proc = pb.start();
// Gobble the error stream of the application
StreamGobbler errorGobbler = new
StreamGobbler(proc.getErrorStream(), "ERROR");
// Gobble the output stream of the application
StreamGobbler outputGobbler = new
StreamGobbler(proc.getInputStream(), "OUTPUT");
errorGobbler.start();
outputGobbler.start();
// The application exists if the process exits with 0
return proc.waitFor()==0;
}
catch (InterruptedException e) {
return false;
}
catch (IOException e) {
return false;
}
}
}

View file

@ -12,7 +12,7 @@
<paragraph role="paragraph" xml-lang="en-US">Before you can use Writer2LaTeX you must configure it to use your LaTeX
distribution as well as viewers for the different output formats.</paragraph>
<section id="howtoget" xml-lang="en-US">
Select <emph>Tools - Options - %PRODUCTNAME Writer - Writer2LaTeX toolbar - Applications</emph>
Select <emph>Tools - Options - Writer2LaTeX toolbar - Applications</emph>
</section>
<paragraph role="heading" level="2" xml-lang="en-US">Prerequisites</paragraph>

View file

@ -12,56 +12,36 @@
<paragraph role="paragraph" xml-lang="en-US">On this page you can configure the use of BibTeX as bibliography
database in %PRODUCTNAME Writer.</paragraph>
<section id="howtoget" xml-lang="en-US">
Select <emph>Tools - Options - %PRODUCTNAME Writer - Writer2LaTeX toolbar - Bibliography</emph>
Select <emph>Tools - Options - Writer2LaTeX toolbar - Bibliography</emph>
</section>
<paragraph role="heading" level="2" xml-lang="en-US">Bibliography database</paragraph>
<paragraph role="heading" level="2" xml-lang="en-US">Using BibTeX as bibliography database</paragraph>
<paragraph role="paragraph" xml-lang="en-US">%PRODUCTNAME Writer comes with a standard bibliography database.
Citations can be created from the content of the database.
The Writer2LaTeX toolbar provides an alternative solution: On this page you can configure the use of BibTeX
as bibliography database.</paragraph>
<list type="unordered">
<listitem>
<paragraph role="paragraph" xml-lang="en-US">The standard bibliographic tool in Writer can
be used to insert citations from the bibliography database</paragraph>
</listitem>
<listitem>
<paragraph role="paragraph" xml-lang="en-US">The Writer2LaTeX toolbar can be used to insert
citations from BibTeX files</paragraph>
</listitem>
<listitem>
<paragraph role="paragraph" xml-lang="en-US"><link href="http://jabref.sourceforge.net/" name="Link to the JabRef Website">JabRef</link>
is an open source bibliography reference manager using BibTeX as native file format.
You can use JabRef to edit your BibTeX files.
In addition JabRef provides a <link href="http://jabref.sourceforge.net/OOPlugin-jabref.php" name="JabRef OOo plugin">plugin</link>
which permits you to insert citations from JabRef in your %PRODUCTNAME Writer document
using a selection of citation schemes. You should use version 0.8.999 beta or later of the plugin.</paragraph>
</listitem>
<listitem>
<paragraph role="paragraph" xml-lang="en-US"><link href="http://www.zotero.org" name="Link to the Zotero Website">Zotero</link>
is a free, easy-to-use tool to help you collect, organize, cite, and share your research sources.
Zotero provides a plugin for %PRODUCTNAME which permits you to insert citations from Zotero in your
%PRODUCTNAME Writer document using a selection of citation schemes.</paragraph>
</listitem>
</list>
<paragraph role="paragraph" xml-lang="en-US">In the first case, you should not make any settings to this page.
Writer2LaTeX can optionally convert to and format your citations with BibTeX if you choose so in the export
dialog.
Citations can be created from the content of the database.</paragraph>
<paragraph role="paragraph" xml-lang="en-US">On the other hand, LaTeX traditionally stores bibliographic
information in the BibTeX database format.
The Writer2LaTeX toolbar enables you to use BibTeX databases directly in %PRODUCTNAME Writer.
With this feature you can create citations from a BibTeX file rather than from the standard bibliography database.
</paragraph>
<paragraph role="paragraph" xml-lang="en-US">In the other cases it makes sense to use the original BibTeX files
in the LaTeX document.
<paragraph role="paragraph" xml-lang="en-US">The following sections describe four different
ways to handle bibliograhic citations.</paragraph>
<paragraph role="heading" level="2" xml-lang="en-US">Using the standard bibliography database</paragraph>
<paragraph role="paragraph" xml-lang="en-US">If you want to use the standard tools in %PRODUCTNAME Writer
to manage and create citations, you should not make any settings to this page.
Upon export, Writer2LaTeX can convert to and format your citations with BibTeX.
You can enable this in the export dialog.
</paragraph>
<bookmark xml-lang="en-US" branch="hid/org.openoffice.da.writer2latex.oxt:BibliographyUseExternalBibTeXFiles" id="bm_useexternalbibtexfiles"/>
<paragraph role="heading" level="3" xml-lang="en-US">Use BibTeX as bibliography database</paragraph>
<paragraph role="paragraph" xml-lang="en-US">Check this to use the original BibTeX files in the LaTeX document rather than converting the
inserted references back into BibTeX.</paragraph>
<paragraph role="paragraph" xml-lang="en-US"><ahelp hid="org.openoffice.da.writer2latex.oxt:BibliographyUseExternalBibTeXFiles" visibility="hidden">Check this if your citatations are inserted from BibTeX file(s)</ahelp></paragraph>
<paragraph role="heading" level="2" xml-lang="en-US">Use BibTeX as bibliography database</paragraph>
<paragraph role="paragraph" xml-lang="en-US"><ahelp hid="org.openoffice.da.writer2latex.oxt:BibliographyUseExternalBibTeXFiles" visibility="hidden">Check this to enable the insertion of citations from BibTeX file(s)</ahelp></paragraph>
<paragraph role="paragraph" xml-lang="en-US">Check this to enable the use of BibTeX as bibliograhy database.</paragraph>
<paragraph role="paragraph" xml-lang="en-US">You can then use the
<link href="org.openoffice.da.writer2latex.oxt/bibtex.xhp"
name="Writer2LaTeX toolbar">Writer2LaTeX toolbar</link> to insert citations from BibTeX files.
Upon export, Writer2LaTeX can format your citations with BibTeX using the original BibTeX files.
You can enable this in the export dialog.</paragraph>
<bookmark xml-lang="en-US" branch="hid/org.openoffice.da.writer2latex.oxt:BibliographyBibTeXLocation" id="bm_bibtexlocation"/>
<paragraph role="heading" level="3" xml-lang="en-US">BibTeX location</paragraph>
@ -73,7 +53,7 @@
</listitem>
<listitem>
<paragraph role="paragraph" xml-lang="en-US"><emph>In subfolder of document folder</emph>: Select this option if you
want to use project-specific BibTeX files. For example using a folder named "bibliopgraphy" relative to the document
want to use project-specific BibTeX files. For example using a folder named "bibliography" relative to the document
folder.</paragraph>
</listitem>
<listitem>
@ -94,13 +74,18 @@
<paragraph role="paragraph" xml-lang="en-US"><ahelp hid="org.openoffice.da.writer2latex.oxt:BibliographyBibTeXDirButton" visibility="hidden">Click to select the path to the folder containing the BibTeX files</ahelp></paragraph>
<bookmark xml-lang="en-US" branch="hid/org.openoffice.da.writer2latex.oxt:BibliographyConvertZoteroCitations" id="bm_convertzoterocitations"/>
<paragraph role="heading" level="3" xml-lang="en-US">Convert Zotero citations</paragraph>
<paragraph role="heading" level="2" xml-lang="en-US">Convert Zotero citations</paragraph>
<paragraph role="paragraph" xml-lang="en-US"><link href="http://www.zotero.org" name="Link to the Zotero Website">Zotero</link>
is a free, easy-to-use tool to help you collect, organize, cite, and share your research sources.
Zotero provides a plugin for %PRODUCTNAME which permits you to insert citations from Zotero in your
%PRODUCTNAME Writer document using a selection of citation schemes.</paragraph>
<paragraph role="paragraph" xml-lang="en-US">Check this if you want to convert Zotero citations to LaTeX.
This enables you to format the citations using a BibTeX style of your choice.
Also, the bibliography created by Zotero will be replaced with a BibTeX-generated bibliography.
If you do not check this option, the original
citation text inserted by Zotero will be used.</paragraph>
<paragraph role="heading" level="4" xml-lang="en-US">Exporting your Zotero database to BibTeX</paragraph>
<paragraph role="heading" level="3" xml-lang="en-US">Exporting your Zotero database to BibTeX</paragraph>
<paragraph role="paragraph" xml-lang="en-US">To use this feature you must export your Zotero database to the specified
folder.</paragraph>
<paragraph role="paragraph" xml-lang="en-US">The Writer2LaTeX distribution contains a folder named <emph>Zotero</emph>,
@ -114,7 +99,14 @@
<paragraph role="paragraph" xml-lang="en-US"><ahelp hid="org.openoffice.da.writer2latex.oxt:BibliographyConvertZoteroCitations" visibility="hidden">Check this to convert Zotero citations to LaTeX</ahelp></paragraph>
<bookmark xml-lang="en-US" branch="hid/org.openoffice.da.writer2latex.oxt:BibliographyConvertJabRefCitations" id="bm_convertjabrefcitations"/>
<paragraph role="heading" level="3" xml-lang="en-US">Convert JabRef citations</paragraph>
<paragraph role="heading" level="2" xml-lang="en-US">Convert JabRef citations</paragraph>
<paragraph role="paragraph" xml-lang="en-US"><link href="http://jabref.sourceforge.net/" name="Link to the JabRef Website">JabRef</link>
is an open source bibliography reference manager using BibTeX as native file format.
You can use JabRef to edit your BibTeX files.
In addition JabRef provides a <link href="http://jabref.sourceforge.net/OOPlugin-jabref.php" name="JabRef OOo plugin">plugin</link>
which permits you to insert citations from JabRef in your %PRODUCTNAME Writer document
using a selection of citation schemes. You should use version 0.8.999 beta or later of the plugin.</paragraph>
<paragraph role="paragraph" xml-lang="en-US">Check this if you want to convert JabRef citations to LaTeX.
This enables you to format the citations using a BibTeX style of your choice.
Also, the bibliography created by JabRef will be replaced with a BibTeX-generated bibliography.

View file

@ -41,10 +41,22 @@
manifest:full-path="Options.xcu"
manifest:media-type="application/vnd.sun.star.configuration-data"/>
<manifest:file-entry
manifest:full-path="ToolbarOptions.xcs"
manifest:media-type="application/vnd.sun.star.configuration-schema"/>
<manifest:file-entry
manifest:full-path="ToolbarOptions.xcu"
manifest:media-type="application/vnd.sun.star.configuration-data"/>
<manifest:file-entry
manifest:full-path="OptionPages.xcu"
manifest:media-type="application/vnd.sun.star.configuration-data"/>
<manifest:file-entry
manifest:full-path="ToolbarOptionPages.xcu"
manifest:media-type="application/vnd.sun.star.configuration-data"/>
<manifest:file-entry
manifest:full-path="W2XDialogs/"
manifest:media-type="application/vnd.sun.star.basic-library"/>

View file

@ -0,0 +1,57 @@
<?xml version='1.0' encoding='UTF-8'?>
<oor:component-data oor:name="OptionsDialog" oor:package="org.openoffice.Office"
xmlns:oor="http://openoffice.org/2001/registry"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<node oor:name="Modules">
<!-- This node should appear in the Writer module -->
<node oor:name="com.sun.star.text.TextDocument" oor:op="fuse">
<node oor:name="Nodes">
<node oor:name="org.openoffice.da.writer2xhtml.toolbar.configuration"
oor:op="fuse">
</node>
</node>
</node>
</node>
<node oor:name="Nodes">
<!-- We define a single root node -->
<node oor:name="org.openoffice.da.writer2xhtml.toolbar.configuration"
oor:op="fuse">
<prop oor:name="Id">
<value>org.openoffice.da.writer2xhtml.toolbar.configuration</value>
</prop>
<prop oor:name="Label">
<value xml:lang="en-US">Writer2xhtml toolbar</value>
</prop>
<prop oor:name="OptionsPage">
<value>%origin%/W2XDialogs2/ToolbarConfigurationRoot.xdl</value>
</prop>
<prop oor:name="EventHandlerService">
<value></value>
</prop>
<node oor:name="Leaves">
<!-- and the root node has several leaves -->
<node oor:name="org.openoffice.da.writer2xhtml.toolbar.settings"
oor:op="fuse">
<prop oor:name="Id">
<value>org.openoffice.da.writer2xhtml.toolbar.settings</value>
</prop>
<prop oor:name="Label">
<value xml:lang="en-US">Settings</value>
</prop>
<prop oor:name="OptionsPage">
<value>%origin%/W2XDialogs2/ToolbarSettings.xdl</value>
</prop>
<prop oor:name="EventHandlerService">
<value>org.openoffice.da.writer2xhtml.ToolbarSettingsDialog</value>
</prop>
</node>
</node>
</node>
</node>
</oor:component-data>

View file

@ -0,0 +1,18 @@
<?xml version='1.0' encoding='UTF-8'?>
<oor:component-schema oor:name="ToolbarOptions"
oor:package="org.openoffice.da.Writer2xhtml.toolbar"
xml:lang="en-US"
xmlns:oor="http://openoffice.org/2001/registry"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<component>
<group oor:name="Settings">
<prop oor:name="XhtmlFormat" oor:type="xs:short" />
<prop oor:name="XhtmlView" oor:type="xs:short" />
<prop oor:name="XhtmlExecutable" oor:type="xs:string" />
<prop oor:name="EpubFormat" oor:type="xs:short" />
<prop oor:name="EpubView" oor:type="xs:short" />
<prop oor:name="EpubExecutable" oor:type="xs:string" />
</group>
</component>
</oor:component-schema>

View file

@ -0,0 +1,27 @@
<?xml version='1.0' encoding='UTF-8'?>
<oor:component-data oor:name="ToolbarOptions"
oor:package="org.openoffice.da.Writer2xhtml.toolbar"
xml:lang="en-US"
xmlns:oor="http://openoffice.org/2001/registry"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<node oor:name="Settings">
<prop oor:name="XhtmlFormat" oor:type="xs:short">
<value>3</value><!-- HTML5 -->
</prop>
<prop oor:name="XhtmlView" oor:type="xs:short">
<value>1</value><!-- Default application -->
</prop>
<prop oor:name="XhtmlExecutable" oor:type="xs:string">
<value></value>
</prop>
<prop oor:name="EpubFormat" oor:type="xs:short">
<value>1</value><!-- EPUB3 -->
</prop>
<prop oor:name="EpubView" oor:type="xs:short">
<value>1</value><!-- Default application -->
</prop>
<prop oor:name="EpubExecutable" oor:type="xs:string">
<value></value>
</prop>
</node>
</oor:component-data>

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="Configuration1" dlg:left="139" dlg:top="84" dlg:width="260" dlg:height="185" dlg:closeable="true" dlg:moveable="true" dlg:title="ConfigurationRoot" dlg:withtitlebar="false">
<dlg:styles>
<dlg:style dlg:style-id="0" dlg:border="none"/>
<dlg:style dlg:style-id="1" dlg:font-height="14"/>
</dlg:styles>
<dlg:bulletinboard>
<dlg:fixedline dlg:id="FixedLine1" dlg:tab-index="0" dlg:left="6" dlg:top="32" dlg:width="248" dlg:height="2"/>
<dlg:img dlg:style-id="0" dlg:id="ImageControl1" dlg:tab-index="1" dlg:left="8" dlg:top="6" dlg:width="21" dlg:height="21" dlg:scale-image="false" dlg:src="../images/w2licon.png"/>
<dlg:text dlg:style-id="1" dlg:id="Label1" dlg:tab-index="2" dlg:left="34" dlg:top="10" dlg:width="193" dlg:height="16" dlg:value="Writer2xhtml Toolbar Configuration"/>
<dlg:text dlg:id="Label2" dlg:tab-index="3" dlg:left="34" dlg:top="43" dlg:width="194" dlg:height="78" dlg:value="This is where you configure the Writer2xhtml toolbar." dlg:multiline="true"/>
</dlg:bulletinboard>
</dlg:window>

View file

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="Configuration" dlg:left="139" dlg:top="84" dlg:width="260" dlg:height="185" dlg:closeable="true" dlg:moveable="true" dlg:title="Writer2xhtml Toolbar Configuration" dlg:withtitlebar="false" dlg:help-url="org.openoffice.da.writer2xhtml.oxt:SettingsDialog">
<dlg:bulletinboard>
<dlg:text dlg:id="XhtmlLabel" dlg:tab-index="0" dlg:left="6" dlg:top="4" dlg:width="210" dlg:height="12" dlg:value="XHTML Export"/>
<dlg:text dlg:id="XhtmlFormatLabel" dlg:tab-index="1" dlg:left="12" dlg:top="18" dlg:width="55" dlg:height="12" dlg:value="Format"/>
<dlg:menulist dlg:id="XhtmlFormat" dlg:tab-index="2" dlg:left="72" dlg:top="16" dlg:width="120" dlg:height="12" dlg:spin="true" dlg:linecount="4" dlg:help-url="org.openoffice.da.writer2xhtml.oxt:SettingsXhtmlFormat">
<dlg:menupopup>
<dlg:menuitem dlg:value="XHTML 1.0 strict"/>
<dlg:menuitem dlg:value="XHTML 1.1"/>
<dlg:menuitem dlg:value="XHTML 1.1 + MathML 2.0"/>
<dlg:menuitem dlg:value="HTML5" dlg:selected="true"/>
</dlg:menupopup>
<script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:XhtmlFormatChange" script:language="UNO"/>
</dlg:menulist>
<dlg:text dlg:id="XhtmlViewLabel" dlg:tab-index="3" dlg:left="12" dlg:top="32" dlg:width="55" dlg:height="12" dlg:value="After export"/>
<dlg:menulist dlg:id="XhtmlView" dlg:tab-index="4" dlg:left="72" dlg:top="30" dlg:width="120" dlg:height="12" dlg:spin="true" dlg:linecount="3" dlg:help-url="org.openoffice.da.writer2xhtml.oxt:SettingsXhtmlView">
<dlg:menupopup>
<dlg:menuitem dlg:value="Do nothing"/>
<dlg:menuitem dlg:value="open with default web browser" dlg:selected="true"/>
<dlg:menuitem dlg:value="open with custom application"/>
</dlg:menupopup>
<script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:XhtmlViewChange" script:language="UNO"/>
</dlg:menulist>
<dlg:text dlg:id="XhtmlExecutableLabel" dlg:tab-index="5" dlg:left="12" dlg:top="44" dlg:width="55" dlg:height="12" dlg:value="Application"/>
<dlg:textfield dlg:id="XhtmlExecutable" dlg:tab-index="6" dlg:left="72" dlg:top="44" dlg:width="120" dlg:height="12" dlg:help-url="org.openoffice.da.writer2xhtml.oxt:SettingsXhtmlExecutable"/>
<dlg:button dlg:id="XhtmlBrowseButton" dlg:tab-index="7" dlg:left="200" dlg:top="43" dlg:width="55" dlg:height="14" dlg:value="Browse..." dlg:help-url="org.openoffice.da.writer2xhtml.oxt:SettingsXhtmlBrowse">
<script:event script:event-name="on-mouseup" script:macro-name="vnd.sun.star.UNO:XhtmlBrowseClick" script:language="UNO"/>
</dlg:button>
<dlg:text dlg:id="EpubLabel" dlg:tab-index="8" dlg:left="6" dlg:top="58" dlg:width="210" dlg:height="12" dlg:value="EPUB Export"/>
<dlg:text dlg:id="EpubFormatLabel" dlg:tab-index="9" dlg:left="12" dlg:top="72" dlg:width="55" dlg:height="12" dlg:value="Format"/>
<dlg:menulist dlg:id="EpubFormat" dlg:tab-index="10" dlg:left="72" dlg:top="70" dlg:width="120" dlg:height="12" dlg:spin="true" dlg:linecount="2" dlg:help-url="org.openoffice.da.writer2xhtml.oxt:SettingsEpubFormat">
<dlg:menupopup>
<dlg:menuitem dlg:value="EPUB 2"/>
<dlg:menuitem dlg:value="EPUB 3" dlg:selected="true"/>
</dlg:menupopup>
<script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:EpubFormatChange" script:language="UNO"/>
</dlg:menulist>
<dlg:text dlg:id="EpubViewLabel" dlg:tab-index="11" dlg:left="12" dlg:top="86" dlg:width="55" dlg:height="12" dlg:value="After export"/>
<dlg:menulist dlg:id="EpubView" dlg:tab-index="12" dlg:left="72" dlg:top="84" dlg:width="120" dlg:height="12" dlg:spin="true" dlg:linecount="3" dlg:help-url="org.openoffice.da.writer2xhtml.oxt:SettingsEpubView">
<dlg:menupopup>
<dlg:menuitem dlg:value="Do nothing"/>
<dlg:menuitem dlg:value="open with default viewer" dlg:selected="true"/>
<dlg:menuitem dlg:value="open with custom application"/>
</dlg:menupopup>
<script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.UNO:EpubViewChange" script:language="UNO"/>
</dlg:menulist>
<dlg:text dlg:id="EpubExecutableLabel" dlg:tab-index="13" dlg:left="12" dlg:top="98" dlg:width="55" dlg:height="12" dlg:value="Application"/>
<dlg:textfield dlg:id="EpubExecutable" dlg:tab-index="14" dlg:left="72" dlg:top="98" dlg:width="120" dlg:height="12" dlg:help-url="org.openoffice.da.writer2xhtml.oxt:SettingsEpubExecutable"/>
<dlg:button dlg:id="EpubBrowseButton" dlg:tab-index="15" dlg:left="200" dlg:top="97" dlg:width="55" dlg:height="14" dlg:value="Browse..." dlg:help-url="org.openoffice.da.writer2xhtml.oxt:SettingsEpubBrowse">
<script:event script:event-name="on-mouseup" script:macro-name="vnd.sun.star.UNO:EpubBrowseClick" script:language="UNO"/>
</dlg:button>
</dlg:bulletinboard>
</dlg:window>

View file

@ -16,4 +16,6 @@
<library:element library:name="EpubMetadata"/>
<library:element library:name="AuthorDialog"/>
<library:element library:name="DateDialog"/>
<library:element library:name="ToolbarConfigurationRoot"/>
<library:element library:name="ToolbarSettings"/>
</library:library>

View file

@ -7,15 +7,18 @@
<topic id="writer2xhtml/org.openoffice.da.writer2xhtml.oxt/export_calc.xhp">XHTML Export (Calc)</topic>
<topic id="writer2xhtml/org.openoffice.da.writer2xhtml.oxt/epub_export.xhp">EPUB Export (Writer)</topic>
<topic id="writer2xhtml/org.openoffice.da.writer2xhtml.oxt/epub_metadata.xhp">EPUB document properties (Writer)</topic>
<node id="w2l0x_configuration" title="Custom style">
<topic id="writer2latex/org.openoffice.da.writer2xhtml.oxt/Configuration/Introduction.xhp">Introduction</topic>
<topic id="writer2latex/org.openoffice.da.writer2xhtml.oxt/Configuration/General.xhp">General</topic>
<topic id="writer2latex/org.openoffice.da.writer2xhtml.oxt/Configuration/Template.xhp">Template</topic>
<topic id="writer2latex/org.openoffice.da.writer2xhtml.oxt/Configuration/Stylesheets.xhp">Style sheets</topic>
<topic id="writer2latex/org.openoffice.da.writer2xhtml.oxt/Configuration/Masterstyles.xhp">Master styles</topic>
<topic id="writer2latex/org.openoffice.da.writer2xhtml.oxt/Configuration/Otherstyles.xhp">Other styles</topic>
<topic id="writer2latex/org.openoffice.da.writer2xhtml.oxt/Configuration/Formatting.xhp">Formatting</topic>
<topic id="writer2latex/org.openoffice.da.writer2xhtml.oxt/Configuration/Content.xhp">Content</topic>
<node id="w2x01_toolbar_configuration" title="Toolbar configuration">
<topic id="writer2xhtml/org.openoffice.da.writer2xhtml.oxt/settings.xhp">Settings</topic>
</node>
<node id="w2x01_configuration" title="Custom style">
<topic id="writer2xhtml/org.openoffice.da.writer2xhtml.oxt/Configuration/Introduction.xhp">Introduction</topic>
<topic id="writer2xhtml/org.openoffice.da.writer2xhtml.oxt/Configuration/General.xhp">General</topic>
<topic id="writer2xhtml/org.openoffice.da.writer2xhtml.oxt/Configuration/Template.xhp">Template</topic>
<topic id="writer2xhtml/org.openoffice.da.writer2xhtml.oxt/Configuration/Stylesheets.xhp">Style sheets</topic>
<topic id="writer2xhtml/org.openoffice.da.writer2xhtml.oxt/Configuration/Masterstyles.xhp">Master styles</topic>
<topic id="writer2xhtml/org.openoffice.da.writer2xhtml.oxt/Configuration/Otherstyles.xhp">Other styles</topic>
<topic id="writer2xhtml/org.openoffice.da.writer2xhtml.oxt/Configuration/Formatting.xhp">Formatting</topic>
<topic id="writer2xhtml/org.openoffice.da.writer2xhtml.oxt/Configuration/Content.xhp">Content</topic>
</node>
</help_section>
</tree_view>

View file

@ -36,6 +36,10 @@
<paragraph role="paragraph" xml-lang="en-US"><link href="org.openoffice.da.writer2xhtml.oxt/epub_export.xhp"
name="Export XHTML or EPUB files">EPUB [Writer2xhtml]</link></paragraph>
</listitem>
<listitem>
<paragraph role="paragraph" xml-lang="en-US"><link href="org.openoffice.da.writer2xhtml.oxt/epub_export.xhp"
name="Export XHTML or EPUB files">EPUB 3 [Writer2xhtml]</link></paragraph>
</listitem>
</list>
<paragraph role="paragraph" xml-lang="en-US">It further adds a number of entries to the <emph>File - Export</emph>
@ -58,7 +62,8 @@
<paragraph role="heading" level="2" xml-lang="en-US">Using the Writer2xhtml toolbar</paragraph>
<paragraph role="paragraph" xml-lang="en-US">Writer2xhtml adds a toolbar in Writer and Calc,
providing the following commands.</paragraph>
providing the following commands. You can <link href="org.openoffice.da.writer2xhtml.oxt/settings.xhp"
name="Writer2xhtml toolbar settings">configure</link> the behavior of the toolbar.</paragraph>
<paragraph role="heading" level="3" xml-lang="en-US"><link href="org.openoffice.da.writer2xhtml.oxt/export.xhp"
name="Export XHTML files">Publish to XHTML</link></paragraph>

View file

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>
<helpdocument version="1.0">
<meta>
<topic id="writer2xhtml-settings" indexer="include">
<title xml-lang="en-US">Toolbar Settings</title>
<filename>org.openoffice.da.writer2xhtml.oxt/settings.xhp</filename>
</topic>
</meta>
<body>
<bookmark xml-lang="en-US" branch="hid/org.openoffice.da.writer2xhtml.oxt:SettingsDialog" id="bm_settingsdialog"/>
<paragraph role="heading" level="1" xml-lang="en-US">Writer2xhtml Toolbar Settings</paragraph>
<section id="howtoget" xml-lang="en-US">
Select <emph>Tools - Options - Writer2xhtml toolbar - Settings</emph>
</section>
<paragraph role="heading" level="2" xml-lang="en-US">XHTML Export</paragraph>
<paragraph role="paragraph" xml-lang="en-US">Use these settings to configure the behavior of the XHTML export button in the toolbar.</paragraph>
<bookmark xml-lang="en-US" branch="hid/org.openoffice.da.writer2xhtml.oxt:SettingsXhtmlFormat" id="bm_settingsxhtmlformat"/>
<paragraph role="paragraph" xml-lang="en-US"><ahelp hid="org.openoffice.da.writer2latex.oxt:SettingsXhtmlFormat" visibility="hidden">Select the XHTML format to use when clicking the XHTML export button in the toolbar</ahelp></paragraph>
<paragraph role="heading" level="3" xml-lang="en-US">Format</paragraph>
<paragraph role="paragraph" xml-lang="en-US">Select an XHTML format in the list. This format will be used when you click the XHTML
export button in the toolbar. The default format is HTML5.</paragraph>
<bookmark xml-lang="en-US" branch="hid/org.openoffice.da.writer2xhtml.oxt:SettingsXhtmlView" id="bm_settingsxhtmlview"/>
<paragraph role="paragraph" xml-lang="en-US"><ahelp hid="org.openoffice.da.writer2latex.oxt:SettingsXhtmlView" visibility="hidden">Choose the desired behavior after export</ahelp></paragraph>
<paragraph role="heading" level="3" xml-lang="en-US">After export</paragraph>
<paragraph role="paragraph" xml-lang="en-US">After export, Writer2xhtml can display the result in a web browser.
Choose the desired behavior in the list.</paragraph>
<list type="unordered">
<listitem>
<paragraph role="paragraph" xml-lang="en-US"><emph>Do nothing</emph> if you do not want to view the result after export</paragraph>
</listitem>
<listitem>
<paragraph role="paragraph" xml-lang="en-US"><emph>Open with default web browser</emph> if you view the result using your
system's default web browser
</paragraph>
</listitem>
<listitem>
<paragraph role="paragraph" xml-lang="en-US"><emph>Open with custom application</emph> if you want to view the result using an application
of your choice.</paragraph>
</listitem>
</list>
<bookmark xml-lang="en-US" branch="hid/org.openoffice.da.writer2xhtml.oxt:SettingsXhtmlExecutable" id="bm_settingsxhtmlexecutable"/>
<paragraph role="paragraph" xml-lang="en-US"><ahelp hid="org.openoffice.da.writer2latex.oxt:SettingsXhtmlExecutable" visibility="hidden">Enter the full path to the application you wish to use</ahelp></paragraph>
<paragraph role="heading" level="3" xml-lang="en-US">Application</paragraph>
<paragraph role="paragraph" xml-lang="en-US">Enter the full path to the application you wish to use.</paragraph>
<bookmark xml-lang="en-US" branch="hid/org.openoffice.da.writer2xhtml.oxt:SettingsXhtmlBrowse" id="bm_settingsxhtmlbrowse"/>
<paragraph role="paragraph" xml-lang="en-US"><ahelp hid="org.openoffice.da.writer2latex.oxt:SettingsXhtmlBrowse" visibility="hidden">Browse for the application</ahelp></paragraph>
<paragraph role="heading" level="3" xml-lang="en-US">Browse...</paragraph>
<paragraph role="paragraph" xml-lang="en-US">Click this to open a file dialog, where you can browse for the application.</paragraph>
<paragraph role="heading" level="2" xml-lang="en-US">EPUB Export</paragraph>
<paragraph role="paragraph" xml-lang="en-US">Use these settings to configure the behavior of the EPUB export button in the toolbar.</paragraph>
<bookmark xml-lang="en-US" branch="hid/org.openoffice.da.writer2xhtml.oxt:SettingsEpubFormat" id="bm_settingsepubformat"/>
<paragraph role="paragraph" xml-lang="en-US"><ahelp hid="org.openoffice.da.writer2latex.oxt:SettingsEpubFormat" visibility="hidden">Select the EPUB format to use when clicking the EPUB export button in the toolbar</ahelp></paragraph>
<paragraph role="heading" level="3" xml-lang="en-US">Format</paragraph>
<paragraph role="paragraph" xml-lang="en-US">Select an EPUB format in the list. This format will be used when you click the EPUB
export button in the toolbar. The default format is EPUB 3.</paragraph>
<bookmark xml-lang="en-US" branch="hid/org.openoffice.da.writer2xhtml.oxt:SettingsEpubView" id="bm_settingsepubview"/>
<paragraph role="paragraph" xml-lang="en-US"><ahelp hid="org.openoffice.da.writer2latex.oxt:SettingsEpubView" visibility="hidden">Choose the desired behavior after export</ahelp></paragraph>
<paragraph role="heading" level="3" xml-lang="en-US">After export</paragraph>
<paragraph role="paragraph" xml-lang="en-US">After export, Writer2xhtml can display the result in an EPUB reader.
Choose the desired behavior in the list.</paragraph>
<list type="unordered">
<listitem>
<paragraph role="paragraph" xml-lang="en-US"><emph>Do nothing</emph> if you do not want to view the result after export</paragraph>
</listitem>
<listitem>
<paragraph role="paragraph" xml-lang="en-US"><emph>Open with default web browser</emph> if you view the result using your
system's default EPUB reader.
</paragraph>
</listitem>
<listitem>
<paragraph role="paragraph" xml-lang="en-US"><emph>Open with custom application</emph> if you want to view the result using an application
of your choice.</paragraph>
</listitem>
</list>
<bookmark xml-lang="en-US" branch="hid/org.openoffice.da.writer2xhtml.oxt:SettingsEpubExecutable" id="bm_settingsepubexecutable"/>
<paragraph role="paragraph" xml-lang="en-US"><ahelp hid="org.openoffice.da.writer2latex.oxt:SettingsEpubExecutable" visibility="hidden">Enter the full path to the application you wish to use</ahelp></paragraph>
<paragraph role="heading" level="3" xml-lang="en-US">Application</paragraph>
<paragraph role="paragraph" xml-lang="en-US">Enter the full path to the application you wish to use.</paragraph>
<bookmark xml-lang="en-US" branch="hid/org.openoffice.da.writer2xhtml.oxt:SettingsEpubBrowse" id="bm_settingsepubbrowse"/>
<paragraph role="paragraph" xml-lang="en-US"><ahelp hid="org.openoffice.da.writer2latex.oxt:SettingsEpubBrowse" visibility="hidden">Browse for the application</ahelp></paragraph>
<paragraph role="heading" level="3" xml-lang="en-US">Browse...</paragraph>
<paragraph role="paragraph" xml-lang="en-US">Click this to open a file dialog, where you can browse for the application.</paragraph>
</body>
</helpdocument>