23 #include <osl/thread.h>
36 #include <uiitems.hxx>
45 #include <drawdoc.hxx>
46 #include <content.hxx>
51 #include <section.hxx>
55 #include <navicfg.hxx>
64 #include <strings.hrc>
65 #include <com/sun/star/text/XTextSectionsSupplier.hpp>
66 #include <com/sun/star/text/XTextGraphicObjectsSupplier.hpp>
67 #include <com/sun/star/text/XTextTablesSupplier.hpp>
68 #include <com/sun/star/text/XDocumentIndexesSupplier.hpp>
69 #include <com/sun/star/text/XDocumentIndex.hpp>
70 #include <com/sun/star/text/XBookmarksSupplier.hpp>
71 #include <com/sun/star/text/XTextEmbeddedObjectsSupplier.hpp>
72 #include <com/sun/star/text/XTextFramesSupplier.hpp>
84 #include <bitmaps.hlst>
107 using namespace ::
std;
124 const sal_uInt32 TOGGLE_OUTLINE_CONTENT_VISIBILITY = 1512;
125 const sal_uInt32 HIDE_OUTLINE_CONTENT_VISIBILITY = 1513;
126 const sal_uInt32 SHOW_OUTLINE_CONTENT_VISIBILITY = 1514;
128 constexpr
char NAVI_BOOKMARK_DELIM =
'\x01';
133 :
public o3tl::sorted_vector<std::unique_ptr<SwContent>, o3tl::less_uniqueptr_to<SwContent>,
134 o3tl::find_partialorder_ptrequals>
142 return weld::fromId<const SwTypeNumber*>(rTreeView.
get_id(rEntry))->GetTypeId() ==
CTYPE_CNT;
147 return weld::fromId<const SwTypeNumber*>(rTreeView.
get_id(rEntry))->GetTypeId() ==
CTYPE_CTT;
152 return weld::fromId<const SwOutlineContent*>(rTreeView.
get_id(rEntry))->GetOutlineLevel() < nLevel;
171 bool lcl_IsUiVisibleBookmark(const ::sw::mark::IMark* pMark)
191 m_sContentName(rName),
232 STR_CONTENT_TYPE_OUTLINE,
233 STR_CONTENT_TYPE_TABLE,
234 STR_CONTENT_TYPE_FRAME,
235 STR_CONTENT_TYPE_GRAPHIC,
236 STR_CONTENT_TYPE_OLE,
237 STR_CONTENT_TYPE_BOOKMARK,
238 STR_CONTENT_TYPE_REGION,
239 STR_CONTENT_TYPE_URLFIELD,
240 STR_CONTENT_TYPE_REFERENCE,
241 STR_CONTENT_TYPE_INDEX,
242 STR_CONTENT_TYPE_POSTIT,
243 STR_CONTENT_TYPE_DRAWOBJECT,
244 STR_CONTENT_TYPE_TEXTFIELD,
245 STR_CONTENT_TYPE_FOOTNOTE,
246 STR_CONTENT_TYPE_ENDNOTE
251 STR_CONTENT_TYPE_SINGLE_OUTLINE,
252 STR_CONTENT_TYPE_SINGLE_TABLE,
253 STR_CONTENT_TYPE_SINGLE_FRAME,
254 STR_CONTENT_TYPE_SINGLE_GRAPHIC,
255 STR_CONTENT_TYPE_SINGLE_OLE,
256 STR_CONTENT_TYPE_SINGLE_BOOKMARK,
257 STR_CONTENT_TYPE_SINGLE_REGION,
258 STR_CONTENT_TYPE_SINGLE_URLFIELD,
259 STR_CONTENT_TYPE_SINGLE_REFERENCE,
260 STR_CONTENT_TYPE_SINGLE_INDEX,
261 STR_CONTENT_TYPE_SINGLE_POSTIT,
262 STR_CONTENT_TYPE_SINGLE_DRAWOBJECT,
263 STR_CONTENT_TYPE_SINGLE_TEXTFIELD,
264 STR_CONTENT_TYPE_SINGLE_FOOTNOTE,
265 STR_CONTENT_TYPE_SINGLE_ENDNOTE
270 bool checkVisibilityChanged(
274 if(rSwContentArrA.
size() != rSwContentArrB.
size())
279 for(
size_t a(0);
a < rSwContentArrA.
size();
a++)
281 if(rSwContentArrA[a]->IsInvisible() != rSwContentArrB[
a]->IsInvisible())
300 if (
auto pSwPosition = pFlyFormat->GetAnchor().GetContentAnchor())
302 return getYPos(pSwPosition->nNode);
306 return sal_Int32(nIndex);
313 m_sContentTypeName(
SwResId(STR_CONTENT_TYPE_ARY[static_cast<
int>(nType)])),
314 m_sSingleContentTypeName(
SwResId(STR_CONTENT_TYPE_SINGLE_ARY[static_cast<
int>(nType)])),
316 m_nContentType(nType),
317 m_nOutlineLevel(nLevel),
398 if(nIndex < m_pMember->
size())
411 std::unique_ptr<SwContentArr> pOldMember;
412 size_t nOldMemberCount = 0;
417 nOldMemberCount = pOldMember->size();
419 *pbContentChanged =
false;
431 double nOutlinesInFramesIndexAdjustment = 0.00001;
433 const size_t nOutlineCount = rOutlineNodes.
size();
435 for (
size_t i = 0;
i < nOutlineCount; ++
i)
444 nYPos += nOutlinesInFramesIndexAdjustment;
445 nOutlinesInFramesIndexAdjustment += 0.00001;
451 auto pCnt(make_unique<SwOutlineContent>(
this, aEntry,
i, nLevel,
460 assert(pbContentChanged &&
"pbContentChanged is always set if pOldMember is");
461 if (pOldMember->size() !=
m_pMember->size())
463 *pbContentChanged =
true;
466 for (
size_t i = 0;
i < pOldMember->size();
i++)
468 if (static_cast<SwOutlineContent*>((*pOldMember)[
i].
get())->GetOutlineLevel() !=
471 *pbContentChanged =
true;
483 for(
size_t n = 0,
i = 0;
i < nCount +
n; ++
i)
487 if (rTableFormat.
GetInfo(aGetHt))
496 nYPos = getYPos(*pTable->GetTableNode());
498 auto pCnt = make_unique<SwContent>(
this, rTableFormat.
GetName(), nYPos);
499 if( !rTableFormat.
GetInfo( aAskItem ) &&
501 pCnt->SetInvisible();
511 *pbContentChanged = checkVisibilityChanged(
529 SAL_WARN_IF(nCount != formats.size(),
"sw.ui",
"Count differs");
530 nCount = formats.size();
531 for (
size_t i = 0;
i < nCount; ++
i)
548 pCnt =
new SwContent(
this, sFrameName, nYPos);
550 if( !pFrameFormat->
GetInfo( aAskItem ) &&
553 m_pMember->insert(std::unique_ptr<SwContent>(pCnt));
562 assert(pbContentChanged &&
"pbContentChanged is always set if pOldMember is");
563 *pbContentChanged = checkVisibilityChanged(
577 if(lcl_IsUiVisibleBookmark(*ppBookmark))
579 const OUString& rBkmName = (*ppBookmark)->GetName();
581 auto pCnt(std::make_unique<SwContent>(
this, rBkmName,
590 std::vector<SwTextField*>
aArr;
593 const size_t nSize = rFieldTypes.size();
594 for (
size_t i = 0;
i < nSize; ++
i)
599 std::vector<SwFormatField*> vFields;
603 if (
SwTextField* pTextField = pFormatField->GetTextField())
608 aArr.emplace_back(pTextField);
615 bool bHasEntryInFly =
false;
618 std::stable_sort(aArr.begin(), aArr.end(),
621 SwPosition bPos(b->GetTextNode(), b->GetStart());
622 return aPos < bPos;});
629 if (nEndOfExtrasIndex >= pTextField->GetTextNode().GetIndex())
633 if (pTextField->GetTextNode().GetFlyFormat())
635 bHasEntryInFly =
true;
646 std::stable_sort(aArr.begin(), aArr.end(),
653 if (nEndOfExtrasIndex >= aTextNode.
GetIndex())
655 if (
const SwPosition* pPos = pFlyFormat->GetAnchor().GetContentAnchor())
657 if (nEndOfExtrasIndex >= bTextNode.
GetIndex())
659 if (
const SwPosition* pPos = pFlyFormat->GetAnchor().GetContentAnchor())
661 return aPos < bPos;});
664 std::vector<OUString> aDocumentStatisticsSubTypesList;
668 const SwField* pField = pTextField->GetFormatField().GetField();
670 if (!sExpandField.isEmpty())
671 sExpandField =
u" - " + sExpandField;
675 if (aDocumentStatisticsSubTypesList.empty())
677 aDocumentStatisticsSubTypesList);
679 if (pField->
GetSubType() < aDocumentStatisticsSubTypesList.size())
680 sSubType =
u" - " + aDocumentStatisticsSubTypesList[pField->
GetSubType()];
686 OUString sFieldSubTypeOrName;
689 sFieldSubTypeOrName =
SwResId(STR_FLDREF_FOOTNOTE);
691 sFieldSubTypeOrName =
SwResId(STR_FLDREF_ENDNOTE);
700 auto pCnt(std::make_unique<SwTextFieldContent>(
this, sText,
701 &pTextField->GetFormatField(),
704 pCnt->SetInvisible();
714 if (rFootnoteIdxs.
size() == 0)
720 if ((!pTextFootnote->GetFootnote().IsEndNote()
722 || (pTextFootnote->GetFootnote().IsEndNote()
726 const OUString& sText
729 +
" " + lcl_GetFootnoteText(*pTextFootnote);
730 auto pCnt(make_unique<SwTextFootnoteContent>(
731 this, sText, pTextFootnote, ++nPos));
733 pCnt->SetInvisible();
742 for (
size_t i = 0;
i < nCount; ++
i)
761 pParentFormat = pParentFormat->
GetParent();
764 std::unique_ptr<SwContent> pCnt(
new SwRegionContent(
this, sSectionName,
766 if( !pFormat->
GetInfo( aAskItem ) &&
768 pCnt->SetInvisible();
778 assert(pbContentChanged &&
"pbContentChanged is always set if pOldMember is");
779 *pbContentChanged = checkVisibilityChanged(
788 std::vector<OUString> aRefMarks;
792 for (
const auto& rRefMark : aRefMarks)
794 m_pMember->insert(std::make_unique<SwContent>(
this, rRefMark,
809 r.rINetAttr.GetINetFormat().GetValue(),
819 bool bHasEntryInFly =
false;
820 std::vector<SwGetINetAttr*> aStableSortINetAttrsArray;
824 aStableSortINetAttrsArray.emplace_back(&r);
827 if (nEndOfExtrasIndex >= r.rINetAttr.GetTextNode().GetIndex())
831 if (r.rINetAttr.GetTextNode().GetFlyFormat())
832 bHasEntryInFly =
true;
837 std::stable_sort(aStableSortINetAttrsArray.begin(), aStableSortINetAttrsArray.end(),
841 SwPosition bSwPos(const_cast<SwTextNode&>(b->rINetAttr.GetTextNode()),
842 b->rINetAttr.GetStart());
843 return aSwPos < bSwPos;});
849 std::stable_sort(aStableSortINetAttrsArray.begin(), aStableSortINetAttrsArray.end(),
854 SwPosition bPos(const_cast<SwTextNode&>(bTextNode), b->rINetAttr.GetStart());
856 if (nEndOfExtrasIndex >= aTextNode.
GetIndex())
858 if (
const SwPosition* pPos = pFlyFormat->GetAnchor().GetContentAnchor())
860 if (nEndOfExtrasIndex >= bTextNode.
GetIndex())
862 if (
const SwPosition* pPos = pFlyFormat->GetAnchor().GetContentAnchor())
864 return aPos < bPos;});
867 SwGetINetAttrs::size_type
n = 0;
868 for (
auto p : aStableSortINetAttrsArray)
870 auto pCnt = make_unique<SwURLFieldContent>(
this,
p->sText,
882 for ( sal_uInt16 nTox = 0; nTox < nCount; nTox++ )
891 pCnt->SetInvisible();
893 m_pMember->insert( std::unique_ptr<SwContent>(pCnt) );
897 assert(pbContentChanged &&
"pbContentChanged is always set if pOldMember is");
898 if (!*pbContentChanged && nOldMemberCount > nPos &&
899 (*pOldMember)[nPos]->IsInvisible() != pCnt->IsInvisible())
900 *pbContentChanged =
true;
913 if (
const SwFormatField* pFormatField = dynamic_cast<const SwFormatField *>((*i)->GetBroadcaster()))
915 if (pFormatField->GetTextField() && pFormatField->IsFieldInDoc())
917 OUString sEntry = pFormatField->GetField()->GetPar2();
924 if (!pFormatField->GetTextField()->GetTextNode().getLayoutFrame(
926 pCnt->SetInvisible();
929 assert(pbContentChanged &&
"pbContentChanged is always set if pOldMember is");
930 if (!*pbContentChanged &&
932 (*pOldMember)[nYPos]->IsInvisible() != pCnt->IsInvisible())
933 *pbContentChanged =
true;
951 for(
size_t i=0;
i<nCount; ++
i )
955 if (!pTemp->
GetName().isEmpty())
961 auto pCnt(std::make_unique<SwContent>(
this, pTemp->
GetName(), nYPos));
963 pCnt->SetInvisible();
974 assert(pbContentChanged &&
"pbContentChanged is always set if pOldMember is");
975 *pbContentChanged = checkVisibilityChanged(
987 assert(pbContentChanged &&
"pbContentChanged is always set if pOldMember is");
989 *pbContentChanged =
true;
999 IDX_STR_OUTLINE_LEVEL = 0,
1000 IDX_STR_DRAGMODE = 1,
1001 IDX_STR_HYPERLINK = 2,
1002 IDX_STR_LINK_REGION = 3,
1003 IDX_STR_COPY_REGION = 4,
1004 IDX_STR_DISPLAY = 5,
1005 IDX_STR_ACTIVE_VIEW = 6,
1008 IDX_STR_INACTIVE = 9,
1009 IDX_STR_EDIT_ENTRY = 10,
1010 IDX_STR_DELETE_ENTRY = 11,
1011 IDX_STR_SEND_OUTLINE_TO_CLIPBOARD_ENTRY = 12,
1012 IDX_STR_OUTLINE_TRACKING = 13,
1013 IDX_STR_OUTLINE_TRACKING_DEFAULT = 14,
1014 IDX_STR_OUTLINE_TRACKING_FOCUS = 15,
1015 IDX_STR_OUTLINE_TRACKING_OFF = 16
1034 STR_SEND_OUTLINE_TO_CLIPBOARD_ENTRY,
1035 STR_OUTLINE_TRACKING,
1036 STR_OUTLINE_TRACKING_DEFAULT,
1037 STR_OUTLINE_TRACKING_FOCUS,
1038 STR_OUTLINE_TRACKING_OFF
1044 , m_aDropTargetHelper(*this)
1045 , m_pDialog(pDialog)
1046 , m_sSpace(OUString(
" "))
1047 , m_aUpdTimer(
"SwContentTree m_aUpdTimer")
1048 , m_sInvisible(
SwResId(STR_INVISIBLE))
1049 , m_pHiddenShell(nullptr)
1050 , m_pActiveShell(nullptr)
1051 , m_pConfig(
SW_MOD()->GetNavigationConfig())
1060 , m_bIsIdleClear(
false)
1061 , m_bIsLastReadOnly(
false)
1062 , m_bIsOutlineMoveable(true)
1063 , m_bViewHasChanged(
false)
1106 rUnsetDragIcon =
true;
1108 bool bDisallow =
true;
1111 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator());
1112 bool bEntry =
m_xTreeView->get_selected(xEntry.get());
1113 if (!bEntry || lcl_IsContentType(*xEntry, *
m_xTreeView))
1121 if (FillTransferData(*xContainer, nDragMode))
1127 m_aDndOutlinesSelected.clear();
1129 std::unique_ptr<weld::TreeIter> xScratch(
m_xTreeView->make_iterator());
1135 if (!
m_xTreeView->iter_previous_sibling(*xScratch))
1144 m_aDndOutlinesSelected.push_back(
m_xTreeView->make_iterator(xEntry.get()));
1151 m_xTreeView->enable_drag_source(xContainer, nDragMode);
1157 , m_rTreeView(rTreeView)
1197 void* key =
nullptr;
1215 std::unique_ptr<weld::TreeIter> xDropEntry(
m_xTreeView->make_iterator());
1221 if (xDropEntry && lcl_IsContent(*xDropEntry, *
m_xTreeView))
1223 assert(dynamic_cast<SwContent*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(*xDropEntry))));
1225 assert(pOutlineContent);
1233 std::unique_ptr<weld::TreeIter> xChildEntry(
m_xTreeView->make_iterator(xDropEntry.get()));
1234 bool bChildEntry =
m_xTreeView->iter_children(*xChildEntry);
1237 m_xTreeView->copy_iterator(*xChildEntry, *xDropEntry);
1238 bChildEntry =
m_xTreeView->iter_next_sibling(*xChildEntry);
1250 else if (!lcl_IsContent(*xDropEntry, *
m_xTreeView))
1257 assert(dynamic_cast<SwOutlineContent*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(*xDropEntry))));
1258 nTargetPos = weld::fromId<SwOutlineContent*>(
m_xTreeView->get_id(*xDropEntry))->GetOutlinePos();
1264 std::unique_ptr<weld::TreeIter> xNext(
m_xTreeView->make_iterator(xDropEntry.get()));
1268 assert(dynamic_cast<SwOutlineContent*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(*xNext))));
1269 nTargetPos = weld::fromId<SwOutlineContent*>(
m_xTreeView->get_id(*xNext))->GetOutlinePos() - 1;
1294 std::unique_ptr<weld::TreeIter> xChild(rContentTree.
make_iterator(&rEntry));
1301 if (!IsAllExpanded(rContentTree, *xChild))
1311 bool bExpand = !IsAllExpanded(rContentTree, rEntry);
1327 rPop.
set_label(OString::number(800), IsAllExpanded(rContentTree, rEntry) ?
SwResId(STR_COLLAPSEALL) :
SwResId(STR_EXPANDALL));
1335 rPop.
set_sensitive(OString::number(TOGGLE_OUTLINE_CONTENT_VISIBILITY),
false);
1336 rPop.
set_sensitive(OString::number(HIDE_OUTLINE_CONTENT_VISIBILITY),
false);
1337 rPop.
set_sensitive(OString::number(SHOW_OUTLINE_CONTENT_VISIBILITY),
false);
1343 bool bIsRoot = lcl_IsContentType(rEntry, rContentTree);
1348 rPop.
set_sensitive(OString::number(TOGGLE_OUTLINE_CONTENT_VISIBILITY),
true);
1359 if (nOutlinePos >= rOutlineNodes.
size())
1365 bool bHasContent(
false);
1366 size_t nPos = nOutlinePos;
1367 SwNode* pSttNd = rOutlineNodes[nPos];
1369 if (rOutlineNodes.
size() > nPos + 1)
1370 pEndNd = rOutlineNodes[nPos + 1];
1374 if (rNodes.
GoNext(&aIdx) != pEndNd)
1380 while (++nPos < rOutlineNodes.
size() &&
1383 pSttNd = rOutlineNodes[nPos];
1385 if (rOutlineNodes.
size() > nPos + 1)
1386 pEndNd = rOutlineNodes[nPos + 1];
1390 if (rNodes.
GoNext(&aIdx) != pEndNd)
1407 size_t nPos = nOutlinePos;
1410 SwNode* pSttNd = rOutlineNodes[nPos];
1412 if (!bIsRoot && rOutlineNodes.
size() > nPos + 1)
1413 pEndNd = rOutlineNodes[nPos + 1];
1416 if (rNodes.
GoNext(&aIdx) != pEndNd)
1422 bool bHasUnfolded(!bHasFolded);
1424 while ((++nPos < pThis->GetWrtShell()->getIDocumentOutlineNodesAccess()->getOutlineNodesCount()) &&
1428 SwNode* pSttNd = rOutlineNodes[nPos];
1430 if (rOutlineNodes.
size() > nPos + 1)
1431 pEndNd = rOutlineNodes[nPos + 1];
1434 if (rNodes.
GoNext(&aIdx) == pEndNd)
1440 bHasUnfolded =
true;
1442 if (bHasFolded && bHasUnfolded)
1446 rPop.
set_sensitive(OString::number(HIDE_OUTLINE_CONTENT_VISIBILITY), bHasUnfolded);
1447 rPop.
set_sensitive(OString::number(SHOW_OUTLINE_CONTENT_VISIBILITY), bHasFolded);
1450 rPop.
set_sensitive(OString::number(TOGGLE_OUTLINE_CONTENT_VISIBILITY), !bIsRoot);
1455 if (rCEvt.GetCommand() != CommandEventId::ContextMenu)
1461 if (std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator());
1462 rCEvt.IsMouseEvent() &&
m_xTreeView->get_dest_row_at_pos(
1463 rCEvt.GetMousePosPixel(), xEntry.get(),
false))
1474 std::unique_ptr<weld::Menu> xPop = xBuilder->weld_menu(
"navmenu");
1476 bool bOutline(
false);
1477 std::unique_ptr<weld::Menu> xSubPop1 = xBuilder->weld_menu(
"outlinelevel");
1478 std::unique_ptr<weld::Menu> xSubPop2 = xBuilder->weld_menu(
"dragmodemenu");
1479 std::unique_ptr<weld::Menu> xSubPop3 = xBuilder->weld_menu(
"displaymenu");
1480 std::unique_ptr<weld::Menu> xSubPopOutlineTracking = xBuilder->weld_menu(
"outlinetracking");
1482 std::unique_ptr<weld::Menu> xSubPopOutlineContent = xBuilder->weld_menu(
"outlinecontent");
1484 xSubPopOutlineContent->append(OUString::number(TOGGLE_OUTLINE_CONTENT_VISIBILITY),
1485 SwResId(STR_OUTLINE_CONTENT_VISIBILITY_TOGGLE));
1486 xSubPopOutlineContent->append(OUString::number(HIDE_OUTLINE_CONTENT_VISIBILITY),
1487 SwResId(STR_OUTLINE_CONTENT_VISIBILITY_HIDE_ALL));
1488 xSubPopOutlineContent->append(OUString::number(SHOW_OUTLINE_CONTENT_VISIBILITY),
1489 SwResId(STR_OUTLINE_CONTENT_VISIBILITY_SHOW_ALL));
1491 for(
int i = 1;
i <= 3; ++
i)
1492 xSubPopOutlineTracking->append_radio(OUString::number(
i + 10), m_aContextStrings[IDX_STR_OUTLINE_TRACKING +
i]);
1493 xSubPopOutlineTracking->set_active(OString::number(10 + m_nOutlineTracking),
true);
1496 xSubPop1->append_radio(OUString::number(
i + 100), OUString::number(
i));
1497 xSubPop1->set_active(OString::number(100 + m_nOutlineLevel),
true);
1499 for (
int i=0;
i < 3; ++
i)
1500 xSubPop2->append_radio(OUString::number(
i + 201), m_aContextStrings[IDX_STR_HYPERLINK +
i]);
1501 xSubPop2->set_active(OString::number(201 + static_cast<int>(GetParentWindow()->GetRegionDropMode())),
true);
1505 sal_uInt16
nId = 301;
1510 m_aContextStrings[pView ==
GetActiveView() ? IDX_STR_ACTIVE :
1511 IDX_STR_INACTIVE] +
")";
1512 xSubPop3->append_radio(OUString::number(nId), sInsert);
1513 if (State::CONSTANT == m_eState && m_pActiveShell == &pView->GetWrtShell())
1514 xSubPop3->set_active(OString::number(nId),
true);
1518 xSubPop3->append_radio(OUString::number(nId++), m_aContextStrings[IDX_STR_ACTIVE_VIEW]);
1521 OUString sHiddenEntry = m_pHiddenShell->GetView().GetDocShell()->GetTitle() +
1523 m_aContextStrings[IDX_STR_HIDDEN] +
1525 xSubPop3->append_radio(OUString::number(nId), sHiddenEntry);
1527 if (State::ACTIVE == m_eState)
1528 xSubPop3->set_active(OString::number(--nId),
true);
1530 xSubPop3->set_active(OString::number(nId),
true);
1533 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator());
1537 bool bRemoveGotoEntry =
false;
1539 weld::fromId<SwContent*>(
m_xTreeView->get_id(*xEntry))->IsInvisible())
1540 bRemoveGotoEntry =
true;
1542 bool bRemovePostItEntries =
true;
1543 bool bRemoveIndexEntries =
true;
1544 bool bRemoveCopyEntry =
true;
1545 bool bRemoveEditEntry =
true;
1546 bool bRemoveUnprotectEntry =
true;
1547 bool bRemoveDeleteEntry =
true;
1548 bool bRemoveRenameEntry =
true;
1549 bool bRemoveSelectEntry =
true;
1550 bool bRemoveToggleExpandEntry =
true;
1551 bool bRemoveChapterEntries =
true;
1552 bool bRemoveSendOutlineEntry =
true;
1554 bool bRemoveTableTracking =
true;
1555 bool bRemoveSectionTracking =
true;
1556 bool bRemoveFrameTracking =
true;
1557 bool bRemoveImageTracking =
true;
1558 bool bRemoveOLEobjectTracking =
true;
1559 bool bRemoveBookmarkTracking =
true;
1560 bool bRemoveHyperlinkTracking =
true;
1561 bool bRemoveReferenceTracking =
true;
1562 bool bRemoveIndexTracking =
true;
1563 bool bRemoveCommentTracking =
true;
1564 bool bRemoveDrawingObjectTracking =
true;
1565 bool bRemoveFieldTracking =
true;
1566 bool bRemoveFootnoteTracking =
true;
1567 bool bRemoveEndnoteTracking =
true;
1569 bool bRemoveSortEntry =
true;
1575 pType = weld::fromId<SwContentType*>(
m_xTreeView->get_id(*xEntry));
1577 pType = weld::fromId<SwContent*>(
1584 bRemoveSortEntry =
false;
1589 switch (nContentType)
1592 aIdent =
"tabletracking";
1593 bRemoveTableTracking =
false;
1596 aIdent =
"sectiontracking";
1597 bRemoveSectionTracking =
false;
1600 aIdent =
"frametracking";
1601 bRemoveFrameTracking =
false;
1604 aIdent =
"imagetracking";
1605 bRemoveImageTracking =
false;
1608 aIdent =
"oleobjecttracking";
1609 bRemoveOLEobjectTracking =
false;
1612 aIdent =
"bookmarktracking";
1613 bRemoveBookmarkTracking =
false;
1616 aIdent =
"hyperlinktracking";
1617 bRemoveHyperlinkTracking =
false;
1620 aIdent =
"referencetracking";
1621 bRemoveReferenceTracking =
false;
1624 aIdent =
"indextracking";
1625 bRemoveIndexTracking =
false;
1628 aIdent =
"commenttracking";
1629 bRemoveCommentTracking =
false;
1632 aIdent =
"drawingobjecttracking";
1633 bRemoveDrawingObjectTracking =
false;
1636 aIdent =
"fieldtracking";
1637 bRemoveFieldTracking =
false;
1640 aIdent =
"footnotetracking";
1641 bRemoveFootnoteTracking =
false;
1644 aIdent =
"endnotetracking";
1645 bRemoveEndnoteTracking =
false;
1649 if (!aIdent.isEmpty())
1650 xPop->set_active(aIdent, mTrackContentType[nContentType]);
1654 (State::ACTIVE == m_eState || m_pActiveShell ==
GetActiveView()->GetWrtShellPtr())
1657 const bool bReadonly = m_pActiveShell->GetView().GetDocShell()->IsReadOnly();
1658 const bool bVisible = !weld::fromId<SwContent*>(
m_xTreeView->get_id(*xEntry))->IsInvisible();
1659 const bool bProtected = weld::fromId<SwContent*>(
m_xTreeView->get_id(*xEntry))->IsProtect();
1662 const bool bEditable = pType->
IsEditable() &&
1666 const bool bRenamable = bEditable && !bReadonly &&
1678 void* pUserData = weld::fromId<void*>(
m_xTreeView->get_id(*xEntry));
1682 bRemoveGotoEntry =
true;
1691 bRemoveSelectEntry =
false;
1692 bRemoveChapterEntries =
false;
1694 bRemoveCopyEntry =
false;
1696 else if (!bReadonly && (bEditable || bDeletable))
1700 bRemoveIndexEntries =
false;
1702 const SwTOXBase* pBase = weld::fromId<SwTOXBaseContent*>(
m_xTreeView->get_id(*xEntry))->GetTOXBase();
1704 bRemoveEditEntry =
false;
1707 bRemoveDeleteEntry =
false;
1709 else if(ContentTypeId::TABLE == nContentType)
1711 bRemoveSelectEntry =
false;
1712 bRemoveEditEntry =
false;
1713 bRemoveUnprotectEntry =
false;
1715 OUString sTableName = weld::fromId<SwContent*>(
m_xTreeView->get_id(*xEntry))->
GetName();
1716 bool bProt = m_pActiveShell->HasTableAnyProtection( &sTableName, &bFull );
1717 xPop->set_sensitive(OString::number(403), !bFull);
1718 xPop->set_sensitive(OString::number(404), bProt);
1719 bRemoveDeleteEntry =
false;
1723 bRemoveDeleteEntry =
false;
1727 bRemoveSelectEntry =
false;
1728 bRemoveEditEntry =
false;
1732 if (bEditable && bDeletable)
1734 bRemoveEditEntry =
false;
1735 bRemoveDeleteEntry =
false;
1738 bRemoveEditEntry =
false;
1739 else if (bDeletable)
1741 bRemoveDeleteEntry =
false;
1746 bRemoveRenameEntry =
false;
1752 pType = weld::fromId<SwContentType*>(
m_xTreeView->get_id(*xEntry));
1754 pType = weld::fromId<SwContent*>(
1764 *xSubPopOutlineContent);
1765 bRemoveSendOutlineEntry =
false;
1772 !m_pActiveShell->GetView().GetDocShell()->IsReadOnly() &&
1773 pType->GetMemberCount() > 0)
1774 bRemovePostItEntries =
false;
1779 if (bRemoveToggleExpandEntry)
1780 xPop->remove(OString::number(800));
1782 if (bRemoveGotoEntry)
1783 xPop->remove(OString::number(900));
1785 if (bRemoveSelectEntry)
1786 xPop->remove(OString::number(805));
1788 if (bRemoveChapterEntries)
1790 xPop->remove(OString::number(806));
1791 xPop->remove(OString::number(801));
1792 xPop->remove(OString::number(802));
1793 xPop->remove(OString::number(803));
1794 xPop->remove(OString::number(804));
1797 if (bRemoveSendOutlineEntry)
1798 xPop->remove(OString::number(700));
1800 if (bRemovePostItEntries)
1802 xPop->remove(OString::number(600));
1803 xPop->remove(OString::number(601));
1804 xPop->remove(OString::number(602));
1807 if (bRemoveDeleteEntry)
1808 xPop->remove(OString::number(501));
1810 if (bRemoveRenameEntry)
1811 xPop->remove(OString::number(502));
1813 if (bRemoveIndexEntries)
1815 xPop->remove(OString::number(401));
1816 xPop->remove(OString::number(402));
1817 xPop->remove(OString::number(405));
1820 if (bRemoveUnprotectEntry)
1821 xPop->remove(OString::number(404));
1823 if (bRemoveEditEntry)
1824 xPop->remove(OString::number(403));
1826 if (bRemoveToggleExpandEntry &&
1827 bRemoveSendOutlineEntry)
1828 xPop->remove(
"separator1");
1830 if (bRemoveCopyEntry)
1831 xPop->remove(
"copy");
1833 if (bRemoveGotoEntry &&
1835 bRemoveSelectEntry &&
1836 bRemoveDeleteEntry &&
1837 bRemoveChapterEntries &&
1838 bRemovePostItEntries &&
1839 bRemoveRenameEntry &&
1840 bRemoveIndexEntries &&
1841 bRemoveUnprotectEntry &&
1843 xPop->remove(
"separator2");
1848 xPop->remove(OString::number(1));
1852 xSubPopOutlineTracking.reset();
1853 xPop->remove(OString::number(4));
1856 !m_pActiveShell->GetViewOptions()->IsShowOutlineContentVisibilityButton() ||
1857 m_pActiveShell->getIDocumentOutlineNodesAccess()->getOutlineNodesCount() == 0)
1859 xSubPopOutlineContent.reset();
1860 xPop->remove(OString::number(5));
1861 xPop->remove(
"separator3");
1864 if (bRemoveTableTracking)
1865 xPop->remove(
"tabletracking");
1866 if (bRemoveSectionTracking)
1867 xPop->remove(
"sectiontracking");
1868 if (bRemoveFrameTracking)
1869 xPop->remove(
"frametracking");
1870 if (bRemoveImageTracking)
1871 xPop->remove(
"imagetracking");
1872 if (bRemoveOLEobjectTracking)
1873 xPop->remove(
"oleobjecttracking");
1874 if (bRemoveBookmarkTracking)
1875 xPop->remove(
"bookmarktracking");
1876 if (bRemoveHyperlinkTracking)
1877 xPop->remove(
"hyperlinktracking");
1878 if (bRemoveReferenceTracking)
1879 xPop->remove(
"referencetracking");
1880 if (bRemoveIndexTracking)
1881 xPop->remove(
"indextracking");
1882 if (bRemoveCommentTracking)
1883 xPop->remove(
"commenttracking");
1884 if (bRemoveDrawingObjectTracking)
1885 xPop->remove(
"drawingobjecttracking");
1886 if (bRemoveFieldTracking)
1887 xPop->remove(
"fieldtracking");
1888 if (bRemoveFootnoteTracking)
1889 xPop->remove(
"footnotetracking");
1890 if (bRemoveEndnoteTracking)
1891 xPop->remove(
"endnotetracking");
1892 if (bRemoveSortEntry)
1893 xPop->remove(
"sort");
1895 bool bSetSensitiveCollapseAllCategories =
false;
1896 if (!m_bIsRoot && xEntry)
1898 bool bEntry =
m_xTreeView->get_iter_first(*xEntry);
1903 bSetSensitiveCollapseAllCategories =
true;
1909 xPop->set_sensitive(
"collapseallcategories", bSetSensitiveCollapseAllCategories);
1912 if (!sCommand.isEmpty())
1913 ExecuteContextMenuAction(sCommand);
1921 m_xTreeView->insert(pParent, -1, &rStr, &rId,
nullptr,
nullptr, bChildrenOnDemand, pRet);
1929 std::unique_ptr<weld::TreeIter> xChild =
m_xTreeView->make_iterator(&rIter);
1940 bool bChild =
m_xTreeView->iter_has_child(rParent);
1941 if (bChild || !
m_xTreeView->get_children_on_demand(rParent))
1947 std::unique_ptr<weld::TreeIter> xChild =
m_xTreeView->make_iterator();
1949 assert(dynamic_cast<SwContentType*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(rParent))));
1952 const size_t nCount = pCntType->GetMemberCount();
1956 std::vector<std::unique_ptr<weld::TreeIter>> aParentCandidates;
1957 for(
size_t i = 0;
i < nCount; ++
i)
1959 const SwContent* pCnt = pCntType->GetMember(
i);
1963 OUString sEntry = pCnt->
GetName();
1964 if(sEntry.isEmpty())
1968 auto lamba = [nLevel,
this](
const std::unique_ptr<weld::TreeIter>& entry)
1970 return lcl_IsLowerOutlineContent(*entry, *
m_xTreeView, nLevel);
1975 auto aFind = std::find_if(aParentCandidates.rbegin(), aParentCandidates.rend(), lamba);
1976 if (aFind != aParentCandidates.rend())
1977 insert(aFind->get(), sEntry, sId,
false, xChild.get());
1979 insert(&rParent, sEntry, sId,
false, xChild.get());
1984 aParentCandidates.erase(std::remove_if(aParentCandidates.begin(), aParentCandidates.end(),
1985 std::not_fn(lamba)), aParentCandidates.end());
1988 aParentCandidates.emplace_back(
m_xTreeView->make_iterator(xChild.get()));
1997 for(
size_t i = 0;
i < nCount; ++
i)
1999 const SwContent* pCnt = pCntType->GetMember(
i);
2002 OUString sEntry = pCnt->
GetName();
2003 if (sEntry.isEmpty())
2006 insert(&rParent, sEntry, sId,
false, xChild.get());
2009 m_xTreeView->set_extra_row_indent(*xChild, static_cast<const SwRegionContent*>(pCnt)->GetRegionLevel());
2033 for(
size_t i=0;
i<nCount; ++
i )
2064 const sal_Int32 nOr = 1 <<
static_cast<int>(pCntType->
GetType());
2074 std::map< void*, bool > aCurrOutLineNodeMap;
2079 pNodesToExpand->emplace_back(
m_xTreeView->make_iterator(&rParent));
2080 if (bParentHasChild)
2082 std::unique_ptr<weld::TreeIter> xChild(
m_xTreeView->make_iterator(&rParent));
2084 while (bChild && lcl_IsContent(*xChild, *
m_xTreeView))
2088 assert(dynamic_cast<SwOutlineContent*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(*xChild))));
2089 auto const nPos = weld::fromId<SwOutlineContent*>(
m_xTreeView->get_id(*xChild))->GetOutlinePos();
2091 aCurrOutLineNodeMap.emplace( key,
false );
2095 aCurrOutLineNodeMap[key] =
true;
2098 pNodesToExpand->emplace_back(
m_xTreeView->make_iterator(xChild.get()));
2099 m_xTreeView->set_children_on_demand(*xChild,
false);
2115 assert(dynamic_cast<SwOutlineContent*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(rParent))));
2116 auto const nPos = weld::fromId<SwOutlineContent*>(
m_xTreeView->get_id(rParent))->GetOutlinePos();
2125 pNodesToExpand->emplace_back(
m_xTreeView->make_iterator(&rParent));
2130 Expand(rParent,
nullptr);
2144 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator(&rParent));
2156 const sal_Int32 nAnd = ~(1 <<
static_cast<int>(pCntType->
GetType()));
2159 m_nActiveBlock &= nAnd;
2160 m_pConfig->SetActiveBlock(m_nActiveBlock);
2163 m_nHiddenBlock &= nAnd;
2168 assert(dynamic_cast<SwOutlineContent*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(rParent))));
2169 auto const nPos = weld::fromId<SwOutlineContent*>(
m_xTreeView->get_id(rParent))->GetOutlinePos();
2171 mOutLineNodeMap[key] =
false;
2180 bool bConsumed =
false;
2182 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator());
2183 bool bEntry =
m_xTreeView->get_cursor(xEntry.get());
2185 OSL_ENSURE(bEntry,
"no current entry!");
2190 RequestingChildren(*xEntry);
2191 m_xTreeView->set_children_on_demand(*xEntry,
false);
2195 assert(dynamic_cast<SwContent*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(*xEntry))));
2197 assert(pCnt &&
"no UserData");
2198 if (pCnt && !pCnt->IsInvisible())
2200 if (State::CONSTANT == m_eState)
2202 m_pActiveShell->GetView().GetViewFrame()->GetWindow().ToTop();
2224 sResId = RID_BMP_NAVI_OUTLINE;
2227 sResId = RID_BMP_NAVI_TABLE;
2230 sResId = RID_BMP_NAVI_FRAME;
2233 sResId = RID_BMP_NAVI_GRAPHIC;
2236 sResId = RID_BMP_NAVI_OLE;
2239 sResId = RID_BMP_NAVI_BOOKMARK;
2242 sResId = RID_BMP_NAVI_REGION;
2245 sResId = RID_BMP_NAVI_URLFIELD;
2248 sResId = RID_BMP_NAVI_REFERENCE;
2251 sResId = RID_BMP_NAVI_INDEX;
2254 sResId = RID_BMP_NAVI_POSTIT;
2257 sResId = RID_BMP_NAVI_DRAWOBJECT;
2260 sResId = RID_BMP_NAVI_TEXTFIELD;
2263 sResId = RID_BMP_NAVI_FOOTNOTE;
2266 sResId = RID_BMP_NAVI_ENDNOTE;
2269 SAL_WARN(
"sw.ui",
"ContentTypeId::UNKNOWN has no bitmap preview");
2292 std::unique_ptr<weld::TreeIter> xParent(
m_xTreeView->make_iterator(&rParent));
2295 auto nRefDepth =
m_xTreeView->get_iter_depth(*xParent);
2296 auto nActDepth = nRefDepth;
2302 nActDepth =
m_xTreeView->get_iter_depth(*xParent);
2304 }
while(xParent && nRefDepth < nActDepth);
2312 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator());
2316 while (nAbsPos && xEntry)
2329 std::unique_ptr<weld::TreeIter> xOldSelEntry(
m_xTreeView->make_iterator());
2330 if (!
m_xTreeView->get_selected(xOldSelEntry.get()))
2331 xOldSelEntry.reset();
2332 OUString sOldSelEntryId;
2333 size_t nEntryRelPos = 0;
2335 sal_Int32 nOldScrollPos = 0;
2339 sOldSelEntryId =
m_xTreeView->get_id(*xOldSelEntry);
2340 nOldScrollPos =
m_xTreeView->vadjustment_get_value();
2341 std::unique_ptr<weld::TreeIter> xParentEntry =
m_xTreeView->make_iterator(xOldSelEntry.get());
2342 while (
m_xTreeView->get_iter_depth(*xParentEntry))
2359 bool bDisable = pShell ==
nullptr || bReadOnly;
2370 std::unique_ptr<weld::TreeIter> xEntry =
m_xTreeView->make_iterator();
2371 std::unique_ptr<weld::TreeIter> xCntTypeEntry;
2372 std::vector<std::unique_ptr<weld::TreeIter>> aNodesToExpand;
2380 std::unique_ptr<SwContentType>& rpContentT = bActive ?
2386 OUString aImage(GetImageIdForContentTypeId(nCntType));
2387 bool bChOnDemand = 0 != rpContentT->GetMemberCount();
2389 insert(
nullptr, rpContentT->GetName(), sId, bChOnDemand, xEntry.get());
2395 xCntTypeEntry =
m_xTreeView->make_iterator(xEntry.get());
2400 if (nExpandOptions & (1 << static_cast<int>(nCntType)))
2403 Expand(*xEntry, &aNodesToExpand);
2404 m_xTreeView->set_children_on_demand(*xEntry,
false);
2411 for (
const auto& rNode : aNodesToExpand)
2419 std::unique_ptr<SwContentType>& rpRootContentT = bActive ?
2424 OUString aImage(GetImageIdForContentTypeId(
m_nRootType));
2427 insert(
nullptr, rpRootContentT->GetName(), sId, bChOnDemand, xEntry.get());
2430 xCntTypeEntry =
m_xTreeView->make_iterator(xEntry.get());
2436 std::unique_ptr<weld::TreeIter> xChild =
m_xTreeView->make_iterator();
2437 for (
size_t i = 0;
i < rpRootContentT->GetMemberCount(); ++
i)
2439 const SwContent* pCnt = rpRootContentT->GetMember(
i);
2442 OUString sEntry = pCnt->
GetName();
2443 if(sEntry.isEmpty())
2446 insert(xEntry.get(), sEntry, sSubId,
false, xChild.get());
2449 m_xTreeView->set_extra_row_indent(*xChild, static_cast<const SwRegionContent*>(pCnt)->GetRegionLevel());
2456 Expand(*xEntry, &aNodesToExpand);
2457 m_xTreeView->set_children_on_demand(*xEntry,
false);
2467 for (
const auto& rNode : aNodesToExpand)
2479 std::unique_ptr<weld::TreeIter> xSelEntry =
m_xTreeView->make_iterator(xCntTypeEntry.get());
2482 std::unique_ptr<weld::TreeIter> xIter(
m_xTreeView->make_iterator(xCntTypeEntry.get()));
2483 std::unique_ptr<weld::TreeIter> xTemp(
m_xTreeView->make_iterator(xIter.get()));
2488 if (
m_xTreeView->get_id(*xIter) == sOldSelEntryId || nPos == nEntryRelPos)
2497 xSelEntry = std::move(xTemp);
2507 m_xTreeView->vadjustment_set_value(nOldScrollPos);
2524 OSL_ENSURE(pWrtShell,
"no Shell!");
2526 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator());
2527 bool bEntry =
m_xTreeView->get_cursor(xEntry.get());
2528 if (!bEntry || lcl_IsContentType(*xEntry, *
m_xTreeView) || !pWrtShell)
2531 assert(dynamic_cast<SwContent*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(*xEntry))));
2536 bool bOutline =
false;
2537 OUString sOutlineText;
2543 OSL_ENSURE(nPos < pWrtShell->getIDocumentOutlineNodesAccess()->getOutlineNodesCount(),
2544 "outlinecnt changed");
2556 for(
int nLevel = 0;
2561 sEntry += OUString::number( nVal - pOutlRule->
Get(nLevel).
GetStart() ) +
".";
2591 if(!sEntry.isEmpty())
2623 const OUString& rToken = pCnt->GetParent()->GetTypeToken();
2624 sUrl +=
"#" + sEntry;
2625 if(!rToken.isEmpty())
2638 sEntry = sOutlineText;
2644 aBmk.
Copy( rTransfer );
2662 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator());
2663 bool bEntry =
m_xTreeView->get_cursor(xEntry.get());
2669 assert(dynamic_cast<SwContentType*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(*xEntry))));
2670 pCntType = weld::fromId<SwContentType*>(
m_xTreeView->get_id(*xEntry));
2674 assert(dynamic_cast<SwContent*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(*xEntry))));
2675 pCntType = weld::fromId<SwContent*>(
m_xTreeView->get_id(*xEntry))->GetParent();
2681 m_xTreeView->set_selection_mode(SelectionMode::Multiple);
2688 m_xTreeView->set_selection_mode(SelectionMode::Single);
2712 bool bContentChanged =
false;
2738 std::unique_ptr<weld::TreeIter> xRootEntry(
m_xTreeView->make_iterator());
2742 assert(dynamic_cast<SwContentType*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(*xRootEntry))));
2750 if (bContentChanged)
2759 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator(xRootEntry.get()));
2760 for (
size_t j = 0; j < nChildCount; ++j)
2764 SAL_WARN(
"sw.ui",
"unexpected missing entry");
2776 OUString sEntryText =
m_xTreeView->get_text(*xEntry);
2777 if (sEntryText != pCnt->
GetName() &&
2791 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator());
2794 auto lcl_nextContentTypeEntry = [
this, &xEntry](){
2800 for (
bool bEntry =
m_xTreeView->get_iter_first(*xEntry); bEntry;
2801 bEntry = lcl_nextContentTypeEntry())
2803 assert(dynamic_cast<SwContentType*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(*xEntry))));
2812 bContentChanged =
true;
2817 if (bContentChanged)
2826 if (bContentChanged)
2835 bContentChanged =
true;
2839 for(
size_t j = 0; j < nChildCount; ++j)
2843 SAL_WARN(
"sw.ui",
"unexpected missing entry");
2844 bContentChanged =
true;
2852 OUString sEntryText =
m_xTreeView->get_text(*xEntry);
2853 if( sEntryText != pCnt->
GetName() &&
2856 bContentChanged =
true;
2864 bool bRemoveChildren =
false;
2867 if (nOldChildCount != nNewChildCount)
2869 bRemoveChildren =
true;
2873 std::unique_ptr<weld::TreeIter> xChild(
m_xTreeView->make_iterator(xEntry.get()));
2875 for (
size_t j = 0; j < nOldChildCount; ++j)
2880 OUString sEntryText =
m_xTreeView->get_text(*xChild);
2881 if( sEntryText != pCnt->
GetName() &&
2884 bRemoveChildren =
true;
2889 if (bRemoveChildren)
2891 std::unique_ptr<weld::TreeIter> xRemove(
m_xTreeView->make_iterator(xEntry.get()));
2897 m_xTreeView->set_children_on_demand(*xEntry, nNewChildCount != 0);
2900 else if((nCntCount != 0)
2903 bContentChanged =
true;
2909 return bContentChanged;
2914 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator());
2919 void* pId = weld::fromId<void*>(
m_xTreeView->get_id(*xEntry));
2920 if (pId && lcl_IsContentType(*xEntry, *
m_xTreeView))
2922 assert(dynamic_cast<SwContentType*>(static_cast<SwTypeNumber*>(pId)));
2978 m_xTreeView->set_direction(rFrameDir.GetValue() == SvxFrameDirection::Horizontal_RL_TB);
3012 SfxViewEventHint const*
const pVEHint(dynamic_cast<SfxViewEventHint const*>(&rHint));
3015 pDyingShell = dynamic_cast<SwXTextView*>(pVEHint->
GetController().get());
3024 switch (rHint.
GetId())
3026 case SfxHintId::SwNavigatorUpdateTracking:
3029 case SfxHintId::SwNavigatorSelectOutlinesWithSelections:
3035 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator());
3036 if (xEntry &&
m_xTreeView->get_selected(xEntry.get()))
3043 case SfxHintId::DocChanged:
3050 case SfxHintId::ModeChanged:
3058 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator());
3078 const bool bUp = rCmd ==
"chapterup";
3079 const bool bUpDown = bUp || rCmd ==
"chapterdown";
3080 const bool bLeft = rCmd ==
"promote";
3081 const bool bLeftRight = bLeft || rCmd ==
"demote";
3082 if (!bUpDown && !bLeftRight)
3097 std::vector<SwTextNode*> selectedOutlineNodes;
3098 std::vector<std::unique_ptr<weld::TreeIter>> selected;
3100 m_xTreeView->selected_foreach([
this, pShell, &bLeftRight, &bOutlineWithChildren, &selected, &selectedOutlineNodes](
weld::TreeIter& rEntry){
3102 bool bSkip = lcl_IsContentType(rEntry, *
m_xTreeView);
3106 if ((bLeftRight || bOutlineWithChildren) && !selected.empty())
3108 std::unique_ptr<weld::TreeIter> xParent(
m_xTreeView->make_iterator(&rEntry));
3109 for (
bool bParent =
m_xTreeView->iter_parent(*xParent); bParent; bParent =
m_xTreeView->iter_parent(*xParent))
3111 if (
m_xTreeView->iter_compare(*selected.back(), *xParent) == 0)
3120 selected.emplace_back(
m_xTreeView->make_iterator(&rEntry));
3128 selectedOutlineNodes.push_back(pNode->
GetTextNode());
3135 if (bUpDown && !bUp)
3137 std::reverse(selected.begin(), selected.end());
3141 bool bStartedAction =
false;
3142 for (
auto const& pCurrentEntry : selected)
3144 assert(pCurrentEntry && lcl_IsContent(*pCurrentEntry, *
m_xTreeView));
3147 assert(dynamic_cast<SwContent*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(*pCurrentEntry))));
3149 weld::fromId<SwContent*>(
m_xTreeView->get_id(*pCurrentEntry))->GetParent()->GetType()
3152 nActPos = weld::fromId<SwOutlineContent*>(
m_xTreeView->get_id(*pCurrentEntry))->GetOutlinePos();
3160 if (!bStartedAction)
3164 bStartedAction =
true;
3171 const size_t nEntryAbsPos(
GetAbsPos(*pCurrentEntry));
3173 if (!bOutlineWithChildren && ((nDir == -1 && nActPos > 0) ||
3180 else if (bOutlineWithChildren)
3183 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator(pCurrentEntry.get()));
3184 assert(dynamic_cast<SwOutlineContent*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(*pCurrentEntry))));
3185 const auto nActLevel = weld::fromId<SwOutlineContent*>(
3188 while (bEntry && lcl_IsContent(*xEntry, *
m_xTreeView))
3190 assert(dynamic_cast<SwOutlineContent*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(*xEntry))));
3193 nActEndPos = weld::fromId<SwOutlineContent*>(
m_xTreeView->get_id(*xEntry))->GetOutlinePos();
3198 std::unique_ptr<weld::TreeIter> xNextSibling(
m_xTreeView->make_iterator(pCurrentEntry.get()));
3204 if (bEntry && lcl_IsContent(*xEntry, *
m_xTreeView))
3214 assert(!bEntry || !lcl_IsContent(*xEntry, *
m_xTreeView)||
3215 dynamic_cast<SwOutlineContent*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(*xEntry))));
3225 std::unique_ptr<weld::TreeIter> xTmp(
m_xTreeView->make_iterator(xEntry.get()));
3227 while (bTmp && lcl_IsContent(*xTmp, *
m_xTreeView) &&
3238 nDest = weld::fromId<SwOutlineContent*>(
m_xTreeView->get_id(*xTmp))->GetOutlinePos();
3240 std::unique_ptr<weld::TreeIter> xPrevSibling(
m_xTreeView->make_iterator(xEntry.get()));
3246 nDest = weld::fromId<SwOutlineContent*>(
m_xTreeView->get_id(*xEntry))->GetOutlinePos();
3250 nDirLast = nDir = nDest - nActEndPos;
3255 nDirLast = nDir = 0;
3260 std::unique_ptr<weld::TreeIter> xPrevSibling(
m_xTreeView->make_iterator(pCurrentEntry.get()));
3267 m_xTreeView->copy_iterator(*pCurrentEntry, *xEntry);
3268 while (bEntry && nDest)
3271 assert(!bEntry || !lcl_IsContent(*xEntry, *
m_xTreeView) ||
3272 dynamic_cast<SwOutlineContent*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(*xEntry))));
3273 if (bEntry && lcl_IsContent(*xEntry, *
m_xTreeView))
3275 nDest = weld::fromId<SwOutlineContent*>(
m_xTreeView->get_id(*xEntry))->GetOutlinePos();
3289 std::unique_ptr<weld::TreeIter> xTmp(
m_xTreeView->make_iterator(xEntry.get()));
3291 while (bTmp && lcl_IsContent(*xTmp, *
m_xTreeView) &&
3295 nDest = weld::fromId<SwOutlineContent*>(
m_xTreeView->get_id(*xTmp))->GetOutlinePos();
3299 while (bTmp && lcl_IsContent(*xTmp, *
m_xTreeView) &&
3302 nDest = weld::fromId<SwOutlineContent*>(
m_xTreeView->get_id(*xTmp))->GetOutlinePos();
3310 nDirLast = nDir = nDest - nActPos;
3344 std::unique_ptr<weld::TreeIter> xListEntry(
m_xTreeView->make_iterator());
3345 bool bListEntry =
m_xTreeView->get_iter_first(*xListEntry);
3348 assert(dynamic_cast<SwOutlineContent*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(*xListEntry))));
3349 if (weld::fromId<SwOutlineContent*>(
m_xTreeView->get_id(*xListEntry))->GetOutlinePos() == nCurrPos)
3351 std::unique_ptr<weld::TreeIter> xParent(
m_xTreeView->make_iterator(xListEntry.get()));
3363 for (
SwTextNode* pNode : selectedOutlineNodes)
3366 if(aFndIt == rOutLineNds.
end())
3368 const size_t nFndPos = aFndIt - rOutLineNds.
begin();
3373 std::unique_ptr<weld::TreeIter> xParent(
m_xTreeView->make_iterator(xEntry.get()));
3407 std::unique_ptr<weld::TreeIter> xIter(rContentTree.
make_iterator());
3412 void* pUserData = weld::fromId<void*>(rContentTree.
get_id(*xIter));
3413 assert(dynamic_cast<SwContentType*>(static_cast<SwTypeNumber*>(pUserData)));
3414 if (nType == static_cast<SwContentType*>(pUserData)->GetType())
3430 const void*
p =
nullptr;
3431 while (rContentTree.
iter_next(*xIter) && lcl_IsContent(*xIter, rContentTree))
3433 void* pUserData = weld::fromId<void*>(rContentTree.
get_id(*xIter));
3439 assert(dynamic_cast<SwTextFootnoteContent*>(static_cast<SwTypeNumber*>(pUserData)));
3446 assert(dynamic_cast<SwURLFieldContent*>(static_cast<SwTypeNumber*>(pUserData)));
3453 assert(dynamic_cast<SwTextFieldContent*>(static_cast<SwTypeNumber*>(pUserData)));
3460 assert(dynamic_cast<SwPostItContent*>(static_cast<SwTypeNumber*>(pUserData)));
3471 std::unique_ptr<weld::TreeIter> xFirstSelected(rContentTree.
make_iterator());
3473 xFirstSelected.reset();
3475 rContentTree.
iter_compare(*xIter, *xFirstSelected) != 0)
3491 std::u16string_view rContentTypeName, std::u16string_view rName)
3497 std::unique_ptr<weld::TreeIter> xIter(rContentTree.
make_iterator());
3499 while (bFoundEntry && rContentTypeName != rContentTree.
get_text(*xIter))
3506 while (rContentTree.
iter_next(*xIter) && lcl_IsContent(*xIter, rContentTree))
3508 if (rName == rContentTree.
get_text(*xIter))
3511 std::unique_ptr<weld::TreeIter> xFirstSelected(rContentTree.
make_iterator());
3513 xFirstSelected.reset();
3515 rContentTree.
iter_compare(*xIter, *xFirstSelected) != 0)
3532 std::unique_ptr<weld::TreeIter> xIter(rContentTree.
make_iterator());
3534 while (bFoundEntry &&
SwResId(STR_CONTENT_TYPE_DRAWOBJECT) != rContentTree.
get_text(*xIter))
3540 while (rContentTree.
iter_next(*xIter) && lcl_IsContent(*xIter, rContentTree))
3542 if (rName == rContentTree.
get_text(*xIter))
3546 rContentTree.
select(*xIter);
3565 SwView* pView = GetParentWindow()->GetCreateView();
3570 if (m_bDocHasChanged || m_bViewHasChanged)
3573 if (State::CONSTANT == m_eState && !lcl_FindShell(m_pActiveShell))
3575 SetActiveShell(pActShell);
3576 GetParentWindow()->UpdateListBox();
3578 if (State::ACTIVE == m_eState && pActShell != GetWrtShell())
3580 SetActiveShell(pActShell);
3582 else if ((State::ACTIVE == m_eState || (State::CONSTANT == m_eState && pActShell == GetWrtShell())) &&
3583 HasContentChanged())
3585 FindActiveTypeAndRemoveUserData();
3590 m_bIsIdleClear =
false;
3591 m_bDocHasChanged =
false;
3592 m_bViewHasChanged =
false;
3594 else if (!pView && State::ACTIVE == m_eState && !m_bIsIdleClear)
3598 SetActiveShell(
nullptr);
3601 m_bIsIdleClear =
true;
3638 OUString aContentTypeName;
3643 aContentTypeName =
SwResId(STR_CONTENT_TYPE_GRAPHIC);
3649 aContentTypeName =
SwResId(STR_CONTENT_TYPE_FRAME);
3655 aContentTypeName =
SwResId(STR_CONTENT_TYPE_OLE);
3657 if (!aContentTypeName.isEmpty())
3685 if (!
aName.isEmpty())
3701 && aContentAtPos.pFndTextAttr &&
3705 if (!aContentAtPos.pFndTextAttr->GetFootnote().IsEndNote())
3709 aContentAtPos.pFndTextAttr);
3713 aContentAtPos.pFndTextAttr);
3729 if (lcl_IsUiVisibleBookmark(*ppBookmark) &&
3730 *pCursorPoint >= (*ppBookmark)->GetMarkStart() &&
3731 *pCursorPoint <= (*ppBookmark)->GetMarkEnd())
3734 SwResId(STR_CONTENT_TYPE_BOOKMARK),
3735 (*ppBookmark)->GetName());
3745 aContentAtPos.pFndTextAttr &&
3750 const SwFormatRefMark& rRefMark = aContentAtPos.pFndTextAttr->GetRefMark();
3763 static_txtattr_cast<const SwTextINetFormat*>(aContentAtPos.pFndTextAttr))
3765 if (
const SwTextNode* pTextNode = pTextINetFormat->GetpTextNode())
3785 aContentAtPos.pFndTextAttr);
3819 pTOX->GetTOXName());
3829 pSection->GetSectionName());
3837 m_xTreeView->get_selected_text() == pSection->GetSectionName())
3853 std::unique_ptr<weld::TreeIter> xFirstEntry(
m_xTreeView->make_iterator());
3859 if (lcl_IsContent(rEntry, *
m_xTreeView) && weld::fromId<SwContent*>(
3860 m_xTreeView->get_id(rEntry))->GetParent()->GetType() ==
3863 if (weld::fromId<SwOutlineContent*>(
3864 m_xTreeView->get_id(rEntry))->GetOutlinePos() == nActPos)
3866 std::unique_ptr<weld::TreeIter> xFirstSelected(
3868 if (!
m_xTreeView->get_selected(xFirstSelected.get()))
3869 xFirstSelected.reset();
3872 m_xTreeView->iter_compare(rEntry, *xFirstSelected) != 0)
3877 std::unique_ptr<weld::TreeIter> xChildEntry(
3884 if (weld::fromId<SwContent*>(
3905 weld::fromId<SwContentType*>(
3929 std::vector<SwOutlineNodes::size_type> aOutlinePositions;
3940 }
while (pCursor && pCursor != pFirstCursor);
3942 if (aOutlinePositions.empty())
3946 aOutlinePositions.erase(std::unique(aOutlinePositions.begin(), aOutlinePositions.end()),
3947 aOutlinePositions.end());
3951 for (
auto nOutlinePosition : aOutlinePositions)
3955 weld::fromId<SwContent*>(
3956 m_xTreeView->get_id(rEntry))->GetParent()->GetType() ==
3959 if (weld::fromId<SwOutlineContent*>(
3963 std::unique_ptr<weld::TreeIter> xParent =
3990 bool bFirstMove =
true;
4004 nPrevTargetPosOrOffset = nSourcePos - nTargetPos;
4006 nPrevTargetPosOrOffset = nSourcePos + 1;
4008 else if (nSourcePos < nTargetPos)
4012 nPrevSourcePos = nSourcePos;
4013 nPrevTargetPosOrOffset = nTargetPos;
4022 nTargetPos = nSourcePos - nPrevTargetPosOrOffset;
4024 else if (nSourcePos < nTargetPos)
4027 nSourcePos = nPrevSourcePos;
4028 nTargetPos = nPrevTargetPosOrOffset;
4038 m_aDndOutlinesSelected.clear();
4044 SwView* pActView = GetParentWindow()->GetCreateView();
4048 if (State::CONSTANT == m_eState && !lcl_FindShell(m_pActiveShell))
4050 SetActiveShell(pActShell);
4053 if (State::ACTIVE == m_eState && pActShell != GetWrtShell())
4054 SetActiveShell(pActShell);
4056 else if ((State::ACTIVE == m_eState || (State::CONSTANT == m_eState && pActShell == GetWrtShell())) &&
4059 if (HasContentChanged())
4061 m_bDocHasChanged =
false;
4064 else if (State::ACTIVE == m_eState)
4070 bool bConsumed =
true;
4075 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator());
4081 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator());
4088 GetParentWindow()->ToggleTree();
4108 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator());
4111 assert(dynamic_cast<SwContent*>(weld::fromId<SwTypeNumber*>(
m_xTreeView->get_id(*xEntry))));
4112 if (weld::fromId<SwContent*>(
m_xTreeView->get_id(*xEntry))->GetParent()->IsDeletable() &&
4113 !m_pActiveShell->GetView().GetDocShell()->IsReadOnly())
4123 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator());
4128 if (State::CONSTANT == m_eState)
4130 m_pActiveShell->GetView().GetViewFrame()->GetWindow().ToTop();
4137 SdrView* pDrawView = m_pActiveShell->GetDrawView();
4145 bool hasObjectMarked =
false;
4157 for(
size_t i=0;
i<nCount; ++
i )
4163 case SdrObjKind::Group:
4164 case SdrObjKind::Text:
4165 case SdrObjKind::Line:
4166 case SdrObjKind::Rectangle:
4167 case SdrObjKind::CircleOrEllipse:
4168 case SdrObjKind::CircleSection:
4169 case SdrObjKind::CircleArc:
4170 case SdrObjKind::CircleCut:
4171 case SdrObjKind::Polygon:
4172 case SdrObjKind::PolyLine:
4173 case SdrObjKind::PathLine:
4174 case SdrObjKind::PathFill:
4175 case SdrObjKind::FreehandLine:
4176 case SdrObjKind::FreehandFill:
4177 case SdrObjKind::PathPoly:
4178 case SdrObjKind::PathPolyLine:
4179 case SdrObjKind::Caption:
4180 case SdrObjKind::CustomShape:
4182 hasObjectMarked =
true;
4190 pDrawView->
MarkObj(pTemp, pPV,
true);
4196 if ( !hasObjectMarked )
4206 m_bViewHasChanged =
true;
4212 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator());
4226 ExecCommand(
"promote", !aCode.
IsShift());
4228 ExecCommand(
"demote", !aCode.
IsShift());
4230 ExecCommand(
"chapterup", !aCode.
IsShift());
4232 ExecCommand(
"chapterdown", !aCode.
IsShift());
4234 CopyOutlineSelections();
4253 bool bContent =
false;
4254 void* pUserData = weld::fromId<void*>(
m_xTreeView->get_id(rEntry));
4257 assert(dynamic_cast<SwContentType*>(static_cast<SwTypeNumber*>(pUserData)));
4262 assert(dynamic_cast<SwContent*>(static_cast<SwTypeNumber*>(pUserData)));
4263 nType =
static_cast<SwContent*
>(pUserData)->GetParent()->GetType();
4272 assert(dynamic_cast<SwURLFieldContent*>(static_cast<SwTypeNumber*>(pUserData)));
4277 assert(dynamic_cast<SwPostItContent*>(static_cast<SwTypeNumber*>(pUserData)));
4281 assert(dynamic_cast<SwOutlineContent*>(static_cast<SwTypeNumber*>(pUserData)));
4285 assert(dynamic_cast<SwGraphicContent*>(static_cast<SwTypeNumber*>(pUserData)));
4290 assert(dynamic_cast<SwRegionContent*>(static_cast<SwTypeNumber*>(pUserData)));
4298 if (
nullptr != (pSect = pFormat->
GetSection()) &&
4306 sEntry =
SwResId(STR_REGION_DEFNAME) +
": " + sEntry +
"\n" +
4307 SwResId(FLD_STAT_WORD) +
": " + OUString::number(aDocStat.
nWord) +
"\n" +
4308 SwResId(FLD_STAT_CHAR) +
": " + OUString::number(aDocStat.
nChar);
4317 assert(dynamic_cast<SwTextFootnoteContent*>(static_cast<SwTypeNumber*>(pUserData)));
4322 SwResId(STR_CONTENT_FOOTNOTE);
4327 if(static_cast<SwContent*>(pUserData)->IsInvisible())
4329 if(!sEntry.isEmpty())
4331 sEntry += m_sInvisible;
4336 size_t nMemberCount =
static_cast<SwContentType*
>(pUserData)->GetMemberCount();
4337 sEntry = OUString::number(nMemberCount) +
" " +
4348 if (rSelectedPopupEntry ==
"copy")
4353 if (rSelectedPopupEntry ==
"collapseallcategories")
4355 std::unique_ptr<weld::TreeIter> xEntry =
m_xTreeView->make_iterator();
4356 bool bEntry =
m_xTreeView->get_iter_first(*xEntry);
4366 std::map<OString, ContentTypeId> mPopupEntryToContentTypeId
4384 if (mPopupEntryToContentTypeId.count(rSelectedPopupEntry))
4386 ContentTypeId eCntTypeId = mPopupEntryToContentTypeId[rSelectedPopupEntry];
4392 std::unique_ptr<weld::TreeIter> xFirst(
m_xTreeView->make_iterator());
4396 if (rSelectedPopupEntry ==
"sort")
4399 const OUString& rId(
m_xTreeView->get_id(*xFirst));
4401 pCntType = weld::fromId<SwContentType*>(rId);
4403 pCntType =
const_cast<SwContentType*
>(weld::fromId<SwContent*>(rId)->GetParent());
4410 auto nSelectedPopupEntry = rSelectedPopupEntry.toUInt32();
4411 switch (nSelectedPopupEntry)
4413 case TOGGLE_OUTLINE_CONTENT_VISIBILITY:
4414 case HIDE_OUTLINE_CONTENT_VISIBILITY:
4415 case SHOW_OUTLINE_CONTENT_VISIBILITY:
4422 if (nSelectedPopupEntry == TOGGLE_OUTLINE_CONTENT_VISIBILITY)
4440 bool bShow(nSelectedPopupEntry == SHOW_OUTLINE_CONTENT_VISIBILITY);
4445 }
while (++nPos < nOutlineNodesCount
4462 nSelectedPopupEntry -= 10;
4477 nSelectedPopupEntry -= 100;
4597 if(nSelectedPopupEntry > 300 && nSelectedPopupEntry < 400)
4599 nSelectedPopupEntry -= 300;
4603 nSelectedPopupEntry --;
4604 if(nSelectedPopupEntry == 0)
4611 if(nSelectedPopupEntry)
4615 Display(nSelectedPopupEntry == 1);
4634 nChapters +=
m_xTreeView->iter_n_children(rEntry);
4672 rpContentT->FillMemberList();
4709 if (m_pConfig->IsNavigateOnSelect())
4718 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator());
4723 m_pDialog->SelectNavigateByContentType(
m_xTreeView->get_text(*xEntry));
4729 std::unique_ptr<weld::TreeIter> xEntry(
m_xTreeView->make_iterator());
4733 bool bEnable =
false;
4734 std::unique_ptr<weld::TreeIter> xParentEntry(
m_xTreeView->make_iterator(xEntry.get()));
4735 bool bParentEntry =
m_xTreeView->iter_parent(*xParentEntry);
4736 while (bParentEntry && (!lcl_IsContentType(*xParentEntry, *
m_xTreeView)))
4737 bParentEntry =
m_xTreeView->iter_parent(*xParentEntry);
4742 else if (bParentEntry)
4769 if (rEntry.isEmpty())
4772 OUStringBuffer aEntry(rEntry);
4773 for (sal_Int32
i = 0;
i < rEntry.getLength(); ++
i)
4774 if(aEntry[
i] == 10 || aEntry[
i] == 13)
4777 return aEntry.makeStringAndClear();
4785 sal_uInt16 nSlot = 0;
4790 uno::Reference< container::XNameAccess > xNameAccess, xSecond, xThird;
4804 GetDoc()->UnProtectCells( pCnt->
GetName());
4809 OUString sTable =
SwResId(STR_TABLE_NAME);
4814 sTable = aRewriterTableName.
Apply(sTable);
4827 uno::Reference< text::XTextTablesSupplier > xTables(xModel, uno::UNO_QUERY);
4828 xNameAccess = xTables->getTextTables();
4842 uno::Reference< text::XTextGraphicObjectsSupplier > xGraphics(xModel, uno::UNO_QUERY);
4843 xNameAccess = xGraphics->getGraphicObjects();
4844 uno::Reference< text::XTextFramesSupplier > xFrames(xModel, uno::UNO_QUERY);
4845 xSecond = xFrames->getTextFrames();
4846 uno::Reference< text::XTextEmbeddedObjectsSupplier > xObjs(xModel, uno::UNO_QUERY);
4847 xThird = xObjs->getEmbeddedObjects();
4862 uno::Reference< text::XTextFramesSupplier > xFrames(xModel, uno::UNO_QUERY);
4863 uno::Reference< text::XTextEmbeddedObjectsSupplier > xObjs(xModel, uno::UNO_QUERY);
4866 xNameAccess = xFrames->getTextFrames();
4867 xSecond = xObjs->getEmbeddedObjects();
4871 xNameAccess = xObjs->getEmbeddedObjects();
4872 xSecond = xFrames->getTextFrames();
4874 uno::Reference< text::XTextGraphicObjectsSupplier > xGraphics(xModel, uno::UNO_QUERY);
4875 xThird = xGraphics->getGraphicObjects();
4890 uno::Reference< text::XBookmarksSupplier > xBkms(xModel, uno::UNO_QUERY);
4891 xNameAccess = xBkms->getBookmarks();
4901 uno::Reference< text::XTextSectionsSupplier > xSects(xModel, uno::UNO_QUERY);
4902 xNameAccess = xSects->getTextSections();
4910 nSlot = SID_REMOVE_HYPERLINK;
4912 nSlot = SID_EDIT_HYPERLINK;
4939 pPostItMgr->SetActiveSidebarWin(
nullptr);
4940 rView.GetEditWin().GrabFocus();
4958 SfxCallMode::ASYNCHRON, { &aPtrItem });
4973 Reference< XDocumentIndexesSupplier > xIndexes(xModel, UNO_QUERY);
4974 Reference< XIndexAccess> xIdxAcc(xIndexes->getDocumentIndexes());
4977 xNameAccess = xLocalNameAccess;
4978 else if(xLocalNameAccess.is() && xLocalNameAccess->hasByName(pBase->
GetTOXName()))