diff options
-rw-r--r-- | editeng/source/editeng/impedit2.cxx | 6 | ||||
-rw-r--r-- | sc/inc/validat.hxx | 19 | ||||
-rw-r--r-- | sc/source/core/data/validat.cxx | 34 |
3 files changed, 49 insertions, 10 deletions
diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx index aa8c3fdb01b2..17de955d0785 100644 --- a/editeng/source/editeng/impedit2.cxx +++ b/editeng/source/editeng/impedit2.cxx @@ -1792,8 +1792,8 @@ sal_uInt16 ImpEditEngine::GetScriptType( const EditSelection& rSel ) const short nScriptType = 0; - sal_Int32 nStartPara = GetEditDoc().GetPos( aSel.Min().GetNode() ); - sal_Int32 nEndPara = GetEditDoc().GetPos( aSel.Max().GetNode() ); + sal_Int32 nStartPara = GetEditDoc().GetPos( aSel.Min().GetNode() ); + sal_Int32 nEndPara = GetEditDoc().GetPos( aSel.Max().GetNode() ); for ( sal_Int32 nPara = nStartPara; nPara <= nEndPara; nPara++ ) { @@ -1811,7 +1811,7 @@ sal_uInt16 ImpEditEngine::GetScriptType( const EditSelection& rSel ) const for ( size_t n = 0; n < rTypes.size(); n++ ) { if (rTypes[n].nStartPos <= nS && nE <= rTypes[n].nEndPos) - { + { if ( rTypes[n].nScriptType != i18n::ScriptType::WEAK ) { nScriptType |= GetItemScriptType ( rTypes[n].nScriptType ); diff --git a/sc/inc/validat.hxx b/sc/inc/validat.hxx index 64aa5975cf5d..9dd83f24ab24 100644 --- a/sc/inc/validat.hxx +++ b/sc/inc/validat.hxx @@ -183,16 +183,28 @@ struct CompareScValidationDataPtr bool operator()( ScValidationData* const& lhs, ScValidationData* const& rhs ) const { return (*lhs)<(*rhs); } }; -class ScValidationDataList : public std::set<ScValidationData*, CompareScValidationDataPtr> +class ScValidationDataList { +private: + typedef std::set<ScValidationData*, CompareScValidationDataPtr> ScValidationDataListDataType; + ScValidationDataListDataType maData; + public: ScValidationDataList() {} ScValidationDataList(const ScValidationDataList& rList); ScValidationDataList(ScDocument* pNewDoc, const ScValidationDataList& rList); ~ScValidationDataList() {} + typedef ScValidationDataListDataType::iterator iterator; + typedef ScValidationDataListDataType::const_iterator const_iterator; + + iterator begin(); + const_iterator begin() const; + iterator end(); + const_iterator end() const; + void InsertNew( ScValidationData* pNew ) - { if (!insert(pNew).second) delete pNew; } + { if (!maData.insert(pNew).second) delete pNew; } ScValidationData* GetData( sal_uInt32 nKey ); @@ -203,6 +215,9 @@ public: void UpdateMoveTab( sc::RefUpdateMoveTabContext& rCxt ); sal_Bool operator==( const ScValidationDataList& r ) const; // for ref-undo + + void clear(); + }; #endif diff --git a/sc/source/core/data/validat.cxx b/sc/source/core/data/validat.cxx index d6342e010a0f..3304e732fd9f 100644 --- a/sc/source/core/data/validat.cxx +++ b/sc/source/core/data/validat.cxx @@ -899,8 +899,7 @@ bool ScValidationData::IsListValid( ScRefCellValue& rCell, const ScAddress& rPos // ============================================================================ // ============================================================================ -ScValidationDataList::ScValidationDataList(const ScValidationDataList& rList) : - std::set<ScValidationData*, CompareScValidationDataPtr>() +ScValidationDataList::ScValidationDataList(const ScValidationDataList& rList) { // fuer Ref-Undo - echte Kopie mit neuen Tokens! @@ -971,13 +970,38 @@ sal_Bool ScValidationDataList::operator==( const ScValidationDataList& r ) const { // fuer Ref-Undo - interne Variablen werden nicht verglichen - sal_uInt16 nCount = size(); - sal_Bool bEqual = ( nCount == r.size() ); + size_t nCount = maData.size(); + bool bEqual = ( nCount == r.maData.size() ); for( const_iterator it1 = begin(), it2 = r.begin(); it1 != end() && bEqual; ++it1, ++it2 ) // Eintraege sind sortiert if ( !(*it1)->EqualEntries(**it2) ) // Eintraege unterschiedlich ? - bEqual = sal_False; + bEqual = false; return bEqual; } +ScValidationDataList::iterator ScValidationDataList::begin() +{ + return maData.begin(); +} + +ScValidationDataList::const_iterator ScValidationDataList::begin() const +{ + return maData.begin(); +} + +ScValidationDataList::iterator ScValidationDataList::end() +{ + return maData.end(); +} + +ScValidationDataList::const_iterator ScValidationDataList::end() const +{ + return maData.end(); +} + +void ScValidationDataList::clear() +{ + maData.clear(); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |