summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--writerperfect/qa/uitest/epubexport/epubexport.py26
-rw-r--r--writerperfect/source/writer/EPUBExportDialog.cxx24
-rw-r--r--writerperfect/source/writer/EPUBExportDialog.hxx5
-rw-r--r--writerperfect/uiconfig/ui/exportepub.ui399
4 files changed, 364 insertions, 90 deletions
diff --git a/writerperfect/qa/uitest/epubexport/epubexport.py b/writerperfect/qa/uitest/epubexport/epubexport.py
index 8db15c5bf891..196556b2fb8d 100644
--- a/writerperfect/qa/uitest/epubexport/epubexport.py
+++ b/writerperfect/qa/uitest/epubexport/epubexport.py
@@ -83,4 +83,30 @@ class EPUBExportTest(UITestCase):
coverImage = [i.Value for i in filterData if i.Name == "RVNGCoverImage"][0]
self.assertEqual("cover.png", coverImage)
+ def testMeta(self):
+ def handleDialog(dialog):
+ dialog.getChild("identifier").executeAction("TYPE", mkPropertyValues({"TEXT": "baddcafe-e394-4cd6-9b83-7172794612e5"}))
+ dialog.getChild("title").executeAction("TYPE", mkPropertyValues({"TEXT": "unknown title from ui"}))
+ dialog.getChild("author").executeAction("TYPE", mkPropertyValues({"TEXT": "unknown author from ui"}))
+ dialog.getChild("language").executeAction("TYPE", mkPropertyValues({"TEXT": "sk"}))
+ dialog.getChild("date").executeAction("TYPE", mkPropertyValues({"TEXT": "2013-11-20T17:16:07Z"}))
+ dialog.getChild("ok").executeAction("CLICK", tuple())
+
+ uiComponent = self.ui_test._xContext.ServiceManager.createInstanceWithContext("com.sun.star.comp.Writer.EPUBExportUIComponent", self.ui_test._xContext)
+
+ self.ui_test.execute_blocking_action(action=uiComponent.execute, dialog_handler=handleDialog)
+ propertyValues = uiComponent.getPropertyValues()
+ filterData = [i.Value for i in propertyValues if i.Name == "FilterData"][0]
+ # These keys were missing, EPUBExportDialog::OKClickHdl() did not set them.
+ identifier = [i.Value for i in filterData if i.Name == "RVNGIdentifier"][0]
+ self.assertEqual("baddcafe-e394-4cd6-9b83-7172794612e5", identifier)
+ title = [i.Value for i in filterData if i.Name == "RVNGTitle"][0]
+ self.assertEqual("unknown title from ui", title)
+ initialCreator = [i.Value for i in filterData if i.Name == "RVNGInitialCreator"][0]
+ self.assertEqual("unknown author from ui", initialCreator)
+ language = [i.Value for i in filterData if i.Name == "RVNGLanguage"][0]
+ self.assertEqual("sk", language)
+ date = [i.Value for i in filterData if i.Name == "RVNGDate"][0]
+ self.assertEqual("2013-11-20T17:16:07Z", date)
+
# vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/writerperfect/source/writer/EPUBExportDialog.cxx b/writerperfect/source/writer/EPUBExportDialog.cxx
index da42954a5d02..c0e316e1f32a 100644
--- a/writerperfect/source/writer/EPUBExportDialog.cxx
+++ b/writerperfect/source/writer/EPUBExportDialog.cxx
@@ -98,6 +98,12 @@ EPUBExportDialog::EPUBExportDialog(vcl::Window *pParent, comphelper::SequenceAsH
get(m_pCoverButton, "coverbutton");
m_pCoverButton->SetClickHdl(LINK(this, EPUBExportDialog, CoverClickHdl));
+ get(m_pIdentifier, "identifier");
+ get(m_pTitle, "title");
+ get(m_pInitialCreator, "author");
+ get(m_pLanguage, "language");
+ get(m_pDate, "date");
+
get(m_pOKButton, "ok");
m_pOKButton->SetClickHdl(LINK(this, EPUBExportDialog, OKClickHdl));
}
@@ -124,9 +130,22 @@ IMPL_LINK_NOARG(EPUBExportDialog, CoverClickHdl, Button *, void)
IMPL_LINK_NOARG(EPUBExportDialog, OKClickHdl, Button *, void)
{
+ // General
if (!m_pCoverPath->GetText().isEmpty())
mrFilterData["RVNGCoverImage"] <<= m_pCoverPath->GetText();
+ // Metadata
+ if (!m_pIdentifier->GetText().isEmpty())
+ mrFilterData["RVNGIdentifier"] <<= m_pIdentifier->GetText();
+ if (!m_pTitle->GetText().isEmpty())
+ mrFilterData["RVNGTitle"] <<= m_pTitle->GetText();
+ if (!m_pInitialCreator->GetText().isEmpty())
+ mrFilterData["RVNGInitialCreator"] <<= m_pInitialCreator->GetText();
+ if (!m_pLanguage->GetText().isEmpty())
+ mrFilterData["RVNGLanguage"] <<= m_pLanguage->GetText();
+ if (!m_pDate->GetText().isEmpty())
+ mrFilterData["RVNGDate"] <<= m_pDate->GetText();
+
EndDialog(RET_OK);
}
@@ -142,6 +161,11 @@ void EPUBExportDialog::dispose()
m_pCoverPath.clear();
m_pCoverButton.clear();
m_pOKButton.clear();
+ m_pIdentifier.clear();
+ m_pTitle.clear();
+ m_pInitialCreator.clear();
+ m_pLanguage.clear();
+ m_pDate.clear();
ModalDialog::dispose();
}
diff --git a/writerperfect/source/writer/EPUBExportDialog.hxx b/writerperfect/source/writer/EPUBExportDialog.hxx
index e211ca3340c7..4ff67ee6f5e5 100644
--- a/writerperfect/source/writer/EPUBExportDialog.hxx
+++ b/writerperfect/source/writer/EPUBExportDialog.hxx
@@ -39,6 +39,11 @@ private:
VclPtr<Edit> m_pCoverPath;
VclPtr<PushButton> m_pCoverButton;
VclPtr<PushButton> m_pOKButton;
+ VclPtr<Edit> m_pIdentifier;
+ VclPtr<Edit> m_pTitle;
+ VclPtr<Edit> m_pInitialCreator;
+ VclPtr<Edit> m_pLanguage;
+ VclPtr<Edit> m_pDate;
};
} // namespace writerperfect
diff --git a/writerperfect/uiconfig/ui/exportepub.ui b/writerperfect/uiconfig/ui/exportepub.ui
index e77f806adfcf..bc55aff5eeda 100644
--- a/writerperfect/uiconfig/ui/exportepub.ui
+++ b/writerperfect/uiconfig/ui/exportepub.ui
@@ -72,132 +72,237 @@
</packing>
</child>
<child>
- <object class="GtkAlignment" id="alignment1">
+ <object class="GtkBox" id="box5">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="top_padding">6</property>
- <property name="left_padding">12</property>
+ <property name="spacing">12</property>
<child>
- <object class="GtkBox" id="box1">
+ <object class="GtkBox" id="box6">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
- <property name="spacing">6</property>
<child>
- <object class="GtkLabel" id="versionft">
+ <object class="GtkLabel" id="generalft">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_top">6</property>
- <property name="label" translatable="yes" context="exportepub|versionft">Version:</property>
+ <property name="label" translatable="yes" context="exportepub|generalft">General</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">versionlb</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">3</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkComboBoxText" id="versionlb">
+ <object class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="active">0</property>
- <items>
- <item translatable="yes" context="exportepub|epub3">EPUB 3.0</item>
- <item translatable="yes" context="exportepub|epub2">EPUB 2.0</item>
- </items>
+ <property name="top_padding">6</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="box1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="versionft">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_top">6</property>
+ <property name="label" translatable="yes" context="exportepub|versionft">Version:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">versionlb</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="versionlb">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="active">0</property>
+ <items>
+ <item translatable="yes" context="exportepub|epub3">EPUB 3.0</item>
+ <item translatable="yes" context="exportepub|epub2">EPUB 2.0</item>
+ </items>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">4</property>
+ <property name="position">1</property>
</packing>
</child>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkAlignment" id="alignment2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="top_padding">6</property>
- <property name="left_padding">12</property>
- <child>
- <object class="GtkBox" id="box2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
<child>
- <object class="GtkLabel" id="splitft">
+ <object class="GtkAlignment" id="alignment2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="margin_top">6</property>
- <property name="label" translatable="yes" context="exportepub|splitft">Split method:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">versionlb</property>
- <property name="xalign">0</property>
+ <property name="top_padding">6</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="box2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="splitft">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_top">6</property>
+ <property name="label" translatable="yes" context="exportepub|splitft">Split method:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">versionlb</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="splitlb">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="active">0</property>
+ <items>
+ <item translatable="yes" context="exportepub|splitpage">Page break</item>
+ <item translatable="yes" context="exportepub|splitheading">Heading</item>
+ </items>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">3</property>
+ <property name="position">2</property>
</packing>
</child>
<child>
- <object class="GtkComboBoxText" id="splitlb">
+ <object class="GtkAlignment" id="alignment3">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="active">0</property>
- <items>
- <item translatable="yes" context="exportepub|splitpage">Page break</item>
- <item translatable="yes" context="exportepub|splitheading">Heading</item>
- </items>
+ <property name="top_padding">6</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="box3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="coverimageft">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_top">6</property>
+ <property name="label" translatable="yes" context="exportepub|coverimageft">Custom cover image:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">versionlb</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkEntry" id="coverpath">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="coverbutton">
+ <property name="label" translatable="yes" context="exportepub|coverbutton">Browse...</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">4</property>
+ <property name="position">3</property>
</packing>
</child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
</child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkAlignment" id="alignment3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="top_padding">6</property>
- <property name="left_padding">12</property>
<child>
- <object class="GtkBox" id="box3">
+ <object class="GtkBox" id="box7">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
- <property name="spacing">6</property>
<child>
- <object class="GtkLabel" id="coverimageft">
+ <object class="GtkLabel" id="metadataft">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_top">6</property>
- <property name="label" translatable="yes" context="exportepub|coverimageft">Custom cover image:</property>
+ <property name="label" translatable="yes" context="exportepub|generalft">Metadata</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">versionlb</property>
<property name="xalign">0</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
</object>
<packing>
<property name="expand">False</property>
@@ -206,33 +311,142 @@
</packing>
</child>
<child>
- <object class="GtkBox" id="box4">
+ <object class="GtkAlignment" id="alignment4">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">12</property>
+ <property name="left_padding">12</property>
<child>
- <object class="GtkEntry" id="coverpath">
+ <object class="GtkGrid" id="grid1">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="can_focus">False</property>
+ <property name="row_spacing">12</property>
+ <property name="column_spacing">12</property>
+ <child>
+ <object class="GtkEntry" id="identifier">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="identifierft">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_top">6</property>
+ <property name="label" translatable="yes" context="exportepub|identifierft">Identifier:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">versionlb</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="titleft">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_top">6</property>
+ <property name="label" translatable="yes" context="exportepub|titleft">Title:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">versionlb</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="title">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="authorft">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_top">6</property>
+ <property name="label" translatable="yes" context="exportepub|authorft">Author:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">versionlb</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="author">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="languageft">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_top">6</property>
+ <property name="label" translatable="yes" context="exportepub|languageft">Language:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">versionlb</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="language">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="dateft">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_top">6</property>
+ <property name="label" translatable="yes" context="exportepub|dateft">Date:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">versionlb</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="date">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">4</property>
+ </packing>
+ </child>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkButton" id="coverbutton">
- <property name="label" translatable="yes" context="exportepub|coverbutton">Browse...</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
<packing>
@@ -242,12 +456,17 @@
</packing>
</child>
</object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">3</property>
+ <property name="position">0</property>
</packing>
</child>
</object>