/* -*- 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 #include #include #include using namespace ::com::sun::star; namespace framework { bool UIConfigurationImporterOOo1x::ImportCustomToolbars( const uno::Reference< ui::XUIConfigurationManager2 >& rContainerFactory, uno::Sequence< uno::Reference< container::XIndexContainer > >& rSeqContainer, const uno::Reference< uno::XComponentContext >& rxContext, const uno::Reference< embed::XStorage >& rToolbarStorage ) { const char USERDEFTOOLBOX[] = "userdeftoolbox0.xml"; bool bResult ( false ); if ( rToolbarStorage.is() && rContainerFactory.is() ) { try { for ( sal_uInt16 i = 1; i <= 4; i++ ) { OUStringBuffer aCustomTbxName( 20 ); aCustomTbxName.append( USERDEFTOOLBOX ); aCustomTbxName[14] = aCustomTbxName[14] + i; OUString aTbxStreamName( aCustomTbxName.makeStringAndClear() ); uno::Reference< io::XStream > xStream = rToolbarStorage->openStreamElement( aTbxStreamName, embed::ElementModes::READ ); if ( xStream.is() ) { uno::Reference< io::XInputStream > xInputStream = xStream->getInputStream(); if ( xInputStream.is() ) { uno::Reference< container::XIndexContainer > xContainer = rContainerFactory->createSettings(); if ( ToolBoxConfiguration::LoadToolBox( rxContext, xInputStream, xContainer )) { sal_uInt32 nIndex = rSeqContainer.getLength(); rSeqContainer.realloc( nIndex+1 ); rSeqContainer[nIndex] = xContainer; bResult = true; } } } } } catch ( const uno::RuntimeException& ) { throw; } catch ( const uno::Exception& ) { } } return bResult; } } // namespace framework /* vim:set shiftwidth=4 softtabstop=4 expandtab: */