summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
Diffstat (limited to 'svx')
-rw-r--r--svx/Library_svx.mk1
-rw-r--r--svx/UIConfig_svx.mk2
-rw-r--r--svx/sdi/svx.sdi19
-rw-r--r--svx/source/dialog/GenericCheckDialog.cxx70
-rw-r--r--svx/source/svdraw/sdrpagewindow.cxx2
-rw-r--r--svx/source/svdraw/svddrgmt.cxx2
-rw-r--r--svx/source/svdraw/svdedtv.cxx10
-rw-r--r--svx/source/svdraw/svdedtv1.cxx24
-rw-r--r--svx/source/svdraw/svdedxv.cxx431
-rw-r--r--svx/source/svdraw/svdmrkv.cxx10
-rw-r--r--svx/source/svdraw/svdoole2.cxx104
-rw-r--r--svx/source/svdraw/svdpntv.cxx7
-rw-r--r--svx/source/svdraw/svdview.cxx20
-rw-r--r--svx/source/svdraw/svdxcgv.cxx5
-rw-r--r--svx/source/tbxctrls/fontworkgallery.cxx2
-rw-r--r--svx/source/tbxctrls/grafctrl.cxx2
-rw-r--r--svx/source/unodraw/shapeimpl.hxx5
-rw-r--r--svx/source/unodraw/unoshap2.cxx3
-rw-r--r--svx/source/unodraw/unoshap4.cxx23
-rw-r--r--svx/uiconfig/ui/genericcheckdialog.ui132
-rw-r--r--svx/uiconfig/ui/genericcheckentry.ui56
21 files changed, 670 insertions, 260 deletions
diff --git a/svx/Library_svx.mk b/svx/Library_svx.mk
index dc312a81d772..7882033e0815 100644
--- a/svx/Library_svx.mk
+++ b/svx/Library_svx.mk
@@ -105,6 +105,7 @@ $(eval $(call gb_Library_add_exception_objects,svx,\
svx/source/customshapes/EnhancedCustomShapeEngine \
svx/source/customshapes/EnhancedCustomShapeFontWork \
svx/source/customshapes/EnhancedCustomShapeHandle \
+ svx/source/dialog/GenericCheckDialog \
svx/source/dialog/_bmpmask \
svx/source/dialog/charmap \
svx/source/dialog/searchcharmap \
diff --git a/svx/UIConfig_svx.mk b/svx/UIConfig_svx.mk
index 2dad0a2bb7a8..a82c8503f00e 100644
--- a/svx/UIConfig_svx.mk
+++ b/svx/UIConfig_svx.mk
@@ -55,6 +55,8 @@ $(eval $(call gb_UIConfig_add_uifiles,svx,\
svx/uiconfig/ui/functionmenu \
svx/uiconfig/ui/gallerymenu1 \
svx/uiconfig/ui/gallerymenu2 \
+ svx/uiconfig/ui/genericcheckdialog \
+ svx/uiconfig/ui/genericcheckentry \
svx/uiconfig/ui/headfootformatpage \
svx/uiconfig/ui/imapdialog \
svx/uiconfig/ui/imapmenu \
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi
index 039c43171a45..3f268536390e 100644
--- a/svx/sdi/svx.sdi
+++ b/svx/sdi/svx.sdi
@@ -8373,7 +8373,7 @@ SfxBoolItem Text SID_ATTR_CHAR
SfxBoolItem DrawText SID_DRAW_TEXT
-
+(SfxBoolItem CreateDirectly FN_PARAM_1)
[
AutoUpdate = TRUE,
FastCall = FALSE,
@@ -12278,6 +12278,23 @@ SfxVoidItem SpellCheckApplySuggestion SID_SPELLCHECK_APPLY_SUGGESTION
GroupId = SfxGroupId::Format;
]
+SfxVoidItem GraphicSizeCheck SID_GRAPHIC_SIZE_CHECK
+()
+[
+ AutoUpdate = FALSE,
+ FastCall = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = SfxGroupId::Modify;
+]
+
SfxVoidItem MoveShapeHandle SID_MOVE_SHAPE_HANDLE
(SfxUInt32Item HandleNum FN_PARAM_1 SfxUInt32Item NewPosX FN_PARAM_2 SfxUInt32Item NewPosY FN_PARAM_3 SfxInt32Item OrdNum FN_PARAM_4)
[
diff --git a/svx/source/dialog/GenericCheckDialog.cxx b/svx/source/dialog/GenericCheckDialog.cxx
new file mode 100644
index 000000000000..09fc3d678769
--- /dev/null
+++ b/svx/source/dialog/GenericCheckDialog.cxx
@@ -0,0 +1,70 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+
+#include <svx/GenericCheckDialog.hxx>
+#include <vcl/svapp.hxx>
+
+namespace svx
+{
+GenericCheckEntry::GenericCheckEntry(weld::Container* pParent,
+ std::unique_ptr<CheckData>& pCheckData)
+ : m_xBuilder(Application::CreateBuilder(pParent, "svx/ui/genericcheckentry.ui"))
+ , m_xContainer(m_xBuilder->weld_container("checkEntryBox"))
+ , m_xLabel(m_xBuilder->weld_label("label"))
+ , m_xMarkButton(m_xBuilder->weld_button("markButton"))
+ , m_xPropertiesButton(m_xBuilder->weld_button("propertiesButton"))
+ , m_pCheckData(pCheckData)
+{
+ m_xLabel->set_label(m_pCheckData->getText());
+ m_xMarkButton->set_visible(m_pCheckData->canMarkObject());
+ m_xMarkButton->connect_clicked(LINK(this, GenericCheckEntry, MarkButtonClicked));
+ m_xPropertiesButton->set_visible(m_pCheckData->hasProperties());
+ m_xPropertiesButton->connect_clicked(LINK(this, GenericCheckEntry, PropertiesButtonClicked));
+
+ m_xContainer->show();
+}
+
+IMPL_LINK_NOARG(GenericCheckEntry, MarkButtonClicked, weld::Button&, void)
+{
+ m_pCheckData->markObject();
+}
+
+IMPL_LINK_NOARG(GenericCheckEntry, PropertiesButtonClicked, weld::Button&, void)
+{
+ m_pCheckData->runProperties();
+}
+
+GenericCheckDialog::GenericCheckDialog(weld::Window* pParent,
+ CheckDataCollection& rCheckDataCollection)
+ : GenericDialogController(pParent, "svx/ui/genericcheckdialog.ui", "GenericCheckDialog")
+ , m_rCheckDataCollection(rCheckDataCollection)
+ , m_xCheckBox(m_xBuilder->weld_box("checkBox"))
+{
+ set_title(m_rCheckDataCollection.getTitle());
+}
+
+GenericCheckDialog::~GenericCheckDialog() {}
+
+short GenericCheckDialog::run()
+{
+ sal_Int32 i = 0;
+
+ for (std::unique_ptr<CheckData>& pCheckData : m_rCheckDataCollection.getCollection())
+ {
+ auto xEntry = std::make_unique<GenericCheckEntry>(m_xCheckBox.get(), pCheckData);
+ m_xCheckBox->reorder_child(xEntry->get_widget(), i++);
+ m_aCheckEntries.push_back(std::move(xEntry));
+ }
+ return GenericDialogController::run();
+}
+
+} // end svx namespace
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/svdraw/sdrpagewindow.cxx b/svx/source/svdraw/sdrpagewindow.cxx
index b85ab66a9e12..775f35510c3a 100644
--- a/svx/source/svdraw/sdrpagewindow.cxx
+++ b/svx/source/svdraw/sdrpagewindow.cxx
@@ -449,7 +449,7 @@ void SdrPageWindow::InvalidatePageWindow(const basegfx::B2DRange& rRange)
const tools::Rectangle aRectTwips = OutputDevice::LogicToLogic(aRect100thMM, MapMode(MapUnit::Map100thMM), MapMode(MapUnit::MapTwip));
if (SfxViewShell* pViewShell = SfxViewShell::Current())
- SfxLokHelper::notifyInvalidation(pViewShell, aRectTwips.toString());
+ SfxLokHelper::notifyInvalidation(pViewShell, &aRectTwips);
}
}
diff --git a/svx/source/svdraw/svddrgmt.cxx b/svx/source/svdraw/svddrgmt.cxx
index 80c421e40149..bbb640e6c6c7 100644
--- a/svx/source/svdraw/svddrgmt.cxx
+++ b/svx/source/svdraw/svddrgmt.cxx
@@ -1360,7 +1360,7 @@ bool SdrDragObjOwn::EndSdrDrag(bool /*bCopy*/)
if( bUndo )
{
- getSdrDragView().EndTextEditAllViews();
+ getSdrDragView().EndTextEditCurrentView();
if(!getSdrDragView().IsInsObjPoint() && pObj->IsInserted() )
{
if (DragStat().IsEndDragChangesAttributes())
diff --git a/svx/source/svdraw/svdedtv.cxx b/svx/source/svdraw/svdedtv.cxx
index b48174ad8b57..44d9684e2ef9 100644
--- a/svx/source/svdraw/svdedtv.cxx
+++ b/svx/source/svdraw/svdedtv.cxx
@@ -1059,4 +1059,14 @@ void SdrEditView::EndTextEditAllViews() const
}
}
+void SdrEditView::EndTextEditCurrentView()
+{
+ if (IsTextEdit())
+ {
+ SdrView* pSdrView = dynamic_cast<SdrView*>(this);
+ if (pSdrView)
+ pSdrView->SdrEndTextEdit();
+ }
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/svdraw/svdedtv1.cxx b/svx/source/svdraw/svdedtv1.cxx
index 830ef238c590..21a0830bbd1a 100644
--- a/svx/source/svdraw/svdedtv1.cxx
+++ b/svx/source/svdraw/svdedtv1.cxx
@@ -99,7 +99,7 @@ void SdrEditView::SetMarkedObjRect(const tools::Rectangle& rRect)
const bool bUndo = IsUndoEnabled();
if( bUndo )
{
- EndTextEditAllViews();
+ EndTextEditCurrentView();
BegUndo(ImpGetDescriptionString(STR_EditPosSize));
}
@@ -190,7 +190,7 @@ void SdrEditView::MoveMarkedObj(const Size& rSiz, bool bCopy)
if( bUndo )
{
- EndTextEditAllViews();
+ EndTextEditCurrentView();
OUString aStr(SvxResId(STR_EditMove));
if (bCopy)
aStr += SvxResId(STR_EditWithCopy);
@@ -223,7 +223,7 @@ void SdrEditView::ResizeMarkedObj(const Point& rRef, const Fraction& xFact, cons
const bool bUndo = IsUndoEnabled();
if( bUndo )
{
- EndTextEditAllViews();
+ EndTextEditCurrentView();
OUString aStr {ImpGetDescriptionString(STR_EditResize)};
if (bCopy)
aStr+=SvxResId(STR_EditWithCopy);
@@ -258,7 +258,7 @@ void SdrEditView::ResizeMultMarkedObj(const Point& rRef,
const bool bUndo = IsUndoEnabled();
if( bUndo )
{
- EndTextEditAllViews();
+ EndTextEditCurrentView();
BegUndo(ImpGetDescriptionString(STR_EditResize));
}
@@ -319,7 +319,7 @@ void SdrEditView::RotateMarkedObj(const Point& rRef, long nAngle, bool bCopy)
const bool bUndo = IsUndoEnabled();
if( bUndo )
{
- EndTextEditAllViews();
+ EndTextEditCurrentView();
OUString aStr {ImpGetDescriptionString(STR_EditRotate)};
if (bCopy) aStr+=SvxResId(STR_EditWithCopy);
BegUndo(aStr);
@@ -376,7 +376,7 @@ void SdrEditView::MirrorMarkedObj(const Point& rRef1, const Point& rRef2, bool b
if( bUndo )
{
- EndTextEditAllViews();
+ EndTextEditCurrentView();
OUString aStr;
Point aDif(rRef2-rRef1);
if (aDif.X()==0)
@@ -476,7 +476,7 @@ void SdrEditView::ShearMarkedObj(const Point& rRef, long nAngle, bool bVShear, b
if( bUndo )
{
- EndTextEditAllViews();
+ EndTextEditCurrentView();
OUString aStr {ImpGetDescriptionString(STR_EditShear)};
if (bCopy)
aStr+=SvxResId(STR_EditWithCopy);
@@ -592,7 +592,7 @@ void SdrEditView::CrookMarkedObj(const Point& rRef, const Point& rRad, SdrCrookM
if( bUndo )
{
- EndTextEditAllViews();
+ EndTextEditCurrentView();
OUString aStr {ImpGetDescriptionString(bNoContortion ? STR_EditCrook : STR_EditCrookContortion)};
if (bCopy)
aStr+=SvxResId(STR_EditWithCopy);
@@ -666,7 +666,7 @@ void SdrEditView::DistortMarkedObj(const tools::Rectangle& rRef, const XPolygon&
if( bUndo )
{
- EndTextEditAllViews();
+ EndTextEditCurrentView();
OUString aStr {ImpGetDescriptionString(STR_EditDistort)};
if (bCopy)
aStr+=SvxResId(STR_EditWithCopy);
@@ -1111,7 +1111,7 @@ void SdrEditView::SetAttrToMarked(const SfxItemSet& rAttr, bool bReplaceAll)
const bool bUndo = IsUndoEnabled();
if( bUndo )
{
- EndTextEditAllViews();
+ EndTextEditCurrentView();
BegUndo(ImpGetDescriptionString(STR_EditSetAttributes));
}
@@ -1291,7 +1291,7 @@ void SdrEditView::SetStyleSheetToMarked(SfxStyleSheet* pStyleSheet, bool bDontRe
if( bUndo )
{
- EndTextEditAllViews();
+ EndTextEditCurrentView();
OUString aStr;
if (pStyleSheet!=nullptr)
aStr = ImpGetDescriptionString(STR_EditSetStylesheet);
@@ -1859,7 +1859,7 @@ void SdrEditView::AlignMarkedObjects(SdrHorAlign eHor, SdrVertAlign eVert)
const bool bUndo = IsUndoEnabled();
if( bUndo )
{
- EndTextEditAllViews();
+ EndTextEditCurrentView();
OUString aStr(GetDescriptionOfMarkedObjects());
if (eHor==SdrHorAlign::NONE)
{
diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx
index fefeb43fe7bc..32057e0b5163 100644
--- a/svx/source/svdraw/svdedxv.cxx
+++ b/svx/source/svdraw/svdedxv.cxx
@@ -77,24 +77,37 @@
void SdrObjEditView::ImpClearVars()
{
- bQuickTextEditMode = true;
- pTextEditOutliner.reset();
- pTextEditOutlinerView = nullptr;
- pTextEditPV = nullptr;
- pTextEditWin = nullptr;
+ mbQuickTextEditMode = true;
+ mpTextEditOutliner.reset();
+ mpTextEditOutlinerView = nullptr;
+ mpTextEditPV = nullptr;
+ mpTextEditWin = nullptr;
pTextEditCursorBuffer = nullptr;
- bTextEditNewObj = false;
- bMacroDown = false;
+ mbTextEditNewObj = false;
+ mbMacroDown = false;
pMacroObj = nullptr;
pMacroPV = nullptr;
pMacroWin = nullptr;
nMacroTol = 0;
- bTextEditDontDelete = false;
- bTextEditOnlyOneView = false;
+ mbTextEditDontDelete = false;
+ mbTextEditOnlyOneView = false;
}
SdrObjEditView::SdrObjEditView(SdrModel& rSdrModel, OutputDevice* pOut)
: SdrGlueEditView(rSdrModel, pOut)
+ , mpTextEditPV(nullptr)
+ , mpTextEditOutlinerView(nullptr)
+ , mpTextEditWin(nullptr)
+ , pTextEditCursorBuffer(nullptr)
+ , pMacroObj(nullptr)
+ , pMacroPV(nullptr)
+ , pMacroWin(nullptr)
+ , nMacroTol(0)
+ , mbTextEditDontDelete(false)
+ , mbTextEditOnlyOneView(false)
+ , mbTextEditNewObj(false)
+ , mbQuickTextEditMode(true)
+ , mbMacroDown(false)
, mpOldTextEditUndoManager(nullptr)
{
ImpClearVars();
@@ -102,11 +115,11 @@ SdrObjEditView::SdrObjEditView(SdrModel& rSdrModel, OutputDevice* pOut)
SdrObjEditView::~SdrObjEditView()
{
- pTextEditWin = nullptr; // so there's no ShowCursor in SdrEndTextEdit
+ mpTextEditWin = nullptr; // so there's no ShowCursor in SdrEndTextEdit
assert(!IsTextEdit());
if (IsTextEdit())
SdrEndTextEdit();
- pTextEditOutliner.reset();
+ mpTextEditOutliner.reset();
assert(nullptr == mpOldTextEditUndoManager); // should have been reset
}
@@ -210,10 +223,10 @@ void SdrObjEditView::HideSdrPage()
{
lcl_RemoveTextEditOutlinerViews(this, GetSdrPageView(), GetFirstOutputDevice());
- if (pTextEditPV == GetSdrPageView())
+ if (mpTextEditPV == GetSdrPageView())
{
// HideSdrPage() will clear mpPageView, avoid a dangling pointer.
- pTextEditPV = nullptr;
+ mpTextEditPV = nullptr;
}
SdrGlueEditView::HideSdrPage();
@@ -234,7 +247,7 @@ void SdrObjEditView::TakeActionRect(tools::Rectangle& rRect) const
void SdrObjEditView::Notify(SfxBroadcaster& rBC, const SfxHint& rHint)
{
SdrGlueEditView::Notify(rBC, rHint);
- if (pTextEditOutliner != nullptr)
+ if (mpTextEditOutliner != nullptr)
{
// change of printer while editing
if (rHint.GetId() == SfxHintId::ThisIsAnSdrHint)
@@ -243,11 +256,11 @@ void SdrObjEditView::Notify(SfxBroadcaster& rBC, const SfxHint& rHint)
SdrHintKind eKind = pSdrHint->GetKind();
if (eKind == SdrHintKind::RefDeviceChange)
{
- pTextEditOutliner->SetRefDevice(mpModel->GetRefDevice());
+ mpTextEditOutliner->SetRefDevice(mpModel->GetRefDevice());
}
if (eKind == SdrHintKind::DefaultTabChange)
{
- pTextEditOutliner->SetDefTab(mpModel->GetDefaultTabulator());
+ mpTextEditOutliner->SetDefTab(mpModel->GetDefaultTabulator());
}
}
}
@@ -264,7 +277,7 @@ void SdrObjEditView::ModelHasChanged()
SdrTextObj* pTextObj = mxTextEditObj.get();
if (pTextObj != nullptr)
{
- sal_uIntPtr nOutlViewCnt = pTextEditOutliner->GetViewCount();
+ sal_uIntPtr nOutlViewCnt = mpTextEditOutliner->GetViewCount();
bool bAreaChg = false;
bool bAnchorChg = false;
bool bColorChg = false;
@@ -299,34 +312,34 @@ void SdrObjEditView::ModelHasChanged()
if (aNewArea != aOldArea || aEditArea1 != aTextEditArea
|| aMinArea1 != aMinTextEditArea
- || pTextEditOutliner->GetMinAutoPaperSize() != aPaperMin1
- || pTextEditOutliner->GetMaxAutoPaperSize() != aPaperMax1)
+ || mpTextEditOutliner->GetMinAutoPaperSize() != aPaperMin1
+ || mpTextEditOutliner->GetMaxAutoPaperSize() != aPaperMax1)
{
aTextEditArea = aEditArea1;
aMinTextEditArea = aMinArea1;
- pTextEditOutliner->SetUpdateMode(false);
- pTextEditOutliner->SetMinAutoPaperSize(aPaperMin1);
- pTextEditOutliner->SetMaxAutoPaperSize(aPaperMax1);
- pTextEditOutliner->SetPaperSize(Size(0, 0)); // re-format Outliner
+ mpTextEditOutliner->SetUpdateMode(false);
+ mpTextEditOutliner->SetMinAutoPaperSize(aPaperMin1);
+ mpTextEditOutliner->SetMaxAutoPaperSize(aPaperMax1);
+ mpTextEditOutliner->SetPaperSize(Size(0, 0)); // re-format Outliner
if (!bContourFrame)
{
- pTextEditOutliner->ClearPolygon();
- EEControlBits nStat = pTextEditOutliner->GetControlWord();
+ mpTextEditOutliner->ClearPolygon();
+ EEControlBits nStat = mpTextEditOutliner->GetControlWord();
nStat |= EEControlBits::AUTOPAGESIZE;
- pTextEditOutliner->SetControlWord(nStat);
+ mpTextEditOutliner->SetControlWord(nStat);
}
else
{
- EEControlBits nStat = pTextEditOutliner->GetControlWord();
+ EEControlBits nStat = mpTextEditOutliner->GetControlWord();
nStat &= ~EEControlBits::AUTOPAGESIZE;
- pTextEditOutliner->SetControlWord(nStat);
+ mpTextEditOutliner->SetControlWord(nStat);
tools::Rectangle aAnchorRect;
pTextObj->TakeTextAnchorRect(aAnchorRect);
- pTextObj->ImpSetContourPolygon(*pTextEditOutliner, aAnchorRect, true);
+ pTextObj->ImpSetContourPolygon(*mpTextEditOutliner, aAnchorRect, true);
}
for (sal_uIntPtr nOV = 0; nOV < nOutlViewCnt; nOV++)
{
- OutlinerView* pOLV = pTextEditOutliner->GetView(nOV);
+ OutlinerView* pOLV = mpTextEditOutliner->GetView(nOV);
EVControlBits nStat0 = pOLV->GetControlWord();
EVControlBits nStat = nStat0;
// AutoViewSize only if not ContourFrame.
@@ -337,16 +350,16 @@ void SdrObjEditView::ModelHasChanged()
if (nStat != nStat0)
pOLV->SetControlWord(nStat);
}
- pTextEditOutliner->SetUpdateMode(true);
+ mpTextEditOutliner->SetUpdateMode(true);
bAreaChg = true;
}
}
- if (pTextEditOutlinerView != nullptr)
+ if (mpTextEditOutlinerView != nullptr)
{ // check fill and anchor
- EEAnchorMode eOldAnchor = pTextEditOutlinerView->GetAnchorMode();
+ EEAnchorMode eOldAnchor = mpTextEditOutlinerView->GetAnchorMode();
eNewAnchor = pTextObj->GetOutlinerViewAnchorMode();
bAnchorChg = eOldAnchor != eNewAnchor;
- Color aOldColor(pTextEditOutlinerView->GetBackgroundColor());
+ Color aOldColor(mpTextEditOutlinerView->GetBackgroundColor());
aNewColor = GetTextEditBackgroundColor(*this);
bColorChg = aOldColor != aNewColor;
}
@@ -369,7 +382,7 @@ void SdrObjEditView::ModelHasChanged()
{
for (sal_uIntPtr nOV = 0; nOV < nOutlViewCnt; nOV++)
{
- OutlinerView* pOLV = pTextEditOutliner->GetView(nOV);
+ OutlinerView* pOLV = mpTextEditOutliner->GetView(nOV);
{ // invalidate old OutlinerView area
vcl::Window* pWin = pOLV->GetWindow();
tools::Rectangle aTmpRect(aOldArea);
@@ -390,7 +403,7 @@ void SdrObjEditView::ModelHasChanged()
aTextEditArea); // because otherwise, we're not re-anchoring correctly
ImpInvalidateOutlinerView(*pOLV);
}
- pTextEditOutlinerView->ShowCursor();
+ mpTextEditOutlinerView->ShowCursor();
}
}
ImpMakeTextCursorAreaVisible();
@@ -677,7 +690,7 @@ void SdrObjEditView::EditViewSelectionChange() const
}
}
-OutputDevice& SdrObjEditView::EditViewOutputDevice() const { return *pTextEditWin; }
+OutputDevice& SdrObjEditView::EditViewOutputDevice() const { return *mpTextEditWin; }
void SdrObjEditView::TextEditDrawing(SdrPaintWindow& rPaintWindow) const
{
@@ -734,8 +747,8 @@ void SdrObjEditView::ImpPaintOutlinerView(OutlinerView& rOutlView, const tools::
{
const SdrTextObj* pText = GetTextEditObject();
bool bTextFrame(pText && pText->IsTextFrame());
- bool bFitToSize(pTextEditOutliner->GetControlWord() & EEControlBits::STRETCHING);
- bool bModified(pTextEditOutliner->IsModified());
+ bool bFitToSize(mpTextEditOutliner->GetControlWord() & EEControlBits::STRETCHING);
+ bool bModified(mpTextEditOutliner->IsModified());
tools::Rectangle aBlankRect(rOutlView.GetOutputArea());
aBlankRect.Union(aMinTextEditArea);
tools::Rectangle aPixRect(rTargetDevice.LogicToPixel(aBlankRect));
@@ -753,7 +766,7 @@ void SdrObjEditView::ImpPaintOutlinerView(OutlinerView& rOutlView, const tools::
if (!bModified)
{
- pTextEditOutliner->ClearModifyFlag();
+ mpTextEditOutliner->ClearModifyFlag();
}
if (bTextFrame && !bFitToSize)
@@ -853,11 +866,11 @@ OutlinerView* SdrObjEditView::ImpMakeOutlinerView(vcl::Window* pWin, OutlinerVie
bool bContourFrame = pText != nullptr && pText->IsContourTextFrame();
// create OutlinerView
OutlinerView* pOutlView = pGivenView;
- pTextEditOutliner->SetUpdateMode(false);
+ mpTextEditOutliner->SetUpdateMode(false);
if (pOutlView == nullptr)
{
- pOutlView = new OutlinerView(pTextEditOutliner.get(), pWin);
+ pOutlView = new OutlinerView(mpTextEditOutliner.get(), pWin);
}
else
{
@@ -889,11 +902,11 @@ OutlinerView* SdrObjEditView::ImpMakeOutlinerView(vcl::Window* pWin, OutlinerVie
if (pText != nullptr)
{
pOutlView->SetAnchorMode(pText->GetOutlinerViewAnchorMode());
- pTextEditOutliner->SetFixedCellHeight(
+ mpTextEditOutliner->SetFixedCellHeight(
pText->GetMergedItem(SDRATTR_TEXT_USEFIXEDCELLHEIGHT).GetValue());
}
// do update before setting output area so that aTextEditArea can be recalculated
- pTextEditOutliner->SetUpdateMode(true);
+ mpTextEditOutliner->SetUpdateMode(true);
pOutlView->SetOutputArea(aTextEditArea);
ImpInvalidateOutlinerView(*pOutlView);
return pOutlView;
@@ -901,7 +914,7 @@ OutlinerView* SdrObjEditView::ImpMakeOutlinerView(vcl::Window* pWin, OutlinerVie
IMPL_LINK(SdrObjEditView, ImpOutlinerStatusEventHdl, EditStatus&, rEditStat, void)
{
- if (pTextEditOutliner)
+ if (mpTextEditOutliner)
{
SdrTextObj* pTextObj = mxTextEditObj.get();
if (pTextObj)
@@ -913,7 +926,7 @@ IMPL_LINK(SdrObjEditView, ImpOutlinerStatusEventHdl, EditStatus&, rEditStat, voi
void SdrObjEditView::ImpChainingEventHdl()
{
- if (pTextEditOutliner)
+ if (mpTextEditOutliner)
{
SdrTextObj* pTextObj = mxTextEditObj.get();
OutlinerView* pOLV = GetTextEditOutlinerView();
@@ -1053,10 +1066,11 @@ IMPL_LINK(SdrObjEditView, ImpOutlinerCalcFieldValueHdl, EditFieldInfo*, pFI, voi
IMPL_LINK_NOARG(SdrObjEditView, EndTextEditHdl, SdrUndoManager*, void) { SdrEndTextEdit(); }
-SdrUndoManager* SdrObjEditView::getSdrUndoManagerForEnhancedTextEdit() const
+// Default implementation - null UndoManager
+std::unique_ptr<SdrUndoManager> SdrObjEditView::createLocalTextUndoManager()
{
- // default returns registered UndoManager
- return GetModel() ? dynamic_cast<SdrUndoManager*>(GetModel()->GetSdrUndoManager()) : nullptr;
+ SAL_WARN("svx", "SdrObjEditView::createLocalTextUndoManager needs to be overridden");
+ return std::unique_ptr<SdrUndoManager>();
}
bool SdrObjEditView::SdrBeginTextEdit(SdrObject* pObj_, SdrPageView* pPV, vcl::Window* pWin,
@@ -1081,9 +1095,9 @@ bool SdrObjEditView::SdrBeginTextEdit(SdrObject* pObj_, SdrPageView* pPV, vcl::W
pWin->GrabFocus(); // to force the cursor into the edit view
}
- bTextEditDontDelete = bDontDeleteOutliner && pGivenOutliner != nullptr;
- bTextEditOnlyOneView = bOnlyOneView;
- bTextEditNewObj = bIsNewObj;
+ mbTextEditDontDelete = bDontDeleteOutliner && pGivenOutliner != nullptr;
+ mbTextEditOnlyOneView = bOnlyOneView;
+ mbTextEditNewObj = bIsNewObj;
const sal_uInt32 nWinCount(PaintWindowCount());
sal_uInt32 i;
bool bBrk(false);
@@ -1124,44 +1138,44 @@ bool SdrObjEditView::SdrBeginTextEdit(SdrObject* pObj_, SdrPageView* pPV, vcl::W
bBrk = true;
}
- if (pTextEditOutliner)
+ if (mpTextEditOutliner)
{
OSL_FAIL("SdrObjEditView::SdrBeginTextEdit(): Old Outliner still exists.");
- pTextEditOutliner.reset();
+ mpTextEditOutliner.reset();
}
if (!bBrk)
{
- pTextEditWin = pWin;
- pTextEditPV = pPV;
+ mpTextEditWin = pWin;
+ mpTextEditPV = pPV;
mxTextEditObj.reset(pObj);
if (pGivenOutliner)
{
- pTextEditOutliner.reset(pGivenOutliner);
+ mpTextEditOutliner.reset(pGivenOutliner);
pGivenOutliner = nullptr; // so we don't delete it on the error path
}
else
- pTextEditOutliner = SdrMakeOutliner(OutlinerMode::TextObject,
- mxTextEditObj->getSdrModelFromSdrObject());
+ mpTextEditOutliner = SdrMakeOutliner(OutlinerMode::TextObject,
+ mxTextEditObj->getSdrModelFromSdrObject());
{
SvtAccessibilityOptions aOptions;
- pTextEditOutliner->ForceAutoColor(aOptions.GetIsAutomaticFontColor());
+ mpTextEditOutliner->ForceAutoColor(aOptions.GetIsAutomaticFontColor());
}
- aOldCalcFieldValueLink = pTextEditOutliner->GetCalcFieldValueHdl();
+ aOldCalcFieldValueLink = mpTextEditOutliner->GetCalcFieldValueHdl();
// FieldHdl has to be set by SdrBeginTextEdit, because this call an UpdateFields
- pTextEditOutliner->SetCalcFieldValueHdl(
+ mpTextEditOutliner->SetCalcFieldValueHdl(
LINK(this, SdrObjEditView, ImpOutlinerCalcFieldValueHdl));
- pTextEditOutliner->SetBeginPasteOrDropHdl(LINK(this, SdrObjEditView, BeginPasteOrDropHdl));
- pTextEditOutliner->SetEndPasteOrDropHdl(LINK(this, SdrObjEditView, EndPasteOrDropHdl));
+ mpTextEditOutliner->SetBeginPasteOrDropHdl(LINK(this, SdrObjEditView, BeginPasteOrDropHdl));
+ mpTextEditOutliner->SetEndPasteOrDropHdl(LINK(this, SdrObjEditView, EndPasteOrDropHdl));
// It is just necessary to make the visualized page known. Set it.
- pTextEditOutliner->setVisualizedPage(pPV->GetPage());
+ mpTextEditOutliner->setVisualizedPage(pPV->GetPage());
- pTextEditOutliner->SetTextObjNoInit(mxTextEditObj.get());
+ mpTextEditOutliner->SetTextObjNoInit(mxTextEditObj.get());
- if (mxTextEditObj->BegTextEdit(*pTextEditOutliner))
+ if (mxTextEditObj->BegTextEdit(*mpTextEditOutliner))
{
SdrTextObj* pTextObj = mxTextEditObj.get();
DBG_ASSERT(pTextObj, "svx::SdrObjEditView::BegTextEdit(), no text object?");
@@ -1172,9 +1186,9 @@ bool SdrObjEditView::SdrBeginTextEdit(SdrObject* pObj_, SdrPageView* pPV, vcl::W
pTextObj->SetTextAnimationAllowed(false);
// remember old cursor
- if (pTextEditOutliner->GetViewCount() != 0)
+ if (mpTextEditOutliner->GetViewCount() != 0)
{
- pTextEditOutliner->RemoveView(static_cast<size_t>(0));
+ mpTextEditOutliner->RemoveView(static_cast<size_t>(0));
}
// Determine EditArea via TakeTextEditArea.
@@ -1184,7 +1198,7 @@ bool SdrObjEditView::SdrBeginTextEdit(SdrObject* pObj_, SdrPageView* pPV, vcl::W
tools::Rectangle aTextRect;
tools::Rectangle aAnchorRect;
- pTextObj->TakeTextRect(*pTextEditOutliner, aTextRect, true,
+ pTextObj->TakeTextRect(*mpTextEditOutliner, aTextRect, true,
&aAnchorRect /* Give true here, not false */);
if (!pTextObj->IsContourTextFrame())
@@ -1218,19 +1232,19 @@ bool SdrObjEditView::SdrBeginTextEdit(SdrObject* pObj_, SdrPageView* pPV, vcl::W
// to call AdjustMarkHdl() always.
AdjustMarkHdl();
- pTextEditOutlinerView = ImpMakeOutlinerView(pWin, pGivenOutlinerView);
+ mpTextEditOutlinerView = ImpMakeOutlinerView(pWin, pGivenOutlinerView);
- if (!comphelper::LibreOfficeKit::isActive() && pTextEditOutlinerView)
+ if (!comphelper::LibreOfficeKit::isActive() && mpTextEditOutlinerView)
{
// activate visualization of EditView on Overlay, suppress when
// LibreOfficeKit is active
- pTextEditOutlinerView->GetEditView().setEditViewCallbacks(this);
+ mpTextEditOutlinerView->GetEditView().setEditViewCallbacks(this);
const SvtOptionsDrawinglayer aSvtOptionsDrawinglayer;
const Color aHilightColor(aSvtOptionsDrawinglayer.getHilightColor());
const SdrTextObj* pText = GetTextEditObject();
const bool bTextFrame(pText && pText->IsTextFrame());
- const bool bFitToSize(pTextEditOutliner->GetControlWord()
+ const bool bFitToSize(mpTextEditOutliner->GetControlWord()
& EEControlBits::STRETCHING);
const bool bVisualizeSurroundingFrame(bTextFrame && !bFitToSize);
SdrPageView* pPageView = GetSdrPageView();
@@ -1248,7 +1262,8 @@ bool SdrObjEditView::SdrBeginTextEdit(SdrObject* pObj_, SdrPageView* pPV, vcl::W
if (xManager.is())
{
std::unique_ptr<TextEditOverlayObject> pNewTextEditOverlayObject(
- new TextEditOverlayObject(aHilightColor, *pTextEditOutlinerView,
+ new TextEditOverlayObject(aHilightColor,
+ *mpTextEditOutlinerView,
bVisualizeSurroundingFrame));
xManager->add(*pNewTextEditOverlayObject);
@@ -1263,15 +1278,15 @@ bool SdrObjEditView::SdrBeginTextEdit(SdrObject* pObj_, SdrPageView* pPV, vcl::W
}
// check if this view is already inserted
- sal_uIntPtr i2, nCount = pTextEditOutliner->GetViewCount();
+ sal_uIntPtr i2, nCount = mpTextEditOutliner->GetViewCount();
for (i2 = 0; i2 < nCount; i2++)
{
- if (pTextEditOutliner->GetView(i2) == pTextEditOutlinerView)
+ if (mpTextEditOutliner->GetView(i2) == mpTextEditOutlinerView)
break;
}
if (i2 == nCount)
- pTextEditOutliner->InsertView(pTextEditOutlinerView, 0);
+ mpTextEditOutliner->InsertView(mpTextEditOutlinerView, 0);
maHdlList.SetMoveOutside(false);
maHdlList.SetMoveOutside(true);
@@ -1288,7 +1303,7 @@ bool SdrObjEditView::SdrBeginTextEdit(SdrObject* pObj_, SdrPageView* pPV, vcl::W
{
OutlinerView* pOutlView
= ImpMakeOutlinerView(static_cast<vcl::Window*>(&rOutDev), nullptr);
- pTextEditOutliner->InsertView(pOutlView, static_cast<sal_uInt16>(i));
+ mpTextEditOutliner->InsertView(pOutlView, static_cast<sal_uInt16>(i));
}
}
@@ -1315,19 +1330,19 @@ bool SdrObjEditView::SdrBeginTextEdit(SdrObject* pObj_, SdrPageView* pPV, vcl::W
static_cast<vcl::Window*>(&rOutDev), nullptr);
pOutlView->HideCursor();
static_cast<vcl::Window*>(&rOutDev)->SetCursor(nullptr);
- pTextEditOutliner->InsertView(pOutlView);
+ mpTextEditOutliner->InsertView(pOutlView);
}
}
}
}
}
- pTextEditOutlinerView->ShowCursor();
- pTextEditOutliner->SetStatusEventHdl(
+ mpTextEditOutlinerView->ShowCursor();
+ mpTextEditOutliner->SetStatusEventHdl(
LINK(this, SdrObjEditView, ImpOutlinerStatusEventHdl));
if (pTextObj->IsChainable())
{
- pTextEditOutlinerView->SetEndCutPasteLinkHdl(
+ mpTextEditOutlinerView->SetEndCutPasteLinkHdl(
LINK(this, SdrObjEditView, ImpAfterCutOrPasteChainingEventHdl));
}
@@ -1335,7 +1350,7 @@ bool SdrObjEditView::SdrBeginTextEdit(SdrObject* pObj_, SdrPageView* pPV, vcl::W
if (mpItemBrowser != nullptr)
mpItemBrowser->SetDirty();
#endif
- pTextEditOutliner->ClearModifyFlag();
+ mpTextEditOutliner->ClearModifyFlag();
if (pTextObj->IsFitToSize())
{
@@ -1348,7 +1363,7 @@ bool SdrObjEditView::SdrBeginTextEdit(SdrObject* pObj_, SdrPageView* pPV, vcl::W
GetModel()->Broadcast(aHint);
}
- pTextEditOutliner->setVisualizedPage(nullptr);
+ mpTextEditOutliner->setVisualizedPage(nullptr);
if (mxSelectionController.is())
mxSelectionController->onSelectionHasChanged();
@@ -1356,7 +1371,11 @@ bool SdrObjEditView::SdrBeginTextEdit(SdrObject* pObj_, SdrPageView* pPV, vcl::W
if (GetModel() && IsUndoEnabled()
&& !GetModel()->GetDisableTextEditUsesCommonUndoManager())
{
- SdrUndoManager* pSdrUndoManager = getSdrUndoManagerForEnhancedTextEdit();
+ SdrUndoManager* pSdrUndoManager = nullptr;
+ mpLocalTextEditUndoManager = createLocalTextUndoManager();
+
+ if (mpLocalTextEditUndoManager)
+ pSdrUndoManager = mpLocalTextEditUndoManager.get();
if (pSdrUndoManager)
{
@@ -1365,7 +1384,7 @@ bool SdrObjEditView::SdrBeginTextEdit(SdrObject* pObj_, SdrPageView* pPV, vcl::W
// it that text edit starts by setting a callback if it needs to end text edit mode.
assert(nullptr == mpOldTextEditUndoManager);
- mpOldTextEditUndoManager = pTextEditOutliner->SetUndoManager(pSdrUndoManager);
+ mpOldTextEditUndoManager = mpTextEditOutliner->SetUndoManager(pSdrUndoManager);
pSdrUndoManager->SetEndTextEditHdl(LINK(this, SdrObjEditView, EndTextEditHdl));
}
else
@@ -1379,14 +1398,14 @@ bool SdrObjEditView::SdrBeginTextEdit(SdrObject* pObj_, SdrPageView* pPV, vcl::W
}
else
{
- pTextEditOutliner->SetCalcFieldValueHdl(aOldCalcFieldValueLink);
- pTextEditOutliner->SetBeginPasteOrDropHdl(Link<PasteOrDropInfos*, void>());
- pTextEditOutliner->SetEndPasteOrDropHdl(Link<PasteOrDropInfos*, void>());
+ mpTextEditOutliner->SetCalcFieldValueHdl(aOldCalcFieldValueLink);
+ mpTextEditOutliner->SetBeginPasteOrDropHdl(Link<PasteOrDropInfos*, void>());
+ mpTextEditOutliner->SetEndPasteOrDropHdl(Link<PasteOrDropInfos*, void>());
}
}
- if (pTextEditOutliner != nullptr)
+ if (mpTextEditOutliner != nullptr)
{
- pTextEditOutliner->setVisualizedPage(nullptr);
+ mpTextEditOutliner->setVisualizedPage(nullptr);
}
// something went wrong...
@@ -1399,12 +1418,12 @@ bool SdrObjEditView::SdrBeginTextEdit(SdrObject* pObj_, SdrPageView* pPV, vcl::W
pGivenOutlinerView = nullptr;
}
}
- pTextEditOutliner.reset();
+ mpTextEditOutliner.reset();
- pTextEditOutlinerView = nullptr;
+ mpTextEditOutlinerView = nullptr;
mxTextEditObj.reset(nullptr);
- pTextEditPV = nullptr;
- pTextEditWin = nullptr;
+ mpTextEditPV = nullptr;
+ mpTextEditWin = nullptr;
maHdlList.SetMoveOutside(false);
return false;
@@ -1414,23 +1433,23 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
{
SdrEndTextEditKind eRet = SdrEndTextEditKind::Unchanged;
SdrTextObj* pTEObj = mxTextEditObj.get();
- vcl::Window* pTEWin = pTextEditWin;
- OutlinerView* pTEOutlinerView = pTextEditOutlinerView;
+ vcl::Window* pTEWin = mpTextEditWin;
+ OutlinerView* pTEOutlinerView = mpTextEditOutlinerView;
vcl::Cursor* pTECursorBuffer = pTextEditCursorBuffer;
SdrUndoManager* pUndoEditUndoManager = nullptr;
bool bNeedToUndoSavedRedoTextEdit(false);
- if (GetModel() && IsUndoEnabled() && pTEObj && pTextEditOutliner
+ if (GetModel() && IsUndoEnabled() && pTEObj && mpTextEditOutliner
&& !GetModel()->GetDisableTextEditUsesCommonUndoManager())
{
// change back the UndoManager to the remembered original one
- SfxUndoManager* pOriginal = pTextEditOutliner->SetUndoManager(mpOldTextEditUndoManager);
+ SfxUndoManager* pOriginal = mpTextEditOutliner->SetUndoManager(mpOldTextEditUndoManager);
mpOldTextEditUndoManager = nullptr;
if (pOriginal)
{
// check if we got back our document undo manager
- SdrUndoManager* pSdrUndoManager = getSdrUndoManagerForEnhancedTextEdit();
+ SdrUndoManager* pSdrUndoManager = mpLocalTextEditUndoManager.get();
if (pSdrUndoManager && dynamic_cast<SdrUndoManager*>(pOriginal) == pSdrUndoManager)
{
@@ -1462,6 +1481,8 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
"expected document UndoManager (!)");
delete pOriginal;
}
+
+ mpLocalTextEditUndoManager.reset();
}
}
else
@@ -1477,17 +1498,17 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
// if new mechanism was used, clean it up. At cleanup no need to check
// for LibreOfficeKit
- if (pTextEditOutlinerView)
+ if (mpTextEditOutlinerView)
{
- pTextEditOutlinerView->GetEditView().setEditViewCallbacks(nullptr);
+ mpTextEditOutlinerView->GetEditView().setEditViewCallbacks(nullptr);
maTEOverlayGroup.clear();
}
mxTextEditObj.reset(nullptr);
- pTextEditPV = nullptr;
- pTextEditWin = nullptr;
- SdrOutliner* pTEOutliner = pTextEditOutliner.release();
- pTextEditOutlinerView = nullptr;
+ mpTextEditPV = nullptr;
+ mpTextEditWin = nullptr;
+ SdrOutliner* pTEOutliner = mpTextEditOutliner.release();
+ mpTextEditOutlinerView = nullptr;
pTextEditCursorBuffer = nullptr;
aTextEditArea = tools::Rectangle();
@@ -1551,7 +1572,7 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
// check deletion of entire TextObj
std::unique_ptr<SdrUndoAction> pDelUndo;
bool bDelObj = false;
- if (bTextEditNewObj)
+ if (mbTextEditNewObj)
{
bDelObj = pTEObj->IsTextFrame() && !pTEObj->HasText() && !pTEObj->IsEmptyPresObj()
&& !pTEObj->HasFill() && !pTEObj->HasLine();
@@ -1615,7 +1636,7 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
vcl::Window* pWin = pOLV->GetWindow();
tools::Rectangle aRect(pOLV->GetOutputArea());
pTEOutliner->RemoveView(i);
- if (!bTextEditDontDelete || i != 0)
+ if (!mbTextEditDontDelete || i != 0)
{
// may not own the zeroth one
delete pOLV;
@@ -1633,7 +1654,7 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
pWin->SetLineColor(COL_BLACK);
}
// and now the Outliner itself
- if (!bTextEditDontDelete)
+ if (!mbTextEditDontDelete)
delete pTEOutliner;
else
pTEOutliner->Clear();
@@ -1683,19 +1704,19 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
bool SdrObjEditView::IsTextEdit() const { return mxTextEditObj.is(); }
// info about TextEditPageView. Default is 0L.
-SdrPageView* SdrObjEditView::GetTextEditPageView() const { return pTextEditPV; }
+SdrPageView* SdrObjEditView::GetTextEditPageView() const { return mpTextEditPV; }
OutlinerView* SdrObjEditView::ImpFindOutlinerView(vcl::Window const* pWin) const
{
if (pWin == nullptr)
return nullptr;
- if (pTextEditOutliner == nullptr)
+ if (mpTextEditOutliner == nullptr)
return nullptr;
OutlinerView* pNewView = nullptr;
- sal_uIntPtr nWinCount = pTextEditOutliner->GetViewCount();
+ sal_uIntPtr nWinCount = mpTextEditOutliner->GetViewCount();
for (sal_uIntPtr i = 0; i < nWinCount && pNewView == nullptr; i++)
{
- OutlinerView* pView = pTextEditOutliner->GetView(i);
+ OutlinerView* pView = mpTextEditOutliner->GetView(i);
if (pView->GetWindow() == pWin)
pNewView = pView;
}
@@ -1704,17 +1725,17 @@ OutlinerView* SdrObjEditView::ImpFindOutlinerView(vcl::Window const* pWin) const
void SdrObjEditView::SetTextEditWin(vcl::Window* pWin)
{
- if (mxTextEditObj.is() && pWin != nullptr && pWin != pTextEditWin)
+ if (mxTextEditObj.is() && pWin != nullptr && pWin != mpTextEditWin)
{
OutlinerView* pNewView = ImpFindOutlinerView(pWin);
- if (pNewView != nullptr && pNewView != pTextEditOutlinerView)
+ if (pNewView != nullptr && pNewView != mpTextEditOutlinerView)
{
- if (pTextEditOutlinerView != nullptr)
+ if (mpTextEditOutlinerView != nullptr)
{
- pTextEditOutlinerView->HideCursor();
+ mpTextEditOutlinerView->HideCursor();
}
- pTextEditOutlinerView = pNewView;
- pTextEditWin = pWin;
+ mpTextEditOutlinerView = pNewView;
+ mpTextEditWin = pWin;
pWin->GrabFocus(); // Make the cursor blink here as well
pNewView->ShowCursor();
ImpMakeTextCursorAreaVisible();
@@ -1728,7 +1749,7 @@ bool SdrObjEditView::IsTextEditHit(const Point& rHit) const
if (mxTextEditObj.is())
{
tools::Rectangle aEditArea;
- OutlinerView* pOLV = pTextEditOutliner->GetView(0);
+ OutlinerView* pOLV = mpTextEditOutliner->GetView(0);
if (pOLV != nullptr)
{
aEditArea.Union(pOLV->GetOutputArea());
@@ -1739,12 +1760,12 @@ bool SdrObjEditView::IsTextEditHit(const Point& rHit) const
Point aPnt(rHit);
aPnt -= aEditArea.TopLeft();
long nHitTol = 2000;
- OutputDevice* pRef = pTextEditOutliner->GetRefDevice();
+ OutputDevice* pRef = mpTextEditOutliner->GetRefDevice();
if (pRef)
nHitTol = OutputDevice::LogicToLogic(nHitTol, MapUnit::Map100thMM,
pRef->GetMapMode().GetMapUnit());
- bOk = pTextEditOutliner->IsTextPos(aPnt, static_cast<sal_uInt16>(nHitTol));
+ bOk = mpTextEditOutliner->IsTextPos(aPnt, static_cast<sal_uInt16>(nHitTol));
}
}
return bOk;
@@ -1756,7 +1777,7 @@ bool SdrObjEditView::IsTextEditFrameHit(const Point& rHit) const
if (mxTextEditObj.is())
{
SdrTextObj* pText = mxTextEditObj.get();
- OutlinerView* pOLV = pTextEditOutliner->GetView(0);
+ OutlinerView* pOLV = mpTextEditOutliner->GetView(0);
if (pOLV)
{
vcl::Window* pWin = pOLV->GetWindow();
@@ -1805,7 +1826,7 @@ TextChainCursorManager* SdrObjEditView::ImpHandleMotionThroughBoxesKeyInput(cons
bool SdrObjEditView::KeyInput(const KeyEvent& rKEvt, vcl::Window* pWin)
{
- if (pTextEditOutlinerView)
+ if (mpTextEditOutlinerView)
{
/* Start special handling of keys within a chain */
// We possibly move to another box before any handling
@@ -1816,11 +1837,11 @@ bool SdrObjEditView::KeyInput(const KeyEvent& rKEvt, vcl::Window* pWin)
return true;
/* End special handling of keys within a chain */
- if (pTextEditOutlinerView->PostKeyEvent(rKEvt, pWin))
+ if (mpTextEditOutlinerView->PostKeyEvent(rKEvt, pWin))
{
if (mpModel)
{
- if (pTextEditOutliner && pTextEditOutliner->IsModified())
+ if (mpTextEditOutliner && mpTextEditOutliner->IsModified())
mpModel->SetChanged();
}
@@ -1829,7 +1850,7 @@ bool SdrObjEditView::KeyInput(const KeyEvent& rKEvt, vcl::Window* pWin)
ImpMoveCursorAfterChainingEvent(xCursorManager.get());
/* End chaining processing */
- if (pWin != nullptr && pWin != pTextEditWin)
+ if (pWin != nullptr && pWin != mpTextEditWin)
SetTextEditWin(pWin);
#ifdef DBG_UTIL
if (mpItemBrowser != nullptr)
@@ -1844,16 +1865,16 @@ bool SdrObjEditView::KeyInput(const KeyEvent& rKEvt, vcl::Window* pWin)
bool SdrObjEditView::MouseButtonDown(const MouseEvent& rMEvt, OutputDevice* pWin)
{
- if (pTextEditOutlinerView != nullptr)
+ if (mpTextEditOutlinerView != nullptr)
{
- bool bPostIt = pTextEditOutliner->IsInSelectionMode();
+ bool bPostIt = mpTextEditOutliner->IsInSelectionMode();
if (!bPostIt)
{
Point aPt(rMEvt.GetPosPixel());
if (pWin != nullptr)
aPt = pWin->PixelToLogic(aPt);
- else if (pTextEditWin != nullptr)
- aPt = pTextEditWin->PixelToLogic(aPt);
+ else if (mpTextEditWin != nullptr)
+ aPt = mpTextEditWin->PixelToLogic(aPt);
bPostIt = IsTextEditHit(aPt);
}
if (bPostIt)
@@ -1861,7 +1882,7 @@ bool SdrObjEditView::MouseButtonDown(const MouseEvent& rMEvt, OutputDevice* pWin
Point aPixPos(rMEvt.GetPosPixel());
if (pWin)
{
- tools::Rectangle aR(pWin->LogicToPixel(pTextEditOutlinerView->GetOutputArea()));
+ tools::Rectangle aR(pWin->LogicToPixel(mpTextEditOutlinerView->GetOutputArea()));
if (aPixPos.X() < aR.Left())
aPixPos.setX(aR.Left());
if (aPixPos.X() > aR.Right())
@@ -1873,9 +1894,9 @@ bool SdrObjEditView::MouseButtonDown(const MouseEvent& rMEvt, OutputDevice* pWin
}
MouseEvent aMEvt(aPixPos, rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(),
rMEvt.GetModifier());
- if (pTextEditOutlinerView->MouseButtonDown(aMEvt))
+ if (mpTextEditOutlinerView->MouseButtonDown(aMEvt))
{
- if (pWin != nullptr && pWin != pTextEditWin
+ if (pWin != nullptr && pWin != mpTextEditWin
&& pWin->GetOutDevType() == OUTDEV_WINDOW)
SetTextEditWin(static_cast<vcl::Window*>(pWin));
#ifdef DBG_UTIL
@@ -1892,22 +1913,22 @@ bool SdrObjEditView::MouseButtonDown(const MouseEvent& rMEvt, OutputDevice* pWin
bool SdrObjEditView::MouseButtonUp(const MouseEvent& rMEvt, OutputDevice* pWin)
{
- if (pTextEditOutlinerView != nullptr)
+ if (mpTextEditOutlinerView != nullptr)
{
- bool bPostIt = pTextEditOutliner->IsInSelectionMode();
+ bool bPostIt = mpTextEditOutliner->IsInSelectionMode();
if (!bPostIt)
{
Point aPt(rMEvt.GetPosPixel());
if (pWin != nullptr)
aPt = pWin->PixelToLogic(aPt);
- else if (pTextEditWin != nullptr)
- aPt = pTextEditWin->PixelToLogic(aPt);
+ else if (mpTextEditWin != nullptr)
+ aPt = mpTextEditWin->PixelToLogic(aPt);
bPostIt = IsTextEditHit(aPt);
}
if (bPostIt && pWin)
{
Point aPixPos(rMEvt.GetPosPixel());
- tools::Rectangle aR(pWin->LogicToPixel(pTextEditOutlinerView->GetOutputArea()));
+ tools::Rectangle aR(pWin->LogicToPixel(mpTextEditOutlinerView->GetOutputArea()));
if (aPixPos.X() < aR.Left())
aPixPos.setX(aR.Left());
if (aPixPos.X() > aR.Right())
@@ -1918,7 +1939,7 @@ bool SdrObjEditView::MouseButtonUp(const MouseEvent& rMEvt, OutputDevice* pWin)
aPixPos.setY(aR.Bottom());
MouseEvent aMEvt(aPixPos, rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(),
rMEvt.GetModifier());
- if (pTextEditOutlinerView->MouseButtonUp(aMEvt))
+ if (mpTextEditOutlinerView->MouseButtonUp(aMEvt))
{
#ifdef DBG_UTIL
if (mpItemBrowser != nullptr)
@@ -1934,27 +1955,27 @@ bool SdrObjEditView::MouseButtonUp(const MouseEvent& rMEvt, OutputDevice* pWin)
bool SdrObjEditView::MouseMove(const MouseEvent& rMEvt, OutputDevice* pWin)
{
- if (pTextEditOutlinerView != nullptr)
+ if (mpTextEditOutlinerView != nullptr)
{
- bool bSelMode = pTextEditOutliner->IsInSelectionMode();
+ bool bSelMode = mpTextEditOutliner->IsInSelectionMode();
bool bPostIt = bSelMode;
if (!bPostIt)
{
Point aPt(rMEvt.GetPosPixel());
if (pWin)
aPt = pWin->PixelToLogic(aPt);
- else if (pTextEditWin)
- aPt = pTextEditWin->PixelToLogic(aPt);
+ else if (mpTextEditWin)
+ aPt = mpTextEditWin->PixelToLogic(aPt);
bPostIt = IsTextEditHit(aPt);
}
if (bPostIt)
{
Point aPixPos(rMEvt.GetPosPixel());
- tools::Rectangle aR(pTextEditOutlinerView->GetOutputArea());
+ tools::Rectangle aR(mpTextEditOutlinerView->GetOutputArea());
if (pWin)
aR = pWin->LogicToPixel(aR);
- else if (pTextEditWin)
- aR = pTextEditWin->LogicToPixel(aR);
+ else if (mpTextEditWin)
+ aR = mpTextEditWin->LogicToPixel(aR);
if (aPixPos.X() < aR.Left())
aPixPos.setX(aR.Left());
if (aPixPos.X() > aR.Right())
@@ -1965,7 +1986,7 @@ bool SdrObjEditView::MouseMove(const MouseEvent& rMEvt, OutputDevice* pWin)
aPixPos.setY(aR.Bottom());
MouseEvent aMEvt(aPixPos, rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(),
rMEvt.GetModifier());
- if (pTextEditOutlinerView->MouseMove(aMEvt) && bSelMode)
+ if (mpTextEditOutlinerView->MouseMove(aMEvt) && bSelMode)
{
#ifdef DBG_UTIL
if (mpItemBrowser != nullptr)
@@ -1982,18 +2003,18 @@ bool SdrObjEditView::MouseMove(const MouseEvent& rMEvt, OutputDevice* pWin)
bool SdrObjEditView::Command(const CommandEvent& rCEvt, vcl::Window* pWin)
{
// as long as OutlinerView returns a sal_Bool, it only gets CommandEventId::StartDrag
- if (pTextEditOutlinerView != nullptr)
+ if (mpTextEditOutlinerView != nullptr)
{
if (rCEvt.GetCommand() == CommandEventId::StartDrag)
{
- bool bPostIt = pTextEditOutliner->IsInSelectionMode() || !rCEvt.IsMouseEvent();
+ bool bPostIt = mpTextEditOutliner->IsInSelectionMode() || !rCEvt.IsMouseEvent();
if (!bPostIt && rCEvt.IsMouseEvent())
{
Point aPt(rCEvt.GetMousePosPixel());
if (pWin != nullptr)
aPt = pWin->PixelToLogic(aPt);
- else if (pTextEditWin != nullptr)
- aPt = pTextEditWin->PixelToLogic(aPt);
+ else if (mpTextEditWin != nullptr)
+ aPt = mpTextEditWin->PixelToLogic(aPt);
bPostIt = IsTextEditHit(aPt);
}
if (bPostIt)
@@ -2001,7 +2022,8 @@ bool SdrObjEditView::Command(const CommandEvent& rCEvt, vcl::Window* pWin)
Point aPixPos(rCEvt.GetMousePosPixel());
if (rCEvt.IsMouseEvent() && pWin)
{
- tools::Rectangle aR(pWin->LogicToPixel(pTextEditOutlinerView->GetOutputArea()));
+ tools::Rectangle aR(
+ pWin->LogicToPixel(mpTextEditOutlinerView->GetOutputArea()));
if (aPixPos.X() < aR.Left())
aPixPos.setX(aR.Left());
if (aPixPos.X() > aR.Right())
@@ -2013,8 +2035,8 @@ bool SdrObjEditView::Command(const CommandEvent& rCEvt, vcl::Window* pWin)
}
CommandEvent aCEvt(aPixPos, rCEvt.GetCommand(), rCEvt.IsMouseEvent());
// Command is void at the OutlinerView, sadly
- pTextEditOutlinerView->Command(aCEvt);
- if (pWin != nullptr && pWin != pTextEditWin)
+ mpTextEditOutlinerView->Command(aCEvt);
+ if (pWin != nullptr && pWin != mpTextEditWin)
SetTextEditWin(pWin);
#ifdef DBG_UTIL
if (mpItemBrowser != nullptr)
@@ -2026,12 +2048,12 @@ bool SdrObjEditView::Command(const CommandEvent& rCEvt, vcl::Window* pWin)
}
else
{
- pTextEditOutlinerView->Command(rCEvt);
+ mpTextEditOutlinerView->Command(rCEvt);
if (mpModel && comphelper::LibreOfficeKit::isActive())
{
// It could execute CommandEventId::ExtTextInput, while SdrObjEditView::KeyInput
// isn't called
- if (pTextEditOutliner && pTextEditOutliner->IsModified())
+ if (mpTextEditOutliner && mpTextEditOutliner->IsModified())
mpModel->SetChanged();
}
return true;
@@ -2043,24 +2065,25 @@ bool SdrObjEditView::Command(const CommandEvent& rCEvt, vcl::Window* pWin)
bool SdrObjEditView::ImpIsTextEditAllSelected() const
{
bool bRet = false;
- if (pTextEditOutliner != nullptr && pTextEditOutlinerView != nullptr)
+ if (mpTextEditOutliner != nullptr && mpTextEditOutlinerView != nullptr)
{
- if (SdrTextObj::HasTextImpl(pTextEditOutliner.get()))
+ if (SdrTextObj::HasTextImpl(mpTextEditOutliner.get()))
{
- const sal_Int32 nParaCnt = pTextEditOutliner->GetParagraphCount();
- Paragraph* pLastPara = pTextEditOutliner->GetParagraph(nParaCnt > 1 ? nParaCnt - 1 : 0);
+ const sal_Int32 nParaCnt = mpTextEditOutliner->GetParagraphCount();
+ Paragraph* pLastPara
+ = mpTextEditOutliner->GetParagraph(nParaCnt > 1 ? nParaCnt - 1 : 0);
- ESelection aESel(pTextEditOutlinerView->GetSelection());
+ ESelection aESel(mpTextEditOutlinerView->GetSelection());
if (aESel.nStartPara == 0 && aESel.nStartPos == 0 && aESel.nEndPara == (nParaCnt - 1))
{
- if (pTextEditOutliner->GetText(pLastPara).getLength() == aESel.nEndPos)
+ if (mpTextEditOutliner->GetText(pLastPara).getLength() == aESel.nEndPos)
bRet = true;
}
// in case the selection was done backwards
if (!bRet && aESel.nEndPara == 0 && aESel.nEndPos == 0
&& aESel.nStartPara == (nParaCnt - 1))
{
- if (pTextEditOutliner->GetText(pLastPara).getLength() == aESel.nStartPos)
+ if (mpTextEditOutliner->GetText(pLastPara).getLength() == aESel.nStartPos)
bRet = true;
}
}
@@ -2074,15 +2097,15 @@ bool SdrObjEditView::ImpIsTextEditAllSelected() const
void SdrObjEditView::ImpMakeTextCursorAreaVisible()
{
- if (pTextEditOutlinerView != nullptr && pTextEditWin != nullptr)
+ if (mpTextEditOutlinerView != nullptr && mpTextEditWin != nullptr)
{
- vcl::Cursor* pCsr = pTextEditWin->GetCursor();
+ vcl::Cursor* pCsr = mpTextEditWin->GetCursor();
if (pCsr != nullptr)
{
Size aSiz(pCsr->GetSize());
if (aSiz.Width() != 0 && aSiz.Height() != 0)
{
- MakeVisible(tools::Rectangle(pCsr->GetPos(), aSiz), *pTextEditWin);
+ MakeVisible(tools::Rectangle(pCsr->GetPos(), aSiz), *mpTextEditWin);
}
}
}
@@ -2097,8 +2120,8 @@ SvtScriptType SdrObjEditView::GetScriptType() const
if (mxTextEditObj->GetOutlinerParaObject())
nScriptType = mxTextEditObj->GetOutlinerParaObject()->GetTextObject().GetScriptType();
- if (pTextEditOutlinerView)
- nScriptType = pTextEditOutlinerView->GetSelectedScriptType();
+ if (mpTextEditOutlinerView)
+ nScriptType = mpTextEditOutlinerView->GetSelectedScriptType();
}
else
{
@@ -2129,10 +2152,10 @@ void SdrObjEditView::GetAttributes(SfxItemSet& rTargetSet, bool bOnlyHardAttr) c
if (IsTextEdit())
{
- DBG_ASSERT(pTextEditOutlinerView != nullptr,
- "SdrObjEditView::GetAttributes(): pTextEditOutlinerView=NULL");
- DBG_ASSERT(pTextEditOutliner != nullptr,
- "SdrObjEditView::GetAttributes(): pTextEditOutliner=NULL");
+ DBG_ASSERT(mpTextEditOutlinerView != nullptr,
+ "SdrObjEditView::GetAttributes(): mpTextEditOutlinerView=NULL");
+ DBG_ASSERT(mpTextEditOutliner != nullptr,
+ "SdrObjEditView::GetAttributes(): mpTextEditOutliner=NULL");
// take care of bOnlyHardAttr(!)
if (!bOnlyHardAttr && mxTextEditObj->GetStyleSheet())
@@ -2141,10 +2164,10 @@ void SdrObjEditView::GetAttributes(SfxItemSet& rTargetSet, bool bOnlyHardAttr) c
// add object attributes
rTargetSet.Put(mxTextEditObj->GetMergedItemSet());
- if (pTextEditOutlinerView)
+ if (mpTextEditOutlinerView)
{
// FALSE= regard InvalidItems as "holes," not as Default
- rTargetSet.Put(pTextEditOutlinerView->GetAttribs(), false);
+ rTargetSet.Put(mpTextEditOutlinerView->GetAttribs(), false);
}
if (GetMarkedObjectCount() == 1 && GetMarkedObjectByIndex(0) == mxTextEditObj.get())
@@ -2161,7 +2184,7 @@ void SdrObjEditView::GetAttributes(SfxItemSet& rTargetSet, bool bOnlyHardAttr) c
bool SdrObjEditView::SetAttributes(const SfxItemSet& rSet, bool bReplaceAll)
{
bool bRet = false;
- bool bTextEdit = pTextEditOutlinerView != nullptr && mxTextEditObj.is();
+ bool bTextEdit = mpTextEditOutlinerView != nullptr && mxTextEditObj.is();
bool bAllTextSelected = ImpIsTextEditAllSelected();
const SfxItemSet* pSet = &rSet;
@@ -2291,11 +2314,11 @@ bool SdrObjEditView::SetAttributes(const SfxItemSet& rSet, bool bReplaceAll)
// and now the attributes to the EditEngine
if (bReplaceAll)
{
- pTextEditOutlinerView->RemoveAttribs(true);
+ mpTextEditOutlinerView->RemoveAttribs(true);
}
- pTextEditOutlinerView->SetAttribs(rSet);
+ mpTextEditOutlinerView->SetAttribs(rSet);
- Outliner* pTEOutliner = pTextEditOutlinerView->GetOutliner();
+ Outliner* pTEOutliner = mpTextEditOutlinerView->GetOutliner();
if (mpModel && pTEOutliner && pTEOutliner->IsModified())
mpModel->SetChanged();
@@ -2321,9 +2344,9 @@ SfxStyleSheet* SdrObjEditView::GetStyleSheet() const
return pSheet;
}
- if (pTextEditOutlinerView)
+ if (mpTextEditOutlinerView)
{
- pSheet = pTextEditOutlinerView->GetStyleSheet();
+ pSheet = mpTextEditOutlinerView->GetStyleSheet();
}
else
{
@@ -2342,9 +2365,9 @@ void SdrObjEditView::SetStyleSheet(SfxStyleSheet* pStyleSheet, bool bDontRemoveH
// if we are currently in edit mode we must also set the stylesheet
// on all paragraphs in the Outliner for the edit view
- if (nullptr != pTextEditOutlinerView)
+ if (nullptr != mpTextEditOutlinerView)
{
- Outliner* pOutliner = pTextEditOutlinerView->GetOutliner();
+ Outliner* pOutliner = mpTextEditOutlinerView->GetOutliner();
const sal_Int32 nParaCount = pOutliner->GetParagraphCount();
for (sal_Int32 nPara = 0; nPara < nParaCount; nPara++)
@@ -2360,10 +2383,10 @@ void SdrObjEditView::AddWindowToPaintView(OutputDevice* pNewWin, vcl::Window* pW
{
SdrGlueEditView::AddWindowToPaintView(pNewWin, pWindow);
- if (mxTextEditObj.is() && !bTextEditOnlyOneView && pNewWin->GetOutDevType() == OUTDEV_WINDOW)
+ if (mxTextEditObj.is() && !mbTextEditOnlyOneView && pNewWin->GetOutDevType() == OUTDEV_WINDOW)
{
OutlinerView* pOutlView = ImpMakeOutlinerView(static_cast<vcl::Window*>(pNewWin), nullptr);
- pTextEditOutliner->InsertView(pOutlView);
+ mpTextEditOutliner->InsertView(pOutlView);
}
}
@@ -2371,15 +2394,15 @@ void SdrObjEditView::DeleteWindowFromPaintView(OutputDevice* pOldWin)
{
SdrGlueEditView::DeleteWindowFromPaintView(pOldWin);
- if (mxTextEditObj.is() && !bTextEditOnlyOneView && pOldWin->GetOutDevType() == OUTDEV_WINDOW)
+ if (mxTextEditObj.is() && !mbTextEditOnlyOneView && pOldWin->GetOutDevType() == OUTDEV_WINDOW)
{
- for (sal_uIntPtr i = pTextEditOutliner->GetViewCount(); i > 0;)
+ for (sal_uIntPtr i = mpTextEditOutliner->GetViewCount(); i > 0;)
{
i--;
- OutlinerView* pOLV = pTextEditOutliner->GetView(i);
+ OutlinerView* pOLV = mpTextEditOutliner->GetView(i);
if (pOLV && pOLV->GetWindow() == static_cast<vcl::Window*>(pOldWin))
{
- pTextEditOutliner->RemoveView(i);
+ mpTextEditOutliner->RemoveView(i);
}
}
}
@@ -2389,7 +2412,7 @@ void SdrObjEditView::DeleteWindowFromPaintView(OutputDevice* pOldWin)
bool SdrObjEditView::IsTextEditInSelectionMode() const
{
- return pTextEditOutliner != nullptr && pTextEditOutliner->IsInSelectionMode();
+ return mpTextEditOutliner != nullptr && mpTextEditOutliner->IsInSelectionMode();
}
// MacroMode
@@ -2404,7 +2427,7 @@ void SdrObjEditView::BegMacroObj(const Point& rPnt, short nTol, SdrObject* pObj,
pMacroObj = pObj;
pMacroPV = pPV;
pMacroWin = pWin;
- bMacroDown = false;
+ mbMacroDown = false;
nMacroTol = sal_uInt16(nTol);
aMacroDownPos = rPnt;
MovMacroObj(rPnt);
@@ -2413,7 +2436,7 @@ void SdrObjEditView::BegMacroObj(const Point& rPnt, short nTol, SdrObject* pObj,
void SdrObjEditView::ImpMacroUp(const Point& rUpPos)
{
- if (pMacroObj != nullptr && bMacroDown)
+ if (pMacroObj != nullptr && mbMacroDown)
{
SdrObjMacroHitRec aHitRec;
aHitRec.aPos = rUpPos;
@@ -2421,13 +2444,13 @@ void SdrObjEditView::ImpMacroUp(const Point& rUpPos)
aHitRec.pVisiLayer = &pMacroPV->GetVisibleLayers();
aHitRec.pPageView = pMacroPV;
pMacroObj->PaintMacro(*pMacroWin, tools::Rectangle(), aHitRec);
- bMacroDown = false;
+ mbMacroDown = false;
}
}
void SdrObjEditView::ImpMacroDown(const Point& rDownPos)
{
- if (pMacroObj != nullptr && !bMacroDown)
+ if (pMacroObj != nullptr && !mbMacroDown)
{
SdrObjMacroHitRec aHitRec;
aHitRec.aPos = rDownPos;
@@ -2435,7 +2458,7 @@ void SdrObjEditView::ImpMacroDown(const Point& rDownPos)
aHitRec.pVisiLayer = &pMacroPV->GetVisibleLayers();
aHitRec.pPageView = pMacroPV;
pMacroObj->PaintMacro(*pMacroWin, tools::Rectangle(), aHitRec);
- bMacroDown = true;
+ mbMacroDown = true;
}
}
@@ -2469,7 +2492,7 @@ void SdrObjEditView::BrkMacroObj()
bool SdrObjEditView::EndMacroObj()
{
- if (pMacroObj != nullptr && bMacroDown)
+ if (pMacroObj != nullptr && mbMacroDown)
{
ImpMacroUp(aMacroDownPos);
SdrObjMacroHitRec aHitRec;
@@ -2587,14 +2610,14 @@ sal_uInt16 SdrObjEditView::GetSelectionLevel() const
sal_uInt16 nLevel = 0xFFFF;
if (IsTextEdit())
{
- DBG_ASSERT(pTextEditOutlinerView != nullptr,
- "SdrObjEditView::GetAttributes(): pTextEditOutlinerView=NULL");
- DBG_ASSERT(pTextEditOutliner != nullptr,
- "SdrObjEditView::GetAttributes(): pTextEditOutliner=NULL");
- if (pTextEditOutlinerView)
+ DBG_ASSERT(mpTextEditOutlinerView != nullptr,
+ "SdrObjEditView::GetAttributes(): mpTextEditOutlinerView=NULL");
+ DBG_ASSERT(mpTextEditOutliner != nullptr,
+ "SdrObjEditView::GetAttributes(): mpTextEditOutliner=NULL");
+ if (mpTextEditOutlinerView)
{
//start and end position
- ESelection aSelect = pTextEditOutlinerView->GetSelection();
+ ESelection aSelect = mpTextEditOutlinerView->GetSelection();
sal_uInt16 nStartPara = ::std::min(aSelect.nStartPara, aSelect.nEndPara);
sal_uInt16 nEndPara = ::std::max(aSelect.nStartPara, aSelect.nEndPara);
//get level from each paragraph
@@ -2602,7 +2625,7 @@ sal_uInt16 SdrObjEditView::GetSelectionLevel() const
for (sal_uInt16 nPara = nStartPara; nPara <= nEndPara; nPara++)
{
sal_uInt16 nParaDepth
- = 1 << static_cast<sal_uInt16>(pTextEditOutliner->GetDepth(nPara));
+ = 1 << static_cast<sal_uInt16>(mpTextEditOutliner->GetDepth(nPara));
if (!(nLevel & nParaDepth))
nLevel += nParaDepth;
}
diff --git a/svx/source/svdraw/svdmrkv.cxx b/svx/source/svdraw/svdmrkv.cxx
index 61f7d472ecd6..caf9321b41dd 100644
--- a/svx/source/svdraw/svdmrkv.cxx
+++ b/svx/source/svdraw/svdmrkv.cxx
@@ -251,9 +251,9 @@ void SdrMarkView::ModelHasChanged()
{
//TODO: Is MarkedObjRect valid at this point?
tools::Rectangle aSelection(GetMarkedObjRect());
- OString sSelection;
+ tools::Rectangle* pResultRect;
if (aSelection.IsEmpty())
- sSelection = "EMPTY";
+ pResultRect = nullptr;
else
{
sal_uInt32 nTotalPaintWindows = this->PaintWindowCount();
@@ -282,11 +282,11 @@ void SdrMarkView::ModelHasChanged()
}
}
- sSelection = aSelection.toString();
+ pResultRect = &aSelection;
}
if(SfxViewShell* pViewShell = GetSfxViewShell())
- SfxLokHelper::notifyInvalidation(pViewShell, sSelection);
+ SfxLokHelper::notifyInvalidation(pViewShell, pResultRect);
}
}
@@ -1108,7 +1108,7 @@ void SdrMarkView::SetMarkHandlesForLOKit(tools::Rectangle const & rRect, SfxView
boost::property_tree::write_json(aStream, aTableJsonTree);
pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_TABLE_SELECTED, aStream.str().c_str());
}
- else
+ else if (!getSdrModelFromSdrView().IsWriter())
{
pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_TABLE_SELECTED, "{}");
}
diff --git a/svx/source/svdraw/svdoole2.cxx b/svx/source/svdraw/svdoole2.cxx
index 16617ecaf94f..f957f9382d57 100644
--- a/svx/source/svdraw/svdoole2.cxx
+++ b/svx/source/svdraw/svdoole2.cxx
@@ -78,6 +78,7 @@
#include <sdr/contact/viewcontactofsdrole2obj.hxx>
#include <svx/svdograf.hxx>
#include <sdr/properties/oleproperties.hxx>
+#include <svx/unoshape.hxx>
#include <svx/xlineit0.hxx>
#include <svx/xlnclit.hxx>
#include <svx/xbtmpit.hxx>
@@ -598,6 +599,35 @@ void SdrEmbedObjectLink::Closed()
SvBaseLink::Closed();
}
+SdrIFrameLink::SdrIFrameLink(SdrOle2Obj* pObject)
+ : ::sfx2::SvBaseLink(::SfxLinkUpdateMode::ONCALL, SotClipboardFormatId::SVXB)
+ , m_pObject(pObject)
+{
+ SetSynchron( false );
+}
+
+::sfx2::SvBaseLink::UpdateResult SdrIFrameLink::DataChanged(
+ const OUString&, const uno::Any& )
+{
+ uno::Reference<embed::XEmbeddedObject> xObject = m_pObject->GetObjRef();
+ uno::Reference<embed::XCommonEmbedPersist> xPersObj(xObject, uno::UNO_QUERY);
+ if (xPersObj.is())
+ {
+ // let the IFrameObject reload the link
+ try
+ {
+ xPersObj->reload(uno::Sequence<beans::PropertyValue>(), uno::Sequence<beans::PropertyValue>());
+ }
+ catch (const uno::Exception&)
+ {
+ }
+
+ m_pObject->SetChanged();
+ }
+
+ return SUCCESS;
+}
+
class SdrOle2ObjImpl
{
public:
@@ -615,7 +645,7 @@ public:
bool mbLoadingOLEObjectFailed:1; // New local var to avoid repeated loading if load of OLE2 fails
bool mbConnected:1;
- SdrEmbedObjectLink* mpObjectLink;
+ sfx2::SvBaseLink* mpObjectLink;
OUString maLinkURL;
rtl::Reference<SvxUnoShapeModifyListener> mxModifyListener;
@@ -815,7 +845,7 @@ bool SdrOle2Obj::IsEmpty() const
return !mpImpl->mxObjRef.is();
}
-void SdrOle2Obj::Connect()
+void SdrOle2Obj::Connect(SvxOle2Shape* pCreator)
{
if( IsEmptyPresObj() )
return;
@@ -828,7 +858,7 @@ void SdrOle2Obj::Connect()
return;
}
- Connect_Impl();
+ Connect_Impl(pCreator);
AddListeners_Impl();
}
@@ -927,24 +957,51 @@ void SdrOle2Obj::CheckFileLink_Impl()
{
try
{
- uno::Reference< embed::XLinkageSupport > xLinkSupport( mpImpl->mxObjRef.GetObject(), uno::UNO_QUERY );
+ uno::Reference<embed::XEmbeddedObject> xObject = mpImpl->mxObjRef.GetObject();
+ if (!xObject)
+ return;
- if ( xLinkSupport.is() && xLinkSupport->isLink() )
- {
- OUString aLinkURL = xLinkSupport->getLinkURL();
+ bool bIFrame = false;
- if ( !aLinkURL.isEmpty() )
+ OUString aLinkURL;
+ uno::Reference<embed::XLinkageSupport> xLinkSupport(xObject, uno::UNO_QUERY);
+ if (xLinkSupport)
+ {
+ if (xLinkSupport->isLink())
+ aLinkURL = xLinkSupport->getLinkURL();
+ }
+ else
+ {
+ // get IFrame (Floating Frames) listed and updatable from the
+ // manage links dialog
+ SvGlobalName aClassId(xObject->getClassID());
+ if (aClassId == SvGlobalName(SO3_IFRAME_CLASSID))
{
- // this is a file link so the model link manager should handle it
- sfx2::LinkManager* pLinkManager(getSdrModelFromSdrObject().GetLinkManager());
+ uno::Reference<beans::XPropertySet> xSet(xObject->getComponent(), uno::UNO_QUERY);
+ if (xSet.is())
+ xSet->getPropertyValue("FrameURL") >>= aLinkURL;
+ bIFrame = true;
+ }
+ }
+
+ if (!aLinkURL.isEmpty()) // this is a file link so the model link manager should handle it
+ {
+ sfx2::LinkManager* pLinkManager(getSdrModelFromSdrObject().GetLinkManager());
- if ( pLinkManager )
+ if ( pLinkManager )
+ {
+ SdrEmbedObjectLink* pEmbedObjectLink = nullptr;
+ if (!bIFrame)
{
- mpImpl->mpObjectLink = new SdrEmbedObjectLink( this );
- mpImpl->maLinkURL = aLinkURL;
- pLinkManager->InsertFileLink( *mpImpl->mpObjectLink, OBJECT_CLIENT_OLE, aLinkURL );
- mpImpl->mpObjectLink->Connect();
+ pEmbedObjectLink = new SdrEmbedObjectLink(this);
+ mpImpl->mpObjectLink = pEmbedObjectLink;
}
+ else
+ mpImpl->mpObjectLink = new SdrIFrameLink(this);
+ mpImpl->maLinkURL = aLinkURL;
+ pLinkManager->InsertFileLink( *mpImpl->mpObjectLink, OBJECT_CLIENT_OLE, aLinkURL );
+ if (pEmbedObjectLink)
+ pEmbedObjectLink->Connect();
}
}
}
@@ -955,7 +1012,7 @@ void SdrOle2Obj::CheckFileLink_Impl()
}
}
-void SdrOle2Obj::Connect_Impl()
+void SdrOle2Obj::Connect_Impl(SvxOle2Shape* pCreator)
{
if(!mpImpl->aPersistName.isEmpty() )
{
@@ -995,6 +1052,17 @@ void SdrOle2Obj::Connect_Impl()
}
}
+ if (pCreator)
+ {
+ OUString sFrameURL(pCreator->GetAndClearInitialFrameURL());
+ if (!sFrameURL.isEmpty() && svt::EmbeddedObjectRef::TryRunningState(mpImpl->mxObjRef.GetObject()))
+ {
+ uno::Reference<beans::XPropertySet> xSet(mpImpl->mxObjRef->getComponent(), uno::UNO_QUERY);
+ if (xSet.is())
+ xSet->setPropertyValue("FrameURL", uno::Any(sFrameURL));
+ }
+ }
+
if ( mpImpl->mxObjRef.is() )
{
if ( !mpImpl->mxLightClient.is() )
@@ -1308,14 +1376,14 @@ SdrObjectUniquePtr SdrOle2Obj::getFullDragClone() const
return createSdrGrafObjReplacement(false);
}
-void SdrOle2Obj::SetPersistName( const OUString& rPersistName )
+void SdrOle2Obj::SetPersistName( const OUString& rPersistName, SvxOle2Shape* pCreator )
{
DBG_ASSERT( mpImpl->aPersistName.isEmpty(), "Persist name changed!");
mpImpl->aPersistName = rPersistName;
mpImpl->mbLoadingOLEObjectFailed = false;
- Connect();
+ Connect(pCreator);
SetChanged();
}
diff --git a/svx/source/svdraw/svdpntv.cxx b/svx/source/svdraw/svdpntv.cxx
index f4fa2e4783bc..d7a682272700 100644
--- a/svx/source/svdraw/svdpntv.cxx
+++ b/svx/source/svdraw/svdpntv.cxx
@@ -395,8 +395,11 @@ SdrPageView* SdrPaintView::ShowSdrPage(SdrPage* pPage)
mpPageView.reset();
}
- mpPageView.reset(new SdrPageView(pPage, *static_cast<SdrView*>(this)));
- mpPageView->Show();
+ if (SdrView *pView = dynamic_cast<SdrView*>(this))
+ {
+ mpPageView.reset(new SdrPageView(pPage, *pView));
+ mpPageView->Show();
+ }
}
return mpPageView.get();
diff --git a/svx/source/svdraw/svdview.cxx b/svx/source/svdraw/svdview.cxx
index 2c784b6a6e2e..a537604e4734 100644
--- a/svx/source/svdraw/svdview.cxx
+++ b/svx/source/svdraw/svdview.cxx
@@ -976,17 +976,17 @@ PointerStyle SdrView::GetPreferredPointer(const Point& rMousePos, const OutputDe
{
if(!pOut || IsTextEditInSelectionMode())
{
- if(pTextEditOutliner->IsVertical())
+ if (mpTextEditOutliner->IsVertical())
return PointerStyle::TextVertical;
else
return PointerStyle::Text;
}
// Outliner should return something here...
Point aPos(pOut->LogicToPixel(rMousePos));
- PointerStyle aPointer(pTextEditOutlinerView->GetPointer(aPos));
+ PointerStyle aPointer(mpTextEditOutlinerView->GetPointer(aPos));
if (aPointer==PointerStyle::Arrow)
{
- if(pTextEditOutliner->IsVertical())
+ if (mpTextEditOutliner->IsVertical())
aPointer = PointerStyle::TextVertical;
else
aPointer = PointerStyle::Text;
@@ -1227,24 +1227,24 @@ OUString SdrView::GetStatusText()
aStr = SvxResId(STR_ViewMarkGluePoints);
}
}
- else if (IsTextEdit() && pTextEditOutlinerView!=nullptr) {
+ else if (IsTextEdit() && mpTextEditOutlinerView != nullptr) {
aStr=SvxResId(STR_ViewTextEdit); // "TextEdit - Row y, Column x";
- ESelection aSel(pTextEditOutlinerView->GetSelection());
+ ESelection aSel(mpTextEditOutlinerView->GetSelection());
long nPar=aSel.nEndPara,nLin=0,nCol=aSel.nEndPos;
if (aSel.nEndPara>0) {
for (sal_Int32 nParaNum=0; nParaNum<aSel.nEndPara; nParaNum++) {
- nLin+=pTextEditOutliner->GetLineCount(nParaNum);
+ nLin += mpTextEditOutliner->GetLineCount(nParaNum);
}
}
// A little imperfection:
// At the end of a line of any multi-line paragraph, we display the
// position of the next line of the same paragraph, if there is one.
sal_uInt16 nParaLine = 0;
- sal_uIntPtr nParaLineCount = pTextEditOutliner->GetLineCount(aSel.nEndPara);
+ sal_uIntPtr nParaLineCount = mpTextEditOutliner->GetLineCount(aSel.nEndPara);
bool bBrk = false;
while (!bBrk)
{
- sal_uInt16 nLen = pTextEditOutliner->GetLineLen(aSel.nEndPara, nParaLine);
+ sal_uInt16 nLen = mpTextEditOutliner->GetLineLen(aSel.nEndPara, nParaLine);
bool bLastLine = (nParaLine == nParaLineCount - 1);
if (nCol>nLen || (!bLastLine && nCol == nLen))
{
@@ -1264,7 +1264,7 @@ OUString SdrView::GetStatusText()
aStr = aStr.replaceFirst("%3", OUString::number(nCol + 1));
#ifdef DBG_UTIL
- aStr += ", Level " + OUString::number( pTextEditOutliner->GetDepth( aSel.nEndPara ) );
+ aStr += ", Level " + OUString::number(mpTextEditOutliner->GetDepth( aSel.nEndPara ));
#endif
}
@@ -1417,7 +1417,7 @@ void SdrView::DeleteMarked()
{
if (IsTextEdit())
{
- SdrObjEditView::KeyInput(KeyEvent(0,vcl::KeyCode(KeyFuncType::DELETE)),pTextEditWin);
+ SdrObjEditView::KeyInput(KeyEvent(0, vcl::KeyCode(KeyFuncType::DELETE)), mpTextEditWin);
}
else
{
diff --git a/svx/source/svdraw/svdxcgv.cxx b/svx/source/svdraw/svdxcgv.cxx
index 88083f3e93e0..f6f707367768 100644
--- a/svx/source/svdraw/svdxcgv.cxx
+++ b/svx/source/svdraw/svdxcgv.cxx
@@ -58,6 +58,7 @@
#include <svx/sdr/contact/displayinfo.hxx>
#include <svx/svdotable.hxx>
#include <sal/log.hxx>
+#include <comphelper/lok.hxx>
using namespace com::sun::star;
@@ -414,7 +415,9 @@ void SdrExchangeView::ImpPasteObject(SdrObject* pObj, SdrObjList& rLst, const Po
nSizY /= aDstFr.GetNumerator();
long xs=nSizX;
long ys=nSizY;
- Point aPos(rCenter.X()-xs/2,rCenter.Y()-ys/2);
+ // set the pos to 0, 0 for online case
+ bool isLOK = comphelper::LibreOfficeKit::isActive();
+ Point aPos(isLOK ? 0 : rCenter.X()-xs/2, isLOK ? 0 : rCenter.Y()-ys/2);
tools::Rectangle aR(aPos.X(),aPos.Y(),aPos.X()+xs,aPos.Y()+ys);
pObj->SetLogicRect(aR);
rLst.InsertObject(pObj, SAL_MAX_SIZE);
diff --git a/svx/source/tbxctrls/fontworkgallery.cxx b/svx/source/tbxctrls/fontworkgallery.cxx
index afd2da9f8dfa..5834979d5152 100644
--- a/svx/source/tbxctrls/fontworkgallery.cxx
+++ b/svx/source/tbxctrls/fontworkgallery.cxx
@@ -215,7 +215,7 @@ void FontWorkGalleryDialog::insertSelectedFontwork()
aPagePos.setX(convertTwipToMm100(aPagePos.X()));
aPagePos.setY(convertTwipToMm100(aPagePos.Y()));
- sal_uInt32 nLOKViewWidth = 0.8 * convertTwipToMm100(pViewShell->getLOKVisibleArea().getWidth());
+ sal_Int32 nLOKViewWidth = 0.8 * convertTwipToMm100(pViewShell->getLOKVisibleArea().getWidth());
if (aFontworkSize.getWidth() > nLOKViewWidth)
{
double fScale = static_cast<double>(aFontworkSize.getWidth()) / nLOKViewWidth;
diff --git a/svx/source/tbxctrls/grafctrl.cxx b/svx/source/tbxctrls/grafctrl.cxx
index b321e0799f92..f0768d48b3cc 100644
--- a/svx/source/tbxctrls/grafctrl.cxx
+++ b/svx/source/tbxctrls/grafctrl.cxx
@@ -714,6 +714,8 @@ void SvxGrafAttrHelper::ExecuteGrafAttr( SfxRequest& rReq, SdrView& rView )
SfxAbstractDialogFactory* pFact = SfxAbstractDialogFactory::Create();
::CreateTabPage fnCreatePage = pFact->GetTabPageCreatorFunc( RID_SVXPAGE_GRFCROP );
std::unique_ptr<SfxTabPage> xTabPage = (*fnCreatePage)(aCropDialog.get_content_area(), &aCropDialog, &aCropDlgAttr);
+ sal_Int32 nPreferredDPI = rView.getSdrModelFromSdrView().getImagePreferredDPI();
+ xTabPage->getAdditionalProperties().emplace("PreferredDPI", css::uno::makeAny(nPreferredDPI));
xTabPage->SetPageTitle(aCropStr);
aCropDialog.SetTabPage(std::move(xTabPage));
diff --git a/svx/source/unodraw/shapeimpl.hxx b/svx/source/unodraw/shapeimpl.hxx
index a1a4e6963020..4381094d380a 100644
--- a/svx/source/unodraw/shapeimpl.hxx
+++ b/svx/source/unodraw/shapeimpl.hxx
@@ -64,8 +64,11 @@ public:
virtual void Create( SdrObject* pNewOpj, SvxDrawPage* pNewPage ) override;
};
+
class SvxFrameShape : public SvxOle2Shape
{
+private:
+ OUString m_sInitialFrameURL;
protected:
// override these for special property handling in subcasses. Return true if property is handled
virtual bool setPropertyValueImpl( const OUString& rName, const SfxItemPropertySimpleEntry* pProperty, const css::uno::Any& rValue ) override;
@@ -82,6 +85,8 @@ public:
virtual void SAL_CALL setPropertyValues( const css::uno::Sequence< OUString >& aPropertyNames, const css::uno::Sequence< css::uno::Any >& aValues ) override;
virtual void Create( SdrObject* pNewOpj, SvxDrawPage* pNewPage ) override;
+
+ virtual OUString GetAndClearInitialFrameURL() override;
};
diff --git a/svx/source/unodraw/unoshap2.cxx b/svx/source/unodraw/unoshap2.cxx
index 688fd1b29ee6..19268527fc26 100644
--- a/svx/source/unodraw/unoshap2.cxx
+++ b/svx/source/unodraw/unoshap2.cxx
@@ -1496,7 +1496,8 @@ bool SvxGraphicObject::getPropertyValueImpl( const OUString& rName, const SfxIte
Reference<graphic::XGraphic> xGraphic;
auto pSdrGraphicObject = static_cast<SdrGrafObj*>(GetSdrObject());
- if (pSdrGraphicObject->GetGraphicObject().GetType() != GraphicType::NONE)
+ if (pSdrGraphicObject
+ && pSdrGraphicObject->GetGraphicObject().GetType() != GraphicType::NONE)
xGraphic = pSdrGraphicObject->GetGraphic().GetXGraphic();
rValue <<= xGraphic;
break;
diff --git a/svx/source/unodraw/unoshap4.cxx b/svx/source/unodraw/unoshap4.cxx
index f7629f338858..6dc18d6cf9e4 100644
--- a/svx/source/unodraw/unoshap4.cxx
+++ b/svx/source/unodraw/unoshap4.cxx
@@ -180,7 +180,7 @@ bool SvxOle2Shape::setPropertyValueImpl( const OUString& rName, const SfxItemPro
#else
pOle = static_cast<SdrOle2Obj*>(GetSdrObject());
#endif
- pOle->SetPersistName( aPersistName );
+ pOle->SetPersistName( aPersistName, this );
return true;
}
break;
@@ -501,10 +501,11 @@ void SvxOle2Shape::createLink( const OUString& aLinkURL )
void SvxOle2Shape::resetModifiedState()
{
- ::comphelper::IEmbeddedHelper* pPersist = GetSdrObject()->getSdrModelFromSdrObject().GetPersist();
+ SdrObject* pObject = GetSdrObject();
+ ::comphelper::IEmbeddedHelper* pPersist = pObject ? pObject->getSdrModelFromSdrObject().GetPersist() : nullptr;
if( pPersist && !pPersist->isEnableSetModified() )
{
- SdrOle2Obj* pOle = dynamic_cast< SdrOle2Obj* >( GetSdrObject() );
+ SdrOle2Obj* pOle = dynamic_cast< SdrOle2Obj* >(pObject);
if( pOle && !pOle->IsEmpty() )
{
uno::Reference < util::XModifiable > xMod( pOle->GetObjRef(), uno::UNO_QUERY );
@@ -554,6 +555,11 @@ SvGlobalName SvxOle2Shape::GetClassName_Impl(OUString& rHexCLSID)
return aClassName;
}
+OUString SvxOle2Shape::GetAndClearInitialFrameURL()
+{
+ return OUString();
+}
+
SvxAppletShape::SvxAppletShape(SdrObject* pObject)
: SvxOle2Shape( pObject, getSvxMapProvider().GetMap(SVXMAP_APPLET), getSvxMapProvider().GetPropertySet(SVXMAP_APPLET, SdrObject::GetGlobalDrawObjectItemPool()) )
{
@@ -707,8 +713,19 @@ SvxFrameShape::~SvxFrameShape() throw()
{
}
+OUString SvxFrameShape::GetAndClearInitialFrameURL()
+{
+ OUString sRet(m_sInitialFrameURL);
+ m_sInitialFrameURL.clear();
+ return sRet;
+}
+
void SvxFrameShape::Create( SdrObject* pNewObj, SvxDrawPage* pNewPage )
{
+ uno::Reference<beans::XPropertySet> xSet(static_cast<OWeakObject *>(this), uno::UNO_QUERY);
+ if (xSet)
+ xSet->getPropertyValue("FrameURL") >>= m_sInitialFrameURL;
+
SvxShape::Create( pNewObj, pNewPage );
const SvGlobalName aIFrameClassId( SO3_IFRAME_CLASSID );
createObject(aIFrameClassId);
diff --git a/svx/uiconfig/ui/genericcheckdialog.ui b/svx/uiconfig/ui/genericcheckdialog.ui
new file mode 100644
index 000000000000..232221c0a878
--- /dev/null
+++ b/svx/uiconfig/ui/genericcheckdialog.ui
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2 -->
+<interface domain="svx">
+ <requires lib="gtk+" version="3.20"/>
+ <object class="GtkDialog" id="GenericCheckDialog">
+ <property name="width-request">850</property>
+ <property name="height-request">480</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="border-width">6</property>
+ <property name="modal">True</property>
+ <property name="type-hint">dialog</property>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialogBox1">
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="dialogButtons">
+ <property name="can-focus">False</property>
+ <property name="layout-style">end</property>
+ <child>
+ <object class="GtkButton" id="ok">
+ <property name="label" translatable="yes" context="stock">_OK</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="can-default">True</property>
+ <property name="has-default">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="cancel">
+ <property name="label" translatable="yes" context="stock">_Cancel</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="help">
+ <property name="label" translatable="yes" context="stock">_Help</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ <property name="secondary">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack-type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="shadow-type">in</property>
+ <child>
+ <object class="GtkViewport">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <child>
+ <object class="GtkBox" id="checkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-5">ok</action-widget>
+ <action-widget response="-6">cancel</action-widget>
+ <action-widget response="-11">help</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/svx/uiconfig/ui/genericcheckentry.ui b/svx/uiconfig/ui/genericcheckentry.ui
new file mode 100644
index 000000000000..1b02ca13eeac
--- /dev/null
+++ b/svx/uiconfig/ui/genericcheckentry.ui
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2 -->
+<interface domain="svx">
+ <requires lib="gtk+" version="3.20"/>
+ <object class="GtkBox" id="checkEntryBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="border-width">3</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="selectable">True</property>
+ <property name="xalign">0</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="label-atkobject">
+ <property name="AtkObject::accessible-role">static</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="markButton">
+ <property name="label" translatable="yes" context="genericcheckentry|markButton">Mark</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="propertiesButton">
+ <property name="label" translatable="yes" context="genericcheckentry|propertiesButton">Properties</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+</interface>