summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Power <noel.power@novell.com>2012-06-05 16:41:53 +0100
committerNoel Power <noel.power@novell.com>2012-06-05 16:45:31 +0100
commitafbb2d8f7d72292532a9ea54fa2e6757b6d548c2 (patch)
tree51611679804fd10060bb53df75eb3b322a2e3987
parent67a041cf75c2d21de2ab59ef2ea0e0c612943ebd (diff)
fix missing ole and form control(s) on xlsx import
chang the visibility of aMceState in order to access that member to filter out reading and parsing of ./xl/ctrlProps/ctrlProp[N].xml fragments for 'controls' & 'oleObjects' elements nested withing 'mc:AlternateContent' elements Change-Id: I6892db7e3302b9977f0fdaabbe3ac1444315e011
-rw-r--r--oox/inc/oox/core/fragmenthandler2.hxx3
-rw-r--r--sc/source/filter/oox/worksheetfragment.cxx4
2 files changed, 3 insertions, 4 deletions
diff --git a/oox/inc/oox/core/fragmenthandler2.hxx b/oox/inc/oox/core/fragmenthandler2.hxx
index 781ed855a282..70ded853fa17 100644
--- a/oox/inc/oox/core/fragmenthandler2.hxx
+++ b/oox/inc/oox/core/fragmenthandler2.hxx
@@ -41,7 +41,7 @@ namespace core {
class OOX_DLLPUBLIC FragmentHandler2 : public FragmentHandler, public ContextHandler2Helper
{
-private:
+protected:
enum MCE_STATE
{
MCE_UNUSED,
@@ -50,7 +50,6 @@ private:
};
::std::vector<MCE_STATE> aMceState;
-private:
bool prepareMceContext( sal_Int32 nElement, const AttributeList& rAttribs );
diff --git a/sc/source/filter/oox/worksheetfragment.cxx b/sc/source/filter/oox/worksheetfragment.cxx
index be41a16bf0cb..8616305998ef 100644
--- a/sc/source/filter/oox/worksheetfragment.cxx
+++ b/sc/source/filter/oox/worksheetfragment.cxx
@@ -332,10 +332,10 @@ ContextHandlerRef WorksheetFragment::onCreateContext( sal_Int32 nElement, const
break;
case XLS_TOKEN( oleObjects ):
- if( nElement == XLS_TOKEN( oleObject ) ) importOleObject( rAttribs );
+ if( nElement == XLS_TOKEN( oleObject ) && aMceState.empty() ) importOleObject( rAttribs );
break;
case XLS_TOKEN( controls ):
- if( nElement == XLS_TOKEN( control ) ) importControl( rAttribs );
+ if( nElement == XLS_TOKEN( control ) && aMceState.empty() ) importControl( rAttribs );
break;
}
return 0;