From ca7c24dafe7aba7c2d71994d2561f1ae3d59257e Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Thu, 27 Jun 2019 11:25:21 +0100 Subject: weld SwDBTablePreviewDialog and SwMailMergeDlg MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Icb7c96b6e9a4d6777fbd0cb4a8eb54547413d390 Reviewed-on: https://gerrit.libreoffice.org/74798 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- sw/source/ui/dbui/dbtablepreviewdialog.cxx | 34 +-- sw/source/ui/dbui/dbtablepreviewdialog.hxx | 12 +- sw/source/ui/dbui/selectdbtabledialog.cxx | 4 +- sw/source/ui/dialog/swdlgfact.cxx | 26 +- sw/source/ui/dialog/swdlgfact.hxx | 10 +- sw/source/ui/envelp/mailmrge.cxx | 386 ++++++++++++----------------- 6 files changed, 200 insertions(+), 272 deletions(-) (limited to 'sw/source/ui') diff --git a/sw/source/ui/dbui/dbtablepreviewdialog.cxx b/sw/source/ui/dbui/dbtablepreviewdialog.cxx index 27110367df53..23e7984623d8 100644 --- a/sw/source/ui/dbui/dbtablepreviewdialog.cxx +++ b/sw/source/ui/dbui/dbtablepreviewdialog.cxx @@ -32,38 +32,36 @@ using namespace ::com::sun::star::beans; using namespace ::com::sun::star::lang; using namespace ::com::sun::star::util; -SwDBTablePreviewDialog::SwDBTablePreviewDialog(vcl::Window* pParent, uno::Sequence< beans::PropertyValue> const & rValues ) : - SfxModalDialog(pParent, "TablePreviewDialog", "modules/swriter/ui/tablepreviewdialog.ui") +SwDBTablePreviewDialog::SwDBTablePreviewDialog(weld::Window* pParent, uno::Sequence< beans::PropertyValue> const & rValues) + : SfxDialogController(pParent, "modules/swriter/ui/tablepreviewdialog.ui", "TablePreviewDialog") + , m_xDescriptionFI(m_xBuilder->weld_label("description")) + , m_xBeamerWIN(m_xBuilder->weld_container("beamer")) { - get(m_pDescriptionFI, "description"); - get(m_pBeamerWIN, "beamer"); - Size aSize(LogicToPixel(Size(338, 150), MapMode(MapUnit::MapAppFont))); - m_pBeamerWIN->set_width_request(aSize.Width()); - m_pBeamerWIN->set_height_request(aSize.Height()); + Size aSize(m_xBeamerWIN->get_approximate_digit_width() * 80, + m_xBeamerWIN->get_text_height() * 18); + m_xBeamerWIN->set_size_request(aSize.Width(), aSize.Height()); auto pValue = std::find_if(rValues.begin(), rValues.end(), [](const beans::PropertyValue& rValue) { return rValue.Name == "Command"; }); if (pValue != rValues.end()) { - OUString sDescription = m_pDescriptionFI->GetText(); + OUString sDescription = m_xDescriptionFI->get_label(); OUString sTemp; pValue->Value >>= sTemp; - m_pDescriptionFI->SetText(sDescription.replaceFirst("%1", sTemp)); + m_xDescriptionFI->set_label(sDescription.replaceFirst("%1", sTemp)); } try { // create a frame wrapper for myself m_xFrame = frame::Frame::create( comphelper::getProcessComponentContext() ); - // m_xFrame takes ownership of m_pBeamerWIN - m_pUIBuilder->drop_ownership(m_pBeamerWIN); - m_xFrame->initialize( VCLUnoHelper::GetInterface( m_pBeamerWIN ) ); + m_xFrame->initialize(m_xBeamerWIN->CreateChildFrame()); } catch (uno::Exception const &) { m_xFrame.clear(); } - if(m_xFrame.is()) + if (m_xFrame.is()) { util::URL aURL; aURL.Complete = ".component:DB/DataSourceBrowser"; @@ -71,17 +69,12 @@ SwDBTablePreviewDialog::SwDBTablePreviewDialog(vcl::Window* pParent, uno::Sequen if(xD.is()) { xD->dispatch(aURL, rValues); - m_pBeamerWIN->Show(); + m_xBeamerWIN->show(); } } } SwDBTablePreviewDialog::~SwDBTablePreviewDialog() -{ - disposeOnce(); -} - -void SwDBTablePreviewDialog::dispose() { if(m_xFrame.is()) { @@ -89,9 +82,6 @@ void SwDBTablePreviewDialog::dispose() m_xFrame->dispose(); m_xFrame.clear(); } - m_pDescriptionFI.clear(); - m_pBeamerWIN.clear(); - SfxModalDialog::dispose(); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/ui/dbui/dbtablepreviewdialog.hxx b/sw/source/ui/dbui/dbtablepreviewdialog.hxx index 1eb3dfd14dc3..ec2c58d92bf3 100644 --- a/sw/source/ui/dbui/dbtablepreviewdialog.hxx +++ b/sw/source/ui/dbui/dbtablepreviewdialog.hxx @@ -20,7 +20,6 @@ #define INCLUDED_SW_SOURCE_UI_DBUI_DBTABLEPREVIEWDIALOG_HXX #include -#include #include namespace com{ namespace sun{ namespace star{ @@ -28,19 +27,18 @@ namespace com{ namespace sun{ namespace star{ namespace frame{ class XFrame2; } }}} -class SwDBTablePreviewDialog : public SfxModalDialog +class SwDBTablePreviewDialog : public SfxDialogController { - VclPtr m_pDescriptionFI; - VclPtr m_pBeamerWIN; + std::unique_ptr m_xDescriptionFI; + std::unique_ptr m_xBeamerWIN; css::uno::Reference< css::frame::XFrame2 > m_xFrame; public: - SwDBTablePreviewDialog(vcl::Window* pParent, + SwDBTablePreviewDialog(weld::Window* pParent, css::uno::Sequence< css::beans::PropertyValue> const & rValues ); virtual ~SwDBTablePreviewDialog() override; - virtual void dispose() override; - }; + #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/ui/dbui/selectdbtabledialog.cxx b/sw/source/ui/dbui/selectdbtabledialog.cxx index aa5a4263e861..820f74c155cf 100644 --- a/sw/source/ui/dbui/selectdbtabledialog.cxx +++ b/sw/source/ui/dbui/selectdbtabledialog.cxx @@ -122,8 +122,8 @@ IMPL_LINK_NOARG(SwSelectDBTableDialog, PreviewHdl, weld::Button&, void) pProperties[4].Name = "ShowTreeViewButton"; pProperties[4].Value <<= false; - VclPtrInstance< SwDBTablePreviewDialog > pDlg(nullptr, aProperties); //TODO - pDlg->Execute(); + SwDBTablePreviewDialog aDlg(m_xDialog.get(), aProperties); + aDlg.run(); } OUString SwSelectDBTableDialog::GetSelectedTable(bool& bIsTable) diff --git a/sw/source/ui/dialog/swdlgfact.cxx b/sw/source/ui/dialog/swdlgfact.cxx index db641e3dbfe8..05dccd0da12a 100644 --- a/sw/source/ui/dialog/swdlgfact.cxx +++ b/sw/source/ui/dialog/swdlgfact.cxx @@ -243,7 +243,10 @@ short AbstractJavaEditDialog_Impl::Execute() return m_xDlg->run(); } -IMPL_ABSTDLG_BASE(AbstractMailMergeDlg_Impl); +short AbstractMailMergeDlg_Impl::Execute() +{ + return m_xDlg->run(); +} short AbstractMailMergeCreateFromDlg_Impl::Execute() { @@ -628,42 +631,42 @@ bool AbstractJavaEditDialog_Impl::IsUpdate() const DBManagerOptions AbstractMailMergeDlg_Impl::GetMergeType() { - return pDlg->GetMergeType(); + return m_xDlg->GetMergeType(); } const OUString& AbstractMailMergeDlg_Impl::GetSaveFilter() const { - return pDlg->GetSaveFilter(); + return m_xDlg->GetSaveFilter(); } css::uno::Sequence< css::uno::Any > AbstractMailMergeDlg_Impl::GetSelection() const { - return pDlg->GetSelection(); + return m_xDlg->GetSelection(); } uno::Reference< sdbc::XResultSet> AbstractMailMergeDlg_Impl::GetResultSet() const { - return pDlg->GetResultSet(); + return m_xDlg->GetResultSet(); } bool AbstractMailMergeDlg_Impl::IsSaveSingleDoc() const { - return pDlg->IsSaveSingleDoc(); + return m_xDlg->IsSaveSingleDoc(); } bool AbstractMailMergeDlg_Impl::IsGenerateFromDataBase() const { - return pDlg->IsGenerateFromDataBase(); + return m_xDlg->IsGenerateFromDataBase(); } OUString AbstractMailMergeDlg_Impl::GetColumnName() const { - return pDlg->GetColumnName(); + return m_xDlg->GetColumnName(); } OUString AbstractMailMergeDlg_Impl::GetTargetURL() const { - return pDlg->GetTargetURL(); + return m_xDlg->GetTargetURL(); } bool AbstractMailMergeCreateFromDlg_Impl::IsThisDocument() const @@ -1050,14 +1053,13 @@ VclPtr SwAbstractDialogFactory_Impl::CreateJavaEditDialo } VclPtr SwAbstractDialogFactory_Impl::CreateMailMergeDlg( - vcl::Window* pParent, SwWrtShell& rSh, + weld::Window* pParent, SwWrtShell& rSh, const OUString& rSourceName, const OUString& rTableName, sal_Int32 nCommandType, const uno::Reference< sdbc::XConnection>& xConnection ) { - VclPtr pDlg = VclPtr::Create( pParent, rSh, rSourceName, rTableName, nCommandType, xConnection, nullptr ); - return VclPtr::Create( pDlg ); + return VclPtr::Create(std::make_unique(pParent, rSh, rSourceName, rTableName, nCommandType, xConnection, nullptr)); } VclPtr SwAbstractDialogFactory_Impl::CreateMailMergeCreateFromDlg(weld::Window* pParent) diff --git a/sw/source/ui/dialog/swdlgfact.hxx b/sw/source/ui/dialog/swdlgfact.hxx index e9f619132948..fb631418ac81 100644 --- a/sw/source/ui/dialog/swdlgfact.hxx +++ b/sw/source/ui/dialog/swdlgfact.hxx @@ -524,7 +524,13 @@ public: class SwMailMergeDlg; class AbstractMailMergeDlg_Impl : public AbstractMailMergeDlg { - DECL_ABSTDLG_BASE(AbstractMailMergeDlg_Impl,SwMailMergeDlg) + std::unique_ptr m_xDlg; +public: + explicit AbstractMailMergeDlg_Impl(std::unique_ptr p) + : m_xDlg(std::move(p)) + { + } + virtual short Execute() override; virtual DBManagerOptions GetMergeType() override ; virtual const OUString& GetSaveFilter() const override; virtual css::uno::Sequence< css::uno::Any > GetSelection() const override ; @@ -747,7 +753,7 @@ public: virtual VclPtr CreateJavaEditDialog(weld::Window* pParent, SwWrtShell* pWrtSh) override; virtual VclPtr CreateMailMergeDlg( - vcl::Window* pParent, SwWrtShell& rSh, + weld::Window* pParent, SwWrtShell& rSh, const OUString& rSourceName, const OUString& rTableName, sal_Int32 nCommandType, diff --git a/sw/source/ui/envelp/mailmrge.cxx b/sw/source/ui/envelp/mailmrge.cxx index 1ab1348eb65d..16478dd81ccf 100644 --- a/sw/source/ui/envelp/mailmrge.cxx +++ b/sw/source/ui/envelp/mailmrge.cxx @@ -104,11 +104,11 @@ void SwXSelChgLstnr_Impl::selectionChanged( const EventObject& ) rParent.pImpl->xSelSupp->getSelection() >>= aSelection; bool bEnable = aSelection.hasElements(); - rParent.m_pMarkedRB->Enable(bEnable); + rParent.m_xMarkedRB->set_sensitive(bEnable); if(bEnable) - rParent.m_pMarkedRB->Check(); - else if(rParent.m_pMarkedRB->IsChecked()) { - rParent.m_pAllRB->Check(); + rParent.m_xMarkedRB->set_active(true); + else if(rParent.m_xMarkedRB->get_active()) { + rParent.m_xAllRB->set_active(true); rParent.m_aSelection.realloc(0); } } @@ -118,89 +118,71 @@ void SwXSelChgLstnr_Impl::disposing( const EventObject& ) OSL_FAIL("disposing"); } -SwMailMergeDlg::SwMailMergeDlg(vcl::Window* pParent, SwWrtShell& rShell, +SwMailMergeDlg::SwMailMergeDlg(weld::Window* pParent, SwWrtShell& rShell, const OUString& rSourceName, const OUString& rTableName, sal_Int32 nCommandType, const uno::Reference< XConnection>& _xConnection, - Sequence< Any > const * pSelection) : - - SfxModalDialog(pParent, "MailmergeDialog", "modules/swriter/ui/mailmerge.ui"), - - pImpl (new SwMailMergeDlg_Impl), - - rSh (rShell), - nMergeType (DBMGR_MERGE_EMAIL) + Sequence< Any > const * pSelection) + : SfxDialogController(pParent, "modules/swriter/ui/mailmerge.ui", "MailmergeDialog") + , pImpl(new SwMailMergeDlg_Impl) + , rSh(rShell) + , nMergeType(DBMGR_MERGE_EMAIL) + , m_xBeamerWin(m_xBuilder->weld_container("beamer")) + , m_xAllRB(m_xBuilder->weld_radio_button("all")) + , m_xMarkedRB(m_xBuilder->weld_radio_button("selected")) + , m_xFromRB(m_xBuilder->weld_radio_button("rbfrom")) + , m_xFromNF(m_xBuilder->weld_spin_button("from")) + , m_xToNF(m_xBuilder->weld_spin_button("to")) + , m_xPrinterRB(m_xBuilder->weld_radio_button("printer")) + , m_xMailingRB(m_xBuilder->weld_radio_button("electronic")) + , m_xFileRB(m_xBuilder->weld_radio_button("file")) + , m_xSingleJobsCB(m_xBuilder->weld_check_button("singlejobs")) + , m_xSaveMergedDocumentFT(m_xBuilder->weld_label("savemergeddoclabel")) + , m_xSaveSingleDocRB(m_xBuilder->weld_radio_button("singledocument")) + , m_xSaveIndividualRB(m_xBuilder->weld_radio_button("individualdocuments")) + , m_xGenerateFromDataBaseCB(m_xBuilder->weld_check_button("generate")) + , m_xColumnFT(m_xBuilder->weld_label("fieldlabel")) + , m_xColumnLB(m_xBuilder->weld_combo_box("field")) + , m_xPathFT(m_xBuilder->weld_label("pathlabel")) + , m_xPathED(m_xBuilder->weld_entry("path")) + , m_xPathPB(m_xBuilder->weld_button("pathpb")) + , m_xFilterFT(m_xBuilder->weld_label("fileformatlabel")) + , m_xFilterLB(m_xBuilder->weld_combo_box("fileformat")) + , m_xAddressFieldLB(m_xBuilder->weld_combo_box("address")) + , m_xSubjectFT(m_xBuilder->weld_label("subjectlabel")) + , m_xSubjectED(m_xBuilder->weld_entry("subject")) + , m_xFormatFT(m_xBuilder->weld_label("mailformatlabel")) + , m_xAttachFT(m_xBuilder->weld_label("attachmentslabel")) + , m_xAttachED(m_xBuilder->weld_entry("attachments")) + , m_xAttachPB(m_xBuilder->weld_button("attach")) + , m_xFormatHtmlCB(m_xBuilder->weld_check_button("html")) + , m_xFormatRtfCB(m_xBuilder->weld_check_button("rtf")) + , m_xFormatSwCB(m_xBuilder->weld_check_button("swriter")) + , m_xOkBTN(m_xBuilder->weld_button("ok")) { - Size aDialogSize( GetSizePixel() ); - get(m_pBeamerWin, "beamer"); - - get(m_pAllRB, "all"); - get(m_pMarkedRB, "selected"); - get(m_pFromRB, "rbfrom"); - get(m_pFromNF, "from"); - get(m_pToNF, "to"); - - get(m_pPrinterRB, "printer"); - get(m_pMailingRB, "electronic"); - get(m_pFileRB, "file"); - - get(m_pSingleJobsCB, "singlejobs"); - - get(m_pSaveMergedDocumentFT, "savemergeddoclabel"); - get(m_pSaveSingleDocRB, "singledocument"); - get(m_pSaveIndividualRB, "individualdocuments"); - get(m_pGenerateFromDataBaseCB, "generate"); - - get(m_pColumnFT, "fieldlabel"); - get(m_pColumnLB, "field"); - - get(m_pPathFT, "pathlabel"); - get(m_pPathED, "path"); - get(m_pPathPB, "pathpb"); - get(m_pFilterFT, "fileformatlabel"); - get(m_pFilterLB, "fileformat"); - - get(m_pAddressFieldLB, "address"); - get(m_pSubjectFT, "subjectlabel"); - get(m_pSubjectED, "subject"); - get(m_pFormatFT, "mailformatlabel"); - get(m_pAttachFT, "attachmentslabel"); - get(m_pAttachED, "attachments"); - get(m_pAttachPB, "attach"); - get(m_pFormatHtmlCB, "html"); - get(m_pFormatRtfCB, "rtf"); - get(m_pFormatSwCB, "swriter"); - - get(m_pOkBTN, "ok"); - - m_pSingleJobsCB->Show(false); // not supported in since cws printerpullpages anymore + m_xSingleJobsCB->hide(); // not supported in since cws printerpullpages anymore //task #97066# mailing of form letters is currently not supported - m_pMailingRB->Show(false); - m_pSubjectFT->Show(false); - m_pSubjectED->Show(false); - m_pFormatFT->Show(false); - m_pFormatSwCB->Show(false); - m_pFormatHtmlCB->Show(false); - m_pFormatRtfCB->Show(false); - m_pAttachFT->Show(false); - m_pAttachED->Show(false); - m_pAttachPB->Show(false); - - Point aMailPos = m_pMailingRB->GetPosPixel(); - Point aFilePos = m_pFileRB->GetPosPixel(); - aFilePos.AdjustX( -((aFilePos.X() - aMailPos.X()) /2) ); - m_pFileRB->SetPosPixel(aFilePos); + m_xMailingRB->hide(); + m_xSubjectFT->hide(); + m_xSubjectED->hide(); + m_xFormatFT->hide(); + m_xFormatSwCB->hide(); + m_xFormatHtmlCB->hide(); + m_xFormatRtfCB->hide(); + m_xAttachFT->hide(); + m_xAttachED->hide(); + m_xAttachPB->hide(); + uno::Reference< lang::XMultiServiceFactory > xMSF = comphelper::getProcessServiceFactory(); if(pSelection) { m_aSelection = *pSelection; - m_pBeamerWin->Show(false); + m_xBeamerWin->hide(); } else { try { // create a frame wrapper for myself m_xFrame = frame::Frame::create( comphelper::getProcessComponentContext() ); - m_pUIBuilder->drop_ownership(m_pBeamerWin); - m_xFrame->initialize( VCLUnoHelper::GetInterface ( m_pBeamerWin ) ); + m_xFrame->initialize(m_xBeamerWin->CreateChildFrame()); } catch (const Exception&) { m_xFrame.clear(); } @@ -220,7 +202,7 @@ SwMailMergeDlg::SwMailMergeDlg(vcl::Window* pParent, SwWrtShell& rShell, pProperties[2].Name = "CommandType"; pProperties[2].Value <<= nCommandType; xD->dispatch(aURL, aProperties); - m_pBeamerWin->Show(); + m_xBeamerWin->show(); } uno::Reference xController = m_xFrame->getController(); pImpl->xFController.set(xController, UNO_QUERY); @@ -238,55 +220,51 @@ SwMailMergeDlg::SwMailMergeDlg(vcl::Window* pParent, SwWrtShell& rShell, pModOpt = SW_MOD()->GetModuleConfig(); MailTextFormats nMailingMode(pModOpt->GetMailingFormats()); - m_pFormatSwCB->Check(bool(nMailingMode & MailTextFormats::OFFICE)); - m_pFormatHtmlCB->Check(bool(nMailingMode & MailTextFormats::HTML)); - m_pFormatRtfCB->Check(bool(nMailingMode & MailTextFormats::RTF)); + m_xFormatSwCB->set_active(bool(nMailingMode & MailTextFormats::OFFICE)); + m_xFormatHtmlCB->set_active(bool(nMailingMode & MailTextFormats::HTML)); + m_xFormatRtfCB->set_active(bool(nMailingMode & MailTextFormats::RTF)); - m_pAllRB->Check(); + m_xAllRB->set_active(true); // Install handlers - Link aLk = LINK(this, SwMailMergeDlg, ButtonHdl); - m_pOkBTN->SetClickHdl(aLk); + m_xOkBTN->connect_clicked(LINK(this, SwMailMergeDlg, ButtonHdl)); - m_pPathPB->SetClickHdl(LINK(this, SwMailMergeDlg, InsertPathHdl)); + m_xPathPB->connect_clicked(LINK(this, SwMailMergeDlg, InsertPathHdl)); - aLk = LINK(this, SwMailMergeDlg, OutputTypeHdl); - m_pPrinterRB->SetClickHdl(aLk); - m_pFileRB->SetClickHdl(aLk); + m_xPrinterRB->connect_toggled(LINK(this, SwMailMergeDlg, OutputTypeHdl)); + m_xFileRB->connect_toggled(LINK(this, SwMailMergeDlg, OutputTypeHdl)); //#i63267# printing might be disabled bool bIsPrintable = !Application::GetSettings().GetMiscSettings().GetDisablePrinting(); - m_pPrinterRB->Enable(bIsPrintable); - OutputTypeHdl(bIsPrintable ? m_pPrinterRB : m_pFileRB); + m_xPrinterRB->set_sensitive(bIsPrintable); + OutputTypeHdl(bIsPrintable ? *m_xPrinterRB : *m_xFileRB); - aLk = LINK(this, SwMailMergeDlg, FilenameHdl); - m_pGenerateFromDataBaseCB->SetClickHdl( aLk ); + m_xGenerateFromDataBaseCB->connect_toggled(LINK(this, SwMailMergeDlg, FilenameHdl)); bool bColumn = pModOpt->IsNameFromColumn(); if(bColumn) - m_pGenerateFromDataBaseCB->Check(); + m_xGenerateFromDataBaseCB->set_active(true); - FilenameHdl( m_pGenerateFromDataBaseCB ); - aLk = LINK(this, SwMailMergeDlg, SaveTypeHdl); - m_pSaveSingleDocRB->Check(); - m_pSaveSingleDocRB->SetClickHdl( aLk ); - m_pSaveIndividualRB->SetClickHdl( aLk ); - aLk.Call( m_pSaveSingleDocRB ); + FilenameHdl(*m_xGenerateFromDataBaseCB); + m_xSaveSingleDocRB->set_active(true); + m_xSaveSingleDocRB->connect_toggled(LINK(this, SwMailMergeDlg, SaveTypeHdl)); + m_xSaveIndividualRB->connect_toggled(LINK(this, SwMailMergeDlg, SaveTypeHdl)); + SaveTypeHdl(*m_xSaveSingleDocRB); - Link aLk2 = LINK(this, SwMailMergeDlg, ModifyHdl); - m_pFromNF->SetModifyHdl(aLk2); - m_pToNF->SetModifyHdl(aLk2); - m_pFromNF->SetMax(SAL_MAX_INT32); - m_pToNF->SetMax(SAL_MAX_INT32); + Link aLk2 = LINK(this, SwMailMergeDlg, ModifyHdl); + m_xFromNF->connect_value_changed(aLk2); + m_xToNF->connect_value_changed(aLk2); + m_xFromNF->set_max(SAL_MAX_INT32); + m_xToNF->set_max(SAL_MAX_INT32); SwDBManager* pDBManager = rSh.GetDBManager(); if(_xConnection.is()) - SwDBManager::GetColumnNames(m_pAddressFieldLB, _xConnection, rTableName); + SwDBManager::GetColumnNames(*m_xAddressFieldLB, _xConnection, rTableName); else - pDBManager->GetColumnNames(m_pAddressFieldLB, rSourceName, rTableName); - for(sal_Int32 nEntry = 0; nEntry < m_pAddressFieldLB->GetEntryCount(); ++nEntry) - m_pColumnLB->InsertEntry(m_pAddressFieldLB->GetEntry(nEntry)); + pDBManager->GetColumnNames(*m_xAddressFieldLB, rSourceName, rTableName); + for(sal_Int32 nEntry = 0, nEntryCount = m_xAddressFieldLB->get_count(); nEntry < nEntryCount; ++nEntry) + m_xColumnLB->append_text(m_xAddressFieldLB->get_text(nEntry)); - m_pAddressFieldLB->SelectEntry("EMAIL"); + m_xAddressFieldLB->set_active_text("EMAIL"); OUString sPath(pModOpt->GetMailingPath()); if(sPath.isEmpty()) { @@ -295,29 +273,28 @@ SwMailMergeDlg::SwMailMergeDlg(vcl::Window* pParent, SwWrtShell& rShell, } INetURLObject aURL(sPath); if(aURL.GetProtocol() == INetProtocol::File) - m_pPathED->SetText(aURL.PathToFileName()); + m_xPathED->set_text(aURL.PathToFileName()); else - m_pPathED->SetText(aURL.GetFull()); + m_xPathED->set_text(aURL.GetFull()); if (!bColumn ) { - m_pColumnLB->SelectEntry("NAME"); + m_xColumnLB->set_active_text("NAME"); } else - m_pColumnLB->SelectEntry(pModOpt->GetNameFromColumn()); + m_xColumnLB->set_active_text(pModOpt->GetNameFromColumn()); - if (m_pAddressFieldLB->GetSelectedEntryCount() == 0) - m_pAddressFieldLB->SelectEntryPos(0); - if (m_pColumnLB->GetSelectedEntryCount() == 0) - m_pColumnLB->SelectEntryPos(0); + if (m_xAddressFieldLB->get_active() == -1) + m_xAddressFieldLB->set_active(0); + if (m_xColumnLB->get_active() == -1) + m_xColumnLB->set_active(0); const bool bEnable = m_aSelection.hasElements(); - m_pMarkedRB->Enable(bEnable); + m_xMarkedRB->set_sensitive(bEnable); if (bEnable) - m_pMarkedRB->Check(); + m_xMarkedRB->set_active(true); else { - m_pAllRB->Check(); - m_pMarkedRB->Enable(false); + m_xAllRB->set_active(true); + m_xMarkedRB->set_sensitive(false); } - SetMinOutputSizePixel(aDialogSize); try { uno::Reference< container::XNameContainer> xFilterFactory( xMSF->createInstance("com.sun.star.document.FilterFactory"), UNO_QUERY_THROW); @@ -343,136 +320,91 @@ SwMailMergeDlg::SwMailMergeDlg(vcl::Window* pParent, SwWrtShell& rShell, if (pProp != aFilterProperties.end()) pProp->Value >>= sUIName2; if( !sUIName2.isEmpty() ) { - const sal_Int32 nFilter = m_pFilterLB->InsertEntry( sUIName2 ); if( sFilter == "writer8" ) - nODT = nFilter; - m_pFilterLB->SetEntryData( nFilter, new OUString( sFilter ) ); + nODT = m_xFilterLB->get_count(); + m_xFilterLB->append(sFilter, sUIName2); } } - m_pFilterLB->SelectEntryPos( nODT ); + m_xFilterLB->set_active( nODT ); } catch (const uno::Exception&) { } } SwMailMergeDlg::~SwMailMergeDlg() -{ - disposeOnce(); -} - -void SwMailMergeDlg::dispose() { if(m_xFrame.is()) { m_xFrame->setComponent(nullptr, nullptr); m_xFrame->dispose(); } - - for( sal_Int32 nFilter = 0; nFilter < m_pFilterLB->GetEntryCount(); ++nFilter ) { - OUString* pData = static_cast< OUString* >( m_pFilterLB->GetEntryData(nFilter) ); - delete pData; - } - pImpl.reset(); - m_pBeamerWin.clear(); - m_pAllRB.clear(); - m_pMarkedRB.clear(); - m_pFromRB.clear(); - m_pFromNF.clear(); - m_pToNF.clear(); - m_pPrinterRB.clear(); - m_pMailingRB.clear(); - m_pFileRB.clear(); - m_pSingleJobsCB.clear(); - m_pSaveMergedDocumentFT.clear(); - m_pSaveSingleDocRB.clear(); - m_pSaveIndividualRB.clear(); - m_pGenerateFromDataBaseCB.clear(); - m_pColumnFT.clear(); - m_pColumnLB.clear(); - m_pPathFT.clear(); - m_pPathED.clear(); - m_pPathPB.clear(); - m_pFilterFT.clear(); - m_pFilterLB.clear(); - m_pAddressFieldLB.clear(); - m_pSubjectFT.clear(); - m_pSubjectED.clear(); - m_pFormatFT.clear(); - m_pAttachFT.clear(); - m_pAttachED.clear(); - m_pAttachPB.clear(); - m_pFormatHtmlCB.clear(); - m_pFormatRtfCB.clear(); - m_pFormatSwCB.clear(); - m_pOkBTN.clear(); - SfxModalDialog::dispose(); } -IMPL_LINK( SwMailMergeDlg, ButtonHdl, Button *, pBtn, void ) +IMPL_LINK_NOARG(SwMailMergeDlg, ButtonHdl, weld::Button&, void) { - if (pBtn == m_pOkBTN && ExecQryShell() ) - EndDialog(RET_OK); + if (ExecQryShell()) + m_xDialog->response(RET_OK); } -IMPL_LINK( SwMailMergeDlg, OutputTypeHdl, Button *, pBtn, void ) +IMPL_LINK_NOARG(SwMailMergeDlg, OutputTypeHdl, weld::ToggleButton&, void) { - bool bPrint = pBtn == m_pPrinterRB; - m_pSingleJobsCB->Enable(bPrint); + bool bPrint = m_xPrinterRB->get_active(); + m_xSingleJobsCB->set_sensitive(bPrint); - m_pSaveMergedDocumentFT->Enable( !bPrint ); - m_pSaveSingleDocRB->Enable( !bPrint ); - m_pSaveIndividualRB->Enable( !bPrint ); + m_xSaveMergedDocumentFT->set_sensitive( !bPrint ); + m_xSaveSingleDocRB->set_sensitive( !bPrint ); + m_xSaveIndividualRB->set_sensitive( !bPrint ); if( !bPrint ) { - SaveTypeHdl( m_pSaveSingleDocRB->IsChecked() ? m_pSaveSingleDocRB : m_pSaveIndividualRB ); + SaveTypeHdl( m_xSaveSingleDocRB->get_active() ? *m_xSaveSingleDocRB : *m_xSaveIndividualRB ); } else { - m_pPathFT->Enable(false); - m_pPathED->Enable(false); - m_pPathPB->Enable(false); - m_pColumnFT->Enable(false); - m_pColumnLB->Enable(false); - m_pFilterFT->Enable(false); - m_pFilterLB->Enable(false); - m_pGenerateFromDataBaseCB->Enable(false); + m_xPathFT->set_sensitive(false); + m_xPathED->set_sensitive(false); + m_xPathPB->set_sensitive(false); + m_xColumnFT->set_sensitive(false); + m_xColumnLB->set_sensitive(false); + m_xFilterFT->set_sensitive(false); + m_xFilterLB->set_sensitive(false); + m_xGenerateFromDataBaseCB->set_sensitive(false); } } -IMPL_LINK( SwMailMergeDlg, SaveTypeHdl, Button*, pBtn, void ) +IMPL_LINK_NOARG(SwMailMergeDlg, SaveTypeHdl, weld::ToggleButton&, void) { - bool bIndividual = pBtn == m_pSaveIndividualRB; + bool bIndividual = m_xSaveIndividualRB->get_active(); - m_pGenerateFromDataBaseCB->Enable( bIndividual ); + m_xGenerateFromDataBaseCB->set_sensitive( bIndividual ); if( bIndividual ) { - FilenameHdl( m_pGenerateFromDataBaseCB ); + FilenameHdl(*m_xGenerateFromDataBaseCB); } else { - m_pColumnFT->Enable(false); - m_pColumnLB->Enable(false); - m_pPathFT->Enable( false ); - m_pPathED->Enable( false ); - m_pPathPB->Enable( false ); - m_pFilterFT->Enable( false ); - m_pFilterLB->Enable( false ); + m_xColumnFT->set_sensitive(false); + m_xColumnLB->set_sensitive(false); + m_xPathFT->set_sensitive( false ); + m_xPathED->set_sensitive( false ); + m_xPathPB->set_sensitive( false ); + m_xFilterFT->set_sensitive( false ); + m_xFilterLB->set_sensitive( false ); } } -IMPL_LINK( SwMailMergeDlg, FilenameHdl, Button*, pBox, void ) +IMPL_LINK( SwMailMergeDlg, FilenameHdl, weld::ToggleButton&, rBox, void ) { - bool bEnable = static_cast(pBox)->IsChecked(); - m_pColumnFT->Enable( bEnable ); - m_pColumnLB->Enable(bEnable); - m_pPathFT->Enable( bEnable ); - m_pPathED->Enable(bEnable); - m_pPathPB->Enable( bEnable ); - m_pFilterFT->Enable( bEnable ); - m_pFilterLB->Enable( bEnable ); + bool bEnable = rBox.get_active(); + m_xColumnFT->set_sensitive( bEnable ); + m_xColumnLB->set_sensitive(bEnable); + m_xPathFT->set_sensitive( bEnable ); + m_xPathED->set_sensitive(bEnable); + m_xPathPB->set_sensitive( bEnable ); + m_xFilterFT->set_sensitive( bEnable ); + m_xFilterLB->set_sensitive( bEnable ); } -IMPL_LINK_NOARG(SwMailMergeDlg, ModifyHdl, Edit&, void) +IMPL_LINK_NOARG(SwMailMergeDlg, ModifyHdl, weld::SpinButton&, void) { - m_pFromRB->Check(); + m_xFromRB->set_active(true); } bool SwMailMergeDlg::AskUserFilename() const { - return (m_pSaveSingleDocRB->IsChecked() || !m_pGenerateFromDataBaseCB->IsChecked()); + return (m_xSaveSingleDocRB->get_active() || !m_xGenerateFromDataBaseCB->get_active()); } OUString SwMailMergeDlg::GetURLfromPath() const @@ -487,7 +419,7 @@ OUString SwMailMergeDlg::GetURLfromPath() const aAbs.SetURL( aPathOpt.GetWorkPath() ); } return URIHelper::SmartRel2Abs( - aAbs, m_pPathED->GetText(), URIHelper::GetMaybeFileHdl()); + aAbs, m_xPathED->get_text(), URIHelper::GetMaybeFileHdl()); } bool SwMailMergeDlg::ExecQryShell() @@ -496,34 +428,34 @@ bool SwMailMergeDlg::ExecQryShell() pImpl->xSelSupp->removeSelectionChangeListener( pImpl->xChgLstnr ); } - if (m_pPrinterRB->IsChecked()) + if (m_xPrinterRB->get_active()) nMergeType = DBMGR_MERGE_PRINTER; else { nMergeType = DBMGR_MERGE_FILE; pModOpt->SetMailingPath( GetURLfromPath() ); - pModOpt->SetIsNameFromColumn(m_pGenerateFromDataBaseCB->IsChecked()); + pModOpt->SetIsNameFromColumn(m_xGenerateFromDataBaseCB->get_active()); if (!AskUserFilename()) { - pModOpt->SetNameFromColumn(m_pColumnLB->GetSelectedEntry()); - if( m_pFilterLB->GetSelectedEntryPos() != LISTBOX_ENTRY_NOTFOUND) - m_sSaveFilter = *static_cast(m_pFilterLB->GetSelectedEntryData()); + pModOpt->SetNameFromColumn(m_xColumnLB->get_active_text()); + if (m_xFilterLB->get_active() != -1) + m_sSaveFilter = m_xFilterLB->get_active_id(); m_sFilename = OUString(); } else { //#i97667# reset column name - otherwise it's remembered from the last run pModOpt->SetNameFromColumn(OUString()); //start save as dialog OUString sFilter; - m_sFilename = SwMailMergeHelper::CallSaveAsDialog(GetFrameWeld(), sFilter); + m_sFilename = SwMailMergeHelper::CallSaveAsDialog(m_xDialog.get(), sFilter); if (m_sFilename.isEmpty()) return false; m_sSaveFilter = sFilter; } } - if (m_pFromRB->IsChecked()) { // Insert list + if (m_xFromRB->get_active()) { // Insert list // Safe: the maximal value of the fields is limited - sal_Int32 nStart = sal::static_int_cast(m_pFromNF->GetValue()); - sal_Int32 nEnd = sal::static_int_cast(m_pToNF->GetValue()); + sal_Int32 nStart = m_xFromNF->get_value(); + sal_Int32 nEnd = m_xToNF->get_value(); if (nEnd < nStart) std::swap(nEnd, nStart); @@ -532,7 +464,7 @@ bool SwMailMergeDlg::ExecQryShell() Any* pSelection = m_aSelection.getArray(); for (sal_Int32 i = nStart; i <= nEnd; ++i, ++pSelection) *pSelection <<= i; - } else if (m_pAllRB->IsChecked() ) + } else if (m_xAllRB->get_active() ) m_aSelection.realloc(0); // Empty selection = insert all else { if(pImpl->xSelSupp.is()) { @@ -550,18 +482,18 @@ bool SwMailMergeDlg::ExecQryShell() } IDocumentDeviceAccess& rIDDA = rSh.getIDocumentDeviceAccess(); SwPrintData aPrtData( rIDDA.getPrintData() ); - aPrtData.SetPrintSingleJobs(m_pSingleJobsCB->IsChecked()); + aPrtData.SetPrintSingleJobs(m_xSingleJobsCB->get_active()); rIDDA.setPrintData(aPrtData); - pModOpt->SetSinglePrintJob(m_pSingleJobsCB->IsChecked()); + pModOpt->SetSinglePrintJob(m_xSingleJobsCB->get_active()); MailTextFormats nMailingMode = MailTextFormats::NONE; - if (m_pFormatSwCB->IsChecked()) + if (m_xFormatSwCB->get_active()) nMailingMode |= MailTextFormats::OFFICE; - if (m_pFormatHtmlCB->IsChecked()) + if (m_xFormatHtmlCB->get_active()) nMailingMode |= MailTextFormats::HTML; - if (m_pFormatRtfCB->IsChecked()) + if (m_xFormatRtfCB->get_active()) nMailingMode |= MailTextFormats::RTF; pModOpt->SetMailingFormats(nMailingMode); return true; @@ -581,7 +513,7 @@ OUString SwMailMergeDlg::GetTargetURL() const return sPath; } -IMPL_LINK_NOARG(SwMailMergeDlg, InsertPathHdl, Button*, void) +IMPL_LINK_NOARG(SwMailMergeDlg, InsertPathHdl, weld::Button&, void) { uno::Reference< XComponentContext > xContext( ::comphelper::getProcessComponentContext() ); uno::Reference < XFolderPicker2 > xFP = FolderPicker::create(xContext); @@ -589,9 +521,9 @@ IMPL_LINK_NOARG(SwMailMergeDlg, InsertPathHdl, Button*, void) if( xFP->execute() == RET_OK ) { INetURLObject aURL(xFP->getDirectory()); if(aURL.GetProtocol() == INetProtocol::File) - m_pPathED->SetText(aURL.PathToFileName()); + m_xPathED->set_text(aURL.PathToFileName()); else - m_pPathED->SetText(aURL.GetFull()); + m_xPathED->set_text(aURL.GetFull()); } } -- cgit