diff options
Diffstat (limited to 'sw/source/ui/dbui/mmaddressblockpage.cxx')
-rw-r--r-- | sw/source/ui/dbui/mmaddressblockpage.cxx | 74 |
1 files changed, 44 insertions, 30 deletions
diff --git a/sw/source/ui/dbui/mmaddressblockpage.cxx b/sw/source/ui/dbui/mmaddressblockpage.cxx index 876f5e5bf27d..9df414eca421 100644 --- a/sw/source/ui/dbui/mmaddressblockpage.cxx +++ b/sw/source/ui/dbui/mmaddressblockpage.cxx @@ -25,6 +25,8 @@ #include <o3tl/safeint.hxx> #include <svl/grabbagitem.hxx> #include <svl/itemset.hxx> +#include <utility> +#include <vcl/commandevent.hxx> #include <vcl/event.hxx> #include <vcl/svapp.hxx> #include <vcl/weld.hxx> @@ -37,14 +39,13 @@ #include <com/sun/star/sdb/XColumn.hpp> #include <comphelper/sequence.hxx> #include <comphelper/string.hxx> -#include <tools/diagnose_ex.h> +#include <comphelper/diagnose_ex.hxx> #include <vector> #include <strings.hrc> #include <mmaddressblockpage.hrc> #include <helpids.h> -using namespace svt; using namespace ::com::sun::star; using namespace ::com::sun::star::container; using namespace ::com::sun::star::sdb; @@ -140,7 +141,7 @@ void SwMailMergeAddressBlockPage::Activate() m_pWizard->GetConfigItem().GetAddressBlocks(); for(const auto& rAddress : aBlocks) m_xSettings->AddAddress(rAddress); - m_xSettings->SelectAddress(static_cast<sal_uInt16>(rConfigItem.GetCurrentAddressBlockIndex())); + m_xSettings->SelectAddress(o3tl::narrowing<sal_uInt16>(rConfigItem.GetCurrentAddressBlockIndex())); m_xAddressCB->set_active(rConfigItem.IsAddressBlock()); AddressBlockHdl_Impl(*m_xAddressCB); m_xSettings->SetLayout(1, 2); @@ -231,7 +232,7 @@ void SwMailMergeAddressBlockPage::EnableAddressBlock(bool bAll, bool bSelective) m_xStep4->set_sensitive(bSelective); } -IMPL_LINK(SwMailMergeAddressBlockPage, AddressBlockHdl_Impl, weld::ToggleButton&, rBox, void) +IMPL_LINK(SwMailMergeAddressBlockPage, AddressBlockHdl_Impl, weld::Toggleable&, rBox, void) { EnableAddressBlock(rBox.get_sensitive(), rBox.get_active()); SwMailMergeConfigItem& rConfigItem = m_pWizard->GetConfigItem(); @@ -252,7 +253,7 @@ IMPL_LINK_NOARG(SwMailMergeAddressBlockPage, AddressBlockSelectHdl_Impl, LinkPar GetWizard()->enableButtons(WizardButtonFlags::NEXT, GetWizard()->isStateEnabled(MM_GREETINGSPAGE)); } -IMPL_LINK(SwMailMergeAddressBlockPage, HideParagraphsHdl_Impl, weld::ToggleButton&, rBox, void) +IMPL_LINK(SwMailMergeAddressBlockPage, HideParagraphsHdl_Impl, weld::Toggleable&, rBox, void) { SwMailMergeConfigItem& rConfigItem = m_pWizard->GetConfigItem(); rConfigItem.SetHideEmptyParagraphs(rBox.get_active()); @@ -334,7 +335,7 @@ SwSelectAddressBlockDialog::SwSelectAddressBlockDialog(weld::Window* pParent, Sw m_xDeletePB->connect_clicked(LINK(this, SwSelectAddressBlockDialog, DeleteHdl_Impl)); - Link<weld::ToggleButton&,void> aLk = LINK(this, SwSelectAddressBlockDialog, IncludeHdl_Impl); + Link<weld::Toggleable&,void> aLk = LINK(this, SwSelectAddressBlockDialog, IncludeHdl_Impl); m_xNeverRB->connect_toggled(aLk); m_xAlwaysRB->connect_toggled(aLk); m_xDependentRB->connect_toggled(aLk); @@ -350,7 +351,7 @@ void SwSelectAddressBlockDialog::SetAddressBlocks(const uno::Sequence< OUString> sal_uInt16 nSelectedAddress) { m_aAddressBlocks = rBlocks; - for (const auto& rAddressBlock : std::as_const(m_aAddressBlocks)) + for (const auto& rAddressBlock : m_aAddressBlocks) m_xPreview->AddAddress(rAddressBlock); m_xPreview->SelectAddress(nSelectedAddress); } @@ -362,10 +363,11 @@ const uno::Sequence< OUString >& SwSelectAddressBlockDialog::GetAddressBlocks const sal_Int32 nSelect = static_cast<sal_Int32>(m_xPreview->GetSelectedAddress()); if(nSelect) { - uno::Sequence< OUString >aTemp = m_aAddressBlocks; - aTemp[0] = m_aAddressBlocks[nSelect]; - std::copy(m_aAddressBlocks.begin(), std::next(m_aAddressBlocks.begin(), nSelect), std::next(aTemp.begin())); - std::copy(std::next(m_aAddressBlocks.begin(), nSelect + 1), m_aAddressBlocks.end(), std::next(aTemp.begin(), nSelect + 1)); + uno::Sequence< OUString >aTemp(m_aAddressBlocks.getLength()); + auto it = aTemp.getArray(); + *it = m_aAddressBlocks[nSelect]; + it = std::copy_n(std::cbegin(m_aAddressBlocks), nSelect - 1, std::next(it)); + std::copy(std::next(std::cbegin(m_aAddressBlocks), nSelect + 1), std::cend(m_aAddressBlocks), it); m_aAddressBlocks = aTemp; } return m_aAddressBlocks; @@ -423,20 +425,20 @@ IMPL_LINK(SwSelectAddressBlockDialog, NewCustomizeHdl_Impl, weld::Button&, rButt if(bCustomize) { m_xPreview->ReplaceSelectedAddress(sNew); - m_aAddressBlocks[m_xPreview->GetSelectedAddress()] = sNew; + m_aAddressBlocks.getArray()[m_xPreview->GetSelectedAddress()] = sNew; } else { m_xPreview->AddAddress(sNew); m_aAddressBlocks.realloc(m_aAddressBlocks.getLength() + 1); const sal_Int32 nSelect = m_aAddressBlocks.getLength() - 1; - m_aAddressBlocks[nSelect] = sNew; - m_xPreview->SelectAddress(static_cast<sal_uInt16>(nSelect)); + m_aAddressBlocks.getArray()[nSelect] = sNew; + m_xPreview->SelectAddress(o3tl::narrowing<sal_uInt16>(nSelect)); } m_xDeletePB->set_sensitive(m_aAddressBlocks.getLength() > 1); } -IMPL_LINK_NOARG(SwSelectAddressBlockDialog, IncludeHdl_Impl, weld::ToggleButton&, void) +IMPL_LINK_NOARG(SwSelectAddressBlockDialog, IncludeHdl_Impl, weld::Toggleable&, void) { m_xCountryED->set_sensitive(m_xDependentRB->get_active()); } @@ -459,6 +461,7 @@ SwCustomizeAddressBlockDialog::SwCustomizeAddressBlockDialog( , m_aTextFilter("<>") , m_rConfigItem(rConfig) , m_eType(eType) + , m_aSelectionChangedIdle("SwCustomizeAddressBlockDialog m_aSelectionChangedIdle") , m_xAddressElementsFT(m_xBuilder->weld_label("addressesft")) , m_xAddressElementsLB(m_xBuilder->weld_tree_view("addresses")) , m_xInsertFieldIB(m_xBuilder->weld_button("toaddr")) @@ -491,10 +494,10 @@ SwCustomizeAddressBlockDialog::SwCustomizeAddressBlockDialog( m_xAddressElementsLB->append(OUString::number(USER_DATA_SALUTATION), SwResId(ST_SALUTATION)); m_xAddressElementsLB->append(OUString::number(USER_DATA_PUNCTUATION), SwResId(ST_PUNCTUATION)); m_xAddressElementsLB->append(OUString::number(USER_DATA_TEXT), SwResId(ST_TEXT)); - for (size_t i = 0; i < SAL_N_ELEMENTS(RA_SALUTATION); ++i) - m_aSalutations.push_back(SwResId(RA_SALUTATION[i])); - for (size_t i = 0; i < SAL_N_ELEMENTS(RA_PUNCTUATION); ++i) - m_aPunctuations.push_back(SwResId(RA_PUNCTUATION[i])); + for (auto const& aID : RA_SALUTATION) + m_aSalutations.push_back(SwResId(aID)); + for (auto const& aID : RA_PUNCTUATION) + m_aPunctuations.push_back(SwResId(aID)); m_xDragED->SetText(" "); m_xDialog->set_title(SwResId(eType == GREETING_MALE ? ST_TITLE_MALE : ST_TITLE_FEMALE)); m_xAddressElementsFT->set_label(SwResId(ST_SALUTATIONELEMENTS)); @@ -632,7 +635,7 @@ bool SwCustomizeAddressBlockDialog::HasItem(sal_Int32 nUserData) } } //search for this entry in the content - return m_xDragED->GetText().indexOf(OUString("<" + sEntry + ">")) >= 0; + return m_xDragED->GetText().indexOf(Concat2View("<" + sEntry + ">")) >= 0; } IMPL_LINK_NOARG(SwCustomizeAddressBlockDialog, SelectionChangedIdleHdl, Timer*, void) @@ -861,7 +864,7 @@ void SwAssignFieldsControl::Init(SwAssignFieldsDialog* pDialog, SwMailMergeConfi rNewLB.append_text(SwResId(SW_STR_NONE)); rNewLB.set_active(0); - for (const OUString& rField : std::as_const(aFields)) + for (const OUString& rField : aFields) rNewLB.append_text(rField); //select the ListBox //if there is an assignment @@ -965,11 +968,11 @@ IMPL_LINK(SwAssignFieldsControl, GotFocusHdl_Impl, weld::Widget&, rBox, void) SwAssignFieldsDialog::SwAssignFieldsDialog( weld::Window* pParent, SwMailMergeConfigItem& rConfigItem, - const OUString& rPreview, + OUString aPreview, bool bIsAddressBlock) : SfxDialogController(pParent, "modules/swriter/ui/assignfieldsdialog.ui", "AssignFieldsDialog") , m_sNone(SwResId(SW_STR_NONE)) - , m_rPreviewString(rPreview) + , m_rPreviewString(std::move(aPreview)) , m_rConfigItem(rConfigItem) , m_xPreview(new SwAddressPreview(m_xBuilder->weld_scrolled_window("previewwin", true))) , m_xMatchingFI(m_xBuilder->weld_label("MATCHING_LABEL")) @@ -1069,6 +1072,7 @@ void AddressMultiLineEdit::EndDropTarget() { if (m_xDropTarget.is()) { + m_xEditEngine->RemoveView(m_xEditView.get()); auto xRealDropTarget = GetDrawingArea()->get_drop_target(); uno::Reference<css::datatransfer::dnd::XDropTargetListener> xListener(m_xDropTarget, uno::UNO_QUERY); xRealDropTarget->removeDropTargetListener(xListener); @@ -1097,6 +1101,17 @@ bool AddressMultiLineEdit::KeyInput(const KeyEvent& rKEvt) return WeldEditView::KeyInput(rKEvt); } +bool AddressMultiLineEdit::Command(const CommandEvent& rCEvt) +{ + if (rCEvt.GetCommand() == CommandEventId::StartExtTextInput || + rCEvt.GetCommand() == CommandEventId::EndExtTextInput || + rCEvt.GetCommand() == CommandEventId::ExtTextInput) + { + return true; + } + return WeldEditView::Command(rCEvt); +} + bool AddressMultiLineEdit::MouseButtonDown(const MouseEvent& rMEvt) { if (rMEvt.GetClicks() >= 2) @@ -1472,7 +1487,7 @@ namespace auto aReplacement(dtdee); // replace what the treeview is offering with what ImpEditView::dragEnter wants aReplacement.SupportedDataFlavors.realloc(1); - SotExchange::GetFormatDataFlavor(SotClipboardFormatId::STRING, aReplacement.SupportedDataFlavors[0]); + SotExchange::GetFormatDataFlavor(SotClipboardFormatId::STRING, aReplacement.SupportedDataFlavors.getArray()[0]); std::vector<css::uno::Reference<css::datatransfer::dnd::XDropTargetListener>> aListeners(m_aListeners); for (auto const& listener : aListeners) @@ -1508,7 +1523,7 @@ namespace virtual void SAL_CALL removeDropTargetListener(const css::uno::Reference<css::datatransfer::dnd::XDropTargetListener>& xListener) override { - m_aListeners.erase(std::remove(m_aListeners.begin(), m_aListeners.end(), xListener), m_aListeners.end()); + std::erase(m_aListeners, xListener); } virtual sal_Bool SAL_CALL isActive() override @@ -1534,7 +1549,7 @@ namespace public: DropTargetListener(css::uno::Reference<css::datatransfer::dnd::XDropTarget> xRealDropTarget, SwCustomizeAddressBlockDialog* pParentDialog) - : m_xRealDropTarget(xRealDropTarget) + : m_xRealDropTarget(std::move(xRealDropTarget)) , m_pParentDialog(pParentDialog) { } @@ -1546,10 +1561,9 @@ css::uno::Reference<css::datatransfer::dnd::XDropTarget> AddressMultiLineEdit::G if (!m_xDropTarget.is()) { auto xRealDropTarget = GetDrawingArea()->get_drop_target(); - DropTargetListener* pProxy = new DropTargetListener(xRealDropTarget, m_pParentDialog); - uno::Reference<css::datatransfer::dnd::XDropTargetListener> xListener(pProxy); - xRealDropTarget->addDropTargetListener(xListener); - m_xDropTarget = uno::Reference<css::datatransfer::dnd::XDropTarget>(pProxy); + rtl::Reference<DropTargetListener> pProxy = new DropTargetListener(xRealDropTarget, m_pParentDialog); + xRealDropTarget->addDropTargetListener(pProxy); + m_xDropTarget = pProxy; } return m_xDropTarget; } |