diff options
author | Bjoern Michaelsen <bjoern.michaelsen@canonical.com> | 2011-07-24 19:22:58 +0200 |
---|---|---|
committer | Bjoern Michaelsen <bjoern.michaelsen@canonical.com> | 2011-07-24 19:22:58 +0200 |
commit | 478c04b447a51563b60478518c55e829379328c9 (patch) | |
tree | 32aa0c38dcd2aadb28332f257b5d1e261e7a5a5a | |
parent | 437225b84734243b1fb0ff048126d6b291eded0c (diff) | |
parent | 8dca87b15321b7081031730475b9577fc8f8e25c (diff) |
Merge branch 'master' into feature/gnumake4feature/gnumake4
-rw-r--r-- | sc/Library_scui.mk | 2 | ||||
-rw-r--r-- | sc/Library_vbaobj.mk | 2 | ||||
-rw-r--r-- | sc/qa/unit/data/ods/named-ranges-global.ods | bin | 0 -> 7925 bytes | |||
-rw-r--r-- | sc/qa/unit/filters-test.cxx | 26 | ||||
-rw-r--r-- | sc/source/core/tool/interpr3.cxx | 2 | ||||
-rw-r--r-- | sc/source/filter/html/htmlpars.cxx | 131 | ||||
-rw-r--r-- | sc/source/filter/inc/htmlpars.hxx | 2 | ||||
-rw-r--r-- | sc/source/ui/src/popup.src | 1 |
8 files changed, 88 insertions, 78 deletions
diff --git a/sc/Library_scui.mk b/sc/Library_scui.mk index f2e4056dc..a7f8fb3d9 100644 --- a/sc/Library_scui.mk +++ b/sc/Library_scui.mk @@ -119,7 +119,7 @@ $(eval $(call gb_Library_add_linked_libs,scui,\ advapi32 \ kernel32 \ msvcrt \ - oldnames \ + $(gb_Library_win32_OLDNAMES) \ user32 \ uwinapi \ )) diff --git a/sc/Library_vbaobj.mk b/sc/Library_vbaobj.mk index eb66b6919..7fe3d3803 100644 --- a/sc/Library_vbaobj.mk +++ b/sc/Library_vbaobj.mk @@ -152,7 +152,7 @@ $(eval $(call gb_Library_add_linked_libs,vbaobj,\ advapi32 \ kernel32 \ msvcrt \ - oldnames \ + $(gb_Library_win32_OLDNAMES) \ user32 \ uwinapi \ )) diff --git a/sc/qa/unit/data/ods/named-ranges-global.ods b/sc/qa/unit/data/ods/named-ranges-global.ods Binary files differnew file mode 100644 index 000000000..9d23d3209 --- /dev/null +++ b/sc/qa/unit/data/ods/named-ranges-global.ods diff --git a/sc/qa/unit/filters-test.cxx b/sc/qa/unit/filters-test.cxx index 58189b0c3..2753999f3 100644 --- a/sc/qa/unit/filters-test.cxx +++ b/sc/qa/unit/filters-test.cxx @@ -73,17 +73,20 @@ public: virtual void tearDown(); void recursiveScan(const rtl::OUString &rFilter, const rtl::OUString &rURL, const rtl::OUString &rUserData, int nExpected); - bool load(const rtl::OUString &rFilter, const rtl::OUString &rURL, const rtl::OUString &rUserData); + ScDocShellRef load(const rtl::OUString &rFilter, const rtl::OUString &rURL, const rtl::OUString &rUserData); /** * Ensure CVEs remain unbroken */ void testCVEs(); + void testODSs(); + CPPUNIT_TEST_SUITE(FiltersTest); #if !defined(__OpenBSD__) CPPUNIT_TEST(testCVEs); #endif + CPPUNIT_TEST(testODSs); CPPUNIT_TEST_SUITE_END(); private: @@ -93,7 +96,7 @@ private: ::rtl::OUString m_aSrcRoot; }; -bool FiltersTest::load(const rtl::OUString &rFilter, const rtl::OUString &rURL, +ScDocShellRef FiltersTest::load(const rtl::OUString &rFilter, const rtl::OUString &rURL, const rtl::OUString &rUserData) { SfxFilter aFilter( @@ -104,7 +107,11 @@ bool FiltersTest::load(const rtl::OUString &rFilter, const rtl::OUString &rURL, ScDocShellRef xDocShRef = new ScDocShell; SfxMedium aSrcMed(rURL, STREAM_STD_READ, true); aSrcMed.SetFilter(&aFilter); - return xDocShRef->DoLoad(&aSrcMed); + if (!xDocShRef->DoLoad(&aSrcMed)) + // load failed. + xDocShRef.Clear(); + + return xDocShRef; } void FiltersTest::recursiveScan(const rtl::OUString &rFilter, const rtl::OUString &rURL, const rtl::OUString &rUserData, int nExpected) @@ -140,7 +147,7 @@ void FiltersTest::recursiveScan(const rtl::OUString &rFilter, const rtl::OUStrin fprintf(stderr, "loading %s\n", aRes.getStr()); } sal_uInt32 nStartTime = osl_getGlobalTimer(); - bool bRes = load(rFilter, sURL, rUserData); + bool bRes = load(rFilter, sURL, rUserData).Is(); sal_uInt32 nEndTime = osl_getGlobalTimer(); if (nExpected == indeterminate) { @@ -179,6 +186,17 @@ void FiltersTest::testCVEs() } +void FiltersTest::testODSs() +{ +#if 0 +// TODO: loading of ods still fails. I need to look into this. + ScDocShellRef xDocSh = load(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("calc8")), + m_aSrcRoot + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/clone/calc/sc/qa/unit/data/ods/named-ranges-global.ods")), rtl::OUString()); + + CPPUNIT_ASSERT_MESSAGE("Failed to load named-ranges-global.ods.", xDocSh.Is()); +#endif +} + FiltersTest::FiltersTest() : m_aSrcRoot(RTL_CONSTASCII_USTRINGPARAM("file://")) { diff --git a/sc/source/core/tool/interpr3.cxx b/sc/source/core/tool/interpr3.cxx index c631b15ad..62d670d65 100644 --- a/sc/source/core/tool/interpr3.cxx +++ b/sc/source/core/tool/interpr3.cxx @@ -2094,7 +2094,7 @@ void ScInterpreter::ScTInv() return; double fDF = ::rtl::math::approxFloor(GetDouble()); double fP = GetDouble(); - if (fDF < 1.0 || fDF >= 1.0E5 || fP <= 0.0 || fP > 1.0 ) + if (fDF < 1.0 || fDF > 1.0E10 || fP <= 0.0 || fP > 1.0 ) { PushIllegalArgument(); return; diff --git a/sc/source/filter/html/htmlpars.cxx b/sc/source/filter/html/htmlpars.cxx index f91dc7568..410578241 100644 --- a/sc/source/filter/html/htmlpars.cxx +++ b/sc/source/filter/html/htmlpars.cxx @@ -850,28 +850,27 @@ void ScHTMLLayoutParser::TableDataOn( ImportInfo* pInfo ) } bInCell = sal_True; sal_Bool bHorJustifyCenterTH = (pInfo->nToken == HTML_TABLEHEADER_ON); - const HTMLOptions* pOptions = ((HTMLParser*)pInfo->pParser)->GetOptions(); - sal_uInt16 nArrLen = pOptions->Count(); - for ( sal_uInt16 i = 0; i < nArrLen; i++ ) + const HTMLOptions& rOptions = static_cast<HTMLParser*>(pInfo->pParser)->GetOptions(); + for (size_t i = 0, n = rOptions.size(); i < n; ++i) { - const HTMLOption* pOption = (*pOptions)[i]; - switch( pOption->GetToken() ) + const HTMLOption& rOption = rOptions[i]; + switch( rOption.GetToken() ) { case HTML_O_COLSPAN: { - pActEntry->nColOverlap = ( SCCOL ) pOption->GetString().ToInt32(); + pActEntry->nColOverlap = ( SCCOL ) rOption.GetString().ToInt32(); } break; case HTML_O_ROWSPAN: { - pActEntry->nRowOverlap = ( SCROW ) pOption->GetString().ToInt32(); + pActEntry->nRowOverlap = ( SCROW ) rOption.GetString().ToInt32(); } break; case HTML_O_ALIGN: { bHorJustifyCenterTH = false; SvxCellHorJustify eVal; - const String& rOptVal = pOption->GetString(); + const String& rOptVal = rOption.GetString(); if ( rOptVal.CompareIgnoreCaseToAscii( OOO_STRING_SVTOOLS_HTML_AL_right ) == COMPARE_EQUAL ) eVal = SVX_HOR_JUSTIFY_RIGHT; else if ( rOptVal.CompareIgnoreCaseToAscii( OOO_STRING_SVTOOLS_HTML_AL_center ) == COMPARE_EQUAL ) @@ -887,7 +886,7 @@ void ScHTMLLayoutParser::TableDataOn( ImportInfo* pInfo ) case HTML_O_VALIGN: { SvxCellVerJustify eVal; - const String& rOptVal = pOption->GetString(); + const String& rOptVal = rOption.GetString(); if ( rOptVal.CompareIgnoreCaseToAscii( OOO_STRING_SVTOOLS_HTML_VA_top ) == COMPARE_EQUAL ) eVal = SVX_VER_JUSTIFY_TOP; else if ( rOptVal.CompareIgnoreCaseToAscii( OOO_STRING_SVTOOLS_HTML_VA_middle ) == COMPARE_EQUAL ) @@ -901,25 +900,25 @@ void ScHTMLLayoutParser::TableDataOn( ImportInfo* pInfo ) break; case HTML_O_WIDTH: { - pActEntry->nWidth = GetWidthPixel( pOption ); + pActEntry->nWidth = GetWidthPixel( rOption ); } break; case HTML_O_BGCOLOR: { Color aColor; - pOption->GetColor( aColor ); + rOption.GetColor( aColor ); pActEntry->aItemSet.Put( SvxBrushItem( aColor, ATTR_BACKGROUND ) ); } break; case HTML_O_SDVAL: { - pActEntry->pValStr = new String( pOption->GetString() ); + pActEntry->pValStr = new String( rOption.GetString() ); } break; case HTML_O_SDNUM: { - pActEntry->pNumStr = new String( pOption->GetString() ); + pActEntry->pNumStr = new String( rOption.GetString() ); } break; } @@ -977,23 +976,22 @@ void ScHTMLLayoutParser::TableOn( ImportInfo* pInfo ) nLastWidth = nTableWidth; if ( pInfo->nToken == HTML_TABLE_ON ) { // es kann auch TD oder TH sein, wenn es vorher kein TABLE gab - const HTMLOptions* pOptions = ((HTMLParser*)pInfo->pParser)->GetOptions(); - sal_uInt16 nArrLen = pOptions->Count(); - for ( sal_uInt16 i = 0; i < nArrLen; i++ ) + const HTMLOptions& rOptions = static_cast<HTMLParser*>(pInfo->pParser)->GetOptions(); + for (size_t i = 0, n = rOptions.size(); i < n; ++i) { - const HTMLOption* pOption = (*pOptions)[i]; - switch( pOption->GetToken() ) + const HTMLOption& rOption = rOptions[i]; + switch( rOption.GetToken() ) { case HTML_O_WIDTH: { // Prozent: von Dokumentbreite bzw. aeusserer Zelle - nTableWidth = GetWidthPixel( pOption ); + nTableWidth = GetWidthPixel( rOption ); } break; case HTML_O_BORDER: // Border is: ((pOption->GetString().Len() == 0) || (pOption->GetNumber() != 0)); break; case HTML_O_ID: - aTabName.Assign( pOption->GetString() ); + aTabName.Assign( rOption.GetString() ); break; } } @@ -1037,23 +1035,22 @@ void ScHTMLLayoutParser::TableOn( ImportInfo* pInfo ) nTableWidth = 0; if ( pInfo->nToken == HTML_TABLE_ON ) { // es kann auch TD oder TH sein, wenn es vorher kein TABLE gab - const HTMLOptions* pOptions = ((HTMLParser*)pInfo->pParser)->GetOptions(); - sal_uInt16 nArrLen = pOptions->Count(); - for ( sal_uInt16 i = 0; i < nArrLen; i++ ) + const HTMLOptions& rOptions = static_cast<HTMLParser*>(pInfo->pParser)->GetOptions(); + for (size_t i = 0, n = rOptions.size(); i < n; ++i) { - const HTMLOption* pOption = (*pOptions)[i]; - switch( pOption->GetToken() ) + const HTMLOption& rOption = rOptions[i]; + switch( rOption.GetToken() ) { case HTML_O_WIDTH: { // Prozent: von Dokumentbreite bzw. aeusserer Zelle - nTableWidth = GetWidthPixel( pOption ); + nTableWidth = GetWidthPixel( rOption ); } break; case HTML_O_BORDER: //BorderOn is: ((pOption->GetString().Len() == 0) || (pOption->GetNumber() != 0)); break; case HTML_O_ID: - aTabName.Assign( pOption->GetString() ); + aTabName.Assign( rOption.GetString() ); break; } } @@ -1235,16 +1232,15 @@ void ScHTMLLayoutParser::Image( ImportInfo* pInfo ) { ScHTMLImage* pImage = new ScHTMLImage; pActEntry->maImageList.push_back( pImage ); - const HTMLOptions* pOptions = ((HTMLParser*)pInfo->pParser)->GetOptions(); - sal_uInt16 nArrLen = pOptions->Count(); - for ( sal_uInt16 i = 0; i < nArrLen; i++ ) + const HTMLOptions& rOptions = static_cast<HTMLParser*>(pInfo->pParser)->GetOptions(); + for (size_t i = 0, n = rOptions.size(); i < n; ++i) { - const HTMLOption* pOption = (*pOptions)[i]; - switch( pOption->GetToken() ) + const HTMLOption& rOption = rOptions[i]; + switch( rOption.GetToken() ) { case HTML_O_SRC: { - pImage->aURL = INetURLObject::GetAbsURL( aBaseURL, pOption->GetString() ); + pImage->aURL = INetURLObject::GetAbsURL( aBaseURL, rOption.GetString() ); } break; case HTML_O_ALT: @@ -1253,28 +1249,28 @@ void ScHTMLLayoutParser::Image( ImportInfo* pInfo ) { // ALT text only if not any image loaded if ( pActEntry->aAltText.Len() ) pActEntry->aAltText.AppendAscii( "; " ); - pActEntry->aAltText += pOption->GetString(); + pActEntry->aAltText += rOption.GetString(); } } break; case HTML_O_WIDTH: { - pImage->aSize.Width() = (long)pOption->GetNumber(); + pImage->aSize.Width() = (long)rOption.GetNumber(); } break; case HTML_O_HEIGHT: { - pImage->aSize.Height() = (long)pOption->GetNumber(); + pImage->aSize.Height() = (long)rOption.GetNumber(); } break; case HTML_O_HSPACE: { - pImage->aSpace.X() = (long)pOption->GetNumber(); + pImage->aSpace.X() = (long)rOption.GetNumber(); } break; case HTML_O_VSPACE: { - pImage->aSpace.Y() = (long)pOption->GetNumber(); + pImage->aSpace.Y() = (long)rOption.GetNumber(); } break; } @@ -1328,16 +1324,15 @@ void ScHTMLLayoutParser::Image( ImportInfo* pInfo ) void ScHTMLLayoutParser::ColOn( ImportInfo* pInfo ) { - const HTMLOptions* pOptions = ((HTMLParser*)pInfo->pParser)->GetOptions(); - sal_uInt16 nArrLen = pOptions->Count(); - for ( sal_uInt16 i = 0; i < nArrLen; i++ ) + const HTMLOptions& rOptions = static_cast<HTMLParser*>(pInfo->pParser)->GetOptions(); + for (size_t i = 0, n = rOptions.size(); i < n; ++i) { - const HTMLOption* pOption = (*pOptions)[i]; - switch( pOption->GetToken() ) + const HTMLOption& rOption = rOptions[i]; + switch( rOption.GetToken() ) { case HTML_O_WIDTH: { - sal_uInt16 nVal = GetWidthPixel( pOption ); + sal_uInt16 nVal = GetWidthPixel( rOption ); MakeCol( pLocalColOffset, nColOffset, nVal, 0, 0 ); nColOffset = nColOffset + nVal; } @@ -1347,13 +1342,13 @@ void ScHTMLLayoutParser::ColOn( ImportInfo* pInfo ) } -sal_uInt16 ScHTMLLayoutParser::GetWidthPixel( const HTMLOption* pOption ) +sal_uInt16 ScHTMLLayoutParser::GetWidthPixel( const HTMLOption& rOption ) { - const String& rOptVal = pOption->GetString(); + const String& rOptVal = rOption.GetString(); if ( rOptVal.Search('%') != STRING_NOTFOUND ) { // Prozent sal_uInt16 nW = (nTableWidth ? nTableWidth : (sal_uInt16) aPageSize.Width()); - return (sal_uInt16)((pOption->GetNumber() * nW) / 100); + return (sal_uInt16)((rOption.GetNumber() * nW) / 100); } else { @@ -1363,23 +1358,22 @@ sal_uInt16 ScHTMLLayoutParser::GetWidthPixel( const HTMLOption* pOption ) return 0; } else - return (sal_uInt16)pOption->GetNumber(); // Pixel + return (sal_uInt16)rOption.GetNumber(); // Pixel } } void ScHTMLLayoutParser::AnchorOn( ImportInfo* pInfo ) { - const HTMLOptions* pOptions = ((HTMLParser*)pInfo->pParser)->GetOptions(); - sal_uInt16 nArrLen = pOptions->Count(); - for ( sal_uInt16 i = 0; i < nArrLen; i++ ) + const HTMLOptions& rOptions = static_cast<HTMLParser*>(pInfo->pParser)->GetOptions(); + for (size_t i = 0, n = rOptions.size(); i < n; ++i) { - const HTMLOption* pOption = (*pOptions)[i]; - switch( pOption->GetToken() ) + const HTMLOption& rOption = rOptions[i]; + switch( rOption.GetToken() ) { case HTML_O_NAME: { - pActEntry->pName = new String( pOption->GetString() ); + pActEntry->pName = new String( rOption.GetString() ); } break; } @@ -1400,16 +1394,15 @@ void ScHTMLLayoutParser::FontOn( ImportInfo* pInfo ) { if ( IsAtBeginningOfText( pInfo ) ) { // nur am Anfang des Textes, gilt dann fuer gesamte Zelle - const HTMLOptions* pOptions = ((HTMLParser*)pInfo->pParser)->GetOptions(); - sal_uInt16 nArrLen = pOptions->Count(); - for ( sal_uInt16 i = 0; i < nArrLen; i++ ) + const HTMLOptions& rOptions = static_cast<HTMLParser*>(pInfo->pParser)->GetOptions(); + for (size_t i = 0, n = rOptions.size(); i < n; ++i) { - const HTMLOption* pOption = (*pOptions)[i]; - switch( pOption->GetToken() ) + const HTMLOption& rOption = rOptions[i]; + switch( rOption.GetToken() ) { case HTML_O_FACE : { - const String& rFace = pOption->GetString(); + const String& rFace = rOption.GetString(); String aFontName; xub_StrLen nPos = 0; while( nPos != STRING_NOTFOUND ) @@ -1428,7 +1421,7 @@ void ScHTMLLayoutParser::FontOn( ImportInfo* pInfo ) break; case HTML_O_SIZE : { - sal_uInt16 nSize = (sal_uInt16) pOption->GetNumber(); + sal_uInt16 nSize = (sal_uInt16) rOption.GetNumber(); if ( nSize == 0 ) nSize = 1; else if ( nSize > SC_HTML_FONTSIZES ) @@ -1440,7 +1433,7 @@ void ScHTMLLayoutParser::FontOn( ImportInfo* pInfo ) case HTML_O_COLOR : { Color aColor; - pOption->GetColor( aColor ); + rOption.GetColor( aColor ); pActEntry->aItemSet.Put( SvxColorItem( aColor, ATTR_FONT_COLOR ) ); } break; @@ -1457,7 +1450,7 @@ void ScHTMLLayoutParser::ProcToken( ImportInfo* pInfo ) { case HTML_META: { - HTMLParser* pParser = (HTMLParser*) pInfo->pParser; + HTMLParser* pParser = static_cast<HTMLParser*>(pInfo->pParser); uno::Reference<document::XDocumentPropertiesSupplier> xDPS( mpDoc->GetDocumentShell()->GetModel(), uno::UNO_QUERY_THROW); pParser->ParseMetaOptions( @@ -1639,8 +1632,8 @@ class ScHTMLOptionIterator private: const HTMLOptions* mpOptions; /// The options array. const HTMLOption* mpCurrOption; /// Current option. - sal_uInt16 mnCount; /// Size of the options array. - sal_uInt16 mnIndex; /// Next option to return. + size_t mnCount; /// Size of the options array. + size_t mnIndex; /// Next option to return. public: explicit ScHTMLOptionIterator( const ImportInfo& rInfo ); @@ -1661,17 +1654,17 @@ ScHTMLOptionIterator::ScHTMLOptionIterator( const ImportInfo& rInfo ) : { const HTMLParser* pParser = static_cast< const HTMLParser* >( rInfo.pParser ); if( pParser ) - mpOptions = pParser->GetOptions(); + mpOptions = &pParser->GetOptions(); if( mpOptions ) - mnCount = mpOptions->Count(); + mnCount = mpOptions->size(); if( mnCount ) - mpCurrOption = mpOptions->GetObject( 0 ); + mpCurrOption = &mpOptions->front(); } ScHTMLOptionIterator& ScHTMLOptionIterator::operator++() { if( mnIndex < mnCount ) ++mnIndex; - mpCurrOption = (mnIndex < mnCount) ? mpOptions->GetObject( mnIndex ) : 0; + mpCurrOption = (mnIndex < mnCount) ? &(*mpOptions)[mnIndex] : 0; return *this; } diff --git a/sc/source/filter/inc/htmlpars.hxx b/sc/source/filter/inc/htmlpars.hxx index 117f0e5c2..c1ab90ea3 100644 --- a/sc/source/filter/inc/htmlpars.hxx +++ b/sc/source/filter/inc/htmlpars.hxx @@ -179,7 +179,7 @@ private: void SetWidths(); void Adjust(); - sal_uInt16 GetWidthPixel( const HTMLOption* ); + sal_uInt16 GetWidthPixel( const HTMLOption& ); sal_Bool IsAtBeginningOfText( ImportInfo* ); void TableOn( ImportInfo* ); diff --git a/sc/source/ui/src/popup.src b/sc/source/ui/src/popup.src index 38038897d..b56a5fd58 100644 --- a/sc/source/ui/src/popup.src +++ b/sc/source/ui/src/popup.src @@ -381,7 +381,6 @@ Menu RID_POPUP_EDIT }; }; }; - Text [ en-US ] = "St~yle"; }; //------------------------------ MenuItem { Separator = TRUE ; }; |