[Libreoffice-commits] core.git: sc/source
Jochen Nitschke
j.nitschke+logerrit at ok.de
Wed Jan 11 23:09:09 UTC 2017
sc/source/filter/oox/querytablebuffer.cxx | 8 ++++----
sc/source/filter/oox/worksheethelper.cxx | 15 +++++++--------
2 files changed, 11 insertions(+), 12 deletions(-)
New commits:
commit 88f561204d7cee25633df8117cc8d7e1ebd8e9ad
Author: Jochen Nitschke <j.nitschke+logerrit at ok.de>
Date: Wed Jan 11 14:30:11 2017 +0100
tdf#48140 replace CellAddress in xlsx import (3)
Change-Id: Ie56cea7fdee7ff6c9e72880e56f9e31ce5f7e03b
Reviewed-on: https://gerrit.libreoffice.org/32970
Reviewed-by: Jochen Nitschke <j.nitschke+logerrit at ok.de>
Tested-by: Jochen Nitschke <j.nitschke+logerrit at ok.de>
diff --git a/sc/source/filter/oox/querytablebuffer.cxx b/sc/source/filter/oox/querytablebuffer.cxx
index d561493..aa973a7 100644
--- a/sc/source/filter/oox/querytablebuffer.cxx
+++ b/sc/source/filter/oox/querytablebuffer.cxx
@@ -99,7 +99,7 @@ OUString lclBuildWebQueryTables( const WebPrModel::TablesVector& rTables )
}
Reference< XAreaLink > lclFindAreaLink(
- const Reference< XAreaLinks >& rxAreaLinks, const CellAddress& rDestPos,
+ const Reference< XAreaLinks >& rxAreaLinks, const ScAddress& rDestPos,
const OUString& rFileUrl, const OUString& rTables, const OUString& rFilterName, const OUString& rFilterOptions )
{
try
@@ -112,7 +112,7 @@ Reference< XAreaLink > lclFindAreaLink(
PropertySet aPropSet( xAreaLink );
CellRangeAddress aDestArea = xAreaLink->getDestArea();
OUString aString;
- if( (rDestPos.Sheet == aDestArea.Sheet) && (rDestPos.Column == aDestArea.StartColumn) && (rDestPos.Row == aDestArea.StartRow) &&
+ if( (rDestPos.Tab() == aDestArea.Sheet) && (rDestPos.Col() == aDestArea.StartColumn) && (rDestPos.Row() == aDestArea.StartRow) &&
(rTables == xAreaLink->getSourceArea()) &&
aPropSet.getProperty( aString, PROP_Url ) && (rFileUrl == aString) &&
aPropSet.getProperty( aString, PROP_Filter ) && (rFilterName == aString) &&
@@ -233,13 +233,13 @@ void QueryTable::finalizeImport()
OSL_ENSURE( bIsRange, "QueryTable::finalizeImport - defined name does not contain valid cell range" );
if( bIsRange && getAddressConverter().checkCellRange( aDestRange, false, true ) )
{
- CellAddress aDestPos( aDestRange.aStart.Tab(), aDestRange.aStart.Col(), aDestRange.aStart.Row() );
// find tables mode: entire document, all tables, or specific tables
OUString aTables = pWebPr->mbHtmlTables ? lclBuildWebQueryTables( pWebPr->maTables ) : "HTML_all";
if( !aTables.isEmpty() ) try
{
PropertySet aDocProps( getDocument() );
Reference< XAreaLinks > xAreaLinks( aDocProps.getAnyProperty( PROP_AreaLinks ), UNO_QUERY_THROW );
+ CellAddress aDestPos( aDestRange.aStart.Tab(), aDestRange.aStart.Col(), aDestRange.aStart.Row() );
OUString aFilterName = "calc_HTML_WebQuery";
OUString aFilterOptions;
xAreaLinks->insertAtPosition( aDestPos, aFileUrl, aTables, aFilterName, aFilterOptions );
@@ -247,7 +247,7 @@ void QueryTable::finalizeImport()
sal_Int32 nRefreshPeriod = xConnection->getModel().mnInterval * 60;
if( nRefreshPeriod > 0 )
{
- PropertySet aPropSet( lclFindAreaLink( xAreaLinks, aDestPos, aFileUrl, aTables, aFilterName, aFilterOptions ) );
+ PropertySet aPropSet( lclFindAreaLink( xAreaLinks, aDestRange.aStart, aFileUrl, aTables, aFilterName, aFilterOptions ) );
aPropSet.setProperty( PROP_RefreshPeriod, nRefreshPeriod );
}
}
diff --git a/sc/source/filter/oox/worksheethelper.cxx b/sc/source/filter/oox/worksheethelper.cxx
index f739be3..d3a2811 100644
--- a/sc/source/filter/oox/worksheethelper.cxx
+++ b/sc/source/filter/oox/worksheethelper.cxx
@@ -337,7 +337,7 @@ private:
/** Generates the final URL for the passed hyperlink. */
OUString getHyperlinkUrl( const HyperlinkModel& rHyperlink ) const;
/** Inserts a hyperlinks into the specified cell. */
- void insertHyperlink( const CellAddress& rAddress, const OUString& rUrl );
+ void insertHyperlink( const ScAddress& rAddress, const OUString& rUrl );
/** Inserts all imported data validations into their cell ranges. */
void finalizeValidationRanges() const;
@@ -961,8 +961,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.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 )
+ for( ScAddress aAddress( aIt->maRange.aStart.Col(), aIt->maRange.aStart.Row(), getSheetIndex() ); aAddress.Row() <= aIt->maRange.aEnd.Row(); aAddress.IncRow() )
+ for( aAddress.SetCol(aIt->maRange.aStart.Col()); aAddress.Col() <= aIt->maRange.aEnd.Col(); aAddress.IncCol() )
insertHyperlink( aAddress, aUrl );
}
}
@@ -1004,11 +1004,10 @@ OUString WorksheetGlobals::getHyperlinkUrl( const HyperlinkModel& rHyperlink ) c
return aUrl;
}
-void WorksheetGlobals::insertHyperlink( const CellAddress& rAddress, const OUString& rUrl )
+void WorksheetGlobals::insertHyperlink( const ScAddress& rAddress, const OUString& rUrl )
{
ScDocumentImport& rDoc = getDocImport();
- ScAddress aPos(rAddress.Column, rAddress.Row, rAddress.Sheet);
- ScRefCellValue aCell(rDoc.getDoc(), aPos);
+ ScRefCellValue aCell(rDoc.getDoc(), rAddress);
if (aCell.meType == CELLTYPE_STRING || aCell.meType == CELLTYPE_EDIT)
{
@@ -1020,7 +1019,7 @@ void WorksheetGlobals::insertHyperlink( const CellAddress& rAddress, const OUStr
SvxFieldItem aURLItem(aURLField, EE_FEATURE_FIELD);
rEE.QuickInsertField(aURLItem, ESelection());
- rDoc.setEditCell(aPos, rEE.CreateTextObject());
+ rDoc.setEditCell(rAddress, rEE.CreateTextObject());
}
else
{
@@ -1035,7 +1034,7 @@ void WorksheetGlobals::insertHyperlink( const CellAddress& rAddress, const OUStr
// attribute ) for better interoperability.
SfxStringItem aItem(ATTR_HYPERLINK, rUrl);
- rDoc.getDoc().ApplyAttr(rAddress.Column, rAddress.Row, rAddress.Sheet, aItem);
+ rDoc.getDoc().ApplyAttr(rAddress.Col(), rAddress.Row(), rAddress.Tab(), aItem);
}
}
More information about the Libreoffice-commits
mailing list