Kaydet (Commit) 9bca3cc1 authored tarafından Miklos Vajna's avatar Miklos Vajna

EPUB export UI: show title from the doc model

It was a bit confusing that the doc model had a title set, it was
written to the EPUB file but the UI did not show it.

Change-Id: Ife408e0dabd3fe48e8acc1f09be0c86f78ed4b80
Reviewed-on: https://gerrit.libreoffice.org/48150Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMiklos Vajna <vmiklos@collabora.co.uk>
üst 9035ee7c
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp> #include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
#include <com/sun/star/ui/dialogs/FolderPicker.hpp> #include <com/sun/star/ui/dialogs/FolderPicker.hpp>
#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
#include <comphelper/sequenceashashmap.hxx> #include <comphelper/sequenceashashmap.hxx>
#include <sfx2/opengrf.hxx> #include <sfx2/opengrf.hxx>
...@@ -68,10 +69,11 @@ sal_Int32 PositionToVersion(sal_Int32 nPosition) ...@@ -68,10 +69,11 @@ sal_Int32 PositionToVersion(sal_Int32 nPosition)
namespace writerperfect namespace writerperfect
{ {
EPUBExportDialog::EPUBExportDialog(vcl::Window *pParent, comphelper::SequenceAsHashMap &rFilterData, uno::Reference<uno::XComponentContext> xContext) EPUBExportDialog::EPUBExportDialog(vcl::Window *pParent, comphelper::SequenceAsHashMap &rFilterData, uno::Reference<uno::XComponentContext> xContext, const css::uno::Reference<css::lang::XComponent> &xDocument)
: ModalDialog(pParent, "EpubDialog", "writerperfect/ui/exportepub.ui"), : ModalDialog(pParent, "EpubDialog", "writerperfect/ui/exportepub.ui"),
mxContext(std::move(xContext)), mxContext(std::move(xContext)),
mrFilterData(rFilterData) mrFilterData(rFilterData),
mxSourceDocument(xDocument)
{ {
get(m_pVersion, "versionlb"); get(m_pVersion, "versionlb");
assert(PositionToVersion(m_pVersion->GetSelectedEntryPos()) == EPUBExportFilter::GetDefaultVersion()); assert(PositionToVersion(m_pVersion->GetSelectedEntryPos()) == EPUBExportFilter::GetDefaultVersion());
...@@ -124,7 +126,15 @@ EPUBExportDialog::EPUBExportDialog(vcl::Window *pParent, comphelper::SequenceAsH ...@@ -124,7 +126,15 @@ EPUBExportDialog::EPUBExportDialog(vcl::Window *pParent, comphelper::SequenceAsH
m_pMediaButton->SetClickHdl(LINK(this, EPUBExportDialog, MediaClickHdl)); m_pMediaButton->SetClickHdl(LINK(this, EPUBExportDialog, MediaClickHdl));
get(m_pIdentifier, "identifier"); get(m_pIdentifier, "identifier");
get(m_pTitle, "title"); get(m_pTitle, "title");
uno::Reference<document::XDocumentPropertiesSupplier> xDPS(mxSourceDocument, uno::UNO_QUERY);
uno::Reference<document::XDocumentProperties> xDP;
if (xDPS.is())
xDP = xDPS->getDocumentProperties();
if (xDP.is())
m_pTitle->SetText(xDP->getTitle());
get(m_pInitialCreator, "author"); get(m_pInitialCreator, "author");
get(m_pLanguage, "language"); get(m_pLanguage, "language");
get(m_pDate, "date"); get(m_pDate, "date");
......
...@@ -27,7 +27,7 @@ namespace writerperfect ...@@ -27,7 +27,7 @@ namespace writerperfect
class EPUBExportDialog : public ModalDialog class EPUBExportDialog : public ModalDialog
{ {
public: public:
EPUBExportDialog(vcl::Window *pParent, comphelper::SequenceAsHashMap &rFilterData, css::uno::Reference<css::uno::XComponentContext> xContext); EPUBExportDialog(vcl::Window *pParent, comphelper::SequenceAsHashMap &rFilterData, css::uno::Reference<css::uno::XComponentContext> xContext, const css::uno::Reference<css::lang::XComponent> &xDocument);
~EPUBExportDialog() override; ~EPUBExportDialog() override;
void dispose() override; void dispose() override;
...@@ -41,6 +41,7 @@ private: ...@@ -41,6 +41,7 @@ private:
css::uno::Reference<css::uno::XComponentContext> mxContext; css::uno::Reference<css::uno::XComponentContext> mxContext;
comphelper::SequenceAsHashMap &mrFilterData; comphelper::SequenceAsHashMap &mrFilterData;
css::uno::Reference<css::lang::XComponent> mxSourceDocument;
VclPtr<ListBox> m_pVersion; VclPtr<ListBox> m_pVersion;
VclPtr<ListBox> m_pSplit; VclPtr<ListBox> m_pSplit;
VclPtr<ListBox> m_pLayout; VclPtr<ListBox> m_pLayout;
......
...@@ -76,12 +76,17 @@ sal_Int16 EPUBExportUIComponent::execute() ...@@ -76,12 +76,17 @@ sal_Int16 EPUBExportUIComponent::execute()
{ {
SolarMutexGuard aGuard; SolarMutexGuard aGuard;
ScopedVclPtrInstance<EPUBExportDialog> pDialog(Application::GetDefDialogParent(), maFilterData, mxContext); ScopedVclPtrInstance<EPUBExportDialog> pDialog(Application::GetDefDialogParent(), maFilterData, mxContext, mxSourceDocument);
if (pDialog->Execute() == RET_OK) if (pDialog->Execute() == RET_OK)
return ui::dialogs::ExecutableDialogResults::OK; return ui::dialogs::ExecutableDialogResults::OK;
return ui::dialogs::ExecutableDialogResults::CANCEL; return ui::dialogs::ExecutableDialogResults::CANCEL;
} }
void SAL_CALL EPUBExportUIComponent::setSourceDocument(const css::uno::Reference<css::lang::XComponent> &xDocument)
{
mxSourceDocument = xDocument;
}
extern "C" SAL_DLLPUBLIC_EXPORT uno::XInterface *com_sun_star_comp_Writer_EPUBExportUIComponent_get_implementation(uno::XComponentContext *pCtx, uno::Sequence<uno::Any> const &/*rSeq*/) extern "C" SAL_DLLPUBLIC_EXPORT uno::XInterface *com_sun_star_comp_Writer_EPUBExportUIComponent_get_implementation(uno::XComponentContext *pCtx, uno::Sequence<uno::Any> const &/*rSeq*/)
{ {
return cppu::acquire(new EPUBExportUIComponent(pCtx)); return cppu::acquire(new EPUBExportUIComponent(pCtx));
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include <com/sun/star/lang/XServiceInfo.hpp> #include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/ui/dialogs/XExecutableDialog.hpp> #include <com/sun/star/ui/dialogs/XExecutableDialog.hpp>
#include <com/sun/star/uno/XComponentContext.hpp> #include <com/sun/star/uno/XComponentContext.hpp>
#include <com/sun/star/document/XExporter.hpp>
#include <comphelper/sequenceashashmap.hxx> #include <comphelper/sequenceashashmap.hxx>
#include <cppuhelper/implbase.hxx> #include <cppuhelper/implbase.hxx>
...@@ -26,7 +27,8 @@ class EPUBExportUIComponent : public cppu::WeakImplHelper ...@@ -26,7 +27,8 @@ class EPUBExportUIComponent : public cppu::WeakImplHelper
< <
css::beans::XPropertyAccess, css::beans::XPropertyAccess,
css::lang::XServiceInfo, css::lang::XServiceInfo,
css::ui::dialogs::XExecutableDialog css::ui::dialogs::XExecutableDialog,
css::document::XExporter
> >
{ {
public: public:
...@@ -45,6 +47,9 @@ public: ...@@ -45,6 +47,9 @@ public:
void SAL_CALL setTitle(const OUString &rTitle) override; void SAL_CALL setTitle(const OUString &rTitle) override;
sal_Int16 SAL_CALL execute() override; sal_Int16 SAL_CALL execute() override;
// XExporter
void SAL_CALL setSourceDocument(const css::uno::Reference<css::lang::XComponent> &xDocument) override;
private: private:
/// The full set of property values. /// The full set of property values.
comphelper::SequenceAsHashMap maMediaDescriptor; comphelper::SequenceAsHashMap maMediaDescriptor;
...@@ -52,6 +57,7 @@ private: ...@@ -52,6 +57,7 @@ private:
comphelper::SequenceAsHashMap maFilterData; comphelper::SequenceAsHashMap maFilterData;
/// UNO context. /// UNO context.
css::uno::Reference<css::uno::XComponentContext> mxContext; css::uno::Reference<css::uno::XComponentContext> mxContext;
css::uno::Reference<css::lang::XComponent> mxSourceDocument;
}; };
} // namespace writerperfect } // namespace writerperfect
......
...@@ -370,7 +370,7 @@ const librevenge::RVNGPropertyList &XMLImport::GetMetaData() ...@@ -370,7 +370,7 @@ const librevenge::RVNGPropertyList &XMLImport::GetMetaData()
namespace namespace
{ {
/// Finds out if a file URL exists. /// Finds out if a file URL exists.
bool FileURLExists(const OUString& rURL) bool FileURLExists(const OUString &rURL)
{ {
SvFileStream aStream(rURL, StreamMode::READ); SvFileStream aStream(rURL, StreamMode::READ);
return aStream.IsOpen(); return aStream.IsOpen();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment