summaryrefslogtreecommitdiff
path: root/sw/source/ui/dbui/mmaddressblockpage.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/ui/dbui/mmaddressblockpage.cxx')
-rw-r--r--sw/source/ui/dbui/mmaddressblockpage.cxx74
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;
}