12#include <libepubgen/libepubgen.h>
14#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
15#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
16#include <com/sun/star/ui/dialogs/XFolderPicker2.hpp>
31sal_Int32 VersionToPosition(sal_Int32 nVersion)
33 sal_Int32 nPosition = 0;
52sal_Int32 PositionToVersion(sal_Int32 nPosition)
78 css::uno::Reference<css::lang::XComponent> xDocument)
79 : GenericDialogController(pParent,
"writerperfect/ui/exportepub.ui",
"EpubDialog")
81 , m_rFilterData(rFilterData)
82 , m_xSourceDocument(
std::move(xDocument))
83 , m_xVersion(m_xBuilder->weld_combo_box(
"versionlb"))
84 , m_xSplit(m_xBuilder->weld_combo_box(
"splitlb"))
85 , m_xLayout(m_xBuilder->weld_combo_box(
"layoutlb"))
86 , m_xCoverPath(m_xBuilder->weld_entry(
"coverpath"))
87 , m_xCoverButton(m_xBuilder->weld_button(
"coverbutton"))
88 , m_xMediaDir(m_xBuilder->weld_entry(
"mediadir"))
89 , m_xMediaButton(m_xBuilder->weld_button(
"mediabutton"))
91 , m_xIdentifier(m_xBuilder->weld_entry(
"identifier"))
92 , m_xTitle(m_xBuilder->weld_entry(
"title"))
93 , m_xInitialCreator(m_xBuilder->weld_entry(
"author"))
94 , m_xLanguage(m_xBuilder->weld_entry(
"language"))
95 , m_xDate(m_xBuilder->weld_entry(
"date"))
96 , m_xCustomizeFrame(m_xBuilder->weld_frame(
"customize"))
101 auto it = rFilterData.
find(
"EPUBVersion");
102 if (it != rFilterData.
end())
110 it = rFilterData.
find(
"EPUBSplitMethod");
111 if (it != rFilterData.
end())
113 sal_Int32 nSplitMethod = 0;
114 if (it->second >>= nSplitMethod)
123 it = rFilterData.
find(
"EPUBLayoutMethod");
124 if (it != rFilterData.
end())
126 sal_Int32 nLayoutMethod = 0;
127 if (it->second >>= nLayoutMethod)
143 xDP = xDPS->getDocumentProperties();
146 m_xTitle->set_text(xDP->getTitle());
153 util::DateTime aDate(xDP->getModificationDate());
166 m_rFilterData[
"EPUBVersion"] <<= PositionToVersion(m_xVersion->get_active());
173 m_rFilterData[
"EPUBSplitMethod"] <<=
static_cast<sal_Int32
>(m_xSplit->get_active());
180 m_rFilterData[
"EPUBLayoutMethod"] <<=
static_cast<sal_Int32
>(m_xLayout->get_active());
181 m_xSplit->set_sensitive(m_xLayout->get_active() != libepubgen::EPUB_LAYOUT_METHOD_FIXED);
189 m_xCoverPath->set_text(aDlg.
GetPath());
196 if (xFolderPicker->execute() != ui::dialogs::ExecutableDialogResults::OK)
199 m_xMediaDir->set_text(xFolderPicker->getDirectory());
205 if (!m_xCoverPath->get_text().isEmpty())
206 m_rFilterData[
"RVNGCoverImage"] <<= m_xCoverPath->get_text();
207 if (!m_xMediaDir->get_text().isEmpty())
208 m_rFilterData[
"RVNGMediaDir"] <<= m_xMediaDir->get_text();
211 if (!m_xIdentifier->get_text().isEmpty())
212 m_rFilterData[
"RVNGIdentifier"] <<= m_xIdentifier->get_text();
213 if (!m_xTitle->get_text().isEmpty())
214 m_rFilterData[
"RVNGTitle"] <<= m_xTitle->get_text();
215 if (!m_xInitialCreator->get_text().isEmpty())
216 m_rFilterData[
"RVNGInitialCreator"] <<= m_xInitialCreator->get_text();
217 if (!m_xLanguage->get_text().isEmpty())
218 m_rFilterData[
"RVNGLanguage"] <<= m_xLanguage->get_text();
219 if (!m_xDate->get_text().isEmpty())
220 m_rFilterData[
"RVNGDate"] <<= m_xDate->get_text();
Reference< XComponentContext > m_xContext
Reference< XExecutableDialog > m_xDialog
static OUString convertToBcp47(LanguageType nLangID)
iterator find(const OUString &rKey)
static void convertDateTime(OUStringBuffer &rBuffer, const css::util::DateTime &rDateTime, sal_Int16 const *pTimeZoneOffset, bool bAddTimeIf0AM=false)
EPUB export options dialog.
std::unique_ptr< weld::Entry > m_xTitle
std::unique_ptr< weld::Frame > m_xCustomizeFrame
std::unique_ptr< weld::Entry > m_xLanguage
std::unique_ptr< weld::ComboBox > m_xVersion
std::unique_ptr< weld::ComboBox > m_xSplit
std::unique_ptr< weld::Entry > m_xInitialCreator
std::unique_ptr< weld::ComboBox > m_xLayout
~EPUBExportDialog() override
std::unique_ptr< weld::Button > m_xCoverButton
std::unique_ptr< weld::Button > m_xMediaButton
css::uno::Reference< css::lang::XComponent > m_xSourceDocument
EPUBExportDialog(weld::Window *pParent, comphelper::SequenceAsHashMap &rFilterData, css::uno::Reference< css::uno::XComponentContext > xContext, css::uno::Reference< css::lang::XComponent > xDocument)
std::unique_ptr< weld::Button > m_xOKButton
std::unique_ptr< weld::Entry > m_xDate
static sal_Int32 GetDefaultSplitMethod()
Gives the default split method.
static sal_Int32 GetDefaultVersion()
Gives the default EPUB version.
static sal_Int32 GetDefaultLayoutMethod()
Gives the default layout method.
std::unique_ptr< weld::Button > m_xOKButton
#define LINK(Instance, Class, Member)
css::uno::Reference< css::ui::dialogs::XFolderPicker2 > createFolderPicker(const css::uno::Reference< css::uno::XComponentContext > &rContext, weld::Window *pPreferredParent)
IMPL_LINK_NOARG(WPFTEncodingDialog, CancelHdl, weld::Button &, void)
std::unique_ptr< char[]> aBuffer