sc/inc/global.hxx | 40 --------- sc/inc/lookupcache.hxx | 1 sc/inc/queryparam.hxx | 48 ++++++++++- sc/source/core/data/dptablecache.cxx | 2 sc/source/core/data/global2.cxx | 106 ------------------------- sc/source/core/data/table3.cxx | 2 sc/source/core/tool/queryparam.cxx | 116 +++++++++++++++++++++++++++- sc/source/filter/inc/excrecds.hxx | 1 sc/source/filter/xml/XMLExportDataPilot.hxx | 1 sc/source/ui/dbgui/pfiltdlg.cxx | 2 sc/source/ui/inc/filtdlg.hxx | 2 11 files changed, 163 insertions(+), 158 deletions(-)
New commits: commit 175ff3d1f932063febbe46be739a69bca75f93e9 Author: Kohei Yoshida <kohei.yosh...@suse.com> Date: Thu Nov 3 22:57:31 2011 -0400 Moved ScQueryEntry out of global.?xx to queryparam.?xx. This is more appropriate. diff --git a/sc/inc/global.hxx b/sc/inc/global.hxx index 197f15f..b8e3184 100644 --- a/sc/inc/global.hxx +++ b/sc/inc/global.hxx @@ -720,46 +720,6 @@ enum ScSubTotalFunc SUBTOTAL_FUNC_VARP = 11 }; -/* - * dialog returns the special field values "empty"/"not empty" - * as constants SC_EMPTYFIELDS and SC_NONEMPTYFIELDS respectively in nVal in - * conjuctions with the flag bQueryByString = FALSE. - */ - -#define SC_EMPTYFIELDS ((double)0x0042) -#define SC_NONEMPTYFIELDS ((double)0x0043) - -namespace utl -{ - class SearchParam; - class TextSearch; -} - -struct ScQueryEntry -{ - bool bDoQuery; - bool bQueryByString; - bool bQueryByDate; - SCCOLROW nField; - ScQueryOp eOp; - ScQueryConnect eConnect; - String* pStr; - double nVal; - mutable utl::SearchParam* pSearchParam; // if RegExp, not saved - mutable utl::TextSearch* pSearchText; // if RegExp, not saved - - ScQueryEntry(); - ScQueryEntry(const ScQueryEntry& r); - ~ScQueryEntry(); - - // creates pSearchParam and pSearchText if necessary, always RegExp! - utl::TextSearch* GetSearchTextPtr( bool bCaseSens ) const; - - void Clear(); - ScQueryEntry& operator=( const ScQueryEntry& r ); - bool operator==( const ScQueryEntry& r ) const; -}; - class ScArea; struct ScConsolidateParam diff --git a/sc/inc/lookupcache.hxx b/sc/inc/lookupcache.hxx index 9901ba5..01ab425 100644 --- a/sc/inc/lookupcache.hxx +++ b/sc/inc/lookupcache.hxx @@ -31,6 +31,7 @@ #include "address.hxx" #include "global.hxx" +#include "queryparam.hxx" #include "formula/token.hxx" #include <svl/listener.hxx> #include <tools/string.hxx> diff --git a/sc/inc/queryparam.hxx b/sc/inc/queryparam.hxx index a083f74..105a801 100644 --- a/sc/inc/queryparam.hxx +++ b/sc/inc/queryparam.hxx @@ -34,8 +34,47 @@ #include <vector> +/* + * dialog returns the special field values "empty"/"not empty" + * as constants SC_EMPTYFIELDS and SC_NONEMPTYFIELDS respectively in nVal in + * conjuctions with the flag bQueryByString = FALSE. + */ + +#define SC_EMPTYFIELDS ((double)0x0042) +#define SC_NONEMPTYFIELDS ((double)0x0043) + struct ScDBQueryParamInternal; +namespace utl { + class SearchParam; + class TextSearch; +} + +struct ScQueryEntry +{ + bool bDoQuery; + bool bQueryByString; + bool bQueryByDate; + SCCOLROW nField; + ScQueryOp eOp; + ScQueryConnect eConnect; + String* pStr; + double nVal; + mutable utl::SearchParam* pSearchParam; // if RegExp, not saved + mutable utl::TextSearch* pSearchText; // if RegExp, not saved + + ScQueryEntry(); + ScQueryEntry(const ScQueryEntry& r); + ~ScQueryEntry(); + + // creates pSearchParam and pSearchText if necessary, always RegExp! + utl::TextSearch* GetSearchTextPtr( bool bCaseSens ) const; + + void Clear(); + ScQueryEntry& operator=( const ScQueryEntry& r ); + bool operator==( const ScQueryEntry& r ) const; +}; + struct ScQueryParamBase { bool bHasHeader; diff --git a/sc/source/core/data/global2.cxx b/sc/source/core/data/global2.cxx index 91c4ff6..28219fd 100644 --- a/sc/source/core/data/global2.cxx +++ b/sc/source/core/data/global2.cxx @@ -33,7 +33,6 @@ #include <sfx2/docfile.hxx> #include <sfx2/objsh.hxx> -#include <unotools/textsearch.hxx> #include <unotools/pathoptions.hxx> #include <unotools/useroptions.hxx> #include <tools/urlobj.hxx> @@ -123,111 +122,6 @@ bool ScImportParam::operator==( const ScImportParam& rOther ) const } //------------------------------------------------------------------------ -// struct ScQueryParam: - -ScQueryEntry::ScQueryEntry() : - bDoQuery(false), - bQueryByString(false), - bQueryByDate(false), - nField(0), - eOp(SC_EQUAL), - eConnect(SC_AND), - pStr(new String), - nVal(0.0), - pSearchParam(NULL), - pSearchText(NULL) -{ -} - -ScQueryEntry::ScQueryEntry(const ScQueryEntry& r) : - bDoQuery(r.bDoQuery), - bQueryByString(r.bQueryByString), - bQueryByDate(r.bQueryByDate), - nField(r.nField), - eOp(r.eOp), - eConnect(r.eConnect), - pStr(new String(*r.pStr)), - nVal(r.nVal), - pSearchParam(NULL), - pSearchText(NULL) -{ -} - -ScQueryEntry::~ScQueryEntry() -{ - delete pStr; - if ( pSearchParam ) - { - delete pSearchParam; - delete pSearchText; - } -} - -ScQueryEntry& ScQueryEntry::operator=( const ScQueryEntry& r ) -{ - bDoQuery = r.bDoQuery; - bQueryByString = r.bQueryByString; - bQueryByDate = r.bQueryByDate; - eOp = r.eOp; - eConnect = r.eConnect; - nField = r.nField; - nVal = r.nVal; - *pStr = *r.pStr; - if ( pSearchParam ) - { - delete pSearchParam; - delete pSearchText; - } - pSearchParam = NULL; - pSearchText = NULL; - - return *this; -} - -void ScQueryEntry::Clear() -{ - bDoQuery = false; - bQueryByString = false; - bQueryByDate = false; - eOp = SC_EQUAL; - eConnect = SC_AND; - nField = 0; - nVal = 0.0; - pStr->Erase(); - if ( pSearchParam ) - { - delete pSearchParam; - delete pSearchText; - } - pSearchParam = NULL; - pSearchText = NULL; -} - -bool ScQueryEntry::operator==( const ScQueryEntry& r ) const -{ - return bDoQuery == r.bDoQuery - && bQueryByString == r.bQueryByString - && bQueryByDate == r.bQueryByDate - && eOp == r.eOp - && eConnect == r.eConnect - && nField == r.nField - && nVal == r.nVal - && *pStr == *r.pStr; - //! pSearchParam und pSearchText nicht vergleichen -} - -utl::TextSearch* ScQueryEntry::GetSearchTextPtr( bool bCaseSens ) const -{ - if ( !pSearchParam ) - { - pSearchParam = new utl::SearchParam( *pStr, utl::SearchParam::SRCH_REGEXP, - bCaseSens, false, false ); - pSearchText = new utl::TextSearch( *pSearchParam, *ScGlobal::pCharClass ); - } - return pSearchText; -} - -//------------------------------------------------------------------------ // struct ScConsolidateParam: ScConsolidateParam::ScConsolidateParam() : diff --git a/sc/source/core/tool/queryparam.cxx b/sc/source/core/tool/queryparam.cxx index f75c677..44d6201 100644 --- a/sc/source/core/tool/queryparam.cxx +++ b/sc/source/core/tool/queryparam.cxx @@ -32,6 +32,7 @@ // INCLUDE --------------------------------------------------------------- #include "queryparam.hxx" +#include <unotools/textsearch.hxx> using ::std::vector; @@ -41,6 +42,108 @@ const SCSIZE MAXQUERY = 8; } +ScQueryEntry::ScQueryEntry() : + bDoQuery(false), + bQueryByString(false), + bQueryByDate(false), + nField(0), + eOp(SC_EQUAL), + eConnect(SC_AND), + pStr(new String), + nVal(0.0), + pSearchParam(NULL), + pSearchText(NULL) +{ +} + +ScQueryEntry::ScQueryEntry(const ScQueryEntry& r) : + bDoQuery(r.bDoQuery), + bQueryByString(r.bQueryByString), + bQueryByDate(r.bQueryByDate), + nField(r.nField), + eOp(r.eOp), + eConnect(r.eConnect), + pStr(new String(*r.pStr)), + nVal(r.nVal), + pSearchParam(NULL), + pSearchText(NULL) +{ +} + +ScQueryEntry::~ScQueryEntry() +{ + delete pStr; + if ( pSearchParam ) + { + delete pSearchParam; + delete pSearchText; + } +} + +ScQueryEntry& ScQueryEntry::operator=( const ScQueryEntry& r ) +{ + bDoQuery = r.bDoQuery; + bQueryByString = r.bQueryByString; + bQueryByDate = r.bQueryByDate; + eOp = r.eOp; + eConnect = r.eConnect; + nField = r.nField; + nVal = r.nVal; + *pStr = *r.pStr; + if ( pSearchParam ) + { + delete pSearchParam; + delete pSearchText; + } + pSearchParam = NULL; + pSearchText = NULL; + + return *this; +} + +void ScQueryEntry::Clear() +{ + bDoQuery = false; + bQueryByString = false; + bQueryByDate = false; + eOp = SC_EQUAL; + eConnect = SC_AND; + nField = 0; + nVal = 0.0; + pStr->Erase(); + if ( pSearchParam ) + { + delete pSearchParam; + delete pSearchText; + } + pSearchParam = NULL; + pSearchText = NULL; +} + +bool ScQueryEntry::operator==( const ScQueryEntry& r ) const +{ + return bDoQuery == r.bDoQuery + && bQueryByString == r.bQueryByString + && bQueryByDate == r.bQueryByDate + && eOp == r.eOp + && eConnect == r.eConnect + && nField == r.nField + && nVal == r.nVal + && *pStr == *r.pStr; + //! pSearchParam und pSearchText nicht vergleichen +} + +utl::TextSearch* ScQueryEntry::GetSearchTextPtr( bool bCaseSens ) const +{ + if ( !pSearchParam ) + { + pSearchParam = new utl::SearchParam( *pStr, utl::SearchParam::SRCH_REGEXP, + bCaseSens, false, false ); + pSearchText = new utl::TextSearch( *pSearchParam, *ScGlobal::pCharClass ); + } + return pSearchText; +} + // ============================================================================ ScQueryParamBase::ScQueryParamBase() : diff --git a/sc/source/filter/inc/excrecds.hxx b/sc/source/filter/inc/excrecds.hxx index 7da65c7..9689d01 100644 --- a/sc/source/filter/inc/excrecds.hxx +++ b/sc/source/filter/inc/excrecds.hxx @@ -62,6 +62,7 @@ class SfxItemSet; class EditTextObject; class ScPageHFItem; class ScProgress; +struct ScQueryEntry; class ExcTable; diff --git a/sc/source/filter/xml/XMLExportDataPilot.hxx b/sc/source/filter/xml/XMLExportDataPilot.hxx index 7fa4eee..5ea7bf8 100644 --- a/sc/source/filter/xml/XMLExportDataPilot.hxx +++ b/sc/source/filter/xml/XMLExportDataPilot.hxx @@ -43,6 +43,7 @@ class ScDPSaveGroupDimension; class ScDPSaveNumGroupDimension; struct ScDPNumGroupInfo; struct ScQueryParam; +struct ScQueryEntry; class ScXMLExportDataPilot { commit fa3c6191b22d25721c72ce840dbbbdd4327b6628 Author: Kohei Yoshida <kohei.yosh...@suse.com> Date: Thu Nov 3 22:45:31 2011 -0400 const correct ness etc & mutable only for lazy-initializing accessor. diff --git a/sc/inc/global.hxx b/sc/inc/global.hxx index ead69ba..197f15f 100644 --- a/sc/inc/global.hxx +++ b/sc/inc/global.hxx @@ -745,15 +745,15 @@ struct ScQueryEntry ScQueryConnect eConnect; String* pStr; double nVal; - utl::SearchParam* pSearchParam; // if RegExp, not saved - utl::TextSearch* pSearchText; // if RegExp, not saved + mutable utl::SearchParam* pSearchParam; // if RegExp, not saved + mutable utl::TextSearch* pSearchText; // if RegExp, not saved ScQueryEntry(); ScQueryEntry(const ScQueryEntry& r); ~ScQueryEntry(); // creates pSearchParam and pSearchText if necessary, always RegExp! - utl::TextSearch* GetSearchTextPtr( bool bCaseSens ); + utl::TextSearch* GetSearchTextPtr( bool bCaseSens ) const; void Clear(); ScQueryEntry& operator=( const ScQueryEntry& r ); diff --git a/sc/inc/queryparam.hxx b/sc/inc/queryparam.hxx index 9154224..a083f74 100644 --- a/sc/inc/queryparam.hxx +++ b/sc/inc/queryparam.hxx @@ -51,7 +51,8 @@ struct ScQueryParamBase virtual bool IsValidFieldIndex() const; SC_DLLPUBLIC SCSIZE GetEntryCount() const; - SC_DLLPUBLIC ScQueryEntry& GetEntry(SCSIZE n) const; + SC_DLLPUBLIC const ScQueryEntry& GetEntry(SCSIZE n) const; + SC_DLLPUBLIC ScQueryEntry& GetEntry(SCSIZE n); void Resize(SCSIZE nNew); SC_DLLPUBLIC void DeleteQuery( SCSIZE nPos ); void FillInExcelSyntax(String& aCellStr, SCSIZE nIndex); @@ -60,7 +61,7 @@ protected: ScQueryParamBase(); ScQueryParamBase(const ScQueryParamBase& r); - mutable std::vector<ScQueryEntry> maEntries; + std::vector<ScQueryEntry> maEntries; }; // ============================================================================ @@ -92,8 +93,8 @@ struct SC_DLLPUBLIC ScQueryParam : public ScQueryParamBase, public ScQueryParamT ScQueryParam( const ScDBQueryParamInternal& r ); virtual ~ScQueryParam(); - ScQueryParam& operator= ( const ScQueryParam& r ); - sal_Bool operator== ( const ScQueryParam& rOther ) const; + ScQueryParam& operator= ( const ScQueryParam& r ); + bool operator== ( const ScQueryParam& rOther ) const; void Clear(); void ClearDestParams(); void MoveToDest(); diff --git a/sc/source/core/data/dptablecache.cxx b/sc/source/core/data/dptablecache.cxx index b39c898..463ceb6 100644 --- a/sc/source/core/data/dptablecache.cxx +++ b/sc/source/core/data/dptablecache.cxx @@ -599,7 +599,7 @@ bool ScDPCache::ValidQuery( SCROW nRow, const ScQueryParam &rParam, bool *pSpeci while ((i < nEntryCount) && rParam.GetEntry(i).bDoQuery) { - ScQueryEntry& rEntry = rParam.GetEntry(i); + const ScQueryEntry& rEntry = rParam.GetEntry(i); // we can only handle one single direct query // #i115431# nField in QueryParam is the sheet column, not the field within the source range SCCOL nQueryCol = (SCCOL)rEntry.nField; diff --git a/sc/source/core/data/global2.cxx b/sc/source/core/data/global2.cxx index 486bfda..91c4ff6 100644 --- a/sc/source/core/data/global2.cxx +++ b/sc/source/core/data/global2.cxx @@ -216,7 +216,7 @@ bool ScQueryEntry::operator==( const ScQueryEntry& r ) const //! pSearchParam und pSearchText nicht vergleichen } -utl::TextSearch* ScQueryEntry::GetSearchTextPtr( bool bCaseSens ) +utl::TextSearch* ScQueryEntry::GetSearchTextPtr( bool bCaseSens ) const { if ( !pSearchParam ) { diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx index 047a7f6..8f3c985 100644 --- a/sc/source/core/data/table3.cxx +++ b/sc/source/core/data/table3.cxx @@ -1091,7 +1091,7 @@ bool ScTable::ValidQuery(SCROW nRow, const ScQueryParam& rParam, while ( (i < nEntryCount) && rParam.GetEntry(i).bDoQuery ) { - ScQueryEntry& rEntry = rParam.GetEntry(i); + const ScQueryEntry& rEntry = rParam.GetEntry(i); // we can only handle one single direct query if ( !pCell || i > 0 ) pCell = GetCell( static_cast<SCCOL>(rEntry.nField), nRow ); diff --git a/sc/source/core/tool/queryparam.cxx b/sc/source/core/tool/queryparam.cxx index 61a763c..f75c677 100644 --- a/sc/source/core/tool/queryparam.cxx +++ b/sc/source/core/tool/queryparam.cxx @@ -69,7 +69,12 @@ SCSIZE ScQueryParamBase::GetEntryCount() const return maEntries.size(); } -ScQueryEntry& ScQueryParamBase::GetEntry(SCSIZE n) const +const ScQueryEntry& ScQueryParamBase::GetEntry(SCSIZE n) const +{ + return maEntries[n]; +} + +ScQueryEntry& ScQueryParamBase::GetEntry(SCSIZE n) { return maEntries[n]; } @@ -265,9 +270,9 @@ ScQueryParam& ScQueryParam::operator=( const ScQueryParam& r ) //------------------------------------------------------------------------ -sal_Bool ScQueryParam::operator==( const ScQueryParam& rOther ) const +bool ScQueryParam::operator==( const ScQueryParam& rOther ) const { - sal_Bool bEqual = false; + bool bEqual = false; // Anzahl der Queries gleich? SCSIZE nUsed = 0; @@ -297,7 +302,7 @@ sal_Bool ScQueryParam::operator==( const ScQueryParam& rOther ) const && (nDestCol == rOther.nDestCol) && (nDestRow == rOther.nDestRow) ) { - bEqual = sal_True; + bEqual = true; for ( SCSIZE i=0; i<nUsed && bEqual; i++ ) bEqual = maEntries[i] == rOther.maEntries[i]; } diff --git a/sc/source/ui/dbgui/pfiltdlg.cxx b/sc/source/ui/dbgui/pfiltdlg.cxx index cac65a1..171a2b5 100644 --- a/sc/source/ui/dbgui/pfiltdlg.cxx +++ b/sc/source/ui/dbgui/pfiltdlg.cxx @@ -213,7 +213,7 @@ void ScPivotFilterDlg::Init( const SfxItemSet& rArgSet ) { if ( theQueryData.GetEntry(i).bDoQuery ) { - ScQueryEntry& rEntry = theQueryData.GetEntry(i); + const ScQueryEntry& rEntry = theQueryData.GetEntry(i); String aValStr = *rEntry.pStr; if (!rEntry.bQueryByString && aValStr == EMPTY_STRING) diff --git a/sc/source/ui/inc/filtdlg.hxx b/sc/source/ui/inc/filtdlg.hxx index b0842e9..99f9b00 100644 --- a/sc/source/ui/inc/filtdlg.hxx +++ b/sc/source/ui/inc/filtdlg.hxx @@ -125,7 +125,7 @@ private: ScFilterOptionsMgr* pOptionsMgr; const sal_uInt16 nWhichQuery; - const ScQueryParam theQueryData; + ScQueryParam theQueryData; ScQueryItem* pOutItem; ScViewData* pViewData; ScDocument* pDoc; _______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits