[Libreoffice-commits] core.git: sc/source
Jochen Nitschke
j.nitschke+logerrit at ok.de
Tue Jan 3 00:18:39 UTC 2017
sc/source/filter/inc/addressconverter.hxx | 11 +++++++++++
sc/source/filter/inc/viewsettings.hxx | 6 ++----
sc/source/filter/inc/workbookhelper.hxx | 4 ----
sc/source/filter/inc/worksheethelper.hxx | 3 +--
sc/source/filter/oox/addressconverter.cxx | 15 +++++++++++++++
sc/source/filter/oox/viewsettings.cxx | 10 ++++------
sc/source/filter/oox/workbookhelper.cxx | 14 --------------
sc/source/filter/oox/worksheethelper.cxx | 4 ++--
8 files changed, 35 insertions(+), 32 deletions(-)
New commits:
commit 470ea0a7ae1874064b09c711ee0a54f1a82ebfda
Author: Jochen Nitschke <j.nitschke+logerrit at ok.de>
Date: Fri Dec 30 18:12:14 2016 +0100
tdf#48140 replace CellRangeAddress in xlsx import (6)&(7)
Change-Id: Idc44249b96009633f63b72dd51a74e51bef41284
Reviewed-on: https://gerrit.libreoffice.org/32576
Tested-by: Jochen Nitschke <j.nitschke+logerrit at ok.de>
Reviewed-by: Jochen Nitschke <j.nitschke+logerrit at ok.de>
diff --git a/sc/source/filter/inc/addressconverter.hxx b/sc/source/filter/inc/addressconverter.hxx
index 9e6a71e..8dbd932 100644
--- a/sc/source/filter/inc/addressconverter.hxx
+++ b/sc/source/filter/inc/addressconverter.hxx
@@ -451,6 +451,11 @@ public:
const OUString& rString,
sal_Int16 nSheet,
bool bAllowOverflow, bool bTrackOverflow );
+ bool convertToCellRange(
+ ScRange& orRange,
+ const OUString& rString,
+ sal_Int16 nSheet,
+ bool bAllowOverflow, bool bTrackOverflow );
/** Converts the passed range to a cell range address, without checking any
sheet limits.
@@ -496,6 +501,12 @@ public:
const BinRange& rBinRange,
sal_Int16 nSheet,
bool bAllowOverflow, bool bTrackOverflow );
+ bool convertToCellRange(
+ ScRange& orRange,
+ const BinRange& rBinRange,
+ sal_Int16 nSheet,
+ bool bAllowOverflow, bool bTrackOverflow );
+
/** Tries to restrict the passed cell range list to current sheet limits.
diff --git a/sc/source/filter/inc/viewsettings.hxx b/sc/source/filter/inc/viewsettings.hxx
index c7f343a..1ba44d1 100644
--- a/sc/source/filter/inc/viewsettings.hxx
+++ b/sc/source/filter/inc/viewsettings.hxx
@@ -20,7 +20,6 @@
#ifndef INCLUDED_SC_SOURCE_FILTER_INC_VIEWSETTINGS_HXX
#define INCLUDED_SC_SOURCE_FILTER_INC_VIEWSETTINGS_HXX
-#include <com/sun/star/table/CellRangeAddress.hpp>
#include "addressconverter.hxx"
#include "stylesbuffer.hxx"
#include "worksheethelper.hxx"
@@ -178,14 +177,13 @@ private:
typedef RefVector< WorkbookViewModel > WorkbookViewModelVec;
typedef RefMap< sal_Int16, SheetViewModel > SheetViewModelMap;
typedef ::std::map< sal_Int16, css::uno::Any > SheetPropertiesMap;
- typedef ::std::map< sal_Int16, css::table::CellRangeAddress > SheetUsedAreaMap;
+ typedef ::std::map< sal_Int16, ScRange > SheetUsedAreaMap;
WorkbookViewModelVec maBookViews; /// Workbook view models.
SheetViewModelMap maSheetViews; /// Active view model for each sheet.
SheetPropertiesMap maSheetProps; /// Converted property sequences for each sheet.
SheetUsedAreaMap maSheetUsedAreas; /// Used area (cell range) of every sheet.
- css::table::CellRangeAddress
- maOleSize; /// Visible area if this is an embedded OLE object.
+ ScRange maOleSize; /// Visible area if this is an embedded OLE object.
bool mbValidOleSize; /// True = imported OLE size is a valid cell range.
};
diff --git a/sc/source/filter/inc/workbookhelper.hxx b/sc/source/filter/inc/workbookhelper.hxx
index 2887d4d..2ea53ca 100644
--- a/sc/source/filter/inc/workbookhelper.hxx
+++ b/sc/source/filter/inc/workbookhelper.hxx
@@ -154,12 +154,8 @@ public:
/** Returns the XCellRange interface for the passed cell range address. */
css::uno::Reference< css::table::XCellRange >
- getCellRangeFromDoc(
- const css::table::CellRangeAddress& rRange ) const;
- css::uno::Reference< css::table::XCellRange >
getCellRangeFromDoc( const ScRange& rRange ) const;
-
/** Returns the cell styles container from the Calc document. */
css::uno::Reference< css::container::XNameContainer >
getCellStyleFamily() const;
diff --git a/sc/source/filter/inc/worksheethelper.hxx b/sc/source/filter/inc/worksheethelper.hxx
index 0508b87..bd7c4ef 100644
--- a/sc/source/filter/inc/worksheethelper.hxx
+++ b/sc/source/filter/inc/worksheethelper.hxx
@@ -124,8 +124,7 @@ struct PageBreakModel
/** Stores data about a hyperlink range. */
struct HyperlinkModel : public ::oox::ole::StdHlinkInfo
{
- css::table::CellRangeAddress
- maRange; /// The cell area containing the hyperlink.
+ ScRange maRange; /// The cell area containing the hyperlink.
OUString maTooltip; /// Additional tooltip text.
explicit HyperlinkModel();
diff --git a/sc/source/filter/oox/addressconverter.cxx b/sc/source/filter/oox/addressconverter.cxx
index d071df4..a8452cc 100644
--- a/sc/source/filter/oox/addressconverter.cxx
+++ b/sc/source/filter/oox/addressconverter.cxx
@@ -453,6 +453,14 @@ bool AddressConverter::convertToCellRange( CellRangeAddress& orRange,
validateCellRange( orRange, bAllowOverflow, bTrackOverflow );
}
+bool AddressConverter::convertToCellRange( ScRange& orRange,
+ const OUString& rString, sal_Int16 nSheet, bool bAllowOverflow, bool bTrackOverflow )
+{
+ return
+ convertToCellRangeUnchecked( orRange, rString, nSheet ) &&
+ validateCellRange( orRange, bAllowOverflow, bTrackOverflow );
+}
+
void AddressConverter::convertToCellRangeUnchecked( CellRangeAddress& orRange,
const BinRange& rBinRange, sal_Int16 nSheet )
{
@@ -481,6 +489,13 @@ bool AddressConverter::convertToCellRange( CellRangeAddress& orRange,
return validateCellRange( orRange, bAllowOverflow, bTrackOverflow );
}
+bool AddressConverter::convertToCellRange( ScRange& orRange,
+ const BinRange& rBinRange, sal_Int16 nSheet, bool bAllowOverflow, bool bTrackOverflow )
+{
+ convertToCellRangeUnchecked( orRange, rBinRange, nSheet );
+ return validateCellRange( orRange, bAllowOverflow, bTrackOverflow );
+}
+
void AddressConverter::validateCellRangeList( ApiCellRangeList& orRanges, bool bTrackOverflow )
{
for( size_t nIndex = orRanges.size(); nIndex > 0; --nIndex )
diff --git a/sc/source/filter/oox/viewsettings.cxx b/sc/source/filter/oox/viewsettings.cxx
index 99f7c4a..26d99f5 100644
--- a/sc/source/filter/oox/viewsettings.cxx
+++ b/sc/source/filter/oox/viewsettings.cxx
@@ -49,7 +49,6 @@ namespace xls {
using namespace ::com::sun::star::awt;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::document;
-using namespace ::com::sun::star::table;
using namespace ::com::sun::star::uno;
using ::oox::core::FilterBase;
@@ -538,9 +537,7 @@ void ViewSettings::setSheetUsedArea( const ScRange& rUsedArea )
assert( rUsedArea.IsValid() );
assert( rUsedArea.aStart.Col() <= MAXCOLCOUNT );
assert( rUsedArea.aStart.Row() <= MAXROWCOUNT );
- maSheetUsedAreas[ rUsedArea.aStart.Tab() ] = CellRangeAddress( rUsedArea.aStart.Tab(),
- rUsedArea.aStart.Col(), rUsedArea.aStart.Row(),
- rUsedArea.aEnd.Col(), rUsedArea.aEnd.Row() );
+ maSheetUsedAreas[ rUsedArea.aStart.Tab() ] = rUsedArea;
}
void ViewSettings::finalizeImport()
@@ -601,8 +598,9 @@ void ViewSettings::finalizeImport()
#i44077# If a new OLE object is inserted from file, there is no OLESIZE
record in the Excel file. In this case, use the used area calculated
from file contents (used cells and drawing objects). */
- maOleSize.Sheet = nActiveSheet;
- const CellRangeAddress* pVisibleArea = mbValidOleSize ?
+ maOleSize.aStart.SetTab( nActiveSheet );
+ maOleSize.aEnd.SetTab( nActiveSheet );
+ const ScRange* pVisibleArea = mbValidOleSize ?
&maOleSize : ContainerHelper::getMapElement( maSheetUsedAreas, nActiveSheet );
if( pVisibleArea )
{
diff --git a/sc/source/filter/oox/workbookhelper.cxx b/sc/source/filter/oox/workbookhelper.cxx
index 2d7d6a0..0e67c30 100644
--- a/sc/source/filter/oox/workbookhelper.cxx
+++ b/sc/source/filter/oox/workbookhelper.cxx
@@ -785,20 +785,6 @@ Reference< XSpreadsheet > WorkbookHelper::getSheetFromDoc( const OUString& rShee
return xSheet;
}
-Reference< XCellRange > WorkbookHelper::getCellRangeFromDoc( const CellRangeAddress& rRange ) const
-{
- Reference< XCellRange > xRange;
- try
- {
- Reference< XSpreadsheet > xSheet( getSheetFromDoc( rRange.Sheet ), UNO_SET_THROW );
- xRange = xSheet->getCellRangeByPosition( rRange.StartColumn, rRange.StartRow, rRange.EndColumn, rRange.EndRow );
- }
- catch( Exception& )
- {
- }
- return xRange;
-}
-
Reference< XCellRange > WorkbookHelper::getCellRangeFromDoc( const ScRange& rRange ) const
{
Reference< XCellRange > xRange;
diff --git a/sc/source/filter/oox/worksheethelper.cxx b/sc/source/filter/oox/worksheethelper.cxx
index 92e95c8..c83a29e 100644
--- a/sc/source/filter/oox/worksheethelper.cxx
+++ b/sc/source/filter/oox/worksheethelper.cxx
@@ -975,8 +975,8 @@ void WorksheetGlobals::finalizeHyperlinkRanges()
OUString aUrl = getHyperlinkUrl( *aIt );
// try to insert URL into each cell of the range
if( !aUrl.isEmpty() )
- for( CellAddress aAddress( getSheetIndex(), aIt->maRange.StartColumn, aIt->maRange.StartRow ); aAddress.Row <= aIt->maRange.EndRow; ++aAddress.Row )
- for( aAddress.Column = aIt->maRange.StartColumn; aAddress.Column <= aIt->maRange.EndColumn; ++aAddress.Column )
+ for( CellAddress aAddress( getSheetIndex(), aIt->maRange.aStart.Col(), aIt->maRange.aStart.Row() ); aAddress.Row <= aIt->maRange.aEnd.Row(); ++aAddress.Row )
+ for( aAddress.Column = aIt->maRange.aStart.Col(); aAddress.Column <= aIt->maRange.aEnd.Col(); ++aAddress.Column )
insertHyperlink( aAddress, aUrl );
}
}
More information about the Libreoffice-commits
mailing list