toolkit/inc/controls/table/tablecontrol.hxx | 6 - toolkit/source/controls/svtxgridcontrol.cxx | 8 - toolkit/source/controls/table/tablecontrol.cxx | 17 +-- toolkit/source/controls/unocontroltablemodel.cxx | 121 +++++++++++------------ 4 files changed, 76 insertions(+), 76 deletions(-)
New commits: commit ba0d9c0f3f6ddcd4a783f886702c825c3728be59 Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Thu Jan 23 13:34:30 2025 +0100 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Fri Jan 24 07:37:14 2025 +0100 toolkit: No longer provide getter for TableControl::m_pImpl Drop TableControl::getTableControlInterface that was providing direct access to TableControl::m_pImpl via the ITableControl interface. This was only used in SVTXGridControl to call ITableControl::hitTest and ITableControl::invalidate. Add new methods TableControl::hitTest and TableControl::invalidate which allow doing exactly that via the TableControl without requiring direct access to the `m_pImpl` from outside. Change-Id: I098739e0bb64efcbaafdb8762e082d6f7b7325bc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180633 Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> Tested-by: Jenkins diff --git a/toolkit/inc/controls/table/tablecontrol.hxx b/toolkit/inc/controls/table/tablecontrol.hxx index 9d9f98ff11e3..075e3b83ebe5 100644 --- a/toolkit/inc/controls/table/tablecontrol.hxx +++ b/toolkit/inc/controls/table/tablecontrol.hxx @@ -19,6 +19,7 @@ #pragma once +#include <controls/table/tablecontrolinterface.hxx> #include <controls/table/tablemodel.hxx> #include <vcl/accessibletable.hxx> @@ -77,9 +78,6 @@ namespace svt::table */ sal_Int32 GetCurrentRow() const override; - ITableControl& - getTableControlInterface(); - /** retrieves the current column The current col is the one which contains the active cell. @@ -157,6 +155,8 @@ namespace svt::table virtual void SelectRow( sal_Int32 const i_rowIndex, bool const i_select ) override; virtual void SelectAllRows( bool const i_select ) override; + TableCell hitTest(const Point& rPoint) const; + void invalidate(const TableArea aArea); private: DECL_LINK( ImplSelectHdl, LinkParamNone*, void ); diff --git a/toolkit/source/controls/svtxgridcontrol.cxx b/toolkit/source/controls/svtxgridcontrol.cxx index 0f2c3f6c1cb5..f63151e0d472 100644 --- a/toolkit/source/controls/svtxgridcontrol.cxx +++ b/toolkit/source/controls/svtxgridcontrol.cxx @@ -112,7 +112,7 @@ sal_Int32 SAL_CALL SVTXGridControl::getRowAtPoint(::sal_Int32 x, ::sal_Int32 y) VclPtr< TableControl > pTable = GetAsDynamic< TableControl >(); ENSURE_OR_RETURN( pTable, "SVTXGridControl::getRowAtPoint: no control (anymore)!", -1 ); - TableCell const tableCell = pTable->getTableControlInterface().hitTest( Point( x, y ) ); + TableCell const tableCell = pTable->hitTest(Point(x, y)); return ( tableCell.nRow >= 0 ) ? tableCell.nRow : -1; } @@ -124,7 +124,7 @@ sal_Int32 SAL_CALL SVTXGridControl::getColumnAtPoint(::sal_Int32 x, ::sal_Int32 VclPtr< TableControl > pTable = GetAsDynamic< TableControl >(); ENSURE_OR_RETURN( pTable, "SVTXGridControl::getColumnAtPoint: no control (anymore)!", -1 ); - TableCell const tableCell = pTable->getTableControlInterface().hitTest( Point( x, y ) ); + TableCell const tableCell = pTable->hitTest(Point(x, y)); return ( tableCell.nColumn >= 0 ) ? tableCell.nColumn : -1; } @@ -620,7 +620,7 @@ void SAL_CALL SVTXGridControl::dataChanged( const GridDataEvent& i_event ) // So, just in case, invalidate the column header area, too. VclPtr< TableControl > pTable = GetAsDynamic< TableControl >(); ENSURE_OR_RETURN_VOID( pTable, "SVTXGridControl::dataChanged: no control (anymore)!" ); - pTable->getTableControlInterface().invalidate( TableArea::ColumnHeaders ); + pTable->invalidate(TableArea::ColumnHeaders); } @@ -632,7 +632,7 @@ void SAL_CALL SVTXGridControl::rowHeadingChanged( const GridDataEvent& ) ENSURE_OR_RETURN_VOID( pTable, "SVTXGridControl::rowHeadingChanged: no control (anymore)!" ); // TODO: we could do better than this - invalidate the header area only - pTable->getTableControlInterface().invalidate( TableArea::RowHeaders ); + pTable->invalidate(TableArea::RowHeaders); } diff --git a/toolkit/source/controls/table/tablecontrol.cxx b/toolkit/source/controls/table/tablecontrol.cxx index 2b6afc18d863..bde7d9788126 100644 --- a/toolkit/source/controls/table/tablecontrol.cxx +++ b/toolkit/source/controls/table/tablecontrol.cxx @@ -261,13 +261,6 @@ namespace svt::table Select(); } - - ITableControl& TableControl::getTableControlInterface() - { - return *m_pImpl; - } - - SelectionEngine* TableControl::getSelEngine() { return m_pImpl->getSelEngine(); @@ -639,6 +632,16 @@ namespace svt::table } } + TableCell TableControl::hitTest(const Point& rPoint) const + { + return m_pImpl->hitTest(rPoint); + } + + void TableControl::invalidate(const TableArea aArea) + { + return m_pImpl->invalidate(aArea); + } + } // namespace svt::table commit 0f82767a7d2d396687d2be7f9374e64e6071bc00 Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Thu Jan 23 13:06:10 2025 +0100 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Fri Jan 24 07:37:06 2025 +0100 toolkit: Drop DBG_CHECK_ME macro Use DBG_TESTSOLARMUTEX directly. Change-Id: If3dd942d1e3d32615a82419071f1a4b8a7e5eceb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180632 Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> Tested-by: Jenkins diff --git a/toolkit/source/controls/unocontroltablemodel.cxx b/toolkit/source/controls/unocontroltablemodel.cxx index 50f6cac3cf80..ff83158dc757 100644 --- a/toolkit/source/controls/unocontroltablemodel.cxx +++ b/toolkit/source/controls/unocontroltablemodel.cxx @@ -53,9 +53,6 @@ namespace svt::table //= UnoControlTableModel -#define DBG_CHECK_ME() \ - DBG_TESTSOLARMUTEX(); \ - UnoControlTableModel::UnoControlTableModel() :aColumns ( ) ,bHasColumnHeaders ( true ) @@ -92,14 +89,14 @@ namespace svt::table TableSize UnoControlTableModel::getColumnCount() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return static_cast<TableSize>(aColumns.size()); } TableSize UnoControlTableModel::getRowCount() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); TableSize nRowCount = 0; try @@ -118,21 +115,21 @@ namespace svt::table bool UnoControlTableModel::hasColumnHeaders() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return bHasColumnHeaders; } bool UnoControlTableModel::hasRowHeaders() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return bHasRowHeaders; } void UnoControlTableModel::setRowHeaders(bool _bRowHeaders) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); if ( bHasRowHeaders == _bRowHeaders ) return; @@ -143,7 +140,7 @@ namespace svt::table void UnoControlTableModel::setColumnHeaders(bool _bColumnHeaders) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); if ( bHasColumnHeaders == _bColumnHeaders ) return; @@ -154,7 +151,7 @@ namespace svt::table PColumnModel UnoControlTableModel::getColumnModel( ColPos column ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); ENSURE_OR_RETURN( ( column >= 0 ) && ( column < getColumnCount() ), "DefaultTableModel::getColumnModel: invalid index!", PColumnModel() ); return aColumns[ column ]; @@ -163,14 +160,14 @@ namespace svt::table void UnoControlTableModel::appendColumn( Reference< XGridColumn > const & i_column ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); insertColumn( aColumns.size(), i_column ); } void UnoControlTableModel::insertColumn( ColPos const i_position, Reference< XGridColumn > const & i_column ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); ENSURE_OR_RETURN_VOID( ( i_position >= 0 ) && ( o3tl::make_unsigned( i_position ) <= aColumns.size() ), "UnoControlTableModel::insertColumn: illegal position!" ); @@ -188,7 +185,7 @@ namespace svt::table void UnoControlTableModel::removeColumn( ColPos const i_position ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); ENSURE_OR_RETURN_VOID( ( i_position >= 0 ) && ( o3tl::make_unsigned( i_position ) <= aColumns.size() ), "UnoControlTableModel::removeColumn: illegal position!" ); @@ -214,7 +211,7 @@ namespace svt::table void UnoControlTableModel::removeAllColumns() { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); if ( aColumns.empty() ) return; @@ -253,28 +250,28 @@ namespace svt::table PTableRenderer UnoControlTableModel::getRenderer() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return pRenderer; } PTableInputHandler UnoControlTableModel::getInputHandler() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return pInputHandler; } TableMetrics UnoControlTableModel::getRowHeight() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return nRowHeight; } void UnoControlTableModel::setRowHeight(TableMetrics _nRowHeight) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); if ( nRowHeight == _nRowHeight ) return; @@ -285,7 +282,7 @@ namespace svt::table TableMetrics UnoControlTableModel::getColumnHeaderHeight() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); DBG_ASSERT( hasColumnHeaders(), "DefaultTableModel::getColumnHeaderHeight: invalid call!" ); return nColumnHeaderHeight; } @@ -293,14 +290,14 @@ namespace svt::table TableMetrics UnoControlTableModel::getRowHeaderWidth() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); DBG_ASSERT( hasRowHeaders(), "DefaultTableModel::getRowHeaderWidth: invalid call!" ); return nRowHeaderWidth; } void UnoControlTableModel::setColumnHeaderHeight(TableMetrics _nHeight) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); if ( nColumnHeaderHeight == _nHeight ) return; @@ -311,7 +308,7 @@ namespace svt::table void UnoControlTableModel::setRowHeaderWidth(TableMetrics _nWidth) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); if ( nRowHeaderWidth == _nWidth ) return; @@ -322,21 +319,21 @@ namespace svt::table ScrollbarVisibility UnoControlTableModel::getVerticalScrollbarVisibility() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return eVScrollMode; } ScrollbarVisibility UnoControlTableModel::getHorizontalScrollbarVisibility() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return eHScrollMode; } void UnoControlTableModel::addTableModelListener( const PTableModelListener& i_listener ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); ENSURE_OR_RETURN_VOID( !!i_listener, "illegal NULL listener" ); m_aListeners.push_back( i_listener ); } @@ -344,7 +341,7 @@ namespace svt::table void UnoControlTableModel::removeTableModelListener( const PTableModelListener& i_listener ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); auto lookup = std::find(m_aListeners.begin(), m_aListeners.end(), i_listener); if (lookup != m_aListeners.end()) { @@ -357,21 +354,21 @@ namespace svt::table void UnoControlTableModel::setVerticalScrollbarVisibility( ScrollbarVisibility const i_visibility ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); eVScrollMode = i_visibility; } void UnoControlTableModel::setHorizontalScrollbarVisibility( ScrollbarVisibility const i_visibility ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); eHScrollMode = i_visibility; } void UnoControlTableModel::setDataModel( Reference< XGridDataModel > const & i_gridDataModel ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); m_aDataModel = i_gridDataModel; // TODO: register as listener, so we're notified of row/data changes, and can multiplex them to our // own listeners @@ -393,7 +390,7 @@ namespace svt::table void UnoControlTableModel::setColumnModel( Reference< XGridColumnModel > const & i_gridColumnModel ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); m_aColumnModel = i_gridColumnModel; } @@ -413,7 +410,7 @@ namespace svt::table void UnoControlTableModel::getCellContent( ColPos const i_col, RowPos const i_row, Any& o_cellContent ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); o_cellContent.clear(); try @@ -451,7 +448,7 @@ namespace svt::table void UnoControlTableModel::getCellToolTip( ColPos const i_col, RowPos const i_row, Any& o_cellToolTip ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); try { Reference< XGridDataModel > const xDataModel( m_aDataModel ); @@ -468,7 +465,7 @@ namespace svt::table Any UnoControlTableModel::getRowHeading( RowPos const i_rowPos ) const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); Any aRowHeading; @@ -511,140 +508,140 @@ namespace svt::table ::std::optional< ::Color > UnoControlTableModel::getLineColor() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aGridLineColor; } void UnoControlTableModel::setLineColor( Any const & i_color ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); lcl_setColor( i_color, m_aGridLineColor ); } ::std::optional< ::Color > UnoControlTableModel::getHeaderBackgroundColor() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aHeaderBackgroundColor; } void UnoControlTableModel::setHeaderBackgroundColor( Any const & i_color ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); lcl_setColor( i_color, m_aHeaderBackgroundColor ); } ::std::optional< ::Color > UnoControlTableModel::getHeaderTextColor() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aHeaderTextColor; } ::std::optional< ::Color > UnoControlTableModel::getActiveSelectionBackColor() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aActiveSelectionBackColor; } ::std::optional< ::Color > UnoControlTableModel::getInactiveSelectionBackColor() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aInactiveSelectionBackColor; } ::std::optional< ::Color > UnoControlTableModel::getActiveSelectionTextColor() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aActiveSelectionTextColor; } ::std::optional< ::Color > UnoControlTableModel::getInactiveSelectionTextColor() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aInactiveSelectionTextColor; } void UnoControlTableModel::setHeaderTextColor( Any const & i_color ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); lcl_setColor( i_color, m_aHeaderTextColor ); } void UnoControlTableModel::setActiveSelectionBackColor( Any const & i_color ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); lcl_setColor( i_color, m_aActiveSelectionBackColor ); } void UnoControlTableModel::setInactiveSelectionBackColor( Any const & i_color ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); lcl_setColor( i_color, m_aInactiveSelectionBackColor ); } void UnoControlTableModel::setActiveSelectionTextColor( Any const & i_color ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); lcl_setColor( i_color, m_aActiveSelectionTextColor ); } void UnoControlTableModel::setInactiveSelectionTextColor( Any const & i_color ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); lcl_setColor( i_color, m_aInactiveSelectionTextColor ); } ::std::optional< ::Color > UnoControlTableModel::getTextColor() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aTextColor; } void UnoControlTableModel::setTextColor( Any const & i_color ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); lcl_setColor( i_color, m_aTextColor ); } ::std::optional< ::Color > UnoControlTableModel::getTextLineColor() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aTextColor; } void UnoControlTableModel::setTextLineColor( Any const & i_color ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); lcl_setColor( i_color, m_aTextLineColor ); } ::std::optional< ::std::vector< ::Color > > UnoControlTableModel::getRowBackgroundColors() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_aRowColors; } void UnoControlTableModel::setRowBackgroundColors( css::uno::Any const & i_APIValue ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); Sequence< css::util::Color > aAPIColors; if ( !( i_APIValue >>= aAPIColors ) ) m_aRowColors.reset(); @@ -660,21 +657,21 @@ namespace svt::table VerticalAlignment UnoControlTableModel::getVerticalAlign() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return m_eVerticalAlign; } void UnoControlTableModel::setVerticalAlign( VerticalAlignment _xAlign ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); m_eVerticalAlign = _xAlign; } ColPos UnoControlTableModel::getColumnPos( UnoGridColumnFacade const & i_column ) const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); ColPos nPos = 0; for (auto const& col : aColumns) { @@ -689,7 +686,7 @@ namespace svt::table ITableDataSort* UnoControlTableModel::getSortAdapter() { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); Reference< XSortableGridData > const xSortAccess( getDataModel(), UNO_QUERY ); if ( xSortAccess.is() ) @@ -700,21 +697,21 @@ namespace svt::table bool UnoControlTableModel::isEnabled() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); return bEnabled; } void UnoControlTableModel::setEnabled( bool _bEnabled ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); bEnabled = _bEnabled; } void UnoControlTableModel::sortByColumn( ColPos const i_column, ColumnSortDirection const i_sortDirection ) { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); try { @@ -730,7 +727,7 @@ namespace svt::table ColumnSort UnoControlTableModel::getCurrentSortOrder() const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); ColumnSort currentSort; try @@ -750,7 +747,7 @@ namespace svt::table void UnoControlTableModel::notifyColumnChange( ColPos const i_columnPos, ColumnAttributeGroup const i_attributeGroup ) const { - DBG_CHECK_ME(); + DBG_TESTSOLARMUTEX(); ENSURE_OR_RETURN_VOID( ( i_columnPos >= 0 ) && ( i_columnPos < getColumnCount() ), "UnoControlTableModel::notifyColumnChange: invalid column index!" );