summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZolnai Tamás <tamas.zolnai@collabora.com>2014-06-10 21:30:22 +0200
committerZolnai Tamás <tamas.zolnai@collabora.com>2014-06-12 21:43:36 +0200
commit653bac184f579524bc25a9f40281763a736ae6fd (patch)
tree4b18867451c01bdd158ba36e9a9f9d2aaf7890de
parentfe70101856332663f600df144b39d2638b3d0570 (diff)
Make glTF support an experimental feature
Change-Id: I75e69ba1acafbab8362536f02f4d39a8fc2deed1
-rw-r--r--sd/qa/unit/import-tests.cxx18
-rw-r--r--sd/source/ui/view/drviews2.cxx5
-rw-r--r--sd/source/ui/view/drviews7.cxx11
-rw-r--r--xmloff/CppunitTest_xmloff_uxmloff.mk1
-rw-r--r--xmloff/Library_xo.mk1
-rw-r--r--xmloff/source/draw/ximpshap.cxx5
6 files changed, 33 insertions, 8 deletions
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index 949bd853e8a1..f4ebef2393c3 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -30,6 +30,7 @@
#include <svx/svdomedia.hxx>
#include <svx/svdoole2.hxx>
#include <svx/xflclit.hxx>
+#include <svtools/miscopt.hxx>
#include <animations/animationnodehelper.hxx>
#include <com/sun/star/drawing/XDrawPage.hpp>
@@ -710,8 +711,8 @@ void SdFiltersTest::testFdo71961()
void SdFiltersTest::testMediaEmbedding()
{
+ SvtMiscOptions().SetExperimentalMode(true);
::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/media_embedding.odp"));
- xDocShRef = saveAndReload( xDocShRef, ODP );
SdDrawDocument *pDoc = xDocShRef->GetDoc();
CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
@@ -724,12 +725,21 @@ void SdFiltersTest::testMediaEmbedding()
CPPUNIT_ASSERT_MESSAGE( "missing model", pModelObj != NULL);
CPPUNIT_ASSERT_EQUAL( OUString( "vnd.sun.star.Package:Model/jeep/jeep.json" ), pModelObj->getMediaProperties().getURL());
CPPUNIT_ASSERT_EQUAL( OUString( "application/vnd.gltf+json" ), pModelObj->getMediaProperties().getMimeType());
-#else
+
+ // Check the case when experimental mode is disabled
+ xDocShRef->DoClose();
+ SvtMiscOptions().SetExperimentalMode(false);
+ xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/media_embedding.odp"));
+ pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
+ pPage = pDoc->GetPage (1);
+ CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
+#endif
+
// If glTF is not supported, then the fallback image is imported
SdrGrafObj *pGrafic = dynamic_cast<SdrGrafObj*>( pPage->GetObj( 2 ));
CPPUNIT_ASSERT_MESSAGE( "Could not load glTF fallback image", pGrafic != NULL);
- CPPUNIT_ASSERT_EQUAL( OUString( "vnd.sun.star.Package:Pictures/jeep.png" ), pGrafic->GetGrafStreamURL());
-#endif
+ CPPUNIT_ASSERT_EQUAL( OUString( "vnd.sun.star.Package:Model/Fallback/jeep.png" ), pGrafic->GetGrafStreamURL());
// Second object is a sound
SdrMediaObj *pMediaObj = dynamic_cast<SdrMediaObj*>( pPage->GetObj( 3 ));
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index 2d503cd3fc87..1e6cf272aba9 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -79,6 +79,8 @@
#include <svx/xlnstwit.hxx>
#include <svx/xlnwtit.hxx>
+#include <svtools/miscopt.hxx>
+
#include <tools/diagnose_ex.h>
#include <unotools/useroptions.hxx>
@@ -1169,6 +1171,9 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
#if HAVE_FEATURE_GLTF
case SID_INSERT_3DMODEL:
{
+ if( !SvtMiscOptions().IsExperimentalMode() )
+ break;
+
SetCurrentFunction( FuInsert3DModel::Create( this, GetActiveWindow(), mpDrawView, GetDoc(), rReq ) );
Cancel();
diff --git a/sd/source/ui/view/drviews7.cxx b/sd/source/ui/view/drviews7.cxx
index d57b4a6ad2ba..2bd235ec3bc6 100644
--- a/sd/source/ui/view/drviews7.cxx
+++ b/sd/source/ui/view/drviews7.cxx
@@ -43,6 +43,8 @@
#include <svx/extrusionbar.hxx>
#include <svx/fontworkbar.hxx>
+#include <svtools/miscopt.hxx>
+
// #UndoRedo#
#include <svl/slstitm.hxx>
#include <sfx2/app.hxx>
@@ -1660,13 +1662,18 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet )
}
}
+ bool bDisableInsert3DModel = false;
#if !HAVE_FEATURE_GLTF
- if (SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_INSERT_3DMODEL))
+ bDisableInsert3DModel = true;
+#else
+ bDisableInsert3DModel = !SvtMiscOptions().IsExperimentalMode();
+#endif
+
+ if (bDisableInsert3DModel && SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_INSERT_3DMODEL))
{
rSet.DisableItem(SID_INSERT_3DMODEL);
rSet.Put(SfxVisibilityItem(SID_INSERT_3DMODEL, false));
}
-#endif
GetModeSwitchingMenuState (rSet);
}
diff --git a/xmloff/CppunitTest_xmloff_uxmloff.mk b/xmloff/CppunitTest_xmloff_uxmloff.mk
index 1fa4ca473b72..9228357f18a1 100644
--- a/xmloff/CppunitTest_xmloff_uxmloff.mk
+++ b/xmloff/CppunitTest_xmloff_uxmloff.mk
@@ -45,6 +45,7 @@ $(eval $(call gb_CppunitTest_use_libraries,xmloff_uxmloff, \
salhelper \
sax \
svl \
+ svt \
test \
tl \
utl \
diff --git a/xmloff/Library_xo.mk b/xmloff/Library_xo.mk
index 553fcc148d36..1bf512c2da3a 100644
--- a/xmloff/Library_xo.mk
+++ b/xmloff/Library_xo.mk
@@ -50,6 +50,7 @@ $(eval $(call gb_Library_use_libraries,xo,\
salhelper \
sax \
svl \
+ svt \
tl \
utl \
vcl \
diff --git a/xmloff/source/draw/ximpshap.cxx b/xmloff/source/draw/ximpshap.cxx
index a62eefb167a1..3973c0f014a4 100644
--- a/xmloff/source/draw/ximpshap.cxx
+++ b/xmloff/source/draw/ximpshap.cxx
@@ -81,6 +81,7 @@
#include <basegfx/polygon/b2dpolygontools.hxx>
#include <basegfx/polygon/b2dpolypolygontools.hxx>
#include <basegfx/vector/b2dvector.hxx>
+#include <svtools/miscopt.hxx>
#include <config_features.h>
@@ -3081,7 +3082,7 @@ void SdXMLPluginShapeContext::StartElement( const ::com::sun::star::uno::Referen
if( xAttrList->getValueByIndex( n ).equalsAscii( "application/vnd.sun.star.media" ) )
mbMedia = true;
#if HAVE_FEATURE_GLTF
- if( xAttrList->getValueByIndex( n ).equalsAscii( "application/vnd.gltf+json" ) )
+ if( xAttrList->getValueByIndex( n ).equalsAscii( "application/vnd.gltf+json" ) && SvtMiscOptions().IsExperimentalMode() )
mbMedia = true;
#endif
// leave this loop
@@ -3603,7 +3604,7 @@ SvXMLImportContext *SdXMLFrameShapeContext::CreateChildContext( sal_uInt16 nPref
// For glTF models the fallback image is placed before the real shape.
// So we need to remove the fallback image after real shape is detected.
else if ( mxImplContext.Is() && IsXMLToken(mxImplContext->GetLocalName(), XML_IMAGE) &&
- IsXMLToken( rLocalName, XML_PLUGIN ) )
+ IsXMLToken( rLocalName, XML_PLUGIN ) && SvtMiscOptions().IsExperimentalMode() )
{
SvXMLShapeContext* pShapeContext= GetImport().GetShapeImport()->CreateFrameChildContext(
GetImport(), nPrefix, rLocalName, xAttrList, mxShapes, mxAttrList );