33 #include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
34 #include <com/sun/star/ui/dialogs/XFilePicker3.hpp>
42 :
vcl::OWizardPage(pPage, pWizard,
"modules/swriter/ui/mmselectpage.ui",
"MMSelectPage")
44 , m_xCurrentDocRB(m_xBuilder->weld_radio_button(
"currentdoc"))
45 , m_xNewDocRB(m_xBuilder->weld_radio_button(
"newdoc"))
46 , m_xLoadDocRB(m_xBuilder->weld_radio_button(
"loaddoc"))
47 , m_xLoadTemplateRB(m_xBuilder->weld_radio_button(
"template"))
48 , m_xRecentDocRB(m_xBuilder->weld_radio_button(
"recentdoc"))
49 , m_xBrowseDocPB(m_xBuilder->weld_button(
"browsedoc"))
50 , m_xBrowseTemplatePB(m_xBuilder->weld_button(
"browsetemplate"))
51 , m_xRecentDocLB(m_xBuilder->weld_combo_box(
"recentdoclb"))
67 const uno::Sequence< OUString >& rDocs =
69 for(
const auto& rDoc : rDocs)
74 if (!rDocs.hasElements())
86 m_xRecentDocLB->set_sensitive(m_xRecentDocRB->get_active());
88 m_pWizard->UpdateRoadmap();
89 m_pWizard->enableButtons(WizardButtonFlags::NEXT, m_pWizard->isStateEnabled(
MM_OUTPUTTYPETPAGE));
94 bool bTemplate = m_xBrowseTemplatePB.get() == &rButton;
98 m_xLoadTemplateRB->set_active(
true);
99 SfxNewFileDialog aNewFileDlg(m_pWizard->getDialog(), SfxNewFileDialogMode::NONE);
100 sal_uInt16 nRet = aNewFileDlg.run();
107 m_xLoadDocRB->set_active(
true);
112 FileDialogFlags::NONE, m_pWizard->getDialog());
117 SfxObjectFactory &rFact = m_pWizard->GetSwView()->GetDocShell()->GetFactory();
120 std::shared_ptr<const SfxFilter> pFlt = aIter.First();
123 if( pFlt && pFlt->IsAllowedAsTemplate() )
125 const OUString sWild = pFlt->GetWildcard().getGlob();
126 xFP->appendFilter( pFlt->GetUIName(), sWild );
129 if(pFlt->GetFilterFlags() & SfxFilterFlags::DEFAULT)
130 xFP->setCurrentFilter( pFlt->GetUIName() ) ;
138 m_sLoadFileName = xFP->getSelectedFiles().getConstArray()[0];
141 m_pWizard->UpdateRoadmap();
142 m_pWizard->enableButtons(WizardButtonFlags::NEXT, m_pWizard->isStateEnabled(
MM_OUTPUTTYPETPAGE));
147 bool bReturn =
false;
148 bool bNext = _eReason == ::vcl::WizardTypes::eTravelForward;
151 OUString sReloadDocument;
157 bReturn = !sReloadDocument.isEmpty() &&
m_xLoadDocRB->get_active();
170 bReturn = !sReloadDocument.isEmpty();
178 if(!sReloadDocument.isEmpty())
#define LINK(Instance, Class, Member)
std::unique_ptr< weld::RadioButton > m_xNewDocRB
SwMailMergeConfigItem & GetConfigItem()
const OUString & GetFactoryName() const
#define MM_OUTPUTTYPETPAGE
IMPL_LINK(SwMailMergeDocSelectPage, FileSelectHdl, weld::Button &, rButton, void)
std::unique_ptr< weld::RadioButton > m_xRecentDocRB
virtual ~SwMailMergeDocSelectPage() override
SwMailMergeDocSelectPage(weld::Container *pPage, SwMailMergeWizard *pWizard)
#define RET_TEMPLATE_LOAD
std::unique_ptr< weld::RadioButton > m_xLoadDocRB
virtual bool commitPage(::vcl::WizardTypes::CommitPageReason _eReason) override
const css::uno::Sequence< OUString > & GetSavedDocuments() const
std::unique_ptr< weld::RadioButton > m_xCurrentDocRB
IMPL_LINK_NOARG(SwMailMergeDocSelectPage, DocSelectHdl, weld::ToggleButton &, void)
void SetDocumentLoad(bool bSet)
OUString GetTemplateFileName() const
void SetRestartPage(sal_uInt16 nPage)
void SetReloadDocument(const OUString &rURL)
void response(int nResponse)
std::unique_ptr< weld::Button > m_xBrowseTemplatePB
std::unique_ptr< weld::Button > m_xBrowseDocPB
SwMailMergeWizard * m_pWizard
std::unique_ptr< weld::RadioButton > m_xLoadTemplateRB
std::unique_ptr< weld::ComboBox > m_xRecentDocLB
const css::uno::Reference< css::ui::dialogs::XFilePicker3 > & GetFilePicker() const
OUString m_sLoadTemplateName