21#include <tools/datetime.hxx>
49#include <osl/diagnose.h>
50#include <bitmaps.hlst>
66 auto xDlg = std::make_shared<SwModelessRedlineAcceptDlg>(pBindings,
this, _pParent->GetFrameWeld());
68 xDlg->Initialize(pInfo);
84 "svx/ui/acceptrejectchangesdialog.ui",
"AcceptRejectChangesDialog")
85 , m_xContentArea(m_xBuilder->weld_container(
"container"))
101 SwWait aWait( *pDocSh,
false );
127 if (pInfo !=
nullptr)
145 : m_xParentDlg(
std::move(xParent))
146 , m_aSelectTimer(
"SwRedlineAcceptDlg m_aSelectTimer")
147 , m_sInserted(
SwResId(STR_REDLINE_INSERTED))
148 , m_sDeleted(
SwResId(STR_REDLINE_DELETED))
149 , m_sFormated(
SwResId(STR_REDLINE_FORMATTED))
150 , m_sTableChgd(
SwResId(STR_REDLINE_TABLECHG))
151 , m_sFormatCollSet(
SwResId(STR_REDLINE_FMTCOLLSET))
152 , m_sAutoFormat(
SwResId(STR_REDLINE_AUTOFMT))
153 , m_bOnlyFormatedRedlines(false)
154 , m_bRedlnAutoFormat(bAutoFormat)
155 , m_bInhibitActivate(false)
156 , m_bHasTrackedColumn(false)
158 , m_xPopup(pBuilder->weld_menu(
"writermenu"))
159 , m_xSortMenu(pBuilder->weld_menu(
"writersortmenu"))
214 std::optional<SwWait> oWait;
216 oWait.emplace(*pView->GetDocShell(),
false);
237 std::unique_ptr<weld::TreeIter> xSelEntry(rTreeView.
make_iterator());
254 std::vector<OUString> aStrings;
261 bool bIsNotFormated =
false;
273 for (sal_uInt16 nStack = 1; nStack < rRedln.
GetStackCount(); nStack++)
279 std::sort(aStrings.begin(), aStrings.end());
280 aStrings.erase(std::unique(aStrings.begin(), aStrings.end()), aStrings.end());
282 for (
auto const &
i: aStrings)
285 if (pFilterPage->
SelectAuthor(sOldAuthor) == -1 && !aStrings.empty())
302 bIsNotFormated |= RedlineType::Format != rRedln.
GetType();
317 bool bTableChanges,
bool bRowChanges)
319 switch (rRedln.
GetType(nStack))
321 case RedlineType::Insert:
return bTableChanges
323 ? OUString(BMP_REDLINE_ROW_INSERTION)
324 : OUString(BMP_REDLINE_COL_INSERTION)
326 ? OUString(BMP_REDLINE_MOVED_INSERTION)
328 ? OUString(BMP_REDLINE_COMMENT_INSERTION)
329 : OUString(BMP_REDLINE_INSERTED);
330 case RedlineType::Delete:
return bTableChanges
332 ? OUString(BMP_REDLINE_ROW_DELETION)
333 : OUString(BMP_REDLINE_COL_DELETION)
335 ? OUString(BMP_REDLINE_MOVED_DELETION)
337 ? OUString(BMP_REDLINE_COMMENT_DELETION)
338 : OUString(BMP_REDLINE_DELETED);
339 case RedlineType::Format:
return BMP_REDLINE_FORMATTED;
340 case RedlineType::ParagraphFormat:
return BMP_REDLINE_FORMATTED;
341 case RedlineType::Table:
return BMP_REDLINE_TABLECHG;
342 case RedlineType::FmtColl:
return BMP_REDLINE_FMTCOLLSET;
351 switch( rRedln.
GetType(nStack) )
356 case RedlineType::ParagraphFormat:
return m_sFormated;
431 if (!pRedlineData && pBackupData)
443 if (pRedlineData != pBackupData->
pChild)
451 pBackupData = pBackupData->
pNext;
452 pRedlineData = pRedlineData->
Next();
466 bool bIsShowChangesInMargin =
SW_MOD()->GetUsrPref(
false)->IsShowChangesInMargin();
474 bool bShowDeletedTextAsComment = bIsShowChangesInMargin &&
476 const OUString sComment = bShowDeletedTextAsComment
526 [&pBackupData](
const std::unique_ptr<SwRedlineDataChild>& rChildPtr) { return rChildPtr.get() == pBackupData; });
532 pParent->
pNext =
nullptr;
585 if (bHasRedlineAutoFormat)
590 std::pair<SwRedlineDataParentSortArr::const_iterator,bool>
const ret
603 bValidParent = bValidParent && bAutoFormatRedline;
605 bool bValidTree = bValidParent;
607 for (sal_uInt16 nStack = 1; nStack < rRedln.
GetStackCount(); nStack++)
609 pRedlineData = pRedlineData->
Next();
612 pRedlineChild->
pChild = pRedlineData;
615 if ( pLastRedlineChild )
616 pLastRedlineChild->
pNext = pRedlineChild;
618 pParent->
pNext = pRedlineChild;
623 if (bHasRedlineAutoFormat)
624 bValidChild = bValidChild && bAutoFormatRedline;
625 bValidTree |= bValidChild;
630 pData->pData = pRedlineChild;
631 pData->bDisabled =
true;
638 OUString sComment = rRedln.
GetComment(nStack);
640 std::unique_ptr<weld::TreeIter> xChild(rTreeView.
make_iterator());
643 false, xChild.get());
646 rTreeView.
set_image(*xChild, sImage, -1);
647 rTreeView.
set_text(*xChild, sAuthor, 1);
648 rTreeView.
set_text(*xChild, sDateEntry, 2);
649 rTreeView.
set_text(*xChild, sComment, 3);
651 pRedlineChild->
xTLBChild = std::move(xChild);
658 pLastRedlineChild = pRedlineChild;
661 if (pLastRedlineChild)
662 pLastRedlineChild->
pNext =
nullptr;
668 if (bHasRedlineAutoFormat)
685 std::vector<const weld::TreeIter*> aLBoxArr;
692 bool bChildrenRemoved =
false;
700 while( ( pCurEntry ==
nullptr ) && (
nPos > 0 ) )
718 [&pChildPtr](
const std::unique_ptr<SwRedlineDataChild>& rChildPtr) { return rChildPtr.get() == pChildPtr; });
721 sal_uInt16 nChildren = 0;
729 bChildrenRemoved =
true;
734 aLBoxArr.push_back(pEntry);
738 return rTreeView.iter_compare(*a, *b) == -1;
741 for (
auto it = aLBoxArr.rbegin(); it != aLBoxArr.rend(); ++it)
787 pSh->SwCursorShell::Push();
789 if(
nullptr == pCurrRedline )
795 pCurrRedline =
nullptr;
801 bool bIsShowChangesInMargin =
SW_MOD()->GetUsrPref(
false)->IsShowChangesInMargin();
820 std::vector<SwRedlineTable::size_type> aTableParents;
832 pRedlineParent->
pData = pRedlineData;
833 pRedlineParent->
pNext =
nullptr;
838 bool bChange =
false;
839 bool bRowChange =
false;
842 nullptr != ( pTableLine = pTableBox->
GetUpper() ) &&
849 nRowChange > nSkipRedline ? nRowChange - nSkipRedline : 0;
852 nRowChange = bRowChange
860 for (
size_t j = 0; j < aTableParents.size(); j++)
869 nTableParent = aTableParents[j];
878 aTableParents.push_back(
i);
890 bChange = bRowChange =
false;
897 aTableParents.clear();
900 bool bShowDeletedTextAsComment = bIsShowChangesInMargin &&
902 const OUString& sComment = bShowDeletedTextAsComment
905 pRedlineParent->
sComment = sComment.replace(
'\n',
' ');
907 std::unique_ptr<SwRedlineDataParent>(pRedlineParent));
910 pData->pData = pRedlineParent;
911 pData->bDisabled =
false;
917 OUString sImage =
GetActionImage(rChangeRedln, 0, bChange && aTableParents.back() ==
i, bRowChange );
924 std::unique_ptr<weld::TreeIter> xParent(rTreeView.
make_iterator());
926 if ( !bChange || aTableParents.back() ==
i )
928 rTreeView.
insert(
nullptr,
i - nSkipRedlines,
nullptr, &
sId,
nullptr,
nullptr,
false, xParent.get());
930 if ( nSkipRedline > 0 )
932 nSkipRedlines += nSkipRedline;
940 rTreeView.
insert(pParent->
xTLBParent.get(), -1,
nullptr, &
sId,
nullptr,
nullptr,
false, xParent.get());
945 rTreeView.
set_image(*xParent, sImage, -1);
946 rTreeView.
set_text(*xParent, sAuthor, 1);
947 rTreeView.
set_text(*xParent, sDateEntry, 2);
948 rTreeView.
set_text(*xParent, sComment, 3);
950 if (pCurrRedline == &rRedln)
954 rTreeView.
select(*xParent);
959 pRedlineParent->
xTLBParent = std::move(xParent);
980 typedef std::vector<std::unique_ptr<weld::TreeIter>> ListBoxEntries_t;
981 ListBoxEntries_t aRedlines;
985 "recursive call of CallAcceptReject?");
990 auto lambda = [
this, pSh, bSelect, bAccept, &rTreeView, &
nPos, &aRedlines](
weld::TreeIter& rEntry) {
993 if (bSelect &&
nPos == -1)
998 bool bIsNotFormatted =
true;
1009 if( RedlineType::Format == rRedln.
GetType() )
1010 bIsNotFormatted =
false;
1013 if (!
pData->bDisabled && bIsNotFormatted)
1032 bool bMoreRedlines( aRedlines.size() > 1 ||
1034 ( aRedlines.size() == 1 && rTreeView.
iter_n_children(*aRedlines[0]) > 0 ) );
1038 if ( bMoreRedlines && aRedlines.size() == 1 )
1040 std::unique_ptr<weld::TreeIter> xChild(rTreeView.
make_iterator( &*aRedlines[0] ));
1042 if (
pData->bDisabled )
1043 bMoreRedlines =
false;
1046 if ( bMoreRedlines )
1052 OUString::number(aRedlines.size()));
1068 for (
const auto& rRedLine : aRedlines)
1072 (pSh->*FnAccRej)( nPosition );
1076 std::unique_ptr<weld::TreeIter> xChild(rTreeView.
make_iterator( &*rRedLine ));
1081 if ( !
pData->bDisabled )
1087 (pSh->*FnAccRej)( nPosition );
1094 if ( bMoreRedlines )
1111 SelectHdl(rTreeView);
1133 CallAcceptReject(
true,
true );
1138 CallAcceptReject(
false,
true );
1143 CallAcceptReject(
true,
false );
1148 CallAcceptReject(
false,
false );
1155 pView->GetViewFrame().GetDispatcher()->
1156 Execute(SID_UNDO, SfxCallMode::SYNCHRON);
1157 m_pTPView->EnableUndo(pView->GetSlotState(SID_UNDO) !=
nullptr);
1165 SvxTPFilter *pFilterTP = m_xTabPagesCTRL->GetFilterPage();
1170 m_sFilterAction.clear();
1177 m_aSelectTimer.Start();
1182 m_aSelectTimer.Stop();
1192 bool bIsNotFormated =
false;
1199 if (!m_xParentDlg || m_xParentDlg->has_toplevel_focus())
1202 std::unique_ptr<weld::TreeIter> xActEntry(rTreeView.
make_iterator());
1213 rTreeView.iter_parent(*xActEntry);
1214 if (rTreeView.is_selected(*xActEntry))
1226 bIsNotFormated |= RedlineType::Format != rRedln.
GetType();
1231 pSh->EnterAddMode();
1236 std::unique_ptr<weld::TreeIter> xChild(rTreeView.
make_iterator( &*xActEntry ));
1241 if ( !
pData->bDisabled )
1245 nPos = GetRedlinePos(*xChild);
1249 bIsNotFormated |= RedlineType::Format != rRedln.
GetType();
1272 m_pTPView->EnableAccept( bEnable && bSel );
1273 m_pTPView->EnableReject( bEnable && bSel );
1274 m_pTPView->EnableClearFormat( bEnable && bSel && !bIsNotFormated );
1275 m_pTPView->EnableAcceptAll( bEnable );
1276 m_pTPView->EnableRejectAll( bEnable );
1277 m_pTPView->EnableClearFormatAll( bEnable && m_bOnlyFormatedRedlines );
1282 if (rCEvt.GetCommand() != CommandEventId::ContextMenu)
1296 std::unique_ptr<weld::TreeIter> xEntry(rTreeView.
make_iterator());
1300 std::unique_ptr<weld::TreeIter> xTopEntry(rTreeView.
make_iterator(xEntry.get()));
1316 m_xPopup->set_sensitive(
"writeredit", bEntry && pRed &&
1319 m_xPopup->set_sensitive(
"writersort", rTreeView.
n_children() != 0);
1323 for (sal_Int32
i = 0;
i < 5; ++
i)
1324 m_xSortMenu->set_active(
u"writersort" + OUString::number(
i),
i == nColumn);
1326 OUString sCommand = m_xPopup->popup_at_rect(&rTreeView,
tools::Rectangle(rCEvt.GetMousePosPixel(),
Size(1,1)));
1328 if (sCommand ==
"writeredit")
1359 SID_ATTR_POSTIT_DATE ));
1368 case RedlineType::Insert:
1369 pResId = STR_REDLINE_INSERTED;
1371 case RedlineType::Delete:
1372 pResId = STR_REDLINE_DELETED;
1374 case RedlineType::Format:
1375 case RedlineType::ParagraphFormat:
1376 pResId = STR_REDLINE_FORMATTED;
1378 case RedlineType::Table:
1379 pResId = STR_REDLINE_TABLECHG;
1383 OUString sTitle(
SwResId(STR_REDLINE_COMMENT));
1386 pDlg->SetText(sTitle);
1390 if ( pDlg->Execute() ==
RET_OK )
1392 const SfxItemSet* pOutSet = pDlg->GetOutputItemSet();
1393 OUString sMsg(pOutSet->
Get(SID_ATTR_POSTIT_TEXT).GetValue());
1397 rTreeView.
set_text(*xEntry, sMsg.replace(
'\n',
' '), 3);
1405 else if (!sCommand.isEmpty())
1409 if (nSortMode == 4 && nColumn == 4)
1415 m_pTable->HeaderBarClick(nSortMode);
1416 if (nSortMode == -1)
1424 OUString lcl_StripAcceptChgDat(OUString &rExtraString)
1429 sal_Int32
nPos = rExtraString.indexOf(
"AcceptChgDat:");
1434 sal_Int32
n1 = rExtraString.indexOf(
'(', nPos);
1437 sal_Int32
n2 = rExtraString.indexOf(
')', n1);
1441 aStr = rExtraString.copy(nPos, n2 - nPos + 1);
1442 rExtraString = rExtraString.replaceAt(nPos, n2 - nPos + 1, u
"");
1453 if (rExtraString.isEmpty())
1456 OUString
aStr = lcl_StripAcceptChgDat(rExtraString);
1464 std::vector<int> aEndPos;
1468 sal_Int32
n1 =
aStr.indexOf(
';');
1470 aEndPos.push_back(
aStr.toInt32());
1473 bool bUseless =
false;
1475 std::vector<int> aWidths;
1478 aWidths.push_back(aEndPos[
i] - aEndPos[
i - 1]);
1479 if (aWidths.back() <= 0)
1495 lcl_StripAcceptChgDat(rExtraData);
1496 rExtraData +=
"AcceptChgDat:(";
1498 const int nTabCount = 4;
1500 rExtraData += OUString::number(nTabCount);
1504 std::vector<int> aWidths;
1509 for (
int i = 0;
i < nTabCount - 1; ++
i)
1512 assert(nWidth > 0 &&
"suspicious to get a value like this");
1513 aWidths.push_back(aWidths.back() + nWidth);
1516 for (
auto a : aWidths)
1518 rExtraData += OUString::number(
a);
1525 :
PanelLayout(pParent,
"ManageChangesPanel",
"modules/swriter/ui/managechangessidebar.ui")
1526 , mxContentArea(m_xBuilder->weld_container(
"content_area"))
SFX_IMPL_MODELESSDIALOGCONTOLLER_WITHID(SvxContourDlgChildWindow, SID_CONTOUR_DLG)
Reference< XExecutableDialog > m_xDialog
virtual const css::uno::Sequence< sal_Int8 > & GetRedlinePassword() const =0
std::unique_ptr< weld::Builder > m_xBuilder
std::shared_ptr< SfxDialogController > & GetController()
const SfxPoolItem * ExecuteList(sal_uInt16 nSlot, SfxCallMode nCall, std::initializer_list< SfxPoolItem const * > args, std::initializer_list< SfxPoolItem const * > internalargs=std::initializer_list< SfxPoolItem const * >())
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
void StartListening(SfxBroadcaster &rBroadcaster, DuplicateHandling eDuplicateHanding=DuplicateHandling::Unexpected)
virtual void FillInfo(SfxChildWinInfo &) const
void Initialize(SfxChildWinInfo const *pInfo)
virtual void Activate() override
SfxDispatcher * GetDispatcher()
SfxViewFrame & GetViewFrame() const
virtual VclPtr< AbstractSvxPostItDialog > CreateSvxPostItDialog(weld::Widget *pParent, const SfxItemSet &rCoreSet, bool bPrevNext=false)=0
static SvxAbstractDialogFactory * Create()
virtual DialogGetRanges GetDialogGetRangesFunc()=0
bool IsValidEntry(std::u16string_view rAuthor, const DateTime &rDateTime, const OUString &rComment)
weld::TreeView & GetWidget()
OUString GetSelectedAuthor() const
weld::ComboBox * GetLbAction()
void InsertAuthor(const OUString &rString)
sal_Int32 SelectAuthor(const OUString &aString)
void EnableRejectAll(bool bFlag)
void EnableAccept(bool bFlag)
void EnableClearFormat(bool bFlag)
SvxRedlinTable * GetTableControl()
void SetRejectClickHdl(const Link< SvxTPView *, void > &rLink)
void EnableUndo(bool bFlag=true)
void EnableAcceptAll(bool bFlag)
void SetUndoClickHdl(const Link< SvxTPView *, void > &rLink)
void SetRejectAllClickHdl(const Link< SvxTPView *, void > &rLink)
void SetAcceptClickHdl(const Link< SvxTPView *, void > &rLink)
void EnableReject(bool bFlag)
void SetAcceptAllClickHdl(const Link< SvxTPView *, void > &rLink)
void EnableClearFormatAll(bool bFlag)
virtual bool ReInitDlg(SwDocShell *pDocSh)
void SetOldDocShell(SwDocShell *pDcSh)
SwDocShell * GetOldDocShell()
void EndAction(const bool bIdleEnd=false)
const SwRangeRedline * SelNextRedline()
const SwRangeRedline * SelPrevRedline()
bool IsCursorPtAtEnd() const
SwDocShell * GetDocShell()
bool IsModified() const
Changes in document?
bool AcceptRedline(SwRedlineTable::size_type nPos)
bool SetRedlineComment(const OUString &rS)
Set comment to Redline at position.
SwUndoId StartUndo(SwUndoId eUndoId=SwUndoId::EMPTY, const SwRewriter *pRewriter=nullptr)
Undo: set up Undo parenthesis, return nUndoId of this parenthesis.
bool RejectRedline(SwRedlineTable::size_type nPos)
const SwRangeRedline & GetRedline(SwRedlineTable::size_type nPos) const
const SwRangeRedline * GetCurrRedline() const
SwUndoId EndUndo(SwUndoId eUndoId=SwUndoId::EMPTY, const SwRewriter *pRewriter=nullptr)
Closes parenthesis of nUndoId, not used by UI.
SwRedlineTable::size_type GetRedlineCount() const
SwRedlineTable::size_type FindRedlineOfData(const SwRedlineData &) const
Search Redline for this Data and.
SwModelessRedlineAcceptDlg(SfxBindings *, SwChildWinWrapper *, weld::Window *pParent)
virtual void FillInfo(SfxChildWinInfo &) const override
void Initialize(SfxChildWinInfo *pInfo)
virtual void Activate() override
std::unique_ptr< SwRedlineAcceptDlg > m_xImplDlg
std::unique_ptr< weld::Container > m_xContentArea
SwChildWinWrapper * m_pChildWin
virtual ~SwModelessRedlineAcceptDlg() override
SwTableBox * GetTableBox() const
If node is in a table return the respective table box.
const SwPosition * Start() const
bool IsAutoFormat() const
const OUString & GetComment(sal_uInt16 nPos=0) const
sal_uInt16 GetStackCount() const
OUString const & GetAuthorString(sal_uInt16 nPos=0) const
bool IsAnnotation() const
const DateTime & GetTimeStamp(sal_uInt16 nPos=0) const
RedlineType GetType(sal_uInt16 nPos=0) const
const SwRedlineData & GetRedlineData(sal_uInt16 nPos=0) const
virtual bool ReInitDlg(SwDocShell *pDocSh) override
bool HasRedlineAutoFormat() const
void FillInfo(OUString &rExtraData) const
SAL_DLLPRIVATE void InitAuthors()
void Init(SwRedlineTable::size_type nStart=0)
std::vector< std::unique_ptr< SwRedlineDataChild > > m_RedlineChildren
SAL_DLLPRIVATE OUString GetActionText(const SwRangeRedline &rRedln, sal_uInt16 nStack=0)
void Initialize(OUString &rExtraData)
SAL_DLLPRIVATE void RemoveParents(SwRedlineTable::size_type nStart, SwRedlineTable::size_type nEnd)
void CallAcceptReject(bool bSelect, bool bAccept)
bool m_bOnlyFormatedRedlines
OUString m_sFormatCollSet
SAL_DLLPRIVATE void InsertChildren(SwRedlineDataParent *pParent, const SwRangeRedline &rRedln, bool bHasRedlineAutoFormat)
SAL_DLLPRIVATE SwRedlineTable::size_type GetRedlinePos(const weld::TreeIter &rEntry)
std::unique_ptr< SvxAcceptChgCtr > m_xTabPagesCTRL
SAL_DLLPRIVATE SwRedlineTable::size_type CalcDiff(SwRedlineTable::size_type nStart, bool bChild)
SwRedlineAcceptDlg(SwRedlineAcceptDlg const &)=delete
SAL_DLLPRIVATE void InsertParents(SwRedlineTable::size_type nStart, SwRedlineTable::size_type nEnd=SwRedlineTable::npos)
static SAL_DLLPRIVATE OUString GetActionImage(const SwRangeRedline &rRedln, sal_uInt16 nStack=0, bool bTableChanges=false, bool bRowChanges=false)
SwRedlineDataParentSortArr m_aUsedSeqNo
std::vector< std::unique_ptr< SwRedlineDataParent > > m_RedlineParents
std::vector< std::unique_ptr< RedlinData > > m_RedlinData
SvxRedlinTable * m_pTable
std::unique_ptr< SwRedlineAcceptDlg > mpImplDlg
SwRedlineAcceptPanel(weld::Widget *pParent)
std::unique_ptr< weld::Container > mxContentArea
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
We need to be a SfxListener to be able to update the list of changes when we get SfxHintId::DocChange...
virtual ~SwRedlineAcceptPanel() override
sal_uInt16 GetSeqNo() const
const SwRedlineData * Next() const
bool CanCombine(const SwRedlineData &rCmp) const
const DateTime & GetTimeStamp() const
static constexpr size_type npos
vector_type::size_type size_type
void AddRule(SwUndoArg eWhat, const OUString &rWith)
OUString Apply(const OUString &rStr) const
SwTableBox is one table cell in the document model.
SwRedlineTable::size_type GetRedline() const
RedlineType GetRedlineType() const
SwTableLine is one table row in the document model.
SwRedlineTable::size_type UpdateTextChangesOnly(SwRedlineTable::size_type &rRedlinePos, bool bUpdateProperty=true) const
RedlineType GetRedlineType() const
static void SetCareDialog(const std::shared_ptr< weld::Window > &rNew)
const IDocumentRedlineAccess & getIDocumentRedlineAccess() const
Provides access to the document redline interface.
const SfxItemPool & GetAttrPool() const
SwWrtShell * GetWrtShellPtr() const
SwDocShell * GetDocShell()
Used by the UI to modify the document model.
const SwRangeRedline * GotoRedline(SwRedlineTable::size_type nArrPos, bool bSelect)
const SwView & GetView() const
void SetTimeout(sal_uInt64 nTimeoutMs)
void SetInvokeHandler(const Link< Timer *, void > &rLink)
size_type erase(const Value &x)
std::pair< const_iterator, bool > insert(Value &&x)
virtual OUString get_active_text() const=0
virtual void set_active(int pos)=0
void append_text(const OUString &rStr)
virtual void scroll_to_row(int row)=0
virtual std::unique_ptr< TreeIter > make_iterator(const TreeIter *pOrig=nullptr) const=0
virtual bool get_selected(TreeIter *pIter) const=0
virtual void connect_popup_menu(const Link< const CommandEvent &, bool > &rLink)
virtual void make_sorted()=0
virtual void expand_row(const TreeIter &rIter)=0
virtual int get_iter_index_in_parent(const TreeIter &rIter) const=0
virtual void set_text(int row, const OUString &rText, int col=-1)=0
int get_checkbox_column_width() const
virtual int n_children() const=0
virtual void set_selection_mode(SelectionMode eMode)=0
virtual int get_sort_column() const=0
virtual void insert(const TreeIter *pParent, int pos, const OUString *pStr, const OUString *pId, const OUString *pIconName, VirtualDevice *pImageSurface, bool bChildrenOnDemand, TreeIter *pRet)=0
virtual int iter_n_children(const TreeIter &rIter) const=0
virtual void selected_foreach(const std::function< bool(TreeIter &)> &func)=0
void connect_changed(const Link< TreeView &, void > &rLink)
virtual void set_image(int row, const OUString &rImage, int col=-1)=0
virtual void copy_iterator(const TreeIter &rSource, TreeIter &rDest) const=0
virtual void remove(int pos)=0
virtual bool iter_next_sibling(TreeIter &rIter) const=0
virtual void select(int pos)=0
virtual bool iter_parent(TreeIter &rIter) const=0
virtual void set_column_fixed_widths(const std::vector< int > &rWidths)=0
virtual bool iter_children(TreeIter &rIter) const=0
virtual int get_column_width(int nCol) const=0
virtual void set_cursor(int pos)=0
virtual int get_iter_depth(const TreeIter &rIter) const=0
virtual void all_foreach(const std::function< bool(TreeIter &)> &func)=0
virtual void make_unsorted()=0
virtual int count_selected_rows() const=0
virtual OUString get_id(int pos) const=0
#define FN_REDLINE_ACCEPT
LineEnd GetSystemLineEnd()
TOOLS_DLLPUBLIC OString convertLineEnd(const OString &rIn, LineEnd eLineEnd)
#define LINK(Instance, Class, Member)
std::unique_ptr< sal_Int32[]> pData
sal_Int32 toInt32(std::u16string_view str, sal_Int16 radix=10)
OUString toId(const void *pValue)
SwNodeOffset min(const SwNodeOffset &a, const SwNodeOffset &b)
IMPL_LINK_NOARG(SwRedlineAcceptDlg, AcceptHdl, SvxTPView *, void)
IMPL_LINK(SwRedlineAcceptDlg, CommandHdl, const CommandEvent &, rCEvt, bool)
const SwRedlineData * pChild
std::unique_ptr< weld::TreeIter > xTLBChild
const SwRedlineDataChild * pNext
std::unique_ptr< weld::TreeIter > xTLBParent
const SwRedlineDataChild * pNext
const SwRedlineData * pData
OUString SwResId(TranslateId aId)