fdo#46808, convert drawing::ColorTable to new style

The service already existed, it just needed an IDL file.
This commit is contained in:
Noel Grandin
2013-03-27 10:41:40 +02:00
parent 1dec1f2f7e
commit 9ffb86c7e9
3 changed files with 47 additions and 11 deletions

View File

@@ -116,6 +116,7 @@ $(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,offapi/com/sun/star/document,\
XMLOasisBasicImporter \
))
$(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,offapi/com/sun/star/drawing,\
ColorTable \
GraphicExportFilter \
ModuleDispatcher \
ShapeCollection \

View File

@@ -0,0 +1,38 @@
/* -*- 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 .
*/
#ifndef __com_sun_star_drawing_ColorTable_idl__
#define __com_sun_star_drawing_ColorTable_idl__
#include <com/sun/star/container/XNameContainer.idl>
module com { module sun { module star { module drawing {
/**
@since LibreOffice 4.1
*/
published service ColorTable : com::sun::star::container::XNameContainer;
}; }; }; };
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

View File

@@ -23,6 +23,7 @@
#include "boost/unordered_map.hpp"
#include "com/sun/star/container/XNameAccess.hpp"
#include "com/sun/star/container/XNameContainer.hpp"
#include "com/sun/star/drawing/ColorTable.hpp"
#include "com/sun/star/lang/XMultiServiceFactory.hpp"
#include "com/sun/star/uno/Any.hxx"
#include "com/sun/star/uno/Reference.hxx"
@@ -54,19 +55,15 @@ ColorNameMap::ColorNameMap() {
try
{
// Create color table in which to look up the given color.
css::uno::Reference< css::container::XNameContainer > xColorTable (
comphelper::getProcessServiceFactory()->createInstance( "com.sun.star.drawing.ColorTable" ),
css::uno::UNO_QUERY);
css::uno::Reference< css::container::XNameContainer > xColorTable =
css::drawing::ColorTable::create( comphelper::getProcessComponentContext() );
// Get list of color names in order to iterate over the color table.
xNA = css::uno::Reference< css::container::XNameAccess >(xColorTable, css::uno::UNO_QUERY);
if (xNA.is())
{
// Lock the solar mutex here as workarround for missing lock in
// called function.
SolarMutexGuard aGuard;
aNames = xNA->getElementNames();
}
// Lock the solar mutex here as workarround for missing lock in
// called function.
SolarMutexGuard aGuard;
aNames = xNA->getElementNames();
}
catch (css::uno::RuntimeException const&)
{