[Libreoffice-commits] core.git: Branch 'private/moggi/conditional-format-api' - 300 commits - accessibility/inc accessibility/source android/Bootstrap android/experimental basctl/inc basctl/source basegfx/source basic/source binaryurp/source bin/extract-tooltip.py bin/gbuild-to-ide bridges/Library_cpp_uno.mk bridges/source canvas/source canvas/workben chart2/CppunitTest_chart2_import.mk chart2/qa chart2/source comphelper/inc comphelper/source configmgr/inc configmgr/source configure.ac connectivity/source cppcanvas/qa cppuhelper/source cppu/source cui/Library_cui.mk cui/source cui/uiconfig cui/UIConfig_cui.mk dbaccess/source desktop/source desktop/test distro-configs/LibreOfficeWin32.conf distro-configs/LibreOfficeWin64.conf download.lst drawinglayer/inc drawinglayer/source editeng/source embeddedobj/source embedserv/source extensions/source external/jpeg-turbo external/libgltf external/liborcus filter/Library_pdffilter.mk filter/Library_textfd.mk filter/source filter/uiconfig forms/Library_frm.m k forms/source forms/util formula/source fpicker/source framework/inc framework/source g helpcompiler/source helpcontent2 icon-themes/crystal icon-themes/galaxy icon-themes/human icon-themes/industrial icon-themes/oxygen icon-themes/tango icon-themes/tango_testing include/basegfx include/basic include/canvas include/comphelper include/connectivity include/cppuhelper include/dbaccess include/editeng include/filter include/formula include/framework include/i18nlangtag include/i18nutil include/LibreOfficeKit include/o3tl include/oox include/rtl include/sal include/sax include/sfx2 include/svl include/svtools include/svx include/toolkit include/tools include/unotools include/vcl include/xmloff include/xmlreader jurt/com libreofficekit/source lotuswordpro/source nlpsolver/src odk/Package_odk_headers.mk odk/source offapi/com offapi/UnoApi_offapi.mk officecfg/registry oox/inc oox/README oox/source qadevOOo/tests readlicense_oo/license README.Android reportbuilder/java reportdesign/source R epositoryExternal.mk sal/inc sal/Library_sal.mk sal/osl sal/qa sal/rtl scaddins/source sc/CppunitTest_sc_new_cond_format_api.mk sc/inc sc/Library_sc.mk sc/Module_sc.mk scp2/source sc/qa scripting/java sc/source sc/uiconfig sc/workben sdext/source sd/Module_sd.mk sd/source sfx2/source shell/Package_scripts_kde.mk shell/source solenv/bin solenv/gbuild starmath/inc starmath/qa starmath/source stoc/inc stoc/Library_bootstrap.mk stoc/Library_stocservices.mk stoc/source stoc/util svl/qa svl/source svtools/inc svtools/qa svtools/source svx/inc svx/sdi svx/source svx/uiconfig sw/CppunitTest_sw_macros_test.mk sw/inc sw/Module_sw.mk sw/qa sw/source sw/uiconfig toolkit/source tools/source ucb/source unotest/Library_unobootstrapprotector.mk unotools/inc unotools/source unusedcode.easy vcl/generic vcl/inc vcl/Library_vcl.mk vcl/opengl vcl/source vcl/unx vcl/win vcl/workben wizards/com wizards/source writerfilter/Library_writerfilter.mk writerfilter/source writerfilter/util xmloff/inc xmloff/sour ce

Markus Mohrhard markus.mohrhard at collabora.co.uk
Mon Mar 16 15:32:41 PDT 2015


Rebased ref, commits from common ancestor:
commit 0e216e0096e7c069affa640c5048f66e10af0494
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Mon Mar 16 23:14:08 2015 +0100

    add test for one of the ScCondFormatsObj methods
    
    Change-Id: I05fc54a2153fd90d03d2575bdd9bde30a54d71c1

diff --git a/sc/qa/extras/new_cond_format.cxx b/sc/qa/extras/new_cond_format.cxx
index 3200998..cd4826c 100644
--- a/sc/qa/extras/new_cond_format.cxx
+++ b/sc/qa/extras/new_cond_format.cxx
@@ -33,10 +33,12 @@ public:
     uno::Reference< uno::XInterface > init();
     void testRequestCondFormatListFromSheet();
     void testCondFormatListProperties();
+    void testCondFormatListFormats();
 
     CPPUNIT_TEST_SUITE(ScConditionalFormatTest);
     CPPUNIT_TEST(testRequestCondFormatListFromSheet);
     CPPUNIT_TEST(testCondFormatListProperties);
+    CPPUNIT_TEST(testCondFormatListFormats);
     CPPUNIT_TEST_SUITE_END();
 private:
 
@@ -104,6 +106,20 @@ void ScConditionalFormatTest::testCondFormatListProperties()
     CPPUNIT_ASSERT_EQUAL(sal_Int32(4), xCondFormat->getLength());
 }
 
+void ScConditionalFormatTest::testCondFormatListFormats()
+{
+    uno::Reference<sheet::XConditionalFormats> xCondFormatList =
+        getConditionalFormatList(init());
+
+    uno::Sequence<uno::Reference<sheet::XConditionalFormat> > xCondFormats =
+        xCondFormatList->getConditionalFormats();
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(4), xCondFormats.getLength());
+    for (sal_Int32 i = 0, n = xCondFormats.getLength(); i < n; ++i)
+    {
+        CPPUNIT_ASSERT(xCondFormats[i].is());
+    }
+}
+
 void ScConditionalFormatTest::setUp()
 {
     nTest++;
commit ad9ce9c2796025cdac6fe97cec93683026a28f70
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Mon Mar 16 22:50:18 2015 +0100

    integrate ScConditionalFormat UNO object correctly
    
    Change-Id: I8da8d954dc7bcdf0a8c2f78eeb6b2403eb75d9e3

diff --git a/sc/source/ui/inc/condformatuno.hxx b/sc/source/ui/inc/condformatuno.hxx
index 2546403..ec9218c 100644
--- a/sc/source/ui/inc/condformatuno.hxx
+++ b/sc/source/ui/inc/condformatuno.hxx
@@ -21,8 +21,10 @@
 #include <com/sun/star/sheet/XIconSetEntry.hpp>
 
 #include <cppuhelper/implbase1.hxx>
+#include <cppuhelper/implbase2.hxx>
 #include <svl/itemprop.hxx>
 #include <svl/lstner.hxx>
+#include <rtl/ref.hxx>
 
 class ScDocument;
 class ScDocShell;
@@ -75,18 +77,18 @@ public:
                                 throw(::com::sun::star::uno::RuntimeException,
                                       std::exception) SAL_OVERRIDE;
 
-private:
     ScConditionalFormatList* getCoreObject();
+
+private:
     SCTAB mnTab;
     ScDocShell* mpDocShell;
 };
 
-class ScCondFormatObj : public com::sun::star::sheet::XConditionalFormat,
-                        public com::sun::star::beans::XPropertySet,
-                        public cppu::OWeakObject
+class ScCondFormatObj : public cppu::WeakImplHelper2<com::sun::star::sheet::XConditionalFormat,
+                            com::sun::star::beans::XPropertySet>
 {
 public:
-    ScCondFormatObj(ScDocument* pDoc, ScConditionalFormat* pList);
+    ScCondFormatObj(ScDocShell* pDocShell, rtl::Reference<ScCondFormatsObj> xCondFormats, sal_Int32 nKey);
 
     virtual ~ScCondFormatObj();
 
@@ -101,6 +103,24 @@ public:
                                 throw(::com::sun::star::uno::RuntimeException,
                                       std::exception) SAL_OVERRIDE;
 
+    // XIndexAccess
+
+    virtual SAL_CALL uno::Type getElementType()
+                                throw(::com::sun::star::uno::RuntimeException,
+                                      std::exception) SAL_OVERRIDE;
+
+    virtual SAL_CALL sal_Bool hasElements()
+                                throw(::com::sun::star::uno::RuntimeException,
+                                      std::exception) SAL_OVERRIDE;
+
+    virtual SAL_CALL sal_Int32 getCount()
+                                throw(::com::sun::star::uno::RuntimeException,
+                                      std::exception) SAL_OVERRIDE;
+
+    virtual SAL_CALL uno::Any getByIndex(sal_Int32 nIndex)
+                                throw(::com::sun::star::uno::RuntimeException,
+                                      std::exception) SAL_OVERRIDE;
+
     // XPropertySet
     virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
                             SAL_CALL getPropertySetInfo()
@@ -142,9 +162,13 @@ public:
                                     ::com::sun::star::lang::WrappedTargetException,
                                     ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
+    ScConditionalFormat* getCoreObject();
+
 private:
-    ScConditionalFormat* mpFormat;
+    rtl::Reference<ScCondFormatsObj> mxCondFormatList;
+    ScDocShell* mpDocShell;
     SfxItemPropertySet maPropSet;
+    sal_Int32 mnKey;
 };
 
 class ScConditionEntryObj : public com::sun::star::beans::XPropertySet,
diff --git a/sc/source/ui/unoobj/condformatuno.cxx b/sc/source/ui/unoobj/condformatuno.cxx
index faa108c..8ceee90 100644
--- a/sc/source/ui/unoobj/condformatuno.cxx
+++ b/sc/source/ui/unoobj/condformatuno.cxx
@@ -235,7 +235,17 @@ void ScCondFormatsObj::removeByID(const sal_Int32 nID)
 uno::Sequence<uno::Reference<sheet::XConditionalFormat> > ScCondFormatsObj::getConditionalFormats()
     throw(uno::RuntimeException, std::exception)
 {
-    return uno::Sequence<uno::Reference<sheet::XConditionalFormat> >();
+    SolarMutexGuard aGuard;
+    ScConditionalFormatList* pFormatList = getCoreObject();;
+    size_t n = pFormatList->size();
+    uno::Sequence<uno::Reference<sheet::XConditionalFormat> > aCondFormats(n);
+    sal_Int32 i = 0;
+    for (ScConditionalFormatList::const_iterator itr = pFormatList->begin(); itr != pFormatList->end(); ++itr, ++i) {
+        uno::Reference<sheet::XConditionalFormat> xCondFormat(new ScCondFormatObj(mpDocShell, this, itr->GetKey()));
+        aCondFormats[i] = xCondFormat;
+    }
+
+    return aCondFormats;
 }
 
 sal_Int32 ScCondFormatsObj::getLength()
@@ -258,9 +268,12 @@ ScConditionalFormatList* ScCondFormatsObj::getCoreObject()
     return pList;
 }
 
-ScCondFormatObj::ScCondFormatObj(ScDocument* /*pDoc*/, ScConditionalFormat* pFormat):
-    mpFormat(pFormat),
-    maPropSet(getCondFormatPropset())
+ScCondFormatObj::ScCondFormatObj(ScDocShell* pDocShell, rtl::Reference<ScCondFormatsObj> xCondFormats,
+        sal_Int32 nKey):
+    mxCondFormatList(xCondFormats),
+    mpDocShell(pDocShell),
+    maPropSet(getCondFormatPropset()),
+    mnKey(nKey)
 {
 }
 
@@ -268,6 +281,16 @@ ScCondFormatObj::~ScCondFormatObj()
 {
 }
 
+ScConditionalFormat* ScCondFormatObj::getCoreObject()
+{
+    ScConditionalFormatList* pList = mxCondFormatList->getCoreObject();
+    ScConditionalFormat* pFormat = pList->GetFormat(mnKey);
+    if (!pFormat)
+        throw uno::RuntimeException();
+
+    return pFormat;
+}
+
 void ScCondFormatObj::addEntry(const uno::Reference<sheet::XConditionEntry>& /*xEntry*/)
     throw(uno::RuntimeException, std::exception)
 {
@@ -278,6 +301,36 @@ void ScCondFormatObj::removeByIndex(const sal_Int32 /*nIndex*/)
 {
 }
 
+uno::Type ScCondFormatObj::getElementType()
+    throw(uno::RuntimeException, std::exception)
+{
+    return cppu::UnoType<sheet::XConditionEntry>::get();
+}
+
+sal_Bool ScCondFormatObj::hasElements()
+    throw(uno::RuntimeException, std::exception)
+{
+    SolarMutexGuard aGuard;
+    ScConditionalFormat* pFormat = getCoreObject();
+    return !pFormat->IsEmpty();
+}
+
+sal_Int32 ScCondFormatObj::getCount()
+    throw(uno::RuntimeException, std::exception)
+{
+    SolarMutexGuard aGuard;
+    ScConditionalFormat* pFormat = getCoreObject();
+
+    return pFormat->size();
+}
+
+uno::Any ScCondFormatObj::getByIndex(sal_Int32 /*nIndex*/)
+    throw(uno::RuntimeException, std::exception)
+{
+    uno::Any aAny;
+    return aAny;
+}
+
 uno::Reference<beans::XPropertySetInfo> SAL_CALL ScCondFormatObj::getPropertySetInfo()
     throw(uno::RuntimeException, std::exception)
 {
@@ -327,14 +380,13 @@ uno::Any SAL_CALL ScCondFormatObj::getPropertyValue( const OUString& aPropertyNa
     switch(pEntry->nWID)
     {
         case ID:
-            aAny <<= sal_Int32(mpFormat->GetKey());
+            aAny <<= sal_Int32(getCoreObject()->GetKey());
         break;
         case CondFormat_Range:
         {
-            const ScRangeList& rRange = mpFormat->GetRange();
-            ScDocShell* pShell = static_cast<ScDocShell*>(mpFormat->GetDocument()->GetDocumentShell());
+            const ScRangeList& rRange = getCoreObject()->GetRange();
             uno::Reference<sheet::XSheetCellRanges> xRange;
-            xRange.set(new ScCellRangesObj(pShell, rRange));
+            xRange.set(new ScCellRangesObj(mpDocShell, rRange));
         }
         break;
         default:
commit 6611a83143b5ac7e1e2eb18605f17d17581fed8c
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Mon Mar 16 20:53:24 2015 +0100

    add test for conditional format list size
    
    Change-Id: Ib7df18a5ff8f9afa00c925245eae0ae8be9e06e9

diff --git a/sc/qa/extras/new_cond_format.cxx b/sc/qa/extras/new_cond_format.cxx
index 84c29a6..3200998 100644
--- a/sc/qa/extras/new_cond_format.cxx
+++ b/sc/qa/extras/new_cond_format.cxx
@@ -20,7 +20,7 @@ using namespace css;
 
 namespace sc_apitest {
 
-#define NUMBER_OF_TESTS 1
+#define NUMBER_OF_TESTS 2
 
 class ScConditionalFormatTest : public CalcUnoApiTest
 {
@@ -32,9 +32,11 @@ public:
 
     uno::Reference< uno::XInterface > init();
     void testRequestCondFormatListFromSheet();
+    void testCondFormatListProperties();
 
     CPPUNIT_TEST_SUITE(ScConditionalFormatTest);
     CPPUNIT_TEST(testRequestCondFormatListFromSheet);
+    CPPUNIT_TEST(testCondFormatListProperties);
     CPPUNIT_TEST_SUITE_END();
 private:
 
@@ -79,6 +81,29 @@ void ScConditionalFormatTest::testRequestCondFormatListFromSheet()
     CPPUNIT_ASSERT(xCondFormats.is());
 }
 
+namespace {
+
+uno::Reference<sheet::XConditionalFormats> getConditionalFormatList(uno::Reference<uno::XInterface> xInterface)
+{
+    uno::Reference<sheet::XSpreadsheet> xSheet(xInterface, uno::UNO_QUERY_THROW);
+    uno::Reference<beans::XPropertySet> xProps(xSheet, uno::UNO_QUERY_THROW);
+    uno::Any aAny = xProps->getPropertyValue("ConditionalFormats");
+    uno::Reference<sheet::XConditionalFormats> xCondFormats;
+    CPPUNIT_ASSERT(aAny >>= xCondFormats);
+    CPPUNIT_ASSERT(xCondFormats.is());
+
+    return xCondFormats;
+}
+
+}
+
+void ScConditionalFormatTest::testCondFormatListProperties()
+{
+    uno::Reference<sheet::XConditionalFormats> xCondFormat =
+        getConditionalFormatList(init());
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(4), xCondFormat->getLength());
+}
+
 void ScConditionalFormatTest::setUp()
 {
     nTest++;
commit d193dbf4aa61874c7a2ad578196c422140959759
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Mon Mar 16 20:40:42 2015 +0100

    try to prevent use-after-free
    
    Change-Id: I7edc3d09d495749a44da29c0cbb30eb0d20fd779

diff --git a/sc/source/ui/inc/condformatuno.hxx b/sc/source/ui/inc/condformatuno.hxx
index 80230e3..2546403 100644
--- a/sc/source/ui/inc/condformatuno.hxx
+++ b/sc/source/ui/inc/condformatuno.hxx
@@ -22,8 +22,10 @@
 
 #include <cppuhelper/implbase1.hxx>
 #include <svl/itemprop.hxx>
+#include <svl/lstner.hxx>
 
 class ScDocument;
+class ScDocShell;
 class ScConditionalFormatList;
 class ScConditionalFormat;
 class ScIconSetFormat;
@@ -43,13 +45,16 @@ class XSheetCellRanges;
 
 } } }
 
-class ScCondFormatsObj : public cppu::WeakImplHelper1<com::sun::star::sheet::XConditionalFormats>
+class ScCondFormatsObj : public cppu::WeakImplHelper1<com::sun::star::sheet::XConditionalFormats>,
+                            public SfxListener
 {
 public:
-    ScCondFormatsObj(ScDocument& rDoc, SCTAB nTab);
+    ScCondFormatsObj(ScDocShell* pDocShell, SCTAB nTab);
 
     virtual ~ScCondFormatsObj();
 
+    virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint) SAL_OVERRIDE;
+
     static ScCondFormatsObj* getImplementation( uno::Reference< com::sun::star::sheet::XConditionalFormats > xCondFormat );
 
     // XConditionalFormats
@@ -73,7 +78,7 @@ public:
 private:
     ScConditionalFormatList* getCoreObject();
     SCTAB mnTab;
-    ScDocument& mrDoc;
+    ScDocShell* mpDocShell;
 };
 
 class ScCondFormatObj : public com::sun::star::sheet::XConditionalFormat,
diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx
index 9b45c2e..8ca9734 100644
--- a/sc/source/ui/unoobj/cellsuno.cxx
+++ b/sc/source/ui/unoobj/cellsuno.cxx
@@ -8608,7 +8608,7 @@ void ScTableSheetObj::GetOnePropertyValue( const SfxItemPropertySimpleEntry* pEn
         }
         else if (pEntry->nWID == SC_WID_UNO_CONDFORMAT)
         {
-            rAny <<= uno::Reference<sheet::XConditionalFormats>(new ScCondFormatsObj(pDocSh->GetDocument(), nTab));
+            rAny <<= uno::Reference<sheet::XConditionalFormats>(new ScCondFormatsObj(pDocSh, nTab));
         }
         else
             ScCellRangeObj::GetOnePropertyValue(pEntry, rAny);
diff --git a/sc/source/ui/unoobj/condformatuno.cxx b/sc/source/ui/unoobj/condformatuno.cxx
index a4da09b..faa108c 100644
--- a/sc/source/ui/unoobj/condformatuno.cxx
+++ b/sc/source/ui/unoobj/condformatuno.cxx
@@ -186,14 +186,26 @@ const IconSetTypeApiMap aIconSetApiMap[] =
 
 }
 
-ScCondFormatsObj::ScCondFormatsObj(ScDocument& rDoc, SCTAB nTab):
+ScCondFormatsObj::ScCondFormatsObj(ScDocShell* pDocShell, SCTAB nTab):
     mnTab(nTab),
-    mrDoc(rDoc)
+    mpDocShell(pDocShell)
 {
+    pDocShell->GetDocument().AddUnoObject(*this);
 }
 
 ScCondFormatsObj::~ScCondFormatsObj()
 {
+    if (mpDocShell)
+        mpDocShell->GetDocument().RemoveUnoObject(*this);
+}
+
+void ScCondFormatsObj::Notify(SfxBroadcaster& /*rBC*/, const SfxHint& rHint)
+{
+    if ( dynamic_cast<const SfxSimpleHint*>(&rHint) &&
+            static_cast<const SfxSimpleHint&>(rHint).GetId() == SFX_HINT_DYING )
+    {
+        mpDocShell = NULL;       // ungueltig geworden
+    }
 }
 
 sal_Int32 ScCondFormatsObj::addByRange(const uno::Reference< sheet::XConditionalFormat >& xCondFormat,
@@ -236,7 +248,10 @@ sal_Int32 ScCondFormatsObj::getLength()
 
 ScConditionalFormatList* ScCondFormatsObj::getCoreObject()
 {
-    ScConditionalFormatList* pList = mrDoc.GetCondFormList(mnTab);
+    if (!mpDocShell)
+        throw uno::RuntimeException();
+
+    ScConditionalFormatList* pList = mpDocShell->GetDocument().GetCondFormList(mnTab);
     if (!pList)
         throw uno::RuntimeException();
 
commit 75590deee3d22413729d2ddac43677db09a7fd83
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Mon Mar 16 20:23:59 2015 +0100

    add first test for new conditional format API
    
    Change-Id: I85cee7b6b55ce35bb900eaf708744117208e57d7

diff --git a/sc/CppunitTest_sc_new_cond_format_api.mk b/sc/CppunitTest_sc_new_cond_format_api.mk
new file mode 100644
index 0000000..c0558d1
--- /dev/null
+++ b/sc/CppunitTest_sc_new_cond_format_api.mk
@@ -0,0 +1,109 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#*************************************************************************
+#
+# 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/.
+#
+#*************************************************************************
+
+$(eval $(call gb_CppunitTest_CppunitTest,sc_new_cond_format_api))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,sc_new_cond_format_api, \
+	sc/qa/extras/new_cond_format \
+))
+
+$(eval $(call gb_CppunitTest_use_external,sc_new_cond_format_api,boost_headers))
+
+$(eval $(call gb_CppunitTest_use_libraries,sc_new_cond_format_api, \
+	basegfx \
+	comphelper \
+	cppu \
+	cppuhelper \
+	drawinglayer \
+	editeng \
+	for \
+	forui \
+	i18nlangtag \
+	msfilter \
+	oox \
+	sal \
+	salhelper \
+	sax \
+	sb \
+	sfx \
+	sot \
+	subsequenttest \
+	svl \
+	svt \
+	svx \
+	svxcore \
+	test \
+	tk \
+	tl \
+	ucbhelper \
+	unotest \
+	utl \
+	vbahelper \
+	vcl \
+	xo \
+	$(gb_UWINAPI) \
+))
+
+$(eval $(call gb_CppunitTest_set_include,sc_new_cond_format_api,\
+	-I$(SRCDIR)/sc/source/ui/inc \
+	-I$(SRCDIR)/sc/inc \
+	$$(INCLUDE) \
+))
+
+$(eval $(call gb_CppunitTest_use_api,sc_new_cond_format_api,\
+	offapi \
+	udkapi \
+))
+
+$(eval $(call gb_CppunitTest_use_ure,sc_new_cond_format_api))
+$(eval $(call gb_CppunitTest_use_vcl,sc_new_cond_format_api))
+
+$(eval $(call gb_CppunitTest_use_components,sc_new_cond_format_api,\
+	basic/util/sb \
+	comphelper/util/comphelp \
+	configmgr/source/configmgr \
+	dbaccess/util/dba \
+	filter/source/config/cache/filterconfig1 \
+	filter/source/storagefilterdetect/storagefd \
+	forms/util/frm \
+	framework/util/fwk \
+	i18npool/util/i18npool \
+	linguistic/source/lng \
+	oox/util/oox \
+	package/source/xstor/xstor \
+	package/util/package2 \
+	sax/source/expatwrap/expwrap \
+	scripting/source/basprov/basprov \
+	scripting/util/scriptframe \
+	sc/util/sc \
+	sc/util/scd \
+	sc/util/scfilt \
+	$(call gb_Helper_optional,SCRIPTING, \
+		sc/util/vbaobj) \
+	sfx2/util/sfx \
+	sot/util/sot \
+	svl/source/fsstor/fsstorage \
+	toolkit/util/tk \
+	ucb/source/core/ucb1 \
+	ucb/source/ucp/file/ucpfile1 \
+	ucb/source/ucp/tdoc/ucptdoc1 \
+	unotools/util/utl \
+	unoxml/source/rdf/unordf \
+	unoxml/source/service/unoxml \
+	xmloff/util/xo \
+	svtools/util/svt \
+))
+
+$(eval $(call gb_CppunitTest_use_configuration,sc_new_cond_format_api))
+
+$(eval $(call gb_CppunitTest_use_unittest_configuration,sc_new_cond_format_api))
+
+# vim: set noet sw=4 ts=4:
diff --git a/sc/Module_sc.mk b/sc/Module_sc.mk
index 83a9742..2e82f0f 100644
--- a/sc/Module_sc.mk
+++ b/sc/Module_sc.mk
@@ -53,6 +53,7 @@ $(eval $(call gb_Module_add_check_targets,sc,\
 
 $(eval $(call gb_Module_add_slowcheck_targets,sc, \
     CppunitTest_sc_condformats \
+    CppunitTest_sc_new_cond_format_api \
     CppunitTest_sc_subsequent_filters_test \
     CppunitTest_sc_subsequent_export_test \
     CppunitTest_sc_bugfix_test \
diff --git a/sc/qa/extras/new_cond_format.cxx b/sc/qa/extras/new_cond_format.cxx
new file mode 100644
index 0000000..84c29a6
--- /dev/null
+++ b/sc/qa/extras/new_cond_format.cxx
@@ -0,0 +1,106 @@
+/* -*- 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/.
+ */
+
+#include <test/calc_unoapi_test.hxx>
+
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/sheet/XConditionalFormats.hpp>
+#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
+#include <com/sun/star/sheet/XSpreadsheet.hpp>
+#include <com/sun/star/table/CellAddress.hpp>
+#include <unonames.hxx>
+
+using namespace css;
+
+namespace sc_apitest {
+
+#define NUMBER_OF_TESTS 1
+
+class ScConditionalFormatTest : public CalcUnoApiTest
+{
+public:
+    ScConditionalFormatTest();
+
+    virtual void setUp() SAL_OVERRIDE;
+    virtual void tearDown() SAL_OVERRIDE;
+
+    uno::Reference< uno::XInterface > init();
+    void testRequestCondFormatListFromSheet();
+
+    CPPUNIT_TEST_SUITE(ScConditionalFormatTest);
+    CPPUNIT_TEST(testRequestCondFormatListFromSheet);
+    CPPUNIT_TEST_SUITE_END();
+private:
+
+    static sal_Int32 nTest;
+    static uno::Reference< lang::XComponent > mxComponent;
+};
+
+sal_Int32 ScConditionalFormatTest::nTest = 0;
+uno::Reference< lang::XComponent > ScConditionalFormatTest::mxComponent;
+
+ScConditionalFormatTest::ScConditionalFormatTest()
+    : CalcUnoApiTest("sc/qa/extras/testdocuments/")
+{
+}
+
+uno::Reference< uno::XInterface > ScConditionalFormatTest::init()
+{
+    if(!mxComponent.is())
+    {
+        // get the test file
+        OUString aFileURL;
+        createFileURL(OUString("new_cond_format_api.ods"), aFileURL);
+        mxComponent = loadFromDesktop(aFileURL);
+    }
+    CPPUNIT_ASSERT_MESSAGE("Component not loaded", mxComponent.is());
+
+    // get the first sheet
+    uno::Reference< sheet::XSpreadsheetDocument > xDoc(mxComponent, uno::UNO_QUERY_THROW);
+    uno::Reference< container::XIndexAccess > xIndex (xDoc->getSheets(), uno::UNO_QUERY_THROW);
+    uno::Reference< sheet::XSpreadsheet > xSheet( xIndex->getByIndex(0), uno::UNO_QUERY_THROW);
+
+    return xSheet;
+}
+
+void ScConditionalFormatTest::testRequestCondFormatListFromSheet()
+{
+    uno::Reference<sheet::XSpreadsheet> xSheet(init(), uno::UNO_QUERY_THROW);
+    uno::Reference<beans::XPropertySet> xProps(xSheet, uno::UNO_QUERY_THROW);
+    uno::Any aAny = xProps->getPropertyValue("ConditionalFormats");
+    uno::Reference<sheet::XConditionalFormats> xCondFormats;
+    CPPUNIT_ASSERT(aAny >>= xCondFormats);
+    CPPUNIT_ASSERT(xCondFormats.is());
+}
+
+void ScConditionalFormatTest::setUp()
+{
+    nTest++;
+    CalcUnoApiTest::setUp();
+}
+
+void ScConditionalFormatTest::tearDown()
+{
+    if (nTest == NUMBER_OF_TESTS)
+    {
+        closeDocument(mxComponent);
+        mxComponent.clear();
+    }
+
+    CalcUnoApiTest::tearDown();
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(ScConditionalFormatTest);
+
+}
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/qa/extras/testdocuments/new_cond_format_api.ods b/sc/qa/extras/testdocuments/new_cond_format_api.ods
new file mode 100644
index 0000000..8208fea
Binary files /dev/null and b/sc/qa/extras/testdocuments/new_cond_format_api.ods differ
commit 48cfe2e4bef5c3eedea22ec8cdc0d3121a32d5f1
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Mon Mar 16 19:46:18 2015 +0100

    integrate new conditional format list into normal UNO stuff
    
    Change-Id: I04ccc7cee4052e5f8e06423216e7d041cd95e2b6

diff --git a/sc/inc/unonames.hxx b/sc/inc/unonames.hxx
index 73ab293..61da350 100644
--- a/sc/inc/unonames.hxx
+++ b/sc/inc/unonames.hxx
@@ -179,6 +179,7 @@
 #define SC_UNONAME_TABLAYOUT        "TableLayout"
 #define SC_UNONAME_AUTOPRINT        "AutomaticPrintArea"
 #define SC_UNONAME_TABCOLOR         "TabColor"
+#define SC_UNONAME_CONDFORMAT       "ConditionalFormats"
 
 #define SC_UNONAME_VISFLAG          "VisibleFlag"
 
diff --git a/sc/inc/unowids.hxx b/sc/inc/unowids.hxx
index fc06efa..bd94159 100644
--- a/sc/inc/unowids.hxx
+++ b/sc/inc/unowids.hxx
@@ -71,7 +71,8 @@
 #define SC_WID_UNO_TABCOLOR         ( SC_WID_UNO_START + 41 )
 #define SC_WID_UNO_NAMES            ( SC_WID_UNO_START + 42 )
 #define SC_WID_UNO_TBLBORD2         ( SC_WID_UNO_START + 43 )
-#define SC_WID_UNO_END              ( SC_WID_UNO_START + 43 )
+#define SC_WID_UNO_CONDFORMAT       ( SC_WID_UNO_START + 44 )
+#define SC_WID_UNO_END              ( SC_WID_UNO_START + 44 )
 
 inline bool IsScUnoWid( sal_uInt16 nWid )
 {
diff --git a/sc/source/ui/inc/condformatuno.hxx b/sc/source/ui/inc/condformatuno.hxx
index c9f041d..80230e3 100644
--- a/sc/source/ui/inc/condformatuno.hxx
+++ b/sc/source/ui/inc/condformatuno.hxx
@@ -20,7 +20,7 @@
 #include <com/sun/star/sheet/XDataBarEntry.hpp>
 #include <com/sun/star/sheet/XIconSetEntry.hpp>
 
-#include <cppuhelper/weak.hxx>
+#include <cppuhelper/implbase1.hxx>
 #include <svl/itemprop.hxx>
 
 class ScDocument;
@@ -43,14 +43,15 @@ class XSheetCellRanges;
 
 } } }
 
-class ScCondFormatsObj : public com::sun::star::sheet::XConditionalFormats,
-                         public cppu::OWeakObject
+class ScCondFormatsObj : public cppu::WeakImplHelper1<com::sun::star::sheet::XConditionalFormats>
 {
 public:
-    ScCondFormatsObj(ScDocument* pDoc, SCTAB nTab);
+    ScCondFormatsObj(ScDocument& rDoc, SCTAB nTab);
 
     virtual ~ScCondFormatsObj();
 
+    static ScCondFormatsObj* getImplementation( uno::Reference< com::sun::star::sheet::XConditionalFormats > xCondFormat );
+
     // XConditionalFormats
     virtual SAL_CALL sal_Int32 addByRange( const uno::Reference< sheet::XConditionalFormat >& xCondFormat,
             const uno::Reference<sheet::XSheetCellRanges>& xRanges)
@@ -70,7 +71,9 @@ public:
                                       std::exception) SAL_OVERRIDE;
 
 private:
-    ScConditionalFormatList* mpFormatList;
+    ScConditionalFormatList* getCoreObject();
+    SCTAB mnTab;
+    ScDocument& mrDoc;
 };
 
 class ScCondFormatObj : public com::sun::star::sheet::XConditionalFormat,
@@ -82,6 +85,8 @@ public:
 
     virtual ~ScCondFormatObj();
 
+    static ScCondFormatObj* getImplementation( uno::Reference<sheet::XConditionalFormat> XCondFormat);
+
     // XConditionalFormat
     virtual SAL_CALL void addEntry(const uno::Reference<sheet::XConditionEntry>& xEntry)
                                 throw(::com::sun::star::uno::RuntimeException,
@@ -146,6 +151,8 @@ public:
     ScConditionEntryObj();
     virtual ~ScConditionEntryObj();
 
+    static ScConditionEntryObj* getImplementation(uno::Reference<sheet::XConditionEntry> xCondition);
+
     // XConditionEntry
     virtual SAL_CALL sal_Int32 getType()
         throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
@@ -204,6 +211,8 @@ public:
     ScColorScaleFormatObj();
     virtual ~ScColorScaleFormatObj();
 
+    static ScColorScaleFormatObj* getImplementation(uno::Reference<beans::XPropertySet> xPropSet);
+
                             // XPropertySet
     virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
                             SAL_CALL getPropertySetInfo()
@@ -257,6 +266,8 @@ public:
     ScDataBarFormatObj();
     virtual ~ScDataBarFormatObj();
 
+    static ScDataBarFormatObj* getImplementation(uno::Reference<beans::XPropertySet> xPropSet);
+
                             // XPropertySet
     virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
                             SAL_CALL getPropertySetInfo()
@@ -310,6 +321,8 @@ public:
     ScIconSetFormatObj();
     virtual ~ScIconSetFormatObj();
 
+    static ScIconSetFormatObj* getImplementation(uno::Reference<beans::XPropertySet> xPropSet);
+
                             // XPropertySet
     virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
                             SAL_CALL getPropertySetInfo()
diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx
index 546083a..9b45c2e 100644
--- a/sc/source/ui/unoobj/cellsuno.cxx
+++ b/sc/source/ui/unoobj/cellsuno.cxx
@@ -60,6 +60,7 @@
 #include <com/sun/star/beans/SetPropertyTolerantFailed.hpp>
 #include <com/sun/star/text/WritingMode2.hpp>
 #include <com/sun/star/text/textfield/Type.hpp>
+#include <com/sun/star/sheet/XConditionalFormats.hpp>
 
 #include "autoform.hxx"
 #include "cellmergeoption.hxx"
@@ -126,6 +127,7 @@
 #include "stylehelper.hxx"
 #include "dputil.hxx"
 #include <sortparam.hxx>
+#include "condformatuno.hxx"
 
 #include <list>
 #include <boost/scoped_array.hpp>
@@ -816,6 +818,7 @@ static const SfxItemPropertySet* lcl_GetSheetPropertySet()
         {OUString(SC_UNONAME_TBLBORD),  SC_WID_UNO_TBLBORD, cppu::UnoType<table::TableBorder>::get(),   0, 0 | CONVERT_TWIPS },
         {OUString(SC_UNONAME_TBLBORD2),  SC_WID_UNO_TBLBORD2, cppu::UnoType<table::TableBorder2>::get(),   0, 0 | CONVERT_TWIPS },
         {OUString(SC_UNONAME_TABLAYOUT),SC_WID_UNO_TABLAYOUT,cppu::UnoType<sal_Int16>::get(),           0, 0 },
+        {OUString(SC_UNONAME_CONDFORMAT), SC_WID_UNO_CONDFORMAT, cppu::UnoType<sheet::XConditionalFormats>::get(), 0, 0},
         {OUString(SC_UNONAME_TOPBORDER),ATTR_BORDER,        ::cppu::UnoType<table::BorderLine>::get(), 0, TOP_BORDER | CONVERT_TWIPS },
         {OUString(SC_UNONAME_TOPBORDER2),ATTR_BORDER,       ::cppu::UnoType<table::BorderLine2>::get(), 0, TOP_BORDER | CONVERT_TWIPS },
         {OUString(SC_UNONAME_USERDEF),  ATTR_USERDEF,       cppu::UnoType<container::XNameContainer>::get(), 0, 0 },
@@ -8441,6 +8444,14 @@ void ScTableSheetObj::SetOnePropertyValue( const SfxItemPropertySimpleEntry* pEn
                 pDocSh->GetDocument().SetCodeName( GetTab_Impl(), aCodeName );
             }
         }
+        else if (pEntry->nWID == SC_WID_UNO_CONDFORMAT)
+        {
+            uno::Reference<sheet::XConditionalFormats> xCondFormat;
+            if (aValue >>= xCondFormat)
+            {
+                // how to set the format correctly
+            }
+        }
         else
             ScCellRangeObj::SetOnePropertyValue(pEntry, aValue);        // base class, no Item WID
     }
@@ -8595,6 +8606,10 @@ void ScTableSheetObj::GetOnePropertyValue( const SfxItemPropertySimpleEntry* pEn
                 pDocSh->GetDocument().GetCodeName( GetTab_Impl(), aCodeName );
             rAny <<= OUString( aCodeName );
         }
+        else if (pEntry->nWID == SC_WID_UNO_CONDFORMAT)
+        {
+            rAny <<= uno::Reference<sheet::XConditionalFormats>(new ScCondFormatsObj(pDocSh->GetDocument(), nTab));
+        }
         else
             ScCellRangeObj::GetOnePropertyValue(pEntry, rAny);
     }
diff --git a/sc/source/ui/unoobj/condformatuno.cxx b/sc/source/ui/unoobj/condformatuno.cxx
index 2f47c81..a4da09b 100644
--- a/sc/source/ui/unoobj/condformatuno.cxx
+++ b/sc/source/ui/unoobj/condformatuno.cxx
@@ -13,6 +13,7 @@
 #include "conditio.hxx"
 #include "colorscale.hxx"
 #include "docsh.hxx"
+#include "miscuno.hxx"
 
 #include "cellsuno.hxx"
 
@@ -70,10 +71,11 @@ struct ConditionEntryApiMap
     sal_Int32 nApiMode;
 };
 
+/*
 ConditionEntryApiMap aConditionEntryMap[] =
 {
-
 };
+*/
 
 enum ColorScaleProperties
 {
@@ -184,8 +186,9 @@ const IconSetTypeApiMap aIconSetApiMap[] =
 
 }
 
-ScCondFormatsObj::ScCondFormatsObj(ScDocument* pDoc, SCTAB nTab):
-    mpFormatList(pDoc->GetCondFormList(nTab))
+ScCondFormatsObj::ScCondFormatsObj(ScDocument& rDoc, SCTAB nTab):
+    mnTab(nTab),
+    mrDoc(rDoc)
 {
 }
 
@@ -194,16 +197,27 @@ ScCondFormatsObj::~ScCondFormatsObj()
 }
 
 sal_Int32 ScCondFormatsObj::addByRange(const uno::Reference< sheet::XConditionalFormat >& xCondFormat,
-        const uno::Reference< sheet::XSheetCellRanges >& xRanges)
+        const uno::Reference< sheet::XSheetCellRanges >& /*xRanges*/)
     throw(uno::RuntimeException, std::exception)
 {
+    if (!xCondFormat.is())
+        return 0;
 
+    SolarMutexGuard aGuard;
+    /*
+    ScCondFormatObj* pFormatObj = ScCondFormatObj::getImplementation(xCondFormat);
+    ScConditionalFormat* pFormat = pFormatObj->getCoreObject();
+    mpFormatList->InsertNew(pFormat);
+    */
     return 0;
 }
 
 void ScCondFormatsObj::removeByID(const sal_Int32 nID)
     throw(uno::RuntimeException, std::exception)
 {
+    SolarMutexGuard aGuard;
+    ScConditionalFormatList* pFormatList = getCoreObject();;
+    pFormatList->erase(nID);
 }
 
 uno::Sequence<uno::Reference<sheet::XConditionalFormat> > ScCondFormatsObj::getConditionalFormats()
@@ -216,10 +230,20 @@ sal_Int32 ScCondFormatsObj::getLength()
     throw(uno::RuntimeException, std::exception)
 {
     SolarMutexGuard aGuard;
-    return mpFormatList->size();;
+    ScConditionalFormatList* pFormatList = getCoreObject();;
+    return pFormatList->size();;
+}
+
+ScConditionalFormatList* ScCondFormatsObj::getCoreObject()
+{
+    ScConditionalFormatList* pList = mrDoc.GetCondFormList(mnTab);
+    if (!pList)
+        throw uno::RuntimeException();
+
+    return pList;
 }
 
-ScCondFormatObj::ScCondFormatObj(ScDocument* pDoc, ScConditionalFormat* pFormat):
+ScCondFormatObj::ScCondFormatObj(ScDocument* /*pDoc*/, ScConditionalFormat* pFormat):
     mpFormat(pFormat),
     maPropSet(getCondFormatPropset())
 {
@@ -229,12 +253,12 @@ ScCondFormatObj::~ScCondFormatObj()
 {
 }
 
-void ScCondFormatObj::addEntry(const uno::Reference<sheet::XConditionEntry>& xEntry)
+void ScCondFormatObj::addEntry(const uno::Reference<sheet::XConditionEntry>& /*xEntry*/)
     throw(uno::RuntimeException, std::exception)
 {
 }
 
-void ScCondFormatObj::removeByIndex(const sal_Int32 nIndex)
+void ScCondFormatObj::removeByIndex(const sal_Int32 /*nIndex*/)
     throw(uno::RuntimeException, std::exception)
 {
 }
@@ -249,7 +273,7 @@ uno::Reference<beans::XPropertySetInfo> SAL_CALL ScCondFormatObj::getPropertySet
 }
 
 void SAL_CALL ScCondFormatObj::setPropertyValue(
-                        const OUString& aPropertyName, const uno::Any& aValue )
+                        const OUString& aPropertyName, const uno::Any& /*aValue*/ )
                 throw(beans::UnknownPropertyException, beans::PropertyVetoException,
                         lang::IllegalArgumentException, lang::WrappedTargetException,
                         uno::RuntimeException, std::exception)
@@ -345,6 +369,12 @@ ScConditionEntryObj::~ScConditionEntryObj()
 {
 }
 
+sal_Int32 ScConditionEntryObj::getType()
+    throw(uno::RuntimeException, std::exception)
+{
+    return 0;
+}
+
 uno::Reference<beans::XPropertySetInfo> SAL_CALL ScConditionEntryObj::getPropertySetInfo()
     throw(uno::RuntimeException, std::exception)
 {
@@ -354,7 +384,7 @@ uno::Reference<beans::XPropertySetInfo> SAL_CALL ScConditionEntryObj::getPropert
 }
 
 void SAL_CALL ScConditionEntryObj::setPropertyValue(
-                        const OUString& aPropertyName, const uno::Any& aValue )
+                        const OUString& aPropertyName, const uno::Any& /*aValue*/ )
                 throw(beans::UnknownPropertyException, beans::PropertyVetoException,
                         lang::IllegalArgumentException, lang::WrappedTargetException,
                         uno::RuntimeException, std::exception)
@@ -473,7 +503,7 @@ uno::Reference<beans::XPropertySetInfo> SAL_CALL ScColorScaleFormatObj::getPrope
 }
 
 void SAL_CALL ScColorScaleFormatObj::setPropertyValue(
-                        const OUString& aPropertyName, const uno::Any& aValue )
+                        const OUString& aPropertyName, const uno::Any& /*aValue*/ )
                 throw(beans::UnknownPropertyException, beans::PropertyVetoException,
                         lang::IllegalArgumentException, lang::WrappedTargetException,
                         uno::RuntimeException, std::exception)
commit b3365f5af7f84936298f694c1751c9109ca5e46f
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Fri Feb 27 10:31:19 2015 +0100

    more code for conditional format API
    
    Change-Id: Iba10222186c84c7a8ecf6928b8145dc941840421

diff --git a/offapi/com/sun/star/sheet/ConditionFormatOperator.idl b/offapi/com/sun/star/sheet/ConditionFormatOperator.idl
index cf4b31a..187fde36 100644
--- a/offapi/com/sun/star/sheet/ConditionFormatOperator.idl
+++ b/offapi/com/sun/star/sheet/ConditionFormatOperator.idl
@@ -57,6 +57,8 @@ constants ConditionFormatOperator
     const long CONTAINS = 20;
 
     const long NOT_CONTAINS = 21;
+
+    const long EXPRESSION = 22;
 };
 
 
diff --git a/offapi/com/sun/star/sheet/DataBar.idl b/offapi/com/sun/star/sheet/DataBar.idl
index 8276e17..9045a67 100644
--- a/offapi/com/sun/star/sheet/DataBar.idl
+++ b/offapi/com/sun/star/sheet/DataBar.idl
@@ -28,7 +28,7 @@ service DataBar
       */
     [property] long AxisPosition;
 
-    [property] boolean Gradient;
+    [property] boolean UseGradient;
 
     [property] com::sun::star::util::Color Color;
 
diff --git a/sc/inc/colorscale.hxx b/sc/inc/colorscale.hxx
index 06c3c80..3e29911 100644
--- a/sc/inc/colorscale.hxx
+++ b/sc/inc/colorscale.hxx
@@ -281,6 +281,7 @@ public:
 
     void SetDataBarData( ScDataBarFormatData* pData );
     const ScDataBarFormatData* GetDataBarData() const;
+    ScDataBarFormatData* GetDataBarData();
 
     virtual void DataChanged(const ScRange& rRange) SAL_OVERRIDE;
     virtual void UpdateReference( sc::RefUpdateContext& rCxt ) SAL_OVERRIDE;
@@ -328,6 +329,7 @@ public:
 
     void SetIconSetData( ScIconSetFormatData* pData );
     const ScIconSetFormatData* GetIconSetData() const;
+    ScIconSetFormatData* GetIconSetData();
 
     virtual void DataChanged(const ScRange& rRange) SAL_OVERRIDE;
     virtual void UpdateReference( sc::RefUpdateContext& rCxt ) SAL_OVERRIDE;
@@ -350,6 +352,8 @@ public:
     iterator end();
     const_iterator end() const;
 
+    size_t size() const;
+
 private:
 
     double GetMinValue() const;
diff --git a/sc/source/core/data/colorscale.cxx b/sc/source/core/data/colorscale.cxx
index 9de8919..9c4d7ce 100644
--- a/sc/source/core/data/colorscale.cxx
+++ b/sc/source/core/data/colorscale.cxx
@@ -692,6 +692,11 @@ void ScDataBarFormat::SetDataBarData( ScDataBarFormatData* pData )
     mpFormatData.reset(pData);
 }
 
+ScDataBarFormatData* ScDataBarFormat::GetDataBarData()
+{
+    return mpFormatData.get();
+}
+
 const ScDataBarFormatData* ScDataBarFormat::GetDataBarData() const
 {
     return mpFormatData.get();
@@ -951,6 +956,11 @@ void ScIconSetFormat::SetIconSetData( ScIconSetFormatData* pFormatData )
     mpFormatData.reset( pFormatData );
 }
 
+ScIconSetFormatData* ScIconSetFormat::GetIconSetData()
+{
+    return mpFormatData.get();
+}
+
 const ScIconSetFormatData* ScIconSetFormat::GetIconSetData() const
 {
     return mpFormatData.get();
@@ -1165,6 +1175,12 @@ ScIconSetMap* ScIconSetFormat::getIconSetMap()
     return aIconSetMap;
 }
 
+size_t ScIconSetFormat::size() const
+{
+    return mpFormatData->maEntries.size();
+}
+
+
 namespace {
 
 const sal_Int32 a3TrafficLights1[] = {
diff --git a/sc/source/ui/inc/condformatuno.hxx b/sc/source/ui/inc/condformatuno.hxx
index 4d83fc9..c9f041d 100644
--- a/sc/source/ui/inc/condformatuno.hxx
+++ b/sc/source/ui/inc/condformatuno.hxx
@@ -16,6 +16,9 @@
 #include <com/sun/star/sheet/XConditionalFormats.hpp>
 #include <com/sun/star/sheet/XConditionalFormat.hpp>
 #include <com/sun/star/sheet/XConditionEntry.hpp>
+#include <com/sun/star/sheet/XColorScaleEntry.hpp>
+#include <com/sun/star/sheet/XDataBarEntry.hpp>
+#include <com/sun/star/sheet/XIconSetEntry.hpp>
 
 #include <cppuhelper/weak.hxx>
 #include <svl/itemprop.hxx>
@@ -26,6 +29,7 @@ class ScConditionalFormat;
 class ScIconSetFormat;
 class ScDataBarFormat;
 class ScColorScale;
+class ScCondFormatEntry;
 
 using namespace com::sun::star;
 
@@ -139,6 +143,7 @@ class ScConditionEntryObj : public com::sun::star::beans::XPropertySet,
 {
 public:
 
+    ScConditionEntryObj();
     virtual ~ScConditionEntryObj();
 
     // XConditionEntry
@@ -188,6 +193,7 @@ public:
 
 private:
     SfxItemPropertySet maPropSet;
+    ScCondFormatEntry* pFormat;
 };
 
 class ScColorScaleFormatObj : public com::sun::star::beans::XPropertySet,
@@ -195,6 +201,7 @@ class ScColorScaleFormatObj : public com::sun::star::beans::XPropertySet,
 {
 public:
 
+    ScColorScaleFormatObj();
     virtual ~ScColorScaleFormatObj();
 
                             // XPropertySet
@@ -247,6 +254,7 @@ class ScDataBarFormatObj : public com::sun::star::beans::XPropertySet,
                          public cppu::OWeakObject
 {
 public:
+    ScDataBarFormatObj();
     virtual ~ScDataBarFormatObj();
 
                             // XPropertySet
@@ -291,7 +299,7 @@ public:
                                     ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
 private:
-    ScDataBarFormat* pDataBar;
+    ScDataBarFormat* mpDataBar;
     SfxItemPropertySet maPropSet;
 };
 
@@ -299,6 +307,7 @@ class ScIconSetFormatObj : public com::sun::star::beans::XPropertySet,
                          public cppu::OWeakObject
 {
 public:
+    ScIconSetFormatObj();
     virtual ~ScIconSetFormatObj();
 
                             // XPropertySet
@@ -344,7 +353,7 @@ public:
 
 private:
 
-    ScIconSetFormat* pIconSet;
+    ScIconSetFormat* mpIconSet;
     SfxItemPropertySet maPropSet;
 };
 
diff --git a/sc/source/ui/unoobj/condformatuno.cxx b/sc/source/ui/unoobj/condformatuno.cxx
index af7496f..2f47c81 100644
--- a/sc/source/ui/unoobj/condformatuno.cxx
+++ b/sc/source/ui/unoobj/condformatuno.cxx
@@ -12,23 +12,176 @@
 #include "document.hxx"
 #include "conditio.hxx"
 #include "colorscale.hxx"
+#include "docsh.hxx"
+
+#include "cellsuno.hxx"
 
 #include <vcl/svapp.hxx>
-#include <rt/ustring.hxx>
+#include <rtl/ustring.hxx>
+
+#include <com/sun/star/sheet/DataBarAxis.hpp>
+#include <com/sun/star/sheet/IconSetType.hpp>
+#include <com/sun/star/sheet/DataBarAxis.hpp>
+#include <com/sun/star/sheet/ConditionFormatOperator.hpp>
 
 namespace {
 
+enum CondFormatProperties
+{
+    ID,
+    CondFormat_Range
+};
+
 const SfxItemPropertyMapEntry* getCondFormatPropset()
 {
     static const SfxItemPropertyMapEntry aCondFormatPropertyMap_Impl[] =
     {
-        {OUString("ID"), 0, cppu::UnoType<sal_Int32>::get(), 0, 0},
-        {OUString("Range"), 0, cppu::UnoType<sheet::XSheetCellRanges>::get(), 0, 0},
+        {OUString("ID"), ID, cppu::UnoType<sal_Int32>::get(), 0, 0},
+        {OUString("Range"), CondFormat_Range, cppu::UnoType<sheet::XSheetCellRanges>::get(), 0, 0},
         {OUString(), 0, css::uno::Type(), 0, 0}
     };
     return aCondFormatPropertyMap_Impl;
 }
 
+enum ConditionEntryProperties
+{
+    StyleName,
+    Formula1,
+    Formula2,
+    Operator
+};
+
+const SfxItemPropertyMapEntry* getConditionEntryrPropSet()
+{
+    static const SfxItemPropertyMapEntry aConditionEntryPropertyMap_Impl[] =
+    {
+        {OUString("StyleName"), StyleName, cppu::UnoType<OUString>::get(), 0, 0},
+        {OUString("Formula1"), Formula1, cppu::UnoType<OUString>::get(), 0, 0},
+        {OUString("Formula2"), Formula2, cppu::UnoType<OUString>::get(), 0, 0},
+        {OUString("Operator"), Operator, getCppuType(&sheet::ConditionFormatOperator::EQUAL), 0, 0 },
+        {OUString(), 0, css::uno::Type(), 0, 0}
+    };
+    return aConditionEntryPropertyMap_Impl;
+}
+
+struct ConditionEntryApiMap
+{
+    ScConditionMode eMode;
+    sal_Int32 nApiMode;
+};
+
+ConditionEntryApiMap aConditionEntryMap[] =
+{
+
+};
+
+enum ColorScaleProperties
+{
+    ColorScaleEntries
+};
+
+const SfxItemPropertyMapEntry* getColorScalePropSet()
+{
+    static const SfxItemPropertyMapEntry aColorScalePropertyMap_Impl[] =
+    {
+        {OUString("ColorScaleEntries"), ColorScaleEntries, getCppuType((uno::Sequence< sheet::XColorScaleEntry >*)0), 0, 0 },
+        {OUString(), 0, css::uno::Type(), 0, 0}
+    };
+    return aColorScalePropertyMap_Impl;
+}
+
+enum DataBarProperties
+{
+    AxisPosition,
+    UseGradient,
+    UseNegativeColor,
+    DataBar_ShowValue,
+    DataBar_Color,
+    AxisColor,
+    NegativeColor,
+    DataBarEntries
+};
+
+const SfxItemPropertyMapEntry* getDataBarPropSet()
+{
+    static const SfxItemPropertyMapEntry aDataBarPropertyMap_Impl[] =
+    {
+        {OUString("AxisPosition"), AxisPosition, getCppuType(&sheet::DataBarAxis::AXIS_AUTOMATIC), 0, 0 },
+        {OUString("UseGradient"), UseGradient, getBooleanCppuType(), 0, 0 },
+        {OUString("UseNegativeColor"), UseNegativeColor, getBooleanCppuType(), 0, 0 },
+        {OUString("ShowValue"), DataBar_ShowValue, getBooleanCppuType(), 0, 0 },
+        {OUString("Color"), DataBar_Color, cppu::UnoType<sal_Int32>::get(), 0, 0},
+        {OUString("AxisColor"), AxisColor, cppu::UnoType<sal_Int32>::get(), 0, 0},
+        {OUString("NegativeColor"), NegativeColor, cppu::UnoType<sal_Int32>::get(), 0, 0},
+        {OUString("DataBarEntries"), DataBarEntries, getCppuType((uno::Sequence< sheet::XDataBarEntry >*)0), 0, 0 },
+        {OUString(), 0, css::uno::Type(), 0, 0}
+    };
+    return aDataBarPropertyMap_Impl;
+}
+
+struct DataBarAxisApiMap
+{
+    databar::ScAxisPosition ePos;
+    sal_Int32 nApiPos;
+};
+
+DataBarAxisApiMap aDataBarAxisMap[] =
+{
+    { databar::NONE, sheet::DataBarAxis::AXIS_NONE },
+    { databar::AUTOMATIC, sheet::DataBarAxis::AXIS_AUTOMATIC },
+    { databar::MIDDLE, sheet::DataBarAxis::AXIS_MIDDLE }
+};
+
+enum IconSetProperties
+{
+    Icons,
+    Reverse,
+    ShowValue,
+    IconSetEntries
+};
+
+const SfxItemPropertyMapEntry* getIconSetPropSet()
+{
+    static const SfxItemPropertyMapEntry aIconSetPropertyMap_Impl[] =
+    {
+        {OUString("Icons"), Icons, getCppuType(&sheet::IconSetType::ICONSET_3SYMBOLS), 0, 0 },
+        {OUString("Reverse"), Reverse, getBooleanCppuType(), 0, 0 },
+        {OUString("ShowValue"), ShowValue, getBooleanCppuType(), 0, 0 },
+        {OUString("IconSetEntries"), IconSetEntries, getCppuType((uno::Sequence< sheet::XIconSetEntry >*)0), 0, 0 },
+        {OUString(), 0, css::uno::Type(), 0, 0}
+    };
+    return aIconSetPropertyMap_Impl;
+}
+
+struct IconSetTypeApiMap
+{
+    ScIconSetType eType;
+    sal_Int32 nApiType;
+};
+
+const IconSetTypeApiMap aIconSetApiMap[] =
+{
+    { IconSet_3Arrows, sheet::IconSetType::ICONSET_3ARROWS },
+    { IconSet_3ArrowsGray, sheet::IconSetType::ICONSET_3ARROWS_GRAY },
+    { IconSet_3Flags, sheet::IconSetType::ICONSET_3FLAGS },
+    { IconSet_3TrafficLights1, sheet::IconSetType::ICONSET_3TRAFFICLIGHTS1 },
+    { IconSet_3TrafficLights2, sheet::IconSetType::ICONSET_3TRAFFICLIGHTS2 },
+    { IconSet_3Signs, sheet::IconSetType::ICONSET_3SIGNS },
+    { IconSet_3Symbols, sheet::IconSetType::ICONSET_3SYMBOLS },
+    { IconSet_3Symbols2, sheet::IconSetType::ICONSET_3SYMBOLS2 },
+    { IconSet_3Smilies, sheet::IconSetType::ICONSET_3SMILIES },
+    { IconSet_3ColorSmilies, sheet::IconSetType::ICONSET_3COLOR_SIMILIES },
+    { IconSet_4Arrows, sheet::IconSetType::ICONSET_4ARROWS },
+    { IconSet_4ArrowsGray, sheet::IconSetType::ICONSET_4ARROWS_GRAY },
+    { IconSet_4Rating, sheet::IconSetType::ICONSET_4RATING },
+    { IconSet_4RedToBlack, sheet::IconSetType::ICONSET_4RED_TO_BLACK },
+    { IconSet_4TrafficLights, sheet::IconSetType::ICONSET_4TRAFFICLIGHTS },
+    { IconSet_5Arrows, sheet::IconSetType::ICONSET_5ARROWS },
+    { IconSet_5ArrowsGray, sheet::IconSetType::ICONSET_4ARROWS_GRAY },
+    { IconSet_5Ratings, sheet::IconSetType::ICONSET_5RATINGS },
+    { IconSet_5Quarters, sheet::IconSetType::ICONSET_5QUARTERS },
+};
+
 }
 
 ScCondFormatsObj::ScCondFormatsObj(ScDocument* pDoc, SCTAB nTab):
@@ -36,6 +189,10 @@ ScCondFormatsObj::ScCondFormatsObj(ScDocument* pDoc, SCTAB nTab):
 {
 }
 
+ScCondFormatsObj::~ScCondFormatsObj()
+{
+}
+
 sal_Int32 ScCondFormatsObj::addByRange(const uno::Reference< sheet::XConditionalFormat >& xCondFormat,
         const uno::Reference< sheet::XSheetCellRanges >& xRanges)
     throw(uno::RuntimeException, std::exception)
@@ -68,6 +225,10 @@ ScCondFormatObj::ScCondFormatObj(ScDocument* pDoc, ScConditionalFormat* pFormat)
 {
 }
 
+ScCondFormatObj::~ScCondFormatObj()
+{
+}
+
 void ScCondFormatObj::addEntry(const uno::Reference<sheet::XConditionEntry>& xEntry)
     throw(uno::RuntimeException, std::exception)
 {
@@ -95,10 +256,21 @@ void SAL_CALL ScCondFormatObj::setPropertyValue(
 {
     SolarMutexGuard aGuard;
 
-    const SfxItemPropertyMap& rPropertyMap = GetItemPropertyMap();     // from derived class
+    const SfxItemPropertyMap& rPropertyMap = maPropSet.getPropertyMap();     // from derived class
     const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( aPropertyName );
     if ( !pEntry )
         throw beans::UnknownPropertyException();
+
+    switch(pEntry->nWID)
+    {
+        case ID:
+            throw lang::IllegalArgumentException();
+        break;
+        case CondFormat_Range:
+        break;
+        default:
+            SAL_WARN("sc", "unknown property");
+    }
 }
 
 uno::Any SAL_CALL ScCondFormatObj::getPropertyValue( const OUString& aPropertyName )
@@ -107,13 +279,28 @@ uno::Any SAL_CALL ScCondFormatObj::getPropertyValue( const OUString& aPropertyNa
 {
     SolarMutexGuard aGuard;
 
-    const SfxItemPropertyMap& rPropertyMap = GetItemPropertyMap();     // from derived class
+    const SfxItemPropertyMap& rPropertyMap = maPropSet.getPropertyMap();     // from derived class
     const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( aPropertyName );
     if ( !pEntry )
         throw beans::UnknownPropertyException();
 
     uno::Any aAny;
-    // GetOnePropertyValue( pEntry, aAny );
+    switch(pEntry->nWID)
+    {
+        case ID:
+            aAny <<= sal_Int32(mpFormat->GetKey());
+        break;
+        case CondFormat_Range:
+        {
+            const ScRangeList& rRange = mpFormat->GetRange();
+            ScDocShell* pShell = static_cast<ScDocShell*>(mpFormat->GetDocument()->GetDocumentShell());
+            uno::Reference<sheet::XSheetCellRanges> xRange;
+            xRange.set(new ScCellRangesObj(pShell, rRange));
+        }
+        break;
+        default:
+            SAL_WARN("sc", "unknown property");
+    }
     return aAny;
 }
 
@@ -149,6 +336,15 @@ void SAL_CALL ScCondFormatObj::removeVetoableChangeListener( const OUString&,
     SAL_WARN("sc", "not implemented");
 }
 
+ScConditionEntryObj::ScConditionEntryObj():
+    maPropSet(getConditionEntryrPropSet())
+{
+}
+
+ScConditionEntryObj::~ScConditionEntryObj()
+{
+}
+
 uno::Reference<beans::XPropertySetInfo> SAL_CALL ScConditionEntryObj::getPropertySetInfo()
     throw(uno::RuntimeException, std::exception)
 {
@@ -165,10 +361,24 @@ void SAL_CALL ScConditionEntryObj::setPropertyValue(
 {
     SolarMutexGuard aGuard;
 
-    const SfxItemPropertyMap& rPropertyMap = GetItemPropertyMap();     // from derived class
+    const SfxItemPropertyMap& rPropertyMap = maPropSet.getPropertyMap();     // from derived class
     const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( aPropertyName );
     if ( !pEntry )
         throw beans::UnknownPropertyException();
+
+    switch(pEntry->nWID)
+    {
+        case StyleName:
+        break;
+        case Formula1:
+        break;
+        case Formula2:
+        break;
+        case Operator:
+        break;
+        default:
+            SAL_WARN("sc", "unsupported property");
+    }
 }
 
 uno::Any SAL_CALL ScConditionEntryObj::getPropertyValue( const OUString& aPropertyName )
@@ -177,13 +387,39 @@ uno::Any SAL_CALL ScConditionEntryObj::getPropertyValue( const OUString& aProper
 {
     SolarMutexGuard aGuard;
 
-    const SfxItemPropertyMap& rPropertyMap = GetItemPropertyMap();     // from derived class
+    const SfxItemPropertyMap& rPropertyMap = maPropSet.getPropertyMap();     // from derived class
     const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( aPropertyName );
     if ( !pEntry )
         throw beans::UnknownPropertyException();
 
     uno::Any aAny;
-    // GetOnePropertyValue( pEntry, aAny );
+    switch(pEntry->nWID)
+    {
+        case StyleName:
+            aAny <<= pFormat->GetStyle();
+        break;
+        case Formula1:
+        {
+            ScAddress aCursor = pFormat->GetSrcPos();
+            OUString aFormula = pFormat->GetExpression(aCursor, 0);
+            aAny <<= aFormula;
+        }
+        break;
+        case Formula2:
+        {
+            ScAddress aCursor = pFormat->GetSrcPos();
+            OUString aFormula = pFormat->GetExpression(aCursor, 1);
+            aAny <<= aFormula;
+        }
+        break;
+        case Operator:
+        {
+
+        }
+        break;
+        default:
+            SAL_WARN("sc", "unsupported property");
+    }
     return aAny;
 }
 
@@ -219,6 +455,15 @@ void SAL_CALL ScConditionEntryObj::removeVetoableChangeListener( const OUString&
     SAL_WARN("sc", "not implemented");
 }
 
+ScColorScaleFormatObj::ScColorScaleFormatObj():
+    maPropSet(getColorScalePropSet())
+{
+}
+
+ScColorScaleFormatObj::~ScColorScaleFormatObj()
+{
+}
+
 uno::Reference<beans::XPropertySetInfo> SAL_CALL ScColorScaleFormatObj::getPropertySetInfo()
     throw(uno::RuntimeException, std::exception)
 {
@@ -235,10 +480,18 @@ void SAL_CALL ScColorScaleFormatObj::setPropertyValue(
 {
     SolarMutexGuard aGuard;
 
-    const SfxItemPropertyMap& rPropertyMap = GetItemPropertyMap();     // from derived class
+    const SfxItemPropertyMap& rPropertyMap = maPropSet.getPropertyMap();     // from derived class
     const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( aPropertyName );
     if ( !pEntry )
         throw beans::UnknownPropertyException();
+
+    switch(pEntry->nWID)
+    {
+        case ColorScaleEntries:
+        break;
+        default:
+            SAL_WARN("sc", "unknown property");
+    }
 }
 
 uno::Any SAL_CALL ScColorScaleFormatObj::getPropertyValue( const OUString& aPropertyName )
@@ -247,13 +500,21 @@ uno::Any SAL_CALL ScColorScaleFormatObj::getPropertyValue( const OUString& aProp
 {
     SolarMutexGuard aGuard;
 
-    const SfxItemPropertyMap& rPropertyMap = GetItemPropertyMap();     // from derived class
+    const SfxItemPropertyMap& rPropertyMap = maPropSet.getPropertyMap();     // from derived class
     const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( aPropertyName );
     if ( !pEntry )
         throw beans::UnknownPropertyException();
 
     uno::Any aAny;
-    // GetOnePropertyValue( pEntry, aAny );
+
+    switch(pEntry->nWID)
+    {
+        case ColorScaleEntries:
+        break;
+        default:
+            SAL_WARN("sc", "unknown property");
+    }
+
     return aAny;
 }
 
@@ -289,6 +550,15 @@ void SAL_CALL ScColorScaleFormatObj::removeVetoableChangeListener( const OUStrin
     SAL_WARN("sc", "not implemented");
 }
 
+ScDataBarFormatObj::ScDataBarFormatObj():
+    maPropSet(getDataBarPropSet())
+{
+}
+
+ScDataBarFormatObj::~ScDataBarFormatObj()
+{
+}
+
 uno::Reference<beans::XPropertySetInfo> SAL_CALL ScDataBarFormatObj::getPropertySetInfo()
     throw(uno::RuntimeException, std::exception)
 {
@@ -306,10 +576,82 @@ void SAL_CALL ScDataBarFormatObj::setPropertyValue(
 {
     SolarMutexGuard aGuard;
 
-    const SfxItemPropertyMap& rPropertyMap = GetItemPropertyMap();     // from derived class
+    const SfxItemPropertyMap& rPropertyMap = maPropSet.getPropertyMap();     // from derived class
     const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( aPropertyName );
     if ( !pEntry )
         throw beans::UnknownPropertyException();
+
+    switch(pEntry->nWID)
+    {
+        case AxisPosition:
+        {
+        }
+        break;
+        case UseGradient:
+        {
+            bool bUseGradient = true;
+            if (aValue >>= bUseGradient)
+            {
+                mpDataBar->GetDataBarData()->mbGradient = bUseGradient;
+            }
+        }
+        break;
+        case UseNegativeColor:
+        {
+            bool bUseNegativeColor = false;
+            if (aValue >>= bUseNegativeColor)
+            {
+                mpDataBar->GetDataBarData()->mbNeg = bUseNegativeColor;
+                if (bUseNegativeColor && !mpDataBar->GetDataBarData()->mpNegativeColor)
+                {
+                    mpDataBar->GetDataBarData()->mpNegativeColor.reset(new Color(COL_AUTO));
+                }
+            }
+        }
+        break;
+        case DataBar_ShowValue:
+        {
+            bool bShowValue = true;
+            if (aValue >>= bShowValue)
+            {
+                mpDataBar->GetDataBarData()->mbOnlyBar = !bShowValue;
+            }
+        }
+        break;
+        case DataBar_Color:
+        {
+            sal_Int32 nColor = COL_AUTO;
+            if (aValue >>= nColor)
+            {
+                mpDataBar->GetDataBarData()->maPositiveColor.SetColor(nColor);
+            }
+        }
+        break;
+        case AxisColor:
+        {
+            sal_Int32 nAxisColor = COL_AUTO;
+            if (aValue >>= nAxisColor)
+            {
+                mpDataBar->GetDataBarData()->maAxisColor.SetColor(nAxisColor);
+            }
+        }
+        break;
+        case NegativeColor:
+        {
+            sal_Int32 nNegativeColor = COL_AUTO;
+            if ((aValue >>= nNegativeColor) && mpDataBar->GetDataBarData()->mbNeg)
+            {
+                mpDataBar->GetDataBarData()->mpNegativeColor->SetColor(nNegativeColor);
+            }
+            else
+                throw lang::IllegalArgumentException();
+        }
+        break;
+        case DataBarEntries:
+        {
+        }
+        break;
+    }
 }
 
 uno::Any SAL_CALL ScDataBarFormatObj::getPropertyValue( const OUString& aPropertyName )
@@ -318,13 +660,70 @@ uno::Any SAL_CALL ScDataBarFormatObj::getPropertyValue( const OUString& aPropert
 {
     SolarMutexGuard aGuard;
 
-    const SfxItemPropertyMap& rPropertyMap = GetItemPropertyMap();     // from derived class
+    const SfxItemPropertyMap& rPropertyMap = maPropSet.getPropertyMap();     // from derived class
     const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( aPropertyName );
     if ( !pEntry )
         throw beans::UnknownPropertyException();
 
     uno::Any aAny;
-    // GetOnePropertyValue( pEntry, aAny );
+    switch(pEntry->nWID)
+    {
+        case AxisPosition:
+        {
+            databar::ScAxisPosition ePos = mpDataBar->GetDataBarData()->meAxisPosition;
+            sal_Int32 nApiPos = sheet::DataBarAxis::AXIS_NONE;
+            for (size_t i = 0; i < SAL_N_ELEMENTS(aDataBarAxisMap); ++i)
+            {
+                if (aDataBarAxisMap[i].ePos == ePos)
+                {
+                    nApiPos = aDataBarAxisMap[i].nApiPos;
+                }
+            }
+
+            aAny <<= nApiPos;
+        }
+        break;
+        case UseGradient:
+        {
+           aAny <<= mpDataBar->GetDataBarData()->mbGradient;
+        }
+        break;
+        case UseNegativeColor:
+        {
+           aAny <<= mpDataBar->GetDataBarData()->mbNeg;
+        }
+        break;
+        case DataBar_ShowValue:
+        {
+            aAny <<= !mpDataBar->GetDataBarData()->mbOnlyBar;
+        }
+        break;
+        case DataBar_Color:
+        {
+            sal_Int32 nColor = mpDataBar->GetDataBarData()->maPositiveColor.GetColor();
+            aAny <<= nColor;
+        }
+        break;
+        case AxisColor:
+        {
+            sal_Int32 nAxisColor = mpDataBar->GetDataBarData()->maAxisColor.GetColor();
+            aAny <<= nAxisColor;
+        }
+        break;
+        case NegativeColor:
+        {
+            if (mpDataBar->GetDataBarData()->mbNeg && mpDataBar->GetDataBarData()->mpNegativeColor)
+            {
+                sal_Int32 nNegativeColor = mpDataBar->GetDataBarData() ->mpNegativeColor->GetColor();
+                aAny <<= nNegativeColor;
+            }
+        }
+        break;
+        case DataBarEntries:
+        {
+        }
+        break;
+    }
     return aAny;
 }
 
@@ -360,6 +759,15 @@ void SAL_CALL ScDataBarFormatObj::removeVetoableChangeListener( const OUString&,
     SAL_WARN("sc", "not implemented");
 }
 
+ScIconSetFormatObj::ScIconSetFormatObj():
+    maPropSet(getIconSetPropSet())
+{
+}
+
+ScIconSetFormatObj::~ScIconSetFormatObj()
+{
+}
+
 uno::Reference<beans::XPropertySetInfo> SAL_CALL ScIconSetFormatObj::getPropertySetInfo()
     throw(uno::RuntimeException, std::exception)
 {
@@ -377,10 +785,52 @@ void SAL_CALL ScIconSetFormatObj::setPropertyValue(
 {
     SolarMutexGuard aGuard;
 
-    const SfxItemPropertyMap& rPropertyMap = GetItemPropertyMap();     // from derived class
+    const SfxItemPropertyMap& rPropertyMap = maPropSet.getPropertyMap();     // from derived class
     const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( aPropertyName );
     if ( !pEntry )
         throw beans::UnknownPropertyException();
+
+    switch(pEntry->nWID)
+    {
+        case ShowValue:
+        {
+            bool bShowValue = true;
+            aValue >>= bShowValue;
+            mpIconSet->GetIconSetData()->mbShowValue = bShowValue;
+        }
+        break;
+        case Reverse:
+        {
+            bool bReverse = false;
+            aValue >>= bReverse;
+            mpIconSet->GetIconSetData()->mbReverse = bReverse;
+        }
+        break;
+        case Icons:
+        {
+            sal_Int32 nApiType = -1;
+            aValue >>= nApiType;
+            ScIconSetType eType = IconSet_3Arrows;
+            bool bFound = false;
+            for (size_t i = 0; i < SAL_N_ELEMENTS(aIconSetApiMap); ++i)
+            {
+                if (aIconSetApiMap[i].nApiType == nApiType)
+                {
+                    eType = aIconSetApiMap[i].eType;
+                    bFound = true;
+                    break;
+                }
+            }
+
+            if (!bFound)
+            {
+                throw lang::IllegalArgumentException();
+            }
+
+            mpIconSet->GetIconSetData()->eIconSetType = eType;
+        }
+        break;
+    }
 }
 
 uno::Any SAL_CALL ScIconSetFormatObj::getPropertyValue( const OUString& aPropertyName )
@@ -389,13 +839,46 @@ uno::Any SAL_CALL ScIconSetFormatObj::getPropertyValue( const OUString& aPropert
 {
     SolarMutexGuard aGuard;
 
-    const SfxItemPropertyMap& rPropertyMap = GetItemPropertyMap();     // from derived class
+    const SfxItemPropertyMap& rPropertyMap = maPropSet.getPropertyMap();     // from derived class
     const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( aPropertyName );
     if ( !pEntry )
         throw beans::UnknownPropertyException();
 
     uno::Any aAny;
-    // GetOnePropertyValue( pEntry, aAny );
+
+    switch(pEntry->nWID)
+    {
+        case ShowValue:
+            aAny <<= mpIconSet->GetIconSetData()->mbShowValue;
+        break;
+        case Reverse:
+            aAny <<= mpIconSet->GetIconSetData()->mbReverse;
+        break;
+        case Icons:
+        {
+            ScIconSetType eType = mpIconSet->GetIconSetData()->eIconSetType;
+            for (size_t i = 0; i < SAL_N_ELEMENTS(aIconSetApiMap); ++i)
+            {
+                if (aIconSetApiMap[i].eType == eType)
+                {
+                    aAny <<= aIconSetApiMap[i].nApiType;
+                    break;
+                }
+            }
+        }
+        break;
+        case IconSetEntries:
+        {
+            uno::Sequence< sheet::XIconSetEntry > aEntries(mpIconSet->size());
+            for (auto it = mpIconSet->begin(), itEnd = mpIconSet->end(); it != itEnd; ++it)
+            {
+                //aEntries.operator[] = ;
+            }
+        }
+        break;
+        default:
+            SAL_WARN("sc", "unknown property");
+    }
     return aAny;
 }
 
commit e7154614b3798f6878f2700505a007417d90c45d
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Fri Feb 27 06:34:42 2015 +0100

    fix gbuild-to-ide script
    
    Change-Id: Iff624d9e31ef5ba7d87b92124c60b02cd577c50b

diff --git a/bin/gbuild-to-ide b/bin/gbuild-to-ide
index 3a78d9f..ee2fa99 100755
--- a/bin/gbuild-to-ide
+++ b/bin/gbuild-to-ide
@@ -146,6 +146,7 @@ class GbuildParser:
                 if len(defparts) == 1:
                     defparts.append(None)
                 state.defs[defparts[0]] = defparts[1]
+            state.defs["LIBO_INTERNAL_ONLY"] = None
             return state
         cxxmatch = GbuildParser.cxxpattern.match(line)
         if cxxmatch:
commit 396ae481ff0a732e7ca179a8ad0300121c6a3858
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Fri Feb 27 03:16:35 2015 +0100

    add implementation for new conditional formatting
    
    Change-Id: I4c283ec8a1f5b51c0274d9c520cd653be7f75aa2

diff --git a/offapi/com/sun/star/sheet/ConditionalFormat.idl b/offapi/com/sun/star/sheet/ConditionalFormat.idl
index d168da3..953d3cf 100644
--- a/offapi/com/sun/star/sheet/ConditionalFormat.idl
+++ b/offapi/com/sun/star/sheet/ConditionalFormat.idl
@@ -35,7 +35,7 @@ service ConditionalFormat
     /** represents the range for the conditional format
       All ranges have to be in the same sheet.
      */
-    [property] XSheetCellRanges range;
+    [property] XSheetCellRanges Range;
 
     [property] long ID;
 };
diff --git a/sc/Library_sc.mk b/sc/Library_sc.mk
index d8cf1bc..d2fd5cd 100644
--- a/sc/Library_sc.mk
+++ b/sc/Library_sc.mk
@@ -542,6 +542,7 @@ $(eval $(call gb_Library_add_exception_objects,sc,\
     sc/source/ui/unoobj/cellvaluebinding \
     sc/source/ui/unoobj/chart2uno \
     sc/source/ui/unoobj/chartuno \
+    sc/source/ui/unoobj/condformatuno \
     sc/source/ui/unoobj/confuno \
     sc/source/ui/unoobj/convuno \
     sc/source/ui/unoobj/cursuno \
diff --git a/sc/source/ui/inc/condformatuno.hxx b/sc/source/ui/inc/condformatuno.hxx
new file mode 100644
index 0000000..4d83fc9
--- /dev/null
+++ b/sc/source/ui/inc/condformatuno.hxx
@@ -0,0 +1,353 @@
+/* -*- 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/.
+ */
+
+#ifndef _SC_CONDFORMATUNO_HXX_
+#define _SC_CONDFORMATUNO_HXX_
+
+#include "address.hxx"
+
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/sheet/XConditionalFormats.hpp>
+#include <com/sun/star/sheet/XConditionalFormat.hpp>
+#include <com/sun/star/sheet/XConditionEntry.hpp>
+
+#include <cppuhelper/weak.hxx>
+#include <svl/itemprop.hxx>
+
+class ScDocument;
+class ScConditionalFormatList;
+class ScConditionalFormat;
+class ScIconSetFormat;
+class ScDataBarFormat;
+class ScColorScale;
+
+using namespace com::sun::star;
+
+namespace com { namespace sun { namespace star {
+
+namespace sheet {
+
+class XSheetCellRanges;
+
+}
+
+} } }
+
+class ScCondFormatsObj : public com::sun::star::sheet::XConditionalFormats,
+                         public cppu::OWeakObject
+{
+public:
+    ScCondFormatsObj(ScDocument* pDoc, SCTAB nTab);
+
+    virtual ~ScCondFormatsObj();
+
+    // XConditionalFormats
+    virtual SAL_CALL sal_Int32 addByRange( const uno::Reference< sheet::XConditionalFormat >& xCondFormat,
+            const uno::Reference<sheet::XSheetCellRanges>& xRanges)
+                                throw(::com::sun::star::uno::RuntimeException,
+                                      std::exception) SAL_OVERRIDE;
+
+    virtual SAL_CALL void removeByID( const sal_Int32 nID )
+                                throw(::com::sun::star::uno::RuntimeException,
+                                      std::exception) SAL_OVERRIDE;
+
+    virtual SAL_CALL uno::Sequence< uno::Reference< sheet::XConditionalFormat > > getConditionalFormats()
+                                throw(::com::sun::star::uno::RuntimeException,
+                                      std::exception) SAL_OVERRIDE;
+
+    virtual SAL_CALL sal_Int32 getLength()
+                                throw(::com::sun::star::uno::RuntimeException,
+                                      std::exception) SAL_OVERRIDE;
+
+private:
+    ScConditionalFormatList* mpFormatList;
+};
+
+class ScCondFormatObj : public com::sun::star::sheet::XConditionalFormat,
+                        public com::sun::star::beans::XPropertySet,
+                        public cppu::OWeakObject
+{
+public:
+    ScCondFormatObj(ScDocument* pDoc, ScConditionalFormat* pList);
+
+    virtual ~ScCondFormatObj();
+
+    // XConditionalFormat
+    virtual SAL_CALL void addEntry(const uno::Reference<sheet::XConditionEntry>& xEntry)
+                                throw(::com::sun::star::uno::RuntimeException,
+                                      std::exception) SAL_OVERRIDE;
+
+    virtual SAL_CALL void removeByIndex(const sal_Int32 nIndex)
+                                throw(::com::sun::star::uno::RuntimeException,
+                                      std::exception) SAL_OVERRIDE;
+
+    // XPropertySet
+    virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
+                            SAL_CALL getPropertySetInfo()
+                                throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   setPropertyValue( const OUString& aPropertyName,
+                                    const ::com::sun::star::uno::Any& aValue )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::beans::PropertyVetoException,
+                                    ::com::sun::star::lang::IllegalArgumentException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
+                                    const OUString& PropertyName )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   addPropertyChangeListener( const OUString& aPropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XPropertyChangeListener >& xListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   removePropertyChangeListener( const OUString& aPropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XPropertyChangeListener >& aListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   addVetoableChangeListener( const OUString& PropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XVetoableChangeListener >& aListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   removeVetoableChangeListener( const OUString& PropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XVetoableChangeListener >& aListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+private:
+    ScConditionalFormat* mpFormat;
+    SfxItemPropertySet maPropSet;
+};
+
+class ScConditionEntryObj : public com::sun::star::beans::XPropertySet,
+                            public com::sun::star::sheet::XConditionEntry,
+                         public cppu::OWeakObject
+{
+public:
+
+    virtual ~ScConditionEntryObj();
+
+    // XConditionEntry
+    virtual SAL_CALL sal_Int32 getType()
+        throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+    // XPropertySet
+    virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
+                            SAL_CALL getPropertySetInfo()
+                                throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   setPropertyValue( const OUString& aPropertyName,
+                                    const ::com::sun::star::uno::Any& aValue )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::beans::PropertyVetoException,
+                                    ::com::sun::star::lang::IllegalArgumentException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
+                                    const OUString& PropertyName )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   addPropertyChangeListener( const OUString& aPropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XPropertyChangeListener >& xListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   removePropertyChangeListener( const OUString& aPropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XPropertyChangeListener >& aListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   addVetoableChangeListener( const OUString& PropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XVetoableChangeListener >& aListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   removeVetoableChangeListener( const OUString& PropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XVetoableChangeListener >& aListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+private:
+    SfxItemPropertySet maPropSet;
+};
+
+class ScColorScaleFormatObj : public com::sun::star::beans::XPropertySet,
+                         public cppu::OWeakObject
+{
+public:
+
+    virtual ~ScColorScaleFormatObj();
+
+                            // XPropertySet
+    virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
+                            SAL_CALL getPropertySetInfo()
+                                throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   setPropertyValue( const OUString& aPropertyName,
+                                    const ::com::sun::star::uno::Any& aValue )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::beans::PropertyVetoException,
+                                    ::com::sun::star::lang::IllegalArgumentException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
+                                    const OUString& PropertyName )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   addPropertyChangeListener( const OUString& aPropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XPropertyChangeListener >& xListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   removePropertyChangeListener( const OUString& aPropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XPropertyChangeListener >& aListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   addVetoableChangeListener( const OUString& PropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XVetoableChangeListener >& aListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   removeVetoableChangeListener( const OUString& PropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XVetoableChangeListener >& aListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+private:
+    ScColorScale* pColorScale;
+    SfxItemPropertySet maPropSet;
+};
+
+class ScDataBarFormatObj : public com::sun::star::beans::XPropertySet,
+                         public cppu::OWeakObject
+{
+public:
+    virtual ~ScDataBarFormatObj();
+
+                            // XPropertySet
+    virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
+                            SAL_CALL getPropertySetInfo()
+                                throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   setPropertyValue( const OUString& aPropertyName,
+                                    const ::com::sun::star::uno::Any& aValue )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::beans::PropertyVetoException,
+                                    ::com::sun::star::lang::IllegalArgumentException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
+                                    const OUString& PropertyName )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   addPropertyChangeListener( const OUString& aPropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XPropertyChangeListener >& xListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   removePropertyChangeListener( const OUString& aPropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XPropertyChangeListener >& aListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   addVetoableChangeListener( const OUString& PropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XVetoableChangeListener >& aListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   removeVetoableChangeListener( const OUString& PropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XVetoableChangeListener >& aListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+private:
+    ScDataBarFormat* pDataBar;
+    SfxItemPropertySet maPropSet;
+};
+
+class ScIconSetFormatObj : public com::sun::star::beans::XPropertySet,
+                         public cppu::OWeakObject
+{
+public:
+    virtual ~ScIconSetFormatObj();
+
+                            // XPropertySet
+    virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
+                            SAL_CALL getPropertySetInfo()
+                                throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   setPropertyValue( const OUString& aPropertyName,
+                                    const ::com::sun::star::uno::Any& aValue )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::beans::PropertyVetoException,
+                                    ::com::sun::star::lang::IllegalArgumentException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
+                                    const OUString& PropertyName )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   addPropertyChangeListener( const OUString& aPropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XPropertyChangeListener >& xListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   removePropertyChangeListener( const OUString& aPropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XPropertyChangeListener >& aListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   addVetoableChangeListener( const OUString& PropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XVetoableChangeListener >& aListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+    virtual void SAL_CALL   removeVetoableChangeListener( const OUString& PropertyName,
+                                    const ::com::sun::star::uno::Reference<
+                                        ::com::sun::star::beans::XVetoableChangeListener >& aListener )
+                                throw(::com::sun::star::beans::UnknownPropertyException,
+                                    ::com::sun::star::lang::WrappedTargetException,
+                                    ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
+
+private:
+
+    ScIconSetFormat* pIconSet;
+    SfxItemPropertySet maPropSet;
+};
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/unoobj/condformatuno.cxx b/sc/source/ui/unoobj/condformatuno.cxx
new file mode 100644
index 0000000..af7496f
--- /dev/null
+++ b/sc/source/ui/unoobj/condformatuno.cxx
@@ -0,0 +1,434 @@
+/* -*- 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/.
+ */
+
+#include "condformatuno.hxx"
+
+#include "document.hxx"
+#include "conditio.hxx"
+#include "colorscale.hxx"
+
+#include <vcl/svapp.hxx>
+#include <rt/ustring.hxx>
+
+namespace {
+
+const SfxItemPropertyMapEntry* getCondFormatPropset()
+{
+    static const SfxItemPropertyMapEntry aCondFormatPropertyMap_Impl[] =
+    {
+        {OUString("ID"), 0, cppu::UnoType<sal_Int32>::get(), 0, 0},
+        {OUString("Range"), 0, cppu::UnoType<sheet::XSheetCellRanges>::get(), 0, 0},
+        {OUString(), 0, css::uno::Type(), 0, 0}
+    };
+    return aCondFormatPropertyMap_Impl;
+}
+
+}
+
+ScCondFormatsObj::ScCondFormatsObj(ScDocument* pDoc, SCTAB nTab):
+    mpFormatList(pDoc->GetCondFormList(nTab))
+{
+}
+
+sal_Int32 ScCondFormatsObj::addByRange(const uno::Reference< sheet::XConditionalFormat >& xCondFormat,
+        const uno::Reference< sheet::XSheetCellRanges >& xRanges)
+    throw(uno::RuntimeException, std::exception)
+{
+
+    return 0;
+}
+
+void ScCondFormatsObj::removeByID(const sal_Int32 nID)
+    throw(uno::RuntimeException, std::exception)
+{
+}
+
+uno::Sequence<uno::Reference<sheet::XConditionalFormat> > ScCondFormatsObj::getConditionalFormats()
+    throw(uno::RuntimeException, std::exception)
+{
+    return uno::Sequence<uno::Reference<sheet::XConditionalFormat> >();
+}
+
+sal_Int32 ScCondFormatsObj::getLength()
+    throw(uno::RuntimeException, std::exception)
+{
+    SolarMutexGuard aGuard;
+    return mpFormatList->size();;
+}
+
+ScCondFormatObj::ScCondFormatObj(ScDocument* pDoc, ScConditionalFormat* pFormat):
+    mpFormat(pFormat),
+    maPropSet(getCondFormatPropset())
+{
+}
+
+void ScCondFormatObj::addEntry(const uno::Reference<sheet::XConditionEntry>& xEntry)
+    throw(uno::RuntimeException, std::exception)
+{
+}
+
+void ScCondFormatObj::removeByIndex(const sal_Int32 nIndex)
+    throw(uno::RuntimeException, std::exception)
+{
+}
+
+uno::Reference<beans::XPropertySetInfo> SAL_CALL ScCondFormatObj::getPropertySetInfo()
+    throw(uno::RuntimeException, std::exception)
+{
+    SolarMutexGuard aGuard;
+    static uno::Reference<beans::XPropertySetInfo> aRef(
+        new SfxItemPropertySetInfo( maPropSet.getPropertyMap()));
+    return aRef;
+}
+
+void SAL_CALL ScCondFormatObj::setPropertyValue(
+                        const OUString& aPropertyName, const uno::Any& aValue )
+                throw(beans::UnknownPropertyException, beans::PropertyVetoException,
+                        lang::IllegalArgumentException, lang::WrappedTargetException,
+                        uno::RuntimeException, std::exception)
+{
+    SolarMutexGuard aGuard;
+
+    const SfxItemPropertyMap& rPropertyMap = GetItemPropertyMap();     // from derived class
+    const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( aPropertyName );
+    if ( !pEntry )
+        throw beans::UnknownPropertyException();
+}
+
+uno::Any SAL_CALL ScCondFormatObj::getPropertyValue( const OUString& aPropertyName )
+                throw(beans::UnknownPropertyException, lang::WrappedTargetException,
+                        uno::RuntimeException, std::exception)
+{
+    SolarMutexGuard aGuard;
+
+    const SfxItemPropertyMap& rPropertyMap = GetItemPropertyMap();     // from derived class
+    const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( aPropertyName );
+    if ( !pEntry )
+        throw beans::UnknownPropertyException();
+
+    uno::Any aAny;
+    // GetOnePropertyValue( pEntry, aAny );
+    return aAny;
+}
+
+void SAL_CALL ScCondFormatObj::addPropertyChangeListener( const OUString& /* aPropertyName */,
+                            const uno::Reference<beans::XPropertyChangeListener>& /* aListener */)
+                            throw(beans::UnknownPropertyException,
+                                    lang::WrappedTargetException, uno::RuntimeException, std::exception)
+{
+    SAL_WARN("sc", "not implemented");
+}
+
+void SAL_CALL ScCondFormatObj::removePropertyChangeListener( const OUString& /* aPropertyName */,
+                            const uno::Reference<beans::XPropertyChangeListener>& /* aListener */)
+                            throw(beans::UnknownPropertyException,
+                                    lang::WrappedTargetException, uno::RuntimeException, std::exception)
+{
+    SAL_WARN("sc", "not implemented");
+}
+
+void SAL_CALL ScCondFormatObj::addVetoableChangeListener( const OUString&,
+                            const uno::Reference<beans::XVetoableChangeListener>&)
+                            throw(beans::UnknownPropertyException,
+                                lang::WrappedTargetException, uno::RuntimeException, std::exception)
+{
+    SAL_WARN("sc", "not implemented");
+}
+
+void SAL_CALL ScCondFormatObj::removeVetoableChangeListener( const OUString&,
+                            const uno::Reference<beans::XVetoableChangeListener>&)
+                            throw(beans::UnknownPropertyException,
+                                lang::WrappedTargetException, uno::RuntimeException, std::exception)
+{
+    SAL_WARN("sc", "not implemented");
+}
+
+uno::Reference<beans::XPropertySetInfo> SAL_CALL ScConditionEntryObj::getPropertySetInfo()
+    throw(uno::RuntimeException, std::exception)
+{
+    static uno::Reference<beans::XPropertySetInfo> aRef(
+        new SfxItemPropertySetInfo( maPropSet.getPropertyMap() ));
+    return aRef;
+}
+
+void SAL_CALL ScConditionEntryObj::setPropertyValue(
+                        const OUString& aPropertyName, const uno::Any& aValue )
+                throw(beans::UnknownPropertyException, beans::PropertyVetoException,
+                        lang::IllegalArgumentException, lang::WrappedTargetException,
+                        uno::RuntimeException, std::exception)
+{
+    SolarMutexGuard aGuard;
+
+    const SfxItemPropertyMap& rPropertyMap = GetItemPropertyMap();     // from derived class
+    const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( aPropertyName );
+    if ( !pEntry )
+        throw beans::UnknownPropertyException();
+}
+
+uno::Any SAL_CALL ScConditionEntryObj::getPropertyValue( const OUString& aPropertyName )
+                throw(beans::UnknownPropertyException, lang::WrappedTargetException,
+                        uno::RuntimeException, std::exception)
+{
+    SolarMutexGuard aGuard;
+
+    const SfxItemPropertyMap& rPropertyMap = GetItemPropertyMap();     // from derived class
+    const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( aPropertyName );
+    if ( !pEntry )
+        throw beans::UnknownPropertyException();
+
+    uno::Any aAny;
+    // GetOnePropertyValue( pEntry, aAny );
+    return aAny;
+}
+
+void SAL_CALL ScConditionEntryObj::addPropertyChangeListener( const OUString& /* aPropertyName */,
+                            const uno::Reference<beans::XPropertyChangeListener>& /* aListener */)
+                            throw(beans::UnknownPropertyException,
+                                    lang::WrappedTargetException, uno::RuntimeException, std::exception)
+{
+    SAL_WARN("sc", "not implemented");
+}
+
+void SAL_CALL ScConditionEntryObj::removePropertyChangeListener( const OUString& /* aPropertyName */,
+                            const uno::Reference<beans::XPropertyChangeListener>& /* aListener */)
+                            throw(beans::UnknownPropertyException,
+                                    lang::WrappedTargetException, uno::RuntimeException, std::exception)
+{
+    SAL_WARN("sc", "not implemented");
+}
+
+void SAL_CALL ScConditionEntryObj::addVetoableChangeListener( const OUString&,
+                            const uno::Reference<beans::XVetoableChangeListener>&)
+                            throw(beans::UnknownPropertyException,
+                                lang::WrappedTargetException, uno::RuntimeException, std::exception)
+{
+    SAL_WARN("sc", "not implemented");
+}
+
+void SAL_CALL ScConditionEntryObj::removeVetoableChangeListener( const OUString&,
+                            const uno::Reference<beans::XVetoableChangeListener>&)
+                            throw(beans::UnknownPropertyException,
+                                lang::WrappedTargetException, uno::RuntimeException, std::exception)
+{
+    SAL_WARN("sc", "not implemented");
+}
+
+uno::Reference<beans::XPropertySetInfo> SAL_CALL ScColorScaleFormatObj::getPropertySetInfo()
+    throw(uno::RuntimeException, std::exception)
+{
+    static uno::Reference<beans::XPropertySetInfo> aRef(
+        new SfxItemPropertySetInfo( maPropSet.getPropertyMap() ));
+    return aRef;
+}
+
+void SAL_CALL ScColorScaleFormatObj::setPropertyValue(
+                        const OUString& aPropertyName, const uno::Any& aValue )
+                throw(beans::UnknownPropertyException, beans::PropertyVetoException,
+                        lang::IllegalArgumentException, lang::WrappedTargetException,
+                        uno::RuntimeException, std::exception)
+{
+    SolarMutexGuard aGuard;
+
+    const SfxItemPropertyMap& rPropertyMap = GetItemPropertyMap();     // from derived class
+    const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( aPropertyName );
+    if ( !pEntry )
+        throw beans::UnknownPropertyException();
+}
+
+uno::Any SAL_CALL ScColorScaleFormatObj::getPropertyValue( const OUString& aPropertyName )
+                throw(beans::UnknownPropertyException, lang::WrappedTargetException,
+                        uno::RuntimeException, std::exception)
+{
+    SolarMutexGuard aGuard;
+
+    const SfxItemPropertyMap& rPropertyMap = GetItemPropertyMap();     // from derived class
+    const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( aPropertyName );
+    if ( !pEntry )
+        throw beans::UnknownPropertyException();
+
+    uno::Any aAny;
+    // GetOnePropertyValue( pEntry, aAny );
+    return aAny;
+}
+
+void SAL_CALL ScColorScaleFormatObj::addPropertyChangeListener( const OUString& /* aPropertyName */,
+                            const uno::Reference<beans::XPropertyChangeListener>& /* aListener */)
+                            throw(beans::UnknownPropertyException,
+                                    lang::WrappedTargetException, uno::RuntimeException, std::exception)
+{
+    SAL_WARN("sc", "not implemented");
+}
+
+void SAL_CALL ScColorScaleFormatObj::removePropertyChangeListener( const OUString& /* aPropertyName */,
+                            const uno::Reference<beans::XPropertyChangeListener>& /* aListener */)
+                            throw(beans::UnknownPropertyException,
+                                    lang::WrappedTargetException, uno::RuntimeException, std::exception)
+{
+    SAL_WARN("sc", "not implemented");
+}
+
+void SAL_CALL ScColorScaleFormatObj::addVetoableChangeListener( const OUString&,
+                            const uno::Reference<beans::XVetoableChangeListener>&)
+                            throw(beans::UnknownPropertyException,
+                                lang::WrappedTargetException, uno::RuntimeException, std::exception)
+{
+    SAL_WARN("sc", "not implemented");
+}
+
+void SAL_CALL ScColorScaleFormatObj::removeVetoableChangeListener( const OUString&,
+                            const uno::Reference<beans::XVetoableChangeListener>&)
+                            throw(beans::UnknownPropertyException,
+                                lang::WrappedTargetException, uno::RuntimeException, std::exception)
+{
+    SAL_WARN("sc", "not implemented");
+}
+
+uno::Reference<beans::XPropertySetInfo> SAL_CALL ScDataBarFormatObj::getPropertySetInfo()
+    throw(uno::RuntimeException, std::exception)
+{
+    SolarMutexGuard aGuard;
+    static uno::Reference<beans::XPropertySetInfo> aRef(
+        new SfxItemPropertySetInfo( maPropSet.getPropertyMap() ));
+    return aRef;
+}
+
+void SAL_CALL ScDataBarFormatObj::setPropertyValue(
+                        const OUString& aPropertyName, const uno::Any& aValue )
+                throw(beans::UnknownPropertyException, beans::PropertyVetoException,
+                        lang::IllegalArgumentException, lang::WrappedTargetException,
+                        uno::RuntimeException, std::exception)
+{
+    SolarMutexGuard aGuard;
+
+    const SfxItemPropertyMap& rPropertyMap = GetItemPropertyMap();     // from derived class
+    const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( aPropertyName );
+    if ( !pEntry )
+        throw beans::UnknownPropertyException();
+}
+
+uno::Any SAL_CALL ScDataBarFormatObj::getPropertyValue( const OUString& aPropertyName )
+                throw(beans::UnknownPropertyException, lang::WrappedTargetException,
+                        uno::RuntimeException, std::exception)
+{
+    SolarMutexGuard aGuard;
+
+    const SfxItemPropertyMap& rPropertyMap = GetItemPropertyMap();     // from derived class
+    const SfxItemPropertySimpleEntry* pEntry = rPropertyMap.getByName( aPropertyName );
+    if ( !pEntry )
+        throw beans::UnknownPropertyException();
+
+    uno::Any aAny;

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list