Kaydet (Commit) 62896fb7 authored tarafından Julien Nabet's avatar Julien Nabet

Replace list by vector in filtergrouping (sfx2)

Change-Id: Ic5170843d8f47f92c7975cceaa9c33d278445b98
Reviewed-on: https://gerrit.libreoffice.org/43378Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarJulien Nabet <serval2412@yahoo.fr>
üst c5857a03
......@@ -35,7 +35,6 @@
#include <comphelper/string.hxx>
#include <tools/diagnose_ex.h>
#include <list>
#include <vector>
#include <map>
#include <algorithm>
......@@ -120,8 +119,8 @@ namespace sfx2
typedef StringPair FilterDescriptor; // a single filter or a filter class (display name and filter mask)
typedef ::std::list< FilterDescriptor > FilterGroup; // a list of single filter entries
typedef ::std::list< FilterGroup > GroupedFilterList; // a list of all filters, already grouped
typedef ::std::vector< FilterDescriptor > FilterGroup; // a vector of single filter entries
typedef ::std::vector< FilterGroup > GroupedFilterList; // a vector of all filters, already grouped
/// the logical name of a filter
typedef OUString FilterName;
......@@ -138,8 +137,8 @@ namespace sfx2
Sequence< FilterName > aSubFilters; // the (logical) names of the filter which belong to the class
} FilterClass;
typedef ::std::list< FilterClass > FilterClassList;
typedef ::std::map< OUString, FilterClassList::iterator > FilterClassReferrer;
typedef ::std::vector< FilterClass > FilterClassVector;
typedef ::std::map< OUString, FilterClassVector::iterator > FilterClassReferrer;
typedef ::std::vector< OUString > StringArray;
......@@ -162,12 +161,12 @@ namespace sfx2
struct CreateEmptyClassRememberPos
{
protected:
FilterClassList& m_rClassList;
FilterClassVector& m_rClassVector;
FilterClassReferrer& m_rClassesReferrer;
public:
CreateEmptyClassRememberPos( FilterClassList& _rClassList, FilterClassReferrer& _rClassesReferrer )
:m_rClassList ( _rClassList )
CreateEmptyClassRememberPos( FilterClassVector& _rClassVector, FilterClassReferrer& _rClassesReferrer )
:m_rClassVector ( _rClassVector )
,m_rClassesReferrer ( _rClassesReferrer )
{
}
......@@ -176,9 +175,9 @@ namespace sfx2
void operator() ( const FilterName& _rLogicalFilterName )
{
// insert a new (empty) class
m_rClassList.emplace_back( );
m_rClassVector.emplace_back( );
// get the position of this new entry
FilterClassList::iterator aInsertPos = m_rClassList.end();
FilterClassVector::iterator aInsertPos = m_rClassVector.end();
--aInsertPos;
// remember this position
m_rClassesReferrer.emplace( _rLogicalFilterName, aInsertPos );
......@@ -219,7 +218,7 @@ namespace sfx2
};
void lcl_ReadGlobalFilters( const OConfigurationNode& _rFilterClassification, FilterClassList& _rGlobalClasses, StringArray& _rGlobalClassNames )
void lcl_ReadGlobalFilters( const OConfigurationNode& _rFilterClassification, FilterClassVector& _rGlobalClasses, StringArray& _rGlobalClassNames )
{
_rGlobalClasses.clear();
_rGlobalClassNames.clear();
......@@ -267,10 +266,10 @@ namespace sfx2
{
protected:
OConfigurationNode m_aClassesNode;
FilterClassList& m_rClasses;
FilterClassVector& m_rClasses;
public:
ReadLocalFilter( const OConfigurationNode& _rClassesNode, FilterClassList& _rClasses )
ReadLocalFilter( const OConfigurationNode& _rClassesNode, FilterClassVector& _rClasses )
:m_aClassesNode ( _rClassesNode )
,m_rClasses ( _rClasses )
{
......@@ -289,7 +288,7 @@ namespace sfx2
};
void lcl_ReadLocalFilters( const OConfigurationNode& _rFilterClassification, FilterClassList& _rLocalClasses )
void lcl_ReadLocalFilters( const OConfigurationNode& _rFilterClassification, FilterClassVector& _rLocalClasses )
{
_rLocalClasses.clear();
......@@ -306,7 +305,7 @@ namespace sfx2
}
void lcl_ReadClassification( FilterClassList& _rGlobalClasses, StringArray& _rGlobalClassNames, FilterClassList& _rLocalClasses )
void lcl_ReadClassification( FilterClassVector& _rGlobalClasses, StringArray& _rGlobalClassNames, FilterClassVector& _rLocalClasses )
{
// open our config node
......@@ -496,11 +495,11 @@ namespace sfx2
}
void lcl_InitGlobalClasses( GroupedFilterList& _rAllFilters, const FilterClassList& _rGlobalClasses, FilterGroupEntryReferrer& _rGlobalClassesRef )
void lcl_InitGlobalClasses( GroupedFilterList& _rAllFilters, const FilterClassVector& _rGlobalClasses, FilterGroupEntryReferrer& _rGlobalClassesRef )
{
// we need an extra group in our "all filters" container
_rAllFilters.push_front( FilterGroup() );
FilterGroup& rGlobalFilters = _rAllFilters.front();
_rAllFilters.push_back( FilterGroup() );
FilterGroup& rGlobalFilters = _rAllFilters.back();
// it's important to work on the reference: we want to access the members of this filter group
// by an iterator (FilterGroup::const_iterator)
// the referrer for the global classes
......@@ -562,7 +561,7 @@ namespace sfx2
// read the classification of filters
FilterClassList aGlobalClasses, aLocalClasses;
FilterClassVector aGlobalClasses, aLocalClasses;
StringArray aGlobalClassNames;
lcl_ReadClassification( aGlobalClasses, aGlobalClassNames, aLocalClasses );
......@@ -776,7 +775,7 @@ namespace sfx2
if ( !_rFilters.empty() )
{
FilterGroup& rGlobalClasses = *_rFilters.begin();
rGlobalClasses.push_front( FilterDescriptor( sAllFilterName, FILEDIALOG_FILTER_ALL ) );
rGlobalClasses.insert( rGlobalClasses.begin(), FilterDescriptor( sAllFilterName, FILEDIALOG_FILTER_ALL ) );
}
}
}
......@@ -1135,7 +1134,7 @@ namespace sfx2
// append the filters to the manager
if ( !aAllFilters.empty() )
{
::std::list< FilterGroup >::iterator pIter = aAllFilters.begin();
::std::vector< FilterGroup >::iterator pIter = aAllFilters.begin();
++pIter;
::std::for_each(
pIter, // first filter group was handled separately, see above
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment