diff options
author | Caolán McNamara <caolanm@redhat.com> | 2019-04-18 16:49:26 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2019-04-27 12:41:14 +0200 |
commit | 56dd851cfc77c362c3db5c0aae4a490c7f6782cc (patch) | |
tree | 0f5f6564e0b9af8123f4cebfe9a2f55c1bbbba57 /svx | |
parent | 6afbe153ffd4cab27f0a7bb77f71f25923dc2e43 (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.cxx | 875 | ||||
-rw-r--r-- | svx/source/sidebar/PanelLayout.cxx | 9 | ||||
-rw-r--r-- | svx/uiconfig/ui/acceptrejectchangesdialog.ui | 45 | ||||
-rw-r--r-- | svx/uiconfig/ui/redlinefilterpage.ui | 63 | ||||
-rw-r--r-- | svx/uiconfig/ui/redlineviewpage.ui | 288 |
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> |