summaryrefslogtreecommitdiffstats
path: root/svtools/source/filter/FilterConfigItem.cxx
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@suse.cz>2013-01-01 22:48:32 +0100
committerJan Holesovsky <kendy@suse.cz>2013-01-04 22:02:50 +0100
commit255c03d6ad4ed13c456ee621e0af765684a475d2 (patch)
tree082de8822a61ce4fa9079e8355b11f25b927ad5e /svtools/source/filter/FilterConfigItem.cxx
parentdon't forget the dependency tree during OOXML import, fdo#58863 (diff)
downloadcore-255c03d6ad4ed13c456ee621e0af765684a475d2.tar.gz
core-255c03d6ad4ed13c456ee621e0af765684a475d2.zip
Move GraphicFilter class to vcl.
Change-Id: I2318eeda59cee1cfdb074f9a90fd7d8d80aab19f
Diffstat (limited to 'svtools/source/filter/FilterConfigItem.cxx')
-rw-r--r--svtools/source/filter/FilterConfigItem.cxx439
1 files changed, 0 insertions, 439 deletions
diff --git a/svtools/source/filter/FilterConfigItem.cxx b/svtools/source/filter/FilterConfigItem.cxx
deleted file mode 100644
index 91310b367bed..000000000000
--- a/svtools/source/filter/FilterConfigItem.cxx
+++ /dev/null
@@ -1,439 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include <svtools/FilterConfigItem.hxx>
-
-#include <unotools/configmgr.hxx>
-#include <comphelper/processfactory.hxx>
-#include <comphelper/string.hxx>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/configuration/theDefaultProvider.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/util/XChangesBatch.hpp>
-#include <com/sun/star/beans/XPropertySetInfo.hpp>
-#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
-
-using ::rtl::OUString;
-using namespace ::utl ; // getProcessServiceFactory
-using namespace ::com::sun::star::lang ; // XMultiServiceFactory
-using namespace ::com::sun::star::beans ; // PropertyValue
-using namespace ::com::sun::star::uno ; // Reference
-using namespace ::com::sun::star::util ; // XChangesBatch
-using namespace ::com::sun::star::awt ; // Size
-using namespace ::com::sun::star::container ; //
-using namespace ::com::sun::star::configuration; //
-using namespace ::com::sun::star::task ; // XStatusIndicator
-
-static sal_Bool ImpIsTreeAvailable( Reference< XMultiServiceFactory >& rXCfgProv, const rtl::OUString& rTree )
-{
- sal_Bool bAvailable = !rTree.isEmpty();
- if ( bAvailable )
- {
- using comphelper::string::getTokenCount;
- using comphelper::string::getToken;
-
- sal_Int32 nTokenCount = getTokenCount(rTree, '/');
- sal_Int32 i = 0;
-
- if ( rTree[0] == '/' )
- ++i;
- if ( rTree[rTree.getLength() - 1] == '/' )
- --nTokenCount;
-
- Any aAny;
- aAny <<= getToken(rTree, i++, '/');
-
- // creation arguments: nodepath
- PropertyValue aPathArgument;
- aPathArgument.Name = OUString( RTL_CONSTASCII_USTRINGPARAM( "nodepath" ) );
- aPathArgument.Value = aAny;
-
- Sequence< Any > aArguments( 1 );
- aArguments[ 0 ] <<= aPathArgument;
-
- Reference< XInterface > xReadAccess;
- try
- {
- xReadAccess = rXCfgProv->createInstanceWithArguments(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.configuration.ConfigurationAccess" ) ),
- aArguments );
- }
- catch (const ::com::sun::star::uno::Exception&)
- {
- bAvailable = sal_False;
- }
- if ( xReadAccess.is() )
- {
- for ( ; bAvailable && ( i < nTokenCount ); i++ )
- {
- Reference< XHierarchicalNameAccess > xHierarchicalNameAccess
- ( xReadAccess, UNO_QUERY );
-
- if ( !xHierarchicalNameAccess.is() )
- bAvailable = sal_False;
- else
- {
- rtl::OUString aNode( getToken(rTree, i, '/') );
- if ( !xHierarchicalNameAccess->hasByHierarchicalName( aNode ) )
- bAvailable = sal_False;
- else
- {
- Any a( xHierarchicalNameAccess->getByHierarchicalName( aNode ) );
- try
- {
- a >>= xReadAccess;
- }
- catch ( ::com::sun::star::uno::Exception& )
- {
- bAvailable = sal_False;
- }
- }
- }
- }
- }
- }
- return bAvailable;
-}
-
-void FilterConfigItem::ImpInitTree( const String& rSubTree )
-{
- bModified = sal_False;
-
- Reference< XComponentContext > xContext( comphelper::getProcessComponentContext() );
-
- Reference< XMultiServiceFactory > xCfgProv = theDefaultProvider::get( xContext );
-
- OUString sTree(
- OUString(RTL_CONSTASCII_USTRINGPARAM("/org.openoffice.")) +
- rSubTree);
- if ( ImpIsTreeAvailable(xCfgProv, sTree) )
- {
- Any aAny;
- // creation arguments: nodepath
- PropertyValue aPathArgument;
- aAny <<= sTree;
- aPathArgument.Name = OUString( RTL_CONSTASCII_USTRINGPARAM( "nodepath" ) );
- aPathArgument.Value = aAny;
-
- // creation arguments: commit mode
- PropertyValue aModeArgument;
- sal_Bool bAsyncron = sal_True;
- aAny <<= bAsyncron;
- aModeArgument.Name = OUString( RTL_CONSTASCII_USTRINGPARAM( "lazywrite" ) );
- aModeArgument.Value = aAny;
-
- Sequence< Any > aArguments( 2 );
- aArguments[ 0 ] <<= aPathArgument;
- aArguments[ 1 ] <<= aModeArgument;
-
- try
- {
- xUpdatableView = xCfgProv->createInstanceWithArguments(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.configuration.ConfigurationUpdateAccess" ) ),
- aArguments );
- if ( xUpdatableView.is() )
- xPropSet = Reference< XPropertySet >( xUpdatableView, UNO_QUERY );
- }
- catch ( ::com::sun::star::uno::Exception& )
- {
- OSL_FAIL( "FilterConfigItem::FilterConfigItem - Could not access configuration Key" );
- }
- }
-}
-
-FilterConfigItem::FilterConfigItem( const OUString& rSubTree )
-{
- ImpInitTree( rSubTree );
-}
-
-FilterConfigItem::FilterConfigItem( ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >* pFilterData )
-{
- if ( pFilterData )
- aFilterData = *pFilterData;
-}
-
-FilterConfigItem::FilterConfigItem( const OUString& rSubTree,
- ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >* pFilterData )
-{
- ImpInitTree( rSubTree );
-
- if ( pFilterData )
- aFilterData = *pFilterData;
-};
-
-FilterConfigItem::~FilterConfigItem()
-{
- if ( xUpdatableView.is() )
- {
- if ( xPropSet.is() && bModified )
- {
- Reference< XChangesBatch > xUpdateControl( xUpdatableView, UNO_QUERY );
- if ( xUpdateControl.is() )
- {
- try
- {
- xUpdateControl->commitChanges();
- }
- catch ( ::com::sun::star::uno::Exception& )
- {
- OSL_FAIL( "FilterConfigItem::FilterConfigItem - Could not update configuration data" );
- }
- }
- }
- }
-}
-
-sal_Bool FilterConfigItem::ImplGetPropertyValue( Any& rAny, const Reference< XPropertySet >& rXPropSet, const OUString& rString, sal_Bool bTestPropertyAvailability )
-{
- sal_Bool bRetValue = sal_True;
-
- if ( rXPropSet.is() )
- {
- if ( bTestPropertyAvailability )
- {
- bRetValue = sal_False;
- try
- {
- Reference< XPropertySetInfo >
- aXPropSetInfo( rXPropSet->getPropertySetInfo() );
- if ( aXPropSetInfo.is() )
- bRetValue = aXPropSetInfo->hasPropertyByName( rString );
- }
- catch( ::com::sun::star::uno::Exception& )
- {
- //
- }
- }
- if ( bRetValue )
- {
- try
- {
- rAny = rXPropSet->getPropertyValue( rString );
- if ( !rAny.hasValue() )
- bRetValue = sal_False;
- }
- catch( ::com::sun::star::uno::Exception& )
- {
- bRetValue = sal_False;
- }
- }
- }
- else
- bRetValue = sal_False;
- return bRetValue;
-}
-
-
-// if property is available it returns a pointer,
-// otherwise the result is null
-PropertyValue* FilterConfigItem::GetPropertyValue( Sequence< PropertyValue >& rPropSeq, const OUString& rName )
-{
- PropertyValue* pPropValue = NULL;
-
- sal_Int32 i, nCount;
- for ( i = 0, nCount = rPropSeq.getLength(); i < nCount; i++ )
- {
- if ( rPropSeq[ i ].Name == rName )
- {
- pPropValue = &rPropSeq[ i ];
- break;
- }
- }
- return pPropValue;
-}
-
-/* if PropertySequence already includes a PropertyValue using the same name, the
- corresponding PropertyValue is replaced, otherwise the given PropertyValue
- will be appended */
-
-sal_Bool FilterConfigItem::WritePropertyValue( Sequence< PropertyValue >& rPropSeq, const PropertyValue& rPropValue )
-{
- sal_Bool bRet = sal_False;
- if ( !rPropValue.Name.isEmpty() )
- {
- sal_Int32 i, nCount;
- for ( i = 0, nCount = rPropSeq.getLength(); i < nCount; i++ )
- {
- if ( rPropSeq[ i ].Name == rPropValue.Name )
- break;
- }
- if ( i == nCount )
- rPropSeq.realloc( ++nCount );
-
- rPropSeq[ i ] = rPropValue;
-
- bRet = sal_True;
- }
- return bRet;
-}
-
-sal_Bool FilterConfigItem::ReadBool( const OUString& rKey, sal_Bool bDefault )
-{
- Any aAny;
- sal_Bool bRetValue = bDefault;
- PropertyValue* pPropVal = GetPropertyValue( aFilterData, rKey );
- if ( pPropVal )
- {
- pPropVal->Value >>= bRetValue;
- }
- else if ( ImplGetPropertyValue( aAny, xPropSet, rKey, sal_True ) )
- {
- aAny >>= bRetValue;
- }
- PropertyValue aBool;
- aBool.Name = rKey;
- aBool.Value <<= bRetValue;
- WritePropertyValue( aFilterData, aBool );
- return bRetValue;
-}
-
-sal_Int32 FilterConfigItem::ReadInt32( const OUString& rKey, sal_Int32 nDefault )
-{
- Any aAny;
- sal_Int32 nRetValue = nDefault;
- PropertyValue* pPropVal = GetPropertyValue( aFilterData, rKey );
- if ( pPropVal )
- {
- pPropVal->Value >>= nRetValue;
- }
- else if ( ImplGetPropertyValue( aAny, xPropSet, rKey, sal_True ) )
- {
- aAny >>= nRetValue;
- }
- PropertyValue aInt32;
- aInt32.Name = rKey;
- aInt32.Value <<= nRetValue;
- WritePropertyValue( aFilterData, aInt32 );
- return nRetValue;
-}
-
-OUString FilterConfigItem::ReadString( const OUString& rKey, const OUString& rDefault )
-{
- Any aAny;
- OUString aRetValue( rDefault );
- PropertyValue* pPropVal = GetPropertyValue( aFilterData, rKey );
- if ( pPropVal )
- {
- pPropVal->Value >>= aRetValue;
- }
- else if ( ImplGetPropertyValue( aAny, xPropSet, rKey, sal_True ) )
- {
- aAny >>= aRetValue;
- }
- PropertyValue aString;
- aString.Name = rKey;
- aString.Value <<= aRetValue;
- WritePropertyValue( aFilterData, aString );
- return aRetValue;
-}
-
-void FilterConfigItem::WriteBool( const OUString& rKey, sal_Bool bNewValue )
-{
- PropertyValue aBool;
- aBool.Name = rKey;
- aBool.Value <<= bNewValue;
- WritePropertyValue( aFilterData, aBool );
-
- if ( xPropSet.is() )
- {
- Any aAny;
- if ( ImplGetPropertyValue( aAny, xPropSet, rKey, sal_True ) )
- {
- sal_Bool bOldValue(sal_True);
- if ( aAny >>= bOldValue )
- {
- if ( bOldValue != bNewValue )
- {
- aAny <<= bNewValue;
- try
- {
- xPropSet->setPropertyValue( rKey, aAny );
- bModified = sal_True;
- }
- catch ( ::com::sun::star::uno::Exception& )
- {
- OSL_FAIL( "FilterConfigItem::WriteBool - could not set PropertyValue" );
- }
- }
- }
- }
- }
-}
-
-void FilterConfigItem::WriteInt32( const OUString& rKey, sal_Int32 nNewValue )
-{
- PropertyValue aInt32;
- aInt32.Name = rKey;
- aInt32.Value <<= nNewValue;
- WritePropertyValue( aFilterData, aInt32 );
-
- if ( xPropSet.is() )
- {
- Any aAny;
-
- if ( ImplGetPropertyValue( aAny, xPropSet, rKey, sal_True ) )
- {
- sal_Int32 nOldValue = 0;
- if ( aAny >>= nOldValue )
- {
- if ( nOldValue != nNewValue )
- {
- aAny <<= nNewValue;
- try
- {
- xPropSet->setPropertyValue( rKey, aAny );
- bModified = sal_True;
- }
- catch ( ::com::sun::star::uno::Exception& )
- {
- OSL_FAIL( "FilterConfigItem::WriteInt32 - could not set PropertyValue" );
- }
- }
- }
- }
- }
-}
-
-// ------------------------------------------------------------------------
-
-Sequence< PropertyValue > FilterConfigItem::GetFilterData() const
-{
- return aFilterData;
-}
-
-// ------------------------------------------------------------------------
-
-Reference< XStatusIndicator > FilterConfigItem::GetStatusIndicator() const
-{
- Reference< XStatusIndicator > xStatusIndicator;
- const rtl::OUString sStatusIndicator( RTL_CONSTASCII_USTRINGPARAM( "StatusIndicator" ) );
-
- sal_Int32 i, nCount = aFilterData.getLength();
- for ( i = 0; i < nCount; i++ )
- {
- if ( aFilterData[ i ].Name == sStatusIndicator )
- {
- aFilterData[ i ].Value >>= xStatusIndicator;
- break;
- }
- }
- return xStatusIndicator;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */