summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-04-18 16:49:26 +0100
committerCaolán McNamara <caolanm@redhat.com>2019-04-27 12:41:14 +0200
commit56dd851cfc77c362c3db5c0aae4a490c7f6782cc (patch)
tree0f5f6564e0b9af8123f4cebfe9a2f55c1bbbba57 /svx
parent6afbe153ffd4cab27f0a7bb77f71f25923dc2e43 (diff)
weld cluster of change tracking dialogs
Change-Id: I42ca7acb41699df91b91a9f59fc68cd30972a397 Reviewed-on: https://gerrit.libreoffice.org/70988 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'svx')
-rw-r--r--svx/source/dialog/ctredlin.cxx875
-rw-r--r--svx/source/sidebar/PanelLayout.cxx9
-rw-r--r--svx/uiconfig/ui/acceptrejectchangesdialog.ui45
-rw-r--r--svx/uiconfig/ui/redlinefilterpage.ui63
-rw-r--r--svx/uiconfig/ui/redlineviewpage.ui288
5 files changed, 691 insertions, 589 deletions
diff --git a/svx/source/dialog/ctredlin.cxx b/svx/source/dialog/ctredlin.cxx
index 4abffd971c7e..b003402a020b 100644
--- a/svx/source/dialog/ctredlin.cxx
+++ b/svx/source/dialog/ctredlin.cxx
@@ -17,6 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <comphelper/processfactory.hxx>
#include <vcl/field.hxx>
#include <vcl/fixed.hxx>
#include <vcl/layout.hxx>
@@ -91,8 +92,12 @@ void SvLBoxColorString::Paint(const Point& rPos, SvTreeListBox& rDev, vcl::Rende
rRenderContext.SetTextColor(aColor);
}
-SvxRedlinTable::SvxRedlinTable(SvSimpleTableContainer& rParent, WinBits nBits)
- : SvSimpleTable(rParent,nBits)
+SvxRedlinTable::SvxRedlinTable(std::unique_ptr<weld::TreeView> xWriterControl,
+ std::unique_ptr<weld::TreeView> xCalcControl)
+ : xSorter(new comphelper::string::NaturalStringSorter(::comphelper::getProcessComponentContext(),
+ Application::GetSettings().GetUILanguageTag().getLocale()))
+ , xWriterTreeView(std::move(xWriterControl))
+ , xCalcTreeView(std::move(xCalcControl))
, nDatePos(WRITER_DATE)
, bAuthor(false)
, bDate(false)
@@ -103,65 +108,82 @@ SvxRedlinTable::SvxRedlinTable(SvSimpleTableContainer& rParent, WinBits nBits)
, aDaTiFilterFirst( DateTime::EMPTY )
, aDaTiFilterLast( DateTime::EMPTY )
{
- SetNodeDefaultImages();
+ if (xWriterTreeView)
+ {
+ xWriterTreeView->connect_column_clicked(LINK(this, SvxRedlinTable, HeaderBarClick));
+ xWriterTreeView->set_sort_func([this](const weld::TreeIter& rLeft, const weld::TreeIter& rRight){
+ return ColCompare(rLeft, rRight);
+ });
+ pTreeView = xWriterTreeView.get();
+ }
+ if (xCalcTreeView)
+ {
+ xCalcTreeView->connect_column_clicked(LINK(this, SvxRedlinTable, HeaderBarClick));
+ xCalcTreeView->set_sort_func([this](const weld::TreeIter& rLeft, const weld::TreeIter& rRight){
+ return ColCompare(rLeft, rRight);
+ });
+ pTreeView = xCalcTreeView.get();
+ }
}
-SvxRedlinTable::~SvxRedlinTable()
+void SvxRedlinTable::set_size_request(int nWidth, int nHeight)
{
- disposeOnce();
+ if (xWriterTreeView)
+ xWriterTreeView->set_size_request(nWidth, nHeight);
+ if (xCalcTreeView)
+ xCalcTreeView->set_size_request(nWidth, nHeight);
}
-void SvxRedlinTable::dispose()
+SvxRedlinTable::~SvxRedlinTable()
{
- pCommentSearcher.reset();
- SvSimpleTable::dispose();
}
-sal_Int32 SvxRedlinTable::ColCompare(SvTreeListEntry* pLeft,SvTreeListEntry* pRight)
+IMPL_LINK(SvxRedlinTable, HeaderBarClick, int, nColumn, void)
{
- sal_Int32 nCompare = 0;
+ bool bSortAtoZ = pTreeView->get_sort_order();
- if(aColCompareLink.IsSet())
+ //set new arrow positions in headerbar
+ if (nColumn == pTreeView->get_sort_column())
{
- SvSortData aRedlinCompare;
- aRedlinCompare.pLeft=pLeft;
- aRedlinCompare.pRight=pRight;
- nCompare = aColCompareLink.Call(&aRedlinCompare);
+ bSortAtoZ = !bSortAtoZ;
+ pTreeView->set_sort_order(bSortAtoZ);
}
else
{
- if(nDatePos==GetSortedCol())
- {
- RedlinData *pLeftData=static_cast<RedlinData *>(pLeft->GetUserData());
- RedlinData *pRightData=static_cast<RedlinData *>(pRight->GetUserData());
-
- if(pLeftData!=nullptr && pRightData!=nullptr)
- {
- if(pLeftData->aDateTime < pRightData->aDateTime)
- {
- nCompare = -1;
- }
- else if(pLeftData->aDateTime > pRightData->aDateTime)
- {
- nCompare = 1;
- }
- }
- else
- nCompare = SvSimpleTable::ColCompare(pLeft,pRight);
- }
- else
- {
- nCompare = SvSimpleTable::ColCompare(pLeft,pRight);
- }
-
+ pTreeView->set_sort_indicator(TRISTATE_INDET, pTreeView->get_sort_column());
+ pTreeView->set_sort_column(nColumn);
}
- return nCompare;
+ if (nColumn != -1)
+ {
+ //sort lists
+ pTreeView->set_sort_indicator(bSortAtoZ ? TRISTATE_TRUE : TRISTATE_FALSE, nColumn);
+ }
}
-void SvxRedlinTable::SetCalcView()
+int SvxRedlinTable::ColCompare(const weld::TreeIter& rLeft, const weld::TreeIter& rRight)
{
- nDatePos=CALC_DATE;
+ sal_Int32 nCompare = 0;
+
+ int nSortCol = pTreeView->get_sort_column();
+
+ if (nSortCol == nDatePos)
+ {
+ RedlinData *pLeftData = reinterpret_cast<RedlinData*>(pTreeView->get_id(rLeft).toInt64());
+ RedlinData *pRightData = reinterpret_cast<RedlinData*>(pTreeView->get_id(rRight).toInt64());
+
+ if (pLeftData && pRightData)
+ {
+ if (pLeftData->aDateTime < pRightData->aDateTime)
+ nCompare = -1;
+ else if (pLeftData->aDateTime > pRightData->aDateTime)
+ nCompare = 1;
+ return nCompare;
+ }
+ }
+
+ return xSorter->compare(pTreeView->get_text(rLeft, nSortCol),
+ pTreeView->get_text(rRight, nSortCol));
}
void SvxRedlinTable::UpdateFilterTest()
@@ -289,209 +311,132 @@ bool SvxRedlinTable::IsValidComment(const OUString &rCommentStr)
return pCommentSearcher->SearchForward( rCommentStr, &nStartPos, &nEndPos);
}
-SvTreeListEntry* SvxRedlinTable::InsertEntry(const OUString& rStr,
- std::unique_ptr<RedlinData> pUserData, SvTreeListEntry* pParent, sal_uLong nPos)
-{
- const Color aColor = (pUserData && pUserData->bDisabled) ? COL_GRAY : GetTextColor();
-
- return InsertEntry(rStr, std::move(pUserData), aColor, pParent, nPos);
-}
-
-SvTreeListEntry* SvxRedlinTable::InsertEntry(const OUString& rStr,
- std::unique_ptr<RedlinData> pUserData, const Color& rColor, SvTreeListEntry* pParent, sal_uLong nPos)
+SvxTPage::~SvxTPage()
{
- maEntryColor = rColor;
- maEntryImage = Image();
-
- sal_Int32 nIndex = 0;
- const OUString aFirstStr(rStr.getToken(0, '\t', nIndex));
- maEntryString = nIndex > 0 ? rStr.copy(nIndex) : OUString();
-
- return SvSimpleTable::InsertEntry(aFirstStr, pParent, false, nPos, pUserData.release());
}
-SvTreeListEntry* SvxRedlinTable::InsertEntry(const Image &rRedlineType, const OUString& rStr,
- std::unique_ptr<RedlinData> pUserData, SvTreeListEntry* pParent, sal_uLong nPos)
+void SvxTPage::ActivatePage()
{
- maEntryColor = (pUserData && pUserData->bDisabled) ? COL_GRAY : GetTextColor();
- maEntryImage = rRedlineType;
- maEntryString = rStr;
-
- return SvSimpleTable::InsertEntry(OUString(), pParent, false, nPos, pUserData.release());
}
-SvTreeListEntry* SvxRedlinTable::CreateEntry() const
+void SvxTPage::DeactivatePage()
{
- return new SvxRedlinEntry;
}
-void SvxRedlinTable::InitEntry(SvTreeListEntry* pEntry, const OUString& rStr,
- const Image& rColl, const Image& rExp, SvLBoxButtonKind eButtonKind)
-{
- if (nTreeFlags & SvTreeFlags::CHKBTN)
- {
- pEntry->AddItem(std::make_unique<SvLBoxButton>(
- eButtonKind, pCheckButtonData));
- }
-
- pEntry->AddItem(std::make_unique<SvLBoxContextBmp>(
- rColl, rExp, true));
-
- // the type of the change
- assert((rStr.isEmpty() && !!maEntryImage) || (!rStr.isEmpty() && !maEntryImage));
-
- if (rStr.isEmpty())
- pEntry->AddItem(std::make_unique<SvLBoxContextBmp>(
- maEntryImage, maEntryImage, true));
- else
- pEntry->AddItem(std::make_unique<SvLBoxColorString>(
- rStr, maEntryColor));
-
- // the change tracking entries
- sal_Int32 nIndex = 0;
- const sal_uInt16 nCount = TabCount() - 1;
- for (sal_uInt16 nToken = 0; nToken < nCount; nToken++)
- {
- const OUString aToken = GetToken(maEntryString, nIndex);
- pEntry->AddItem(std::make_unique<SvLBoxColorString>(
- aToken, maEntryColor));
- }
-}
-
-SvxTPView::SvxTPView(vcl::Window *pParent, VclBuilderContainer *pTopLevel)
- : TabPage(pParent, "RedlineViewPage", "svx/ui/redlineviewpage.ui")
+SvxTPView::SvxTPView(weld::Container* pParent, weld::Builder* pTopLevel)
+ : SvxTPage(pParent, "svx/ui/redlineviewpage.ui", "RedlineViewPage")
, bEnableAccept(true)
, bEnableAcceptAll(true)
, bEnableReject(true)
, bEnableRejectAll(true)
, bEnableUndo(true)
+ , m_xAccept(pTopLevel->weld_button("accept"))
+ , m_xReject(pTopLevel->weld_button("reject"))
+ , m_xAcceptAll(pTopLevel->weld_button("acceptall"))
+ , m_xRejectAll(pTopLevel->weld_button("rejectall"))
+ , m_xUndo(pTopLevel->weld_button("undo"))
+ , m_xViewData(new SvxRedlinTable(m_xBuilder->weld_tree_view("writerchanges"),
+ m_xBuilder->weld_tree_view("calcchanges")))
{
- pTopLevel->get(m_pAccept, "accept");
- pTopLevel->get(m_pReject, "reject");
- pTopLevel->get(m_pAcceptAll, "acceptall");
- pTopLevel->get(m_pRejectAll, "rejectall");
- pTopLevel->get(m_pUndo, "undo");
-
// set wider window for the optional extending button labels
// eg. "Reject/Clear formatting" instead of "Reject"
EnableClearFormat(true);
EnableClearFormatAll(true);
- SvSimpleTableContainer* pTable = get<SvSimpleTableContainer>("changes");
Size aControlSize(80, 65);
- aControlSize = LogicToPixel(aControlSize, MapMode(MapUnit::MapAppFont));
- pTable->set_width_request(aControlSize.Width());
- pTable->set_height_request(aControlSize.Height());
- m_pViewData = VclPtr<SvxRedlinTable>::Create(*pTable, 0);
+ m_xViewData->set_size_request(aControlSize.Width(), aControlSize.Height());
- Link<Button*,void> aLink=LINK( this, SvxTPView, PbClickHdl);
+ Link<weld::Button&,void> aLink=LINK( this, SvxTPView, PbClickHdl);
- m_pAccept->SetClickHdl(aLink);
- m_pAcceptAll->SetClickHdl(aLink);
- m_pReject->SetClickHdl(aLink);
- m_pRejectAll->SetClickHdl(aLink);
- m_pUndo->SetClickHdl(aLink);
+ m_xAccept->connect_clicked(aLink);
+ m_xAcceptAll->connect_clicked(aLink);
+ m_xReject->connect_clicked(aLink);
+ m_xRejectAll->connect_clicked(aLink);
+ m_xUndo->connect_clicked(aLink);
}
void SvxTPView::ActivatePage()
{
- m_pAccept->Enable(bEnableAccept);
- m_pReject->Enable(bEnableReject);
- m_pAcceptAll->Enable(bEnableAcceptAll);
- m_pRejectAll->Enable(bEnableRejectAll);
- m_pUndo->Enable(bEnableUndo);
- TabPage::ActivatePage();
+ m_xAccept->set_sensitive(bEnableAccept);
+ m_xReject->set_sensitive(bEnableReject);
+ m_xAcceptAll->set_sensitive(bEnableAcceptAll);
+ m_xRejectAll->set_sensitive(bEnableRejectAll);
+ m_xUndo->set_sensitive(bEnableUndo);
}
void SvxTPView::DeactivatePage()
{
- TabPage::DeactivatePage();
- m_pAccept->Disable();
- m_pReject->Disable();
- m_pAcceptAll->Disable();
- m_pRejectAll->Disable();
- m_pUndo->Disable();
+ m_xAccept->set_sensitive(false);
+ m_xReject->set_sensitive(false);
+ m_xAcceptAll->set_sensitive(false);
+ m_xRejectAll->set_sensitive(false);
+ m_xUndo->set_sensitive(false);
}
SvxTPView::~SvxTPView()
{
- disposeOnce();
-}
-
-void SvxTPView::dispose()
-{
- m_pViewData.disposeAndClear();
- m_pAccept.clear();
- m_pReject.clear();
- m_pAcceptAll.clear();
- m_pRejectAll.clear();
- m_pUndo.clear();
- TabPage::dispose();
}
-void SvxTPView::InsertWriterHeader()
+void SvxRedlinTable::SetWriterView()
{
- const long aTabPositions[] = { 10, 20, 70, 120 };
- m_pViewData->SetTabs(SAL_N_ELEMENTS(aTabPositions), aTabPositions);
+ nDatePos = WRITER_DATE;
+ if (xCalcTreeView)
+ xCalcTreeView->hide();
+ xWriterTreeView->show();
+ pTreeView = xWriterTreeView.get();
- OUString aStrTab('\t');
- OUString aString = get<FixedText>("action")->GetText()
- + aStrTab
- + get<FixedText>("author")->GetText()
- + aStrTab
- + get<FixedText>("date")->GetText()
- + aStrTab
- + get<FixedText>("comment")->GetText();
- m_pViewData->ClearHeader();
- m_pViewData->InsertHeaderEntry(aString);
+ auto nDigitWidth = pTreeView->get_approximate_digit_width();
+ std::vector<int> aWidths;
+ aWidths.push_back(nDigitWidth * 10);
+ aWidths.push_back(nDigitWidth * 20);
+ aWidths.push_back(nDigitWidth * 20);
+ pTreeView->set_column_fixed_widths(aWidths);
}
-void SvxTPView::InsertCalcHeader()
+void SvxRedlinTable::SetCalcView()
{
- const long aTabPositions[] = { 10, 65, 120, 170, 220 };
- m_pViewData->SetTabs(SAL_N_ELEMENTS(aTabPositions), aTabPositions);
+ nDatePos = CALC_DATE;
+ if (xWriterTreeView)
+ xWriterTreeView->hide();
+ xCalcTreeView->show();
+ pTreeView = xCalcTreeView.get();
- OUString aStrTab('\t');
- OUString aString = get<FixedText>("action")->GetText()
- + aStrTab
- + get<FixedText>("position")->GetText()
- + aStrTab
- + get<FixedText>("author")->GetText()
- + aStrTab
- + get<FixedText>("date")->GetText()
- + aStrTab
- + get<FixedText>("comment")->GetText();
- m_pViewData->ClearHeader();
- m_pViewData->InsertHeaderEntry(aString);
+ auto nDigitWidth = pTreeView->get_approximate_digit_width();
+ std::vector<int> aWidths;
+ aWidths.push_back(nDigitWidth * 20);
+ aWidths.push_back(nDigitWidth * 20);
+ aWidths.push_back(nDigitWidth * 20);
+ aWidths.push_back(nDigitWidth * 20);
+ pTreeView->set_column_fixed_widths(aWidths);
}
void SvxTPView::EnableAccept(bool bFlag)
{
bEnableAccept = bFlag;
- m_pAccept->Enable(bFlag);
+ m_xAccept->set_sensitive(bFlag);
}
void SvxTPView::EnableAcceptAll(bool bFlag)
{
bEnableAcceptAll = bFlag;
- m_pAcceptAll->Enable(bFlag);
+ m_xAcceptAll->set_sensitive(bFlag);
}
void SvxTPView::EnableReject(bool bFlag)
{
bEnableReject = bFlag;
- m_pReject->Enable(bFlag);
+ m_xReject->set_sensitive(bFlag);
}
void SvxTPView::EnableRejectAll(bool bFlag)
{
bEnableRejectAll = bFlag;
- m_pRejectAll->Enable(bFlag);
+ m_xRejectAll->set_sensitive(bFlag);
}
-void SvxTPView::EnableClearFormatButton(VclPtr<PushButton> pButton, bool bFlag)
+void SvxTPView::EnableClearFormatButton(weld::Button& rButton, bool bFlag)
{
- OUString sText = pButton->GetText();
+ OUString sText = rButton.get_label();
OUString sClearFormat = SvxResId(RID_SVXSTR_CLEARFORM);
sal_Int32 nPos = sText.indexOf(sClearFormat);
@@ -500,128 +445,130 @@ void SvxTPView::EnableClearFormatButton(VclPtr<PushButton> pButton, bool bFlag)
{
if (nPos == -1)
{
- pButton->SetText(sText + "/" + sClearFormat);
+ rButton.set_label(sText + "/" + sClearFormat);
}
}
else
{
if (nPos > 0)
{
- pButton->SetText(sText.copy(0, nPos - 1));
+ rButton.set_label(sText.copy(0, nPos - 1));
}
}
}
void SvxTPView::EnableClearFormat(bool bFlag)
{
- EnableClearFormatButton( m_pReject, bFlag );
+ EnableClearFormatButton(*m_xReject, bFlag);
}
void SvxTPView::EnableClearFormatAll(bool bFlag)
{
- EnableClearFormatButton( m_pRejectAll, bFlag );
+ EnableClearFormatButton(*m_xRejectAll, bFlag);
}
void SvxTPView::ShowUndo()
{
- m_pUndo->Show();
+ m_xUndo->show();
}
void SvxTPView::EnableUndo(bool bFlag)
{
bEnableUndo = bFlag;
- m_pUndo->Enable(bFlag);
+ m_xUndo->set_sensitive(bFlag);
}
-
-IMPL_LINK( SvxTPView, PbClickHdl, Button*, pButton, void )
+IMPL_LINK( SvxTPView, PbClickHdl, weld::Button&, rPushB, void)
{
- PushButton* pPushB = static_cast<PushButton*>(pButton);
- if (pPushB == m_pAccept)
+ if (&rPushB == m_xAccept.get())
{
AcceptClickLk.Call(this);
}
- else if (pPushB == m_pAcceptAll)
+ else if (&rPushB == m_xAcceptAll.get())
{
AcceptAllClickLk.Call(this);
}
- else if (pPushB == m_pReject)
+ else if (&rPushB == m_xReject.get())
{
RejectClickLk.Call(this);
}
- else if (pPushB == m_pRejectAll)
+ else if (&rPushB == m_xRejectAll.get())
{
RejectAllClickLk.Call(this);
}
- else if (pPushB == m_pUndo)
+ else if (&rPushB == m_xUndo.get())
{
UndoClickLk.Call(this);
}
}
-SvxTPFilter::SvxTPFilter( vcl::Window * pParent)
- : TabPage(pParent, "RedlineFilterPage", "svx/ui/redlinefilterpage.ui")
- , pRedlinTable(nullptr)
- , bModified(false)
+SvxTPage::SvxTPage(weld::Container* pParent, const OUString& rUIXMLDescription, const OString& rID)
+ : m_xBuilder(Application::CreateBuilder(pParent, rUIXMLDescription))
+ , m_xContainer(m_xBuilder->weld_container(rID))
{
- get(m_pCbDate, "date");
- get(m_pLbDate, "datecond");
- get(m_pDfDate, "startdate");
- get(m_pTfDate, "starttime");
- get(m_pIbClock, "startclock");
- get(m_pFtDate2, "and");
- get(m_pDfDate2, "enddate");
- get(m_pTfDate2, "endtime");
- get(m_pIbClock2, "endclock");
- get(m_pCbAuthor, "author");
- get(m_pLbAuthor, "authorlist");
- get(m_pCbRange, "range");
- get(m_pEdRange, "rangeedit");
- get(m_pBtnRange, "dotdotdot");
- get(m_pCbAction, "action");
- get(m_pLbAction, "actionlist");
- get(m_pCbComment, "comment");
- get(m_pEdComment, "commentedit");
-
- m_pDfDate->SetShowDateCentury( true );
- m_pDfDate2->SetShowDateCentury( true );
-
- m_pLbDate->SelectEntryPos(0);
- m_pLbDate->SetSelectHdl( LINK( this, SvxTPFilter, SelDateHdl ) );
- m_pIbClock->SetClickHdl( LINK( this, SvxTPFilter, TimeHdl) );
- m_pIbClock2->SetClickHdl( LINK( this, SvxTPFilter,TimeHdl) );
- m_pBtnRange->SetClickHdl( LINK( this, SvxTPFilter, RefHandle));
-
- Link<Button*,void> aLink=LINK( this, SvxTPFilter, RowEnableHdl) ;
- m_pCbDate->SetClickHdl(aLink);
- m_pCbAuthor->SetClickHdl(aLink);
- m_pCbRange->SetClickHdl(aLink);
- m_pCbAction->SetClickHdl(aLink);
- m_pCbComment->SetClickHdl(aLink);
-
- Link<Edit&,void> a2Link=LINK( this, SvxTPFilter, ModifyDate);
- m_pDfDate->SetModifyHdl(a2Link);
- m_pTfDate->SetModifyHdl(a2Link);
- m_pDfDate2->SetModifyHdl(a2Link);
- m_pTfDate2->SetModifyHdl(a2Link);
-
- Link<Edit&,void> a3Link=LINK( this, SvxTPFilter, ModifyHdl);
- m_pEdRange->SetModifyHdl(a3Link);
- m_pEdComment->SetModifyHdl(a3Link);
- m_pLbAction->SetSelectHdl(LINK( this, SvxTPFilter, ModifyListBoxHdl));
- m_pLbAuthor->SetSelectHdl(LINK( this, SvxTPFilter, ModifyListBoxHdl));
-
- RowEnableHdl(m_pCbDate);
- RowEnableHdl(m_pCbAuthor);
- RowEnableHdl(m_pCbRange);
- RowEnableHdl(m_pCbAction);
- RowEnableHdl(m_pCbComment);
+}
+
+SvxTPFilter::SvxTPFilter(weld::Container* pParent)
+ : SvxTPage(pParent, "svx/ui/redlinefilterpage.ui", "RedlineFilterPage")
+ , bModified(false)
+ , m_pRedlinTable(nullptr)
+ , m_xCbDate(m_xBuilder->weld_check_button("date"))
+ , m_xLbDate(m_xBuilder->weld_combo_box("datecond"))
+ , m_xDfDate(new SvtCalendarBox(m_xBuilder->weld_menu_button("startdate")))
+ , m_xTfDate(m_xBuilder->weld_time_spin_button("starttime", TimeFieldFormat::F_NONE))
+ , m_xIbClock(m_xBuilder->weld_button("startclock"))
+ , m_xFtDate2(m_xBuilder->weld_label("and"))
+ , m_xDfDate2(new SvtCalendarBox(m_xBuilder->weld_menu_button("enddate")))
+ , m_xTfDate2(m_xBuilder->weld_time_spin_button("endtime", TimeFieldFormat::F_NONE))
+ , m_xIbClock2(m_xBuilder->weld_button("endclock"))
+ , m_xCbAuthor(m_xBuilder->weld_check_button("author"))
+ , m_xLbAuthor(m_xBuilder->weld_combo_box("authorlist"))
+ , m_xCbRange(m_xBuilder->weld_check_button("range"))
+ , m_xEdRange(m_xBuilder->weld_entry("rangeedit"))
+ , m_xBtnRange(m_xBuilder->weld_button("dotdotdot"))
+ , m_xCbAction(m_xBuilder->weld_check_button("action"))
+ , m_xLbAction(m_xBuilder->weld_combo_box("actionlist"))
+ , m_xCbComment(m_xBuilder->weld_check_button("comment"))
+ , m_xEdComment(m_xBuilder->weld_entry("commentedit"))
+{
+ m_xLbDate->set_active(0);
+ m_xLbDate->connect_changed( LINK( this, SvxTPFilter, SelDateHdl ) );
+ m_xIbClock->connect_clicked( LINK( this, SvxTPFilter, TimeHdl) );
+ m_xIbClock2->connect_clicked( LINK( this, SvxTPFilter,TimeHdl) );
+ m_xBtnRange->connect_clicked( LINK( this, SvxTPFilter, RefHandle));
+
+ Link<weld::Button&,void> aLink=LINK( this, SvxTPFilter, RowEnableHdl) ;
+ m_xCbDate->connect_clicked(aLink);
+ m_xCbAuthor->connect_clicked(aLink);
+ m_xCbRange->connect_clicked(aLink);
+ m_xCbAction->connect_clicked(aLink);
+ m_xCbComment->connect_clicked(aLink);
+
+ Link<SvtCalendarBox&,void> a2Link=LINK(this, SvxTPFilter, ModifyDate);
+ m_xDfDate->connect_activated(a2Link);
+ m_xDfDate2->connect_activated(a2Link);
+
+ Link<weld::TimeSpinButton&,void> a3Link=LINK(this, SvxTPFilter, ModifyTime);
+ m_xTfDate->connect_value_changed(a3Link);
+ m_xTfDate2->connect_value_changed(a3Link);
+
+ Link<weld::Entry&,void> a4Link=LINK( this, SvxTPFilter, ModifyHdl);
+ m_xEdRange->connect_changed(a4Link);
+ m_xEdComment->connect_changed(a4Link);
+ m_xLbAction->connect_changed(LINK( this, SvxTPFilter, ModifyListBoxHdl));
+ m_xLbAuthor->connect_changed(LINK( this, SvxTPFilter, ModifyListBoxHdl));
+
+ RowEnableHdl(*m_xCbDate);
+ RowEnableHdl(*m_xCbAuthor);
+ RowEnableHdl(*m_xCbRange);
+ RowEnableHdl(*m_xCbAction);
+ RowEnableHdl(*m_xCbComment);
DateTime aDateTime( DateTime::SYSTEM );
- m_pDfDate->SetDate(aDateTime);
- m_pTfDate->SetTime(aDateTime);
- m_pDfDate2->SetDate(aDateTime);
- m_pTfDate2->SetTime(aDateTime);
+ m_xDfDate->set_date(aDateTime);
+ m_xDfDate2->set_date(aDateTime);
+ m_xTfDate->set_value(aDateTime);
+ m_xTfDate2->set_value(aDateTime);
HideRange();
ShowAction();
bModified=false;
@@ -629,249 +576,223 @@ SvxTPFilter::SvxTPFilter( vcl::Window * pParent)
SvxTPFilter::~SvxTPFilter()
{
- disposeOnce();
-}
-
-void SvxTPFilter::dispose()
-{
- pRedlinTable.clear();
- m_pCbDate.clear();
- m_pLbDate.clear();
- m_pDfDate.clear();
- m_pTfDate.clear();
- m_pIbClock.clear();
- m_pFtDate2.clear();
- m_pDfDate2.clear();
- m_pTfDate2.clear();
- m_pIbClock2.clear();
- m_pCbAuthor.clear();
- m_pLbAuthor.clear();
- m_pCbRange.clear();
- m_pEdRange.clear();
- m_pBtnRange.clear();
- m_pCbAction.clear();
- m_pLbAction.clear();
- m_pCbComment.clear();
- m_pEdComment.clear();
- TabPage::dispose();
}
void SvxTPFilter::SetRedlinTable(SvxRedlinTable* pTable)
{
- pRedlinTable=pTable;
+ m_pRedlinTable = pTable;
}
void SvxTPFilter::EnableDateLine1(bool bFlag)
{
- if(bFlag && m_pCbDate->IsChecked())
+ if(bFlag && m_xCbDate->get_active())
{
- m_pDfDate->Enable();
- m_pTfDate->Enable();
- m_pIbClock->Enable();
+ m_xDfDate->set_sensitive(true);
+ m_xTfDate->set_sensitive(true);
+ m_xIbClock->set_sensitive(true);
}
else
{
- m_pDfDate->Disable();
- m_pTfDate->Disable();
- m_pIbClock->Disable();
+ m_xDfDate->set_sensitive(false);
+ m_xTfDate->set_sensitive(false);
+ m_xIbClock->set_sensitive(false);
}
}
void SvxTPFilter::EnableDateLine2(bool bFlag)
{
- if(bFlag && m_pCbDate->IsChecked())
+ if(bFlag && m_xCbDate->get_active())
{
- m_pFtDate2->Enable();
- m_pDfDate2->Enable();
- m_pTfDate2->Enable();
- m_pIbClock2->Enable();
+ m_xFtDate2->set_sensitive(true);
+ m_xDfDate2->set_sensitive(true);
+ m_xTfDate2->set_sensitive(true);
+ m_xIbClock2->set_sensitive(true);
}
else
{
- m_pFtDate2->Disable();
- m_pDfDate2->Disable();
- m_pDfDate2->SetText(OUString());
- m_pTfDate2->Disable();
- m_pTfDate2->SetText(OUString());
- m_pIbClock2->Disable();
+ m_xFtDate2->set_sensitive(false);
+ m_xDfDate2->set_sensitive(false);
+ m_xDfDate2->set_label(OUString());
+ m_xTfDate2->set_sensitive(false);
+ m_xTfDate2->set_text(OUString());
+ m_xIbClock2->set_sensitive(false);
}
}
Date SvxTPFilter::GetFirstDate() const
{
- return m_pDfDate->GetDate();
+ return m_xDfDate->get_date();
}
void SvxTPFilter::SetFirstDate(const Date &aDate)
{
- m_pDfDate->SetDate(aDate);
+ m_xDfDate->set_date(aDate);
}
tools::Time SvxTPFilter::GetFirstTime() const
{
- return m_pTfDate->GetTime();
+ return m_xTfDate->get_value();
}
void SvxTPFilter::SetFirstTime(const tools::Time &aTime)
{
- m_pTfDate->SetTime(aTime);
+ m_xTfDate->set_value(aTime);
}
-
Date SvxTPFilter::GetLastDate() const
{
- return m_pDfDate2->GetDate();
+ return m_xDfDate2->get_date();
}
void SvxTPFilter::SetLastDate(const Date &aDate)
{
- m_pDfDate2->SetDate(aDate);
+ m_xDfDate2->set_date(aDate);
}
tools::Time SvxTPFilter::GetLastTime() const
{
- return m_pTfDate2->GetTime();
+ return m_xTfDate2->get_value();
}
void SvxTPFilter::SetLastTime(const tools::Time &aTime)
{
- m_pTfDate2->SetTime(aTime);
+ m_xTfDate2->set_value(aTime);
}
void SvxTPFilter::SetDateMode(sal_uInt16 nMode)
{
- m_pLbDate->SelectEntryPos(nMode);
- SelDateHdl(*m_pLbDate);
+ m_xLbDate->set_active(nMode);
+ SelDateHdl(*m_xLbDate);
}
SvxRedlinDateMode SvxTPFilter::GetDateMode()
{
- return static_cast<SvxRedlinDateMode>(m_pLbDate->GetSelectedEntryPos());
+ return static_cast<SvxRedlinDateMode>(m_xLbDate->get_active());
}
void SvxTPFilter::ClearAuthors()
{
- m_pLbAuthor->Clear();
+ m_xLbAuthor->clear();
}
void SvxTPFilter::InsertAuthor( const OUString& rString)
{
- m_pLbAuthor->InsertEntry(rString);
+ m_xLbAuthor->append_text(rString);
}
OUString SvxTPFilter::GetSelectedAuthor() const
{
- return m_pLbAuthor->GetSelectedEntry();
+ return m_xLbAuthor->get_active_text();
}
void SvxTPFilter::SelectedAuthorPos(sal_Int32 nPos)
{
- m_pLbAuthor->SelectEntryPos(nPos);
+ m_xLbAuthor->set_active(nPos);
}
sal_Int32 SvxTPFilter::SelectAuthor(const OUString& aString)
{
- m_pLbAuthor->SelectEntry(aString);
- return m_pLbAuthor->GetSelectedEntryPos();
+ m_xLbAuthor->set_active_text(aString);
+ return m_xLbAuthor->get_active();
}
void SvxTPFilter::SetRange(const OUString& rString)
{
- m_pEdRange->SetText(rString);
+ m_xEdRange->set_text(rString);
}
OUString SvxTPFilter::GetRange() const
{
- return m_pEdRange->GetText();
+ return m_xEdRange->get_text();
}
void SvxTPFilter::SetFocusToRange()
{
- m_pEdRange->GrabFocus();
+ m_xEdRange->grab_focus();
}
void SvxTPFilter::HideRange(bool bHide)
{
if (bHide)
{
- m_pCbRange->Hide();
- m_pEdRange->Hide();
- m_pBtnRange->Hide();
+ m_xCbRange->hide();
+ m_xEdRange->hide();
+ m_xBtnRange->hide();
}
else
{
ShowAction(false);
- m_pCbRange->Show();
- m_pEdRange->Show();
- m_pBtnRange->Show();
+ m_xCbRange->show();
+ m_xEdRange->show();
+ m_xBtnRange->show();
}
}
void SvxTPFilter::SetComment(const OUString &rComment)
{
- m_pEdComment->SetText(rComment);
+ m_xEdComment->set_text(rComment);
}
OUString SvxTPFilter::GetComment()const
{
- return m_pEdComment->GetText();
+ return m_xEdComment->get_text();
}
bool SvxTPFilter::IsDate()
{
- return m_pCbDate->IsChecked();
+ return m_xCbDate->get_active();
}
bool SvxTPFilter::IsAuthor()
{
- return m_pCbAuthor->IsChecked();
+ return m_xCbAuthor->get_active();
}
bool SvxTPFilter::IsRange()
{
- return m_pCbRange->IsChecked();
+ return m_xCbRange->get_active();
}
bool SvxTPFilter::IsAction()
{
- return m_pCbAction->IsChecked();
+ return m_xCbAction->get_active();
}
bool SvxTPFilter::IsComment()
{
- return m_pCbComment->IsChecked();
+ return m_xCbComment->get_active();
}
void SvxTPFilter::CheckDate(bool bFlag)
{
- m_pCbDate->Check(bFlag);
- RowEnableHdl(m_pCbDate);
+ m_xCbDate->set_active(bFlag);
+ RowEnableHdl(*m_xCbDate);
bModified=false;
}
void SvxTPFilter::CheckAuthor(bool bFlag)
{
- m_pCbAuthor->Check(bFlag);
- RowEnableHdl(m_pCbAuthor);
+ m_xCbAuthor->set_active(bFlag);
+ RowEnableHdl(*m_xCbAuthor);
bModified=false;
}
void SvxTPFilter::CheckRange(bool bFlag)
{
- m_pCbRange->Check(bFlag);
- RowEnableHdl(m_pCbRange);
+ m_xCbRange->set_active(bFlag);
+ RowEnableHdl(*m_xCbRange);
bModified=false;
}
void SvxTPFilter::CheckAction(bool bFlag)
{
- m_pCbAction->Check(bFlag);
- RowEnableHdl(m_pCbAction);
+ m_xCbAction->set_active(bFlag);
+ RowEnableHdl(*m_xCbAction);
bModified=false;
}
void SvxTPFilter::CheckComment(bool bFlag)
{
- m_pCbComment->Check(bFlag);
- RowEnableHdl(m_pCbComment);
+ m_xCbComment->set_active(bFlag);
+ RowEnableHdl(*m_xCbComment);
bModified=false;
}
@@ -879,248 +800,246 @@ void SvxTPFilter::ShowAction(bool bShow)
{
if(!bShow)
{
- m_pCbAction->Hide();
- m_pLbAction->Hide();
+ m_xCbAction->hide();
+ m_xLbAction->hide();
}
else
{
HideRange();
- m_pCbAction->Show();
- m_pLbAction->Show();
+ m_xCbAction->show();
+ m_xLbAction->show();
}
}
-
-IMPL_LINK_NOARG( SvxTPFilter, SelDateHdl, ListBox&, void )
+IMPL_LINK_NOARG(SvxTPFilter, SelDateHdl, weld::ComboBox&, void)
{
- SvxRedlinDateMode nKind = static_cast<SvxRedlinDateMode>(m_pLbDate->GetSelectedEntryPos());
+ SvxRedlinDateMode nKind = static_cast<SvxRedlinDateMode>(m_xLbDate->get_active());
switch(nKind)
{
case SvxRedlinDateMode::BEFORE:
- EnableDateLine1(true);
- EnableDateLine2(false);
- break;
+ EnableDateLine1(true);
+ EnableDateLine2(false);
+ break;
case SvxRedlinDateMode::SINCE:
- EnableDateLine1(true);
- EnableDateLine2(false);
- break;
+ EnableDateLine1(true);
+ EnableDateLine2(false);
+ break;
case SvxRedlinDateMode::EQUAL:
- EnableDateLine1(true);
- m_pTfDate->Disable();
- m_pTfDate->SetText(OUString());
- EnableDateLine2(false);
- break;
+ EnableDateLine1(true);
+ m_xTfDate->set_sensitive(false);
+ m_xTfDate->set_text(OUString());
+ EnableDateLine2(false);
+ break;
case SvxRedlinDateMode::NOTEQUAL:
- EnableDateLine1(true);
- m_pTfDate->Disable();
- m_pTfDate->SetText(OUString());
- EnableDateLine2(false);
- break;
+ EnableDateLine1(true);
+ m_xTfDate->set_sensitive(false);
+ m_xTfDate->set_text(OUString());
+ EnableDateLine2(false);
+ break;
case SvxRedlinDateMode::BETWEEN:
- EnableDateLine1(true);
- EnableDateLine2(true);
- break;
+ EnableDateLine1(true);
+ EnableDateLine2(true);
+ break;
case SvxRedlinDateMode::SAVE:
- EnableDateLine1(false);
- EnableDateLine2(false);
- break;
+ EnableDateLine1(false);
+ EnableDateLine2(false);
+ break;
case SvxRedlinDateMode::NONE:
- break;
+ break;
}
- bModified=true;
+ bModified = true;
}
-IMPL_LINK( SvxTPFilter, RowEnableHdl, Button*, pButton, void )
+IMPL_LINK(SvxTPFilter, RowEnableHdl, weld::Button&, rCB, void)
{
- CheckBox* pCB = static_cast<CheckBox*>(pButton);
- if (pCB == m_pCbDate)
+ if (&rCB == m_xCbDate.get())
{
- m_pLbDate->Enable(m_pCbDate->IsChecked());
- m_pLbDate->Invalidate();
+ m_xLbDate->set_sensitive(m_xCbDate->get_active());
EnableDateLine1(false);
EnableDateLine2(false);
- if(m_pCbDate->IsChecked()) SelDateHdl(*m_pLbDate);
+ if(m_xCbDate->get_active()) SelDateHdl(*m_xLbDate);
}
- else if (pCB == m_pCbAuthor)
+ else if (&rCB == m_xCbAuthor.get())
{
- m_pLbAuthor->Enable(m_pCbAuthor->IsChecked());
- m_pLbAuthor->Invalidate();
+ m_xLbAuthor->set_sensitive(m_xCbAuthor->get_active());
}
- else if (pCB == m_pCbRange)
+ else if (&rCB == m_xCbRange.get())
{
- m_pEdRange->Enable(m_pCbRange->IsChecked());
- m_pBtnRange->Enable(m_pCbRange->IsChecked());
+ m_xEdRange->set_sensitive(m_xCbRange->get_active());
+ m_xBtnRange->set_sensitive(m_xCbRange->get_active());
}
- else if (pCB == m_pCbAction)
+ else if (&rCB == m_xCbAction.get())
{
- m_pLbAction->Enable(m_pCbAction->IsChecked());
- m_pLbAction->Invalidate();
+ m_xLbAction->set_sensitive(m_xCbAction->get_active());
}
- else if (pCB == m_pCbComment)
+ else if (&rCB == m_xCbComment.get())
{
- m_pEdComment->Enable(m_pCbComment->IsChecked());
- m_pEdComment->Invalidate();
+ m_xEdComment->set_sensitive(m_xCbComment->get_active());
}
-
- if(pCB!=nullptr)
- bModified=true;
+ bModified = true;
}
-IMPL_LINK( SvxTPFilter, TimeHdl, Button*, pButton, void )
+IMPL_LINK(SvxTPFilter, TimeHdl, weld::Button&, rIB, void)
{
- ImageButton* pIB = static_cast<ImageButton*>(pButton);
DateTime aDateTime( DateTime::SYSTEM );
- if (pIB == m_pIbClock)
+ if (&rIB == m_xIbClock.get())
{
- m_pDfDate->SetDate(aDateTime);
- m_pTfDate->SetTime(aDateTime);
+ m_xDfDate->set_date(aDateTime);
+ m_xTfDate->set_value(aDateTime);
}
- else if (pIB == m_pIbClock2)
+ else if (&rIB == m_xIbClock2.get())
{
- m_pDfDate2->SetDate(aDateTime);
- m_pTfDate2->SetTime(aDateTime);
+ m_xDfDate2->set_date(aDateTime);
+ m_xTfDate2->set_value(aDateTime);
}
bModified=true;
}
-IMPL_LINK_NOARG( SvxTPFilter, ModifyHdl, Edit&, void)
+
+IMPL_LINK_NOARG(SvxTPFilter, ModifyHdl, weld::Entry&, void)
{
bModified=true;
}
-IMPL_LINK_NOARG( SvxTPFilter, ModifyListBoxHdl, ListBox&, void)
+
+IMPL_LINK_NOARG(SvxTPFilter, ModifyListBoxHdl, weld::ComboBox&, void)
{
bModified=true;
}
+
void SvxTPFilter::DeactivatePage()
{
if(bModified)
{
- if(pRedlinTable!=nullptr)
+ if (m_pRedlinTable)
{
- pRedlinTable->SetFilterDate(IsDate());
- pRedlinTable->SetDateTimeMode(GetDateMode());
- pRedlinTable->SetFirstDate(m_pDfDate->GetDate());
- pRedlinTable->SetLastDate(m_pDfDate2->GetDate());
- pRedlinTable->SetFirstTime(m_pTfDate->GetTime());
- pRedlinTable->SetLastTime(m_pTfDate2->GetTime());
- pRedlinTable->SetFilterAuthor(IsAuthor());
- pRedlinTable->SetAuthor(GetSelectedAuthor());
-
- pRedlinTable->SetFilterComment(IsComment());
-
- utl::SearchParam aSearchParam( m_pEdComment->GetText(),
+ m_pRedlinTable->SetFilterDate(IsDate());
+ m_pRedlinTable->SetDateTimeMode(GetDateMode());
+ m_pRedlinTable->SetFirstDate(m_xDfDate->get_date());
+ m_pRedlinTable->SetLastDate(m_xDfDate2->get_date());
+ m_pRedlinTable->SetFirstTime(m_xTfDate->get_value());
+ m_pRedlinTable->SetLastTime(m_xTfDate2->get_value());
+ m_pRedlinTable->SetFilterAuthor(IsAuthor());
+ m_pRedlinTable->SetAuthor(GetSelectedAuthor());
+
+ m_pRedlinTable->SetFilterComment(IsComment());
+
+ utl::SearchParam aSearchParam( m_xEdComment->get_text(),
utl::SearchParam::SearchType::Regexp,false );
- pRedlinTable->SetCommentParams(&aSearchParam);
+ m_pRedlinTable->SetCommentParams(&aSearchParam);
- pRedlinTable->UpdateFilterTest();
+ m_pRedlinTable->UpdateFilterTest();
}
aReadyLink.Call(this);
}
bModified=false;
- TabPage::DeactivatePage();
}
-void SvxTPFilter::Enable( bool bEnable)
+void SvxTPFilter::Enable(bool bEnable)
{
- TabPage::Enable(bEnable);
- if(m_pCbDate->IsEnabled())
+ m_xContainer->set_sensitive(bEnable);
+ if (m_xCbDate->get_sensitive())
{
- RowEnableHdl(m_pCbDate);
- RowEnableHdl(m_pCbAuthor);
- RowEnableHdl(m_pCbRange);
- RowEnableHdl(m_pCbComment);
+ RowEnableHdl(*m_xCbDate);
+ RowEnableHdl(*m_xCbAuthor);
+ RowEnableHdl(*m_xCbRange);
+ RowEnableHdl(*m_xCbComment);
}
}
+
void SvxTPFilter::Disable()
{
Enable( false );
}
-IMPL_LINK( SvxTPFilter, ModifyDate, Edit&, rTF, void)
+IMPL_LINK(SvxTPFilter, ModifyDate, SvtCalendarBox&, rTF, void)
{
Date aDate( Date::SYSTEM );
- tools::Time aTime(0);
- if (m_pDfDate==&rTF)
+ if (m_xDfDate.get() == &rTF)
{
- if(m_pDfDate->GetText().isEmpty())
- m_pDfDate->SetDate(aDate);
+ if (m_xDfDate->get_label().isEmpty())
+ m_xDfDate->set_date(aDate);
- if(pRedlinTable!=nullptr)
- pRedlinTable->SetFirstDate(m_pDfDate->GetDate());
+ if(m_pRedlinTable!=nullptr)
+ m_pRedlinTable->SetFirstDate(m_xDfDate->get_date());
}
- else if (m_pDfDate2==&rTF)
+ else if (m_xDfDate2.get() == &rTF)
{
- if(m_pDfDate2->GetText().isEmpty())
- m_pDfDate2->SetDate(aDate);
+ if (m_xDfDate2->get_label().isEmpty())
+ m_xDfDate2->set_date(aDate);
- if(pRedlinTable!=nullptr)
- pRedlinTable->SetLastDate(m_pDfDate2->GetDate());
+ if (m_pRedlinTable)
+ m_pRedlinTable->SetLastDate(m_xDfDate2->get_date());
}
- else if (m_pTfDate==&rTF)
+ bModified=true;
+}
+
+IMPL_LINK(SvxTPFilter, ModifyTime, weld::TimeSpinButton&, rTF, void)
+{
+ tools::Time aTime(0);
+ if (m_xTfDate.get() == &rTF)
{
- if(m_pTfDate->GetText().isEmpty())
- m_pTfDate->SetTime(aTime);
+ if (m_xTfDate->get_text().isEmpty())
+ m_xTfDate->set_value(aTime);
- if(pRedlinTable!=nullptr)
- pRedlinTable->SetFirstTime(m_pTfDate->GetTime());
+ if(m_pRedlinTable!=nullptr)
+ m_pRedlinTable->SetFirstTime(m_xTfDate->get_value());
}
- else if (m_pTfDate2==&rTF)
+ else if (m_xTfDate2.get() == &rTF)
{
- if(m_pTfDate2->GetText().isEmpty())
- m_pTfDate2->SetTime(aTime);
+ if (m_xTfDate2->get_text().isEmpty())
+ m_xTfDate2->set_value(aTime);
- if(pRedlinTable!=nullptr)
- pRedlinTable->SetLastTime(m_pTfDate2->GetTime());
+ if(m_pRedlinTable!=nullptr)
+ m_pRedlinTable->SetLastTime(m_xTfDate2->get_value());
}
- ModifyHdl(*m_pDfDate);
+ bModified=true;
}
-IMPL_LINK( SvxTPFilter, RefHandle, Button*, pRef, void )
+IMPL_LINK_NOARG(SvxTPFilter, RefHandle, weld::Button&, void)
{
- if(pRef!=nullptr)
- {
- aRefLink.Call(this);
- }
+ aRefLink.Call(this);
}
-SvxAcceptChgCtr::SvxAcceptChgCtr(vcl::Window* pParent, VclBuilderContainer* pTopLevel)
- : TabControl(pParent, WB_TABSTOP | WB_DIALOGCONTROL)
+SvxAcceptChgCtr::SvxAcceptChgCtr(weld::Container* pParent, weld::Builder* pTopLevel)
+ : m_xBuilder(Application::CreateBuilder(pParent, "svx/ui/redlinecontrol.ui"))
+ , m_xTabCtrl(m_xBuilder->weld_notebook("RedlineControl"))
{
- m_pUIBuilder.reset(new VclBuilder(this, getUIRootDir(), "svx/ui/redlinecontrol.ui", "RedlineControl"));
+ m_xTabCtrl->connect_enter_page(LINK(this, SvxAcceptChgCtr, ActivatePageHdl));
+ m_xTabCtrl->connect_leave_page(LINK(this, SvxAcceptChgCtr, DeactivatePageHdl));
- pTPFilter = VclPtr<SvxTPFilter>::Create(this);
- pTPView = VclPtr<SvxTPView>::Create(this, pTopLevel);
-
- sal_uInt16 nViewPageId = GetPageId("view");
- m_nFilterPageId = GetPageId("filter");
- SetTabPage(nViewPageId, pTPView);
- SetTabPage(m_nFilterPageId, pTPFilter);
-
- pTPFilter->SetRedlinTable(pTPView->GetTableControl());
-
- SetCurPageId(nViewPageId);
-
- Show();
+ m_xTPFilter.reset(new SvxTPFilter(m_xTabCtrl->get_page("filter")));
+ m_xTPView.reset(new SvxTPView(m_xTabCtrl->get_page("view"), pTopLevel));
+ m_xTPFilter->SetRedlinTable(m_xTPView->GetTableControl());
+ m_xTabCtrl->set_current_page("view");
+ m_xTabCtrl->show();
}
SvxAcceptChgCtr::~SvxAcceptChgCtr()
{
- disposeOnce();
}
-void SvxAcceptChgCtr::dispose()
+void SvxAcceptChgCtr::ShowFilterPage()
{
- disposeBuilder();
- pTPView.disposeAndClear();
- pTPFilter.disposeAndClear();
- TabControl::dispose();
+ m_xTabCtrl->set_current_page("filter");
}
-void SvxAcceptChgCtr::ShowFilterPage()
+IMPL_LINK(SvxAcceptChgCtr, ActivatePageHdl, const OString&, rPage, void)
+{
+ if (rPage == "filter")
+ m_xTPFilter->ActivatePage();
+ else if (rPage == "view")
+ m_xTPView->ActivatePage();
+}
+
+IMPL_LINK(SvxAcceptChgCtr, DeactivatePageHdl, const OString&, rPage, bool)
{
- SetCurPageId(m_nFilterPageId);
+ if (rPage == "filter")
+ m_xTPFilter->DeactivatePage();
+ else if (rPage == "view")
+ m_xTPView->DeactivatePage();
+ return true;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/sidebar/PanelLayout.cxx b/svx/source/sidebar/PanelLayout.cxx
index a0b1362a341e..105bb1c1d6da 100644
--- a/svx/source/sidebar/PanelLayout.cxx
+++ b/svx/source/sidebar/PanelLayout.cxx
@@ -17,7 +17,8 @@
using namespace sfx2::sidebar;
-PanelLayout::PanelLayout(vcl::Window* pParent, const OString& rID, const OUString& rUIXMLDescription, const css::uno::Reference<css::frame::XFrame> &rFrame)
+PanelLayout::PanelLayout(vcl::Window* pParent, const OString& rID, const OUString& rUIXMLDescription,
+ const css::uno::Reference<css::frame::XFrame> &rFrame, bool bInterimBuilder)
: Control(pParent)
, m_bInClose(false)
, mxFrame(rFrame)
@@ -28,7 +29,10 @@ PanelLayout::PanelLayout(vcl::Window* pParent, const OString& rID, const OUStrin
m_aPanelLayoutIdle.SetDebugName("svx::PanelLayout m_aPanelLayoutIdle");
// VclBuilder will trigger resize and start Idle
- m_pUIBuilder.reset(new VclBuilder(this, getUIRootDir(), rUIXMLDescription, rID, rFrame));
+ if (!bInterimBuilder)
+ m_pUIBuilder.reset(new VclBuilder(this, getUIRootDir(), rUIXMLDescription, rID, rFrame));
+ else
+ m_xBuilder.reset(Application::CreateInterimBuilder(this, rUIXMLDescription));
if (GetSettings().GetStyleSettings().GetAutoMnemonic())
Accelerator::GenerateAutoMnemonicsOnHierarchy(this);
}
@@ -42,6 +46,7 @@ void PanelLayout::dispose()
{
m_bInClose = true;
m_aPanelLayoutIdle.Stop();
+ m_xBuilder.reset();
disposeBuilder();
Control::dispose();
}
diff --git a/svx/uiconfig/ui/acceptrejectchangesdialog.ui b/svx/uiconfig/ui/acceptrejectchangesdialog.ui
index 7e9817689a99..a9db619b328f 100644
--- a/svx/uiconfig/ui/acceptrejectchangesdialog.ui
+++ b/svx/uiconfig/ui/acceptrejectchangesdialog.ui
@@ -1,12 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.20.0 -->
+<!-- Generated with glade 3.22.1 -->
<interface domain="svx">
<requires lib="gtk+" version="3.18"/>
<object class="GtkDialog" id="AcceptRejectChangesDialog">
<property name="can_focus">False</property>
<property name="border_width">6</property>
<property name="title" translatable="yes" context="acceptrejectchangesdialog|AcceptRejectChangesDialog">Manage Changes</property>
+ <property name="default_width">0</property>
+ <property name="default_height">0</property>
<property name="type_hint">dialog</property>
+ <child>
+ <placeholder/>
+ </child>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
<property name="can_focus">False</property>
@@ -121,11 +126,11 @@
</object>
</child>
<action-widgets>
- <action-widget response="0">accept</action-widget>
- <action-widget response="0">reject</action-widget>
- <action-widget response="0">acceptall</action-widget>
- <action-widget response="0">rejectall</action-widget>
- <action-widget response="0">undo</action-widget>
+ <action-widget response="105">accept</action-widget>
+ <action-widget response="104">reject</action-widget>
+ <action-widget response="103">acceptall</action-widget>
+ <action-widget response="102">rejectall</action-widget>
+ <action-widget response="101">undo</action-widget>
<action-widget response="-7">close</action-widget>
</action-widgets>
</object>
@@ -150,7 +155,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <object class="GtkRadioMenuItem" id="calcaction">
+ <object class="GtkRadioMenuItem" id="calcsort0">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="acceptrejectchangesdialog|calcaction">Action</property>
@@ -158,35 +163,39 @@
</object>
</child>
<child>
- <object class="GtkRadioMenuItem" id="calcposition">
+ <object class="GtkRadioMenuItem" id="calcsort1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="acceptrejectchangesdialog|calcposition">Position</property>
<property name="use_underline">True</property>
+ <property name="group">calcsort0</property>
</object>
</child>
<child>
- <object class="GtkRadioMenuItem" id="calcauthor">
+ <object class="GtkRadioMenuItem" id="calcsort2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="acceptrejectchangesdialog|calcauthor">Author</property>
<property name="use_underline">True</property>
+ <property name="group">calcsort0</property>
</object>
</child>
<child>
- <object class="GtkRadioMenuItem" id="calcdate">
+ <object class="GtkRadioMenuItem" id="calcsort3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="acceptrejectchangesdialog|calcdate">Date</property>
<property name="use_underline">True</property>
+ <property name="group">calcsort0</property>
</object>
</child>
<child>
- <object class="GtkRadioMenuItem" id="calcdesc">
+ <object class="GtkRadioMenuItem" id="calcsort4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="acceptrejectchangesdialog|calcdesc">Description</property>
<property name="use_underline">True</property>
+ <property name="group">calcsort0</property>
</object>
</child>
</object>
@@ -215,7 +224,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
- <object class="GtkRadioMenuItem" id="writeraction">
+ <object class="GtkRadioMenuItem" id="writersort0">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="acceptrejectchangesdialog|writeraction">Action</property>
@@ -223,35 +232,39 @@
</object>
</child>
<child>
- <object class="GtkRadioMenuItem" id="writerauthor">
+ <object class="GtkRadioMenuItem" id="writersort1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="acceptrejectchangesdialog|writerauthor">Author</property>
<property name="use_underline">True</property>
+ <property name="group">writersort0</property>
</object>
</child>
<child>
- <object class="GtkRadioMenuItem" id="writerdate">
+ <object class="GtkRadioMenuItem" id="writersort2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="acceptrejectchangesdialog|writerdate">Date</property>
<property name="use_underline">True</property>
+ <property name="group">writersort0</property>
</object>
</child>
<child>
- <object class="GtkRadioMenuItem" id="writerdesc">
+ <object class="GtkRadioMenuItem" id="writersort3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="acceptrejectchangesdialog|writerdesc">Comment</property>
<property name="use_underline">True</property>
+ <property name="group">writersort0</property>
</object>
</child>
<child>
- <object class="GtkRadioMenuItem" id="writerposition">
+ <object class="GtkRadioMenuItem" id="writersort4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="acceptrejectchangesdialog|writerposition">Document Position</property>
<property name="use_underline">True</property>
+ <property name="group">writersort0</property>
</object>
</child>
</object>
diff --git a/svx/uiconfig/ui/redlinefilterpage.ui b/svx/uiconfig/ui/redlinefilterpage.ui
index 1638cc105ff2..5dd59893a511 100644
--- a/svx/uiconfig/ui/redlinefilterpage.ui
+++ b/svx/uiconfig/ui/redlinefilterpage.ui
@@ -1,28 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.20.0 -->
+<!-- Generated with glade 3.22.1 -->
<interface domain="svx">
<requires lib="gtk+" version="3.18"/>
<object class="GtkAdjustment" id="adjustment1">
- <property name="lower">19851231</property>
- <property name="upper">20501231</property>
- <property name="value">19851231</property>
- <property name="step_increment">1</property>
- <property name="page_increment">10</property>
+ <property name="upper">86400000</property>
+ <property name="step_increment">1000</property>
+ <property name="page_increment">60000</property>
+ </object>
+ <object class="GtkAdjustment" id="adjustment2">
+ <property name="upper">86400000</property>
+ <property name="step_increment">1000</property>
+ <property name="page_increment">60000</property>
</object>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="pixbuf">cmd/sc_timefield.png</property>
+ <property name="icon_name">cmd/sc_timefield.png</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="pixbuf">cmd/sc_timefield.png</property>
+ <property name="icon_name">cmd/sc_timefield.png</property>
</object>
<object class="GtkGrid" id="RedlineFilterPage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">start</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
<property name="border_width">6</property>
<property name="row_spacing">6</property>
<property name="column_spacing">6</property>
@@ -81,6 +86,7 @@
<property name="can_focus">True</property>
<property name="margin_left">24</property>
<property name="hexpand">True</property>
+ <property name="activates_default">True</property>
<child internal-child="accessible">
<object class="AtkObject" id="commentedit-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="redlinefilterpage|commentedit-atkobject">Comment</property>
@@ -176,6 +182,7 @@
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
+ <property name="activates_default">True</property>
<accessibility>
<relation type="labelled-by" target="range"/>
</accessibility>
@@ -272,15 +279,17 @@
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="startdate:yy:mm:dd">
- <property name="width_request">120</property>
+ <object class="GtkMenuButton" id="startdate">
<property name="visible">True</property>
- <property name="sensitive">False</property>
<property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="adjustment">adjustment1</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="label" translatable="no"></property>
+ <child>
+ <placeholder/>
+ </child>
<child internal-child="accessible">
- <object class="AtkObject" id="startdate:yy:mm:dd-atkobject">
+ <object class="AtkObject" id="startdate-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="redlinefilterpage|startdate-atkobject">Start Date</property>
</object>
</child>
@@ -291,14 +300,16 @@
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="starttime:hh:mm">
+ <object class="GtkSpinButton" id="starttime">
<property name="width_request">70</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
+ <property name="activates_default">True</property>
+ <property name="adjustment">adjustment1</property>
<child internal-child="accessible">
- <object class="AtkObject" id="starttime:hh:mm-atkobject">
+ <object class="AtkObject" id="starttime-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="redlinefilterpage|starttime-atkobject">Start Time</property>
</object>
</child>
@@ -324,15 +335,17 @@
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="enddate:yy:mm:dd">
- <property name="width_request">120</property>
+ <object class="GtkMenuButton" id="enddate">
<property name="visible">True</property>
- <property name="sensitive">False</property>
<property name="can_focus">True</property>
- <property name="hexpand">True</property>
- <property name="adjustment">adjustment1</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="label" translatable="no"></property>
+ <child>
+ <placeholder/>
+ </child>
<child internal-child="accessible">
- <object class="AtkObject" id="enddate:yy:mm:dd-atkobject">
+ <object class="AtkObject" id="enddate-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="redlinefilterpage|enddate-atkobject">End Date</property>
</object>
</child>
@@ -343,14 +356,16 @@
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="endtime:hh:mm">
+ <object class="GtkSpinButton" id="endtime">
<property name="width_request">75</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
+ <property name="activates_default">True</property>
+ <property name="adjustment">adjustment2</property>
<child internal-child="accessible">
- <object class="AtkObject" id="endtime:hh:mm-atkobject">
+ <object class="AtkObject" id="endtime-atkobject">
<property name="AtkObject::accessible-name" translatable="yes" context="redlinefilterpage|endtime-atkobject">End Time</property>
</object>
</child>
diff --git a/svx/uiconfig/ui/redlineviewpage.ui b/svx/uiconfig/ui/redlineviewpage.ui
index 19dd56ef34fc..370b8957a0c3 100644
--- a/svx/uiconfig/ui/redlineviewpage.ui
+++ b/svx/uiconfig/ui/redlineviewpage.ui
@@ -1,7 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface domain="svx">
<requires lib="gtk+" version="3.18"/>
- <requires lib="LibreOffice" version="1.0"/>
+ <object class="GtkTreeStore" id="liststore1">
+ <columns>
+ <!-- column-name text -->
+ <column type="gchararray"/>
+ <!-- column-name text2 -->
+ <column type="gchararray"/>
+ <!-- column-name text3 -->
+ <column type="gchararray"/>
+ <!-- column-name text4 -->
+ <column type="gchararray"/>
+ <!-- column-name text5 -->
+ <column type="gchararray"/>
+ <!-- column-name id -->
+ <column type="gchararray"/>
+ <!-- column-name textcolor -->
+ <column type="GdkRGBA"/>
+ </columns>
+ </object>
+ <object class="GtkTreeStore" id="liststore2">
+ <columns>
+ <!-- column-name image -->
+ <column type="GdkPixbuf"/>
+ <!-- column-name text -->
+ <column type="gchararray"/>
+ <!-- column-name text2 -->
+ <column type="gchararray"/>
+ <!-- column-name text3 -->
+ <column type="gchararray"/>
+ <!-- column-name text4 -->
+ <column type="gchararray"/>
+ <!-- column-name id -->
+ <column type="gchararray"/>
+ <!-- column-name textcolor -->
+ <column type="GdkRGBA"/>
+ </columns>
+ </object>
<object class="GtkBox" id="RedlineViewPage">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -10,90 +45,205 @@
<property name="border_width">6</property>
<property name="orientation">vertical</property>
<child>
- <object class="GtkBox" id="box3">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="homogeneous">True</property>
- <child>
- <object class="GtkLabel" id="action">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="redlineviewpage|action">Action</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="position">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="redlineviewpage|position">Position</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="author">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="redlineviewpage|author">Author</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
+ <object class="GtkScrolledWindow">
+ <property name="visible">False</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="GtkLabel" id="date">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="redlineviewpage|date">Date</property>
+ <object class="GtkTreeView" id="calcchanges">
+ <property name="visible">False</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="model">liststore1</property>
+ <property name="search_column">0</property>
+ <property name="show_expanders">True</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="Macro Library List-selection1"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn0">
+ <property name="resizable">True</property>
+ <property name="spacing">6</property>
+ <property name="title" translatable="yes" context="redlineviewpage|action">Action</property>
+ <property name="clickable">True</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderer0"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ <attribute name="foreground-rgba">6</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn1">
+ <property name="resizable">True</property>
+ <property name="spacing">6</property>
+ <property name="title" translatable="yes" context="redlineviewpage|position">Position</property>
+ <property name="clickable">True</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderer1"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ <attribute name="foreground-rgba">6</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn2">
+ <property name="resizable">True</property>
+ <property name="spacing">6</property>
+ <property name="title" translatable="yes" context="redlineviewpage|author">Author</property>
+ <property name="clickable">True</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderer2"/>
+ <attributes>
+ <attribute name="text">2</attribute>
+ <attribute name="foreground-rgba">6</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn3">
+ <property name="resizable">True</property>
+ <property name="spacing">6</property>
+ <property name="title" translatable="yes" context="redlineviewpage|date">Date</property>
+ <property name="clickable">True</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderer3"/>
+ <attributes>
+ <attribute name="text">3</attribute>
+ <attribute name="foreground-rgba">6</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn4">
+ <property name="resizable">True</property>
+ <property name="spacing">6</property>
+ <property name="title" translatable="yes" context="redlineviewpage|comment">Comment</property>
+ <property name="clickable">True</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderer4"/>
+ <attributes>
+ <attribute name="text">4</attribute>
+ <attribute name="foreground-rgba">6</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
</child>
- <child>
- <object class="GtkLabel" id="comment">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="redlineviewpage|comment">Comment</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="calcchanges-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="redlineviewpage|calcchanges-atkobject">Changes</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">4</property>
- </packing>
</child>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">0</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
- <object class="svtlo-SvSimpleTableContainer" id="changes">
- <property name="visible">True</property>
+ <object class="GtkScrolledWindow">
+ <property name="visible">False</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="changes-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="redlineviewpage|changes-atkobject">Changes</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkTreeView" id="writerchanges">
+ <property name="visible">False</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="model">liststore2</property>
+ <property name="search_column">0</property>
+ <property name="show_expanders">True</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="Macro Library List-selection2"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn00">
+ <property name="resizable">True</property>
+ <property name="spacing">6</property>
+ <property name="title" translatable="yes" context="redlineviewpage|action">Action</property>
+ <property name="clickable">True</property>
+ <child>
+ <object class="GtkCellRendererPixbuf" id="cellrenderertext45"/>
+ <attributes>
+ <attribute name="pixbuf">0</attribute>
+ </attributes>
+ </child>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext25"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn20">
+ <property name="resizable">True</property>
+ <property name="spacing">6</property>
+ <property name="title" translatable="yes" context="redlineviewpage|author">Author</property>
+ <property name="clickable">True</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderer29"/>
+ <attributes>
+ <attribute name="text">2</attribute>
+ <attribute name="foreground-rgba">6</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn30">
+ <property name="resizable">True</property>
+ <property name="spacing">6</property>
+ <property name="title" translatable="yes" context="redlineviewpage|date">Date</property>
+ <property name="clickable">True</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderer39"/>
+ <attributes>
+ <attribute name="text">3</attribute>
+ <attribute name="foreground-rgba">6</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn40">
+ <property name="resizable">True</property>
+ <property name="spacing">6</property>
+ <property name="title" translatable="yes" context="redlineviewpage|comment">Comment</property>
+ <property name="clickable">True</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderer49"/>
+ <attributes>
+ <attribute name="text">4</attribute>
+ <attribute name="foreground-rgba">6</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
</object>
</child>
- <child internal-child="selection">
- <object class="GtkTreeSelection" id="Simple Table Container-selection"/>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="writerchanges-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="redlineviewpage|writerchanges-atkobject">Changes</property>
+ </object>
</child>
</object>
<packing>