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 @@
#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
#include <com/sun/star/ui/dialogs/FolderPicker.hpp>
#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
#include <comphelper/sequenceashashmap.hxx>
#include <sfx2/opengrf.hxx>
......@@ -68,10 +69,11 @@ sal_Int32 PositionToVersion(sal_Int32 nPosition)
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"),
mxContext(std::move(xContext)),
mrFilterData(rFilterData)
mrFilterData(rFilterData),
mxSourceDocument(xDocument)
{
get(m_pVersion, "versionlb");
assert(PositionToVersion(m_pVersion->GetSelectedEntryPos()) == EPUBExportFilter::GetDefaultVersion());
......@@ -124,7 +126,15 @@ EPUBExportDialog::EPUBExportDialog(vcl::Window *pParent, comphelper::SequenceAsH
m_pMediaButton->SetClickHdl(LINK(this, EPUBExportDialog, MediaClickHdl));
get(m_pIdentifier, "identifier");
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_pLanguage, "language");
get(m_pDate, "date");
......
......@@ -27,7 +27,7 @@ namespace writerperfect
class EPUBExportDialog : public ModalDialog
{
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;
void dispose() override;
......@@ -41,6 +41,7 @@ private:
css::uno::Reference<css::uno::XComponentContext> mxContext;
comphelper::SequenceAsHashMap &mrFilterData;
css::uno::Reference<css::lang::XComponent> mxSourceDocument;
VclPtr<ListBox> m_pVersion;
VclPtr<ListBox> m_pSplit;
VclPtr<ListBox> m_pLayout;
......
......@@ -76,12 +76,17 @@ sal_Int16 EPUBExportUIComponent::execute()
{
SolarMutexGuard aGuard;
ScopedVclPtrInstance<EPUBExportDialog> pDialog(Application::GetDefDialogParent(), maFilterData, mxContext);
ScopedVclPtrInstance<EPUBExportDialog> pDialog(Application::GetDefDialogParent(), maFilterData, mxContext, mxSourceDocument);
if (pDialog->Execute() == RET_OK)
return ui::dialogs::ExecutableDialogResults::OK;
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*/)
{
return cppu::acquire(new EPUBExportUIComponent(pCtx));
......
......@@ -14,6 +14,7 @@
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/ui/dialogs/XExecutableDialog.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <com/sun/star/document/XExporter.hpp>
#include <comphelper/sequenceashashmap.hxx>
#include <cppuhelper/implbase.hxx>
......@@ -26,7 +27,8 @@ class EPUBExportUIComponent : public cppu::WeakImplHelper
<
css::beans::XPropertyAccess,
css::lang::XServiceInfo,
css::ui::dialogs::XExecutableDialog
css::ui::dialogs::XExecutableDialog,
css::document::XExporter
>
{
public:
......@@ -45,6 +47,9 @@ public:
void SAL_CALL setTitle(const OUString &rTitle) override;
sal_Int16 SAL_CALL execute() override;
// XExporter
void SAL_CALL setSourceDocument(const css::uno::Reference<css::lang::XComponent> &xDocument) override;
private:
/// The full set of property values.
comphelper::SequenceAsHashMap maMediaDescriptor;
......@@ -52,6 +57,7 @@ private:
comphelper::SequenceAsHashMap maFilterData;
/// UNO context.
css::uno::Reference<css::uno::XComponentContext> mxContext;
css::uno::Reference<css::lang::XComponent> mxSourceDocument;
};
} // namespace writerperfect
......
......@@ -370,7 +370,7 @@ const librevenge::RVNGPropertyList &XMLImport::GetMetaData()
namespace
{
/// Finds out if a file URL exists.
bool FileURLExists(const OUString& rURL)
bool FileURLExists(const OUString &rURL)
{
SvFileStream aStream(rURL, StreamMode::READ);
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