[PATCH] unotools: remove some unused items

Thomas Arnhold (via Code Review) gerrit at gerrit.libreoffice.org
Wed Apr 3 09:26:00 PDT 2013


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/3191

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/91/3191/1

unotools: remove some unused items

Change-Id: I95bcac6a3ff8cf4644c9d1596c75cac2d9cd94fe
---
M officecfg/registry/schema/org/openoffice/Office/Common.xcs
M sfx2/source/appl/app.cxx
M unotools/Library_utl.mk
M unotools/Package_inc.mk
D unotools/inc/unotools/accelcfg.hxx
M unotools/inc/unotools/itemholderbase.hxx
D unotools/inc/unotools/workingsetoptions.hxx
M unotools/inc/unotools/xmlaccelcfg.hxx
D unotools/source/config/accelcfg.cxx
M unotools/source/config/itemholder1.cxx
D unotools/source/config/workingsetoptions.cxx
11 files changed, 11 insertions(+), 740 deletions(-)



diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
index 66e353c..f819ebe 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
@@ -3694,21 +3694,6 @@
         </group>
       </group>
     </group>
-    <group oor:name="WorkingSet">
-      <info>
-        <deprecated/>
-        <desc>Lists open documents or windows.</desc>
-      </info>
-      <prop oor:name="WindowList" oor:type="oor:string-list">
-        <!-- OldPath: SavedWorkingSet -->
-        <!-- OldLocation: soffice.ini -->
-        <!-- UIHints: Tools  Options - General  Save -->
-        <info>
-          <deprecated/>
-          <desc>Lists open documents or windows.</desc>
-        </info>
-      </prop>
-    </group>
     <group oor:name="AddXMLToStorage">
       <info>
         <desc>Contains settings specifying if a XML package is added to the
diff --git a/sfx2/source/appl/app.cxx b/sfx2/source/appl/app.cxx
index 479f9d4..3b31dbd 100644
--- a/sfx2/source/appl/app.cxx
+++ b/sfx2/source/appl/app.cxx
@@ -113,7 +113,6 @@
 #include <unotools/securityoptions.hxx>
 #include <unotools/localisationoptions.hxx>
 #include <unotools/fontoptions.hxx>
-#include <unotools/workingsetoptions.hxx>
 #include <unotools/syslocaleoptions.hxx>
 #include <unotools/syslocale.hxx>
 #include <framework/addonsoptions.hxx>
diff --git a/unotools/Library_utl.mk b/unotools/Library_utl.mk
index d99c18b..dcef7a8 100644
--- a/unotools/Library_utl.mk
+++ b/unotools/Library_utl.mk
@@ -71,7 +71,6 @@
 $(eval $(call gb_Library_add_exception_objects,utl,\
     unotools/source/accessibility/accessiblerelationsethelper \
     unotools/source/accessibility/accessiblestatesethelper \
-    unotools/source/config/accelcfg \
     unotools/source/config/bootstrap \
     unotools/source/config/cmdoptions \
     unotools/source/config/compatibility \
@@ -104,7 +103,6 @@
     unotools/source/config/syslocaleoptions \
     unotools/source/config/useroptions \
     unotools/source/config/viewoptions \
-    unotools/source/config/workingsetoptions \
     unotools/source/config/xmlaccelcfg \
     unotools/source/i18n/calendarwrapper \
     unotools/source/i18n/caserotate \
diff --git a/unotools/Package_inc.mk b/unotools/Package_inc.mk
index 92ec12e..1a47ec1 100644
--- a/unotools/Package_inc.mk
+++ b/unotools/Package_inc.mk
@@ -27,7 +27,6 @@
 
 $(eval $(call gb_Package_Package,unotools_inc,$(SRCDIR)/unotools/inc))
 
-$(eval $(call gb_Package_add_file,unotools_inc,inc/unotools/accelcfg.hxx,unotools/accelcfg.hxx))
 $(eval $(call gb_Package_add_file,unotools_inc,inc/unotools/accessiblerelationsethelper.hxx,unotools/accessiblerelationsethelper.hxx))
 $(eval $(call gb_Package_add_file,unotools_inc,inc/unotools/accessiblestatesethelper.hxx,unotools/accessiblestatesethelper.hxx))
 $(eval $(call gb_Package_add_file,unotools_inc,inc/unotools/atom.hxx,unotools/atom.hxx))
@@ -96,7 +95,6 @@
 $(eval $(call gb_Package_add_file,unotools_inc,inc/unotools/unotoolsdllapi.h,unotools/unotoolsdllapi.h))
 $(eval $(call gb_Package_add_file,unotools_inc,inc/unotools/useroptions.hxx,unotools/useroptions.hxx))
 $(eval $(call gb_Package_add_file,unotools_inc,inc/unotools/viewoptions.hxx,unotools/viewoptions.hxx))
-$(eval $(call gb_Package_add_file,unotools_inc,inc/unotools/workingsetoptions.hxx,unotools/workingsetoptions.hxx))
 $(eval $(call gb_Package_add_file,unotools_inc,inc/unotools/xmlaccelcfg.hxx,unotools/xmlaccelcfg.hxx))
 
 # vim: set noet sw=4 ts=4:
diff --git a/unotools/inc/unotools/accelcfg.hxx b/unotools/inc/unotools/accelcfg.hxx
deleted file mode 100644
index c60a4f0..0000000
--- a/unotools/inc/unotools/accelcfg.hxx
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-#ifndef INCLUDED_unotools_ACCELCFG_HXX
-#define INCLUDED_unotools_ACCELCFG_HXX
-
-#include <com/sun/star/awt/KeyEvent.hpp>
-#include <unotools/options.hxx>
-
-#include <rtl/ustring.hxx>
-#include <tools/stream.hxx>
-
-struct SvtAcceleratorConfigItem
-{
-    sal_uInt16      nCode;
-    sal_uInt16      nModifier;
-    OUString        aCommand;
-};
-
-#include <list>
-typedef ::std::list < SvtAcceleratorConfigItem > SvtAcceleratorItemList;
-
-class SvStream;
-class KeyEvent;
-class String;
-class SvtAcceleratorConfig_Impl;
-
-class SvtAcceleratorConfiguration: public utl::detail::Options
-{
-    SvtAcceleratorConfig_Impl*    pImp;
-
-private:
-
-public:
-                    // get the global accelerators
-                    SvtAcceleratorConfiguration();
-
-                    // get special accelerators
-    static String   GetStreamName();
-    static SvStream* GetDefaultStream( StreamMode );
-
-                    virtual ~SvtAcceleratorConfiguration();
-
-                    // save the configuration to a stream, f.e. into a document
-    bool            Commit( SvStream& rStream );
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/unotools/inc/unotools/itemholderbase.hxx b/unotools/inc/unotools/itemholderbase.hxx
index 2efc282..831cba4 100644
--- a/unotools/inc/unotools/itemholderbase.hxx
+++ b/unotools/inc/unotools/itemholderbase.hxx
@@ -33,7 +33,6 @@
 
 enum EItem
 {
-    E_ACCELCFG                      ,   //
     E_ACCESSIBILITYOPTIONS          ,   // 2
     E_ADDXMLTOSTORAGEOPTIONS        ,   //
     E_APEARCFG                      ,   // 2
@@ -56,8 +55,6 @@
 
     E_HELPOPTIONS                   ,   // 2
     E_HISTORYOPTIONS                ,   //
-
-    E_JAVAOPTIONS                   ,   //
 
     E_LANGUAGEOPTIONS               ,   // 2
     E_LINGUCFG                      ,   //
@@ -87,11 +84,7 @@
     E_VIEWOPTIONS_DIALOG            ,   //
     E_VIEWOPTIONS_TABDIALOG         ,   //
     E_VIEWOPTIONS_TABPAGE           ,   //
-    E_VIEWOPTIONS_WINDOW            ,   //
-
-    E_WORKINGSETOPTIONS             ,   //
-
-    E_XMLACCELCFG                       //
+    E_VIEWOPTIONS_WINDOW                //
 };
 
 struct TItemInfo
diff --git a/unotools/inc/unotools/workingsetoptions.hxx b/unotools/inc/unotools/workingsetoptions.hxx
deleted file mode 100644
index c351da8..0000000
--- a/unotools/inc/unotools/workingsetoptions.hxx
+++ /dev/null
@@ -1,122 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-#ifndef INCLUDED_unotools_WORKINGSETOPTIONS_HXX
-#define INCLUDED_unotools_WORKINGSETOPTIONS_HXX
-
-#include <sal/types.h>
-#include <osl/mutex.hxx>
-#include <com/sun/star/uno/Sequence.h>
-#include <rtl/ustring.hxx>
-#include <unotools/options.hxx>
-
-//_________________________________________________________________________________________________________________
-//  forward declarations
-//_________________________________________________________________________________________________________________
-
-/*-************************************************************************************************************//**
-    @short          forward declaration to our private date container implementation
-    @descr          We use these class as internal member to support small memory requirements.
-                    You can create the container if it is neccessary. The class which use these mechanism
-                    is faster and smaller then a complete implementation!
-*//*-*************************************************************************************************************/
-
-class SvtWorkingSetOptions_Impl;
-
-/*-************************************************************************************************************//**
-    @short          collect information about security features
-    @descr          -
-
-    @implements     -
-    @base           -
-
-    @devstatus      ready to use
-*//*-*************************************************************************************************************/
-
-class SAL_WARN_UNUSED SvtWorkingSetOptions : public utl::detail::Options
-{
-    //-------------------------------------------------------------------------------------------------------------
-    //  public methods
-    //-------------------------------------------------------------------------------------------------------------
-
-    public:
-
-        //---------------------------------------------------------------------------------------------------------
-        //  constructor / destructor
-        //---------------------------------------------------------------------------------------------------------
-
-        /*-****************************************************************************************************//**
-            @short      standard constructor and destructor
-            @descr      This will initialize an instance with default values.
-                        We implement these class with a refcount mechanism! Every instance of this class increase it
-                        at create and decrease it at delete time - but all instances use the same data container!
-                        He is implemented as a static member ...
-
-            @seealso    member m_nRefCount
-            @seealso    member m_pDataContainer
-
-            @param      -
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-         SvtWorkingSetOptions();
-        virtual ~SvtWorkingSetOptions();
-
-    //-------------------------------------------------------------------------------------------------------------
-    //  private methods
-    //-------------------------------------------------------------------------------------------------------------
-
-        /*-****************************************************************************************************//**
-            @short      return a reference to a static mutex
-            @descr      These class use his own static mutex to be threadsafe.
-                        We create a static mutex only for one ime and use at different times.
-
-            @seealso    -
-
-            @param      -
-            @return     A reference to a static mutex member.
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        static ::osl::Mutex& GetOwnStaticMutex();
-
-    //-------------------------------------------------------------------------------------------------------------
-    //  private member
-    //-------------------------------------------------------------------------------------------------------------
-
-    private:
-
-        /*Attention
-
-            Don't initialize these static member in these header!
-            a) Double dfined symbols will be detected ...
-            b) and unresolved externals exist at linking time.
-            Do it in your source only.
-         */
-
-        static SvtWorkingSetOptions_Impl*   m_pDataContainer    ;   /// impl. data container as dynamic pointer for smaller memory requirements!
-        static sal_Int32                    m_nRefCount         ;   /// internal ref count mechanism
-
-};      // class SvtWorkingSetOptions
-
-#endif  // #ifndef INCLUDED_unotools_WORKINGSETOPTIONS_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/unotools/inc/unotools/xmlaccelcfg.hxx b/unotools/inc/unotools/xmlaccelcfg.hxx
index 8e2c698..48417b2 100644
--- a/unotools/inc/unotools/xmlaccelcfg.hxx
+++ b/unotools/inc/unotools/xmlaccelcfg.hxx
@@ -23,7 +23,16 @@
 #include <com/sun/star/xml/sax/XDocumentHandler.hpp>
 #include <cppuhelper/weak.hxx>
 
-#include <unotools/accelcfg.hxx>
+struct SvtAcceleratorConfigItem
+{
+    sal_uInt16      nCode;
+    sal_uInt16      nModifier;
+    OUString        aCommand;
+};
+
+#include <list>
+typedef ::std::list < SvtAcceleratorConfigItem > SvtAcceleratorItemList;
+
 
 class OReadAccelatorDocumentHandler : public ::com::sun::star::xml::sax::XDocumentHandler,
                                       public ::cppu::OWeakObject
diff --git a/unotools/source/config/accelcfg.cxx b/unotools/source/config/accelcfg.cxx
deleted file mode 100644
index 9c48b7f..0000000
--- a/unotools/source/config/accelcfg.cxx
+++ /dev/null
@@ -1,202 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-
-#include "rtl/instance.hxx"
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/io/XActiveDataSource.hpp>
-#include <com/sun/star/io/XInputStream.hpp>
-#include <com/sun/star/io/XOutputStream.hpp>
-#include <com/sun/star/xml/sax/Parser.hpp>
-#include <com/sun/star/xml/sax/Writer.hpp>
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-
-#include <osl/mutex.hxx>
-#include <tools/string.hxx>
-#include <tools/urlobj.hxx>
-#include <unotools/streamwrap.hxx>
-#include <unotools/ucbstreamhelper.hxx>
-#include <comphelper/processfactory.hxx>
-
-#include <unotools/accelcfg.hxx>
-#include <unotools/xmlaccelcfg.hxx>
-#include <unotools/pathoptions.hxx>
-#include "itemholder1.hxx"
-
-
-using namespace utl;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::io;
-using namespace com::sun::star::xml::sax;
-
-using ::rtl::OUString;
-
-
-static SvtAcceleratorConfig_Impl* pOptions = NULL;
-static sal_Int32           nRefCount = 0;
-
-class SvtAcceleratorConfig_Impl
-{
-public:
-
-    SvtAcceleratorItemList aList;
-    bool            bModified;
-
-                    SvtAcceleratorConfig_Impl()
-                        : bModified( sal_False )
-                    {}
-
-                    SvtAcceleratorConfig_Impl( Reference< XInputStream >& xInputStream );
-    bool            Commit( Reference< XOutputStream >& xOutputStream );
-};
-
-// -----------------------------------------------------------------------
-
-SvtAcceleratorConfig_Impl::SvtAcceleratorConfig_Impl( Reference< XInputStream >& rInputStream )
-        : bModified( false )
-{
-    Reference< XParser > xParser = Parser::create( ::comphelper::getProcessComponentContext() );
-
-    // connect stream to input stream to the parser
-    InputSource aInputSource;
-    aInputSource.aInputStream = rInputStream;
-
-    // get filter
-    Reference< XDocumentHandler > xFilter( new OReadAccelatorDocumentHandler( aList ));
-
-    // connect parser and filter
-    xParser->setDocumentHandler( xFilter );
-    xParser->parseStream( aInputSource );
-}
-
-bool SvtAcceleratorConfig_Impl::Commit( Reference< XOutputStream >& rOutputStream )
-{
-    Reference< XWriter > xWriter = Writer::create( ::comphelper::getProcessComponentContext() );
-
-    xWriter->setOutputStream( rOutputStream );
-    try
-    {
-        OWriteAccelatorDocumentHandler aWriteHandler( aList, Reference<XDocumentHandler>(xWriter, UNO_QUERY_THROW) );
-        aWriteHandler.WriteAcceleratorDocument();
-        rOutputStream->flush();
-        return true;
-    }
-    catch ( RuntimeException& )
-    {
-    }
-    catch ( SAXException& )
-    {
-    }
-    catch ( ::com::sun::star::io::IOException& )
-    {
-    }
-
-    return false;
-}
-
-namespace
-{
-    class LocalSingleton : public rtl::Static< osl::Mutex, LocalSingleton >
-    {
-    };
-}
-
-SvtAcceleratorConfiguration::SvtAcceleratorConfiguration()
-{
-    // Global access, must be guarded (multithreading)
-    ::osl::MutexGuard aGuard( LocalSingleton::get() );
-    if ( !pOptions )
-    {
-        SvStream* pStream = GetDefaultStream( STREAM_STD_READ );
-        ::utl::OInputStreamWrapper aHelper( *pStream );
-        com::sun::star::uno::Reference < ::com::sun::star::io::XInputStream > xOut( &aHelper );
-
-        try
-        {
-            pOptions = new SvtAcceleratorConfig_Impl( xOut );
-        }
-        catch ( RuntimeException& )
-        {
-            pOptions = new SvtAcceleratorConfig_Impl();
-        }
-        catch( SAXException& )
-        {
-            pOptions = new SvtAcceleratorConfig_Impl();
-        }
-        catch( ::com::sun::star::io::IOException& )
-        {
-            pOptions = new SvtAcceleratorConfig_Impl();
-        }
-
-        if (pOptions)
-            ItemHolder1::holdConfigItem(E_ACCELCFG);
-
-        delete pStream;
-    }
-
-    ++nRefCount;
-    pImp = pOptions;
-}
-
-// -----------------------------------------------------------------------
-
-SvtAcceleratorConfiguration::~SvtAcceleratorConfiguration()
-{
-    if ( pImp == pOptions )
-    {
-        // Global access, must be guarded (multithreading)
-        ::osl::MutexGuard aGuard( LocalSingleton::get() );
-        if ( !--nRefCount )
-        {
-            if ( pImp->bModified )
-            {
-                String aUserConfig = SvtPathOptions().GetUserConfigPath();
-                INetURLObject aObj( aUserConfig );
-                aObj.insertName( rtl::OUString("GlobalKeyBindings.xml") );
-                SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( aObj.GetMainURL( INetURLObject::NO_DECODE ), STREAM_STD_READWRITE|STREAM_TRUNC );
-                com::sun::star::uno::Reference < ::com::sun::star::io::XOutputStream > xOut( new utl::OOutputStreamWrapper( *pStream ) );
-                pImp->Commit( xOut );
-                delete pStream;
-            }
-
-            DELETEZ( pOptions );
-        }
-    }
-    else
-    {
-        delete pImp;
-    }
-}
-
-String SvtAcceleratorConfiguration::GetStreamName()
-{
-    return rtl::OUString("KeyBindings.xml");
-}
-
-SvStream* SvtAcceleratorConfiguration::GetDefaultStream( StreamMode nMode )
-{
-    String aUserConfig = SvtPathOptions().GetUserConfigPath();
-    INetURLObject aObj( aUserConfig );
-    aObj.insertName( GetStreamName() );
-    return ::utl::UcbStreamHelper::CreateStream( aObj.GetMainURL( INetURLObject::NO_DECODE ), nMode );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/unotools/source/config/itemholder1.cxx b/unotools/source/config/itemholder1.cxx
index 8d04245..8220c48 100644
--- a/unotools/source/config/itemholder1.cxx
+++ b/unotools/source/config/itemholder1.cxx
@@ -26,7 +26,6 @@
 
 #include <unotools/misccfg.hxx>
 #include <unotools/useroptions.hxx>
-#include <unotools/accelcfg.hxx>
 #include <unotools/cmdoptions.hxx>
 #include <unotools/compatibility.hxx>
 #include <unotools/defaultoptions.hxx>
@@ -46,7 +45,6 @@
 #include <unotools/searchopt.hxx>
 #include <unotools/securityoptions.hxx>
 #include <unotools/viewoptions.hxx>
-#include <unotools/workingsetoptions.hxx>
 #include <unotools/xmlaccelcfg.hxx>
 #include <unotools/options.hxx>
 #include <unotools/syslocaleoptions.hxx>
@@ -146,10 +144,6 @@
 {
     switch(rItem.eItem)
     {
-        case E_ACCELCFG :
-            rItem.pItem = new SvtAcceleratorConfiguration();
-            break;
-
         case E_CMDOPTIONS :
             rItem.pItem = new SvtCommandOptions();
             break;
@@ -184,10 +178,6 @@
 
         case E_HISTORYOPTIONS :
             rItem.pItem = new SvtHistoryOptions();
-            break;
-
-        case E_JAVAOPTIONS :
-// no ref count            rItem.pItem = new SvtJavaOptions();
             break;
 
         case E_LINGUCFG :
@@ -244,14 +234,6 @@
 
         case E_VIEWOPTIONS_WINDOW :
             rItem.pItem = new SvtViewOptions(E_WINDOW, ::rtl::OUString());
-            break;
-
-        case E_WORKINGSETOPTIONS :
-            rItem.pItem = new SvtWorkingSetOptions();
-            break;
-
-        case E_XMLACCELCFG :
-            // ??? TODO
             break;
 
         case E_USEROPTIONS :
diff --git a/unotools/source/config/workingsetoptions.cxx b/unotools/source/config/workingsetoptions.cxx
deleted file mode 100644
index 0ea5c47..0000000
--- a/unotools/source/config/workingsetoptions.cxx
+++ /dev/null
@@ -1,304 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-
-#include <unotools/workingsetoptions.hxx>
-#include <unotools/configmgr.hxx>
-#include <unotools/configitem.hxx>
-#include <tools/debug.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-
-#include <itemholder1.hxx>
-
-//_________________________________________________________________________________________________________________
-//  namespaces
-//_________________________________________________________________________________________________________________
-
-using namespace ::utl                   ;
-using namespace ::rtl                   ;
-using namespace ::osl                   ;
-using namespace ::com::sun::star::uno   ;
-
-#define ROOTNODE_WORKINGSET             OUString("Office.Common/WorkingSet")
-#define DEFAULT_WINDOWLIST              Sequence< OUString >()
-
-#define PROPERTYNAME_WINDOWLIST         OUString("WindowList")
-
-#define PROPERTYHANDLE_WINDOWLIST       0
-
-#define PROPERTYCOUNT                   1
-
-//_________________________________________________________________________________________________________________
-//  private declarations!
-//_________________________________________________________________________________________________________________
-
-class SvtWorkingSetOptions_Impl : public ConfigItem
-{
-    //-------------------------------------------------------------------------------------------------------------
-    //  public methods
-    //-------------------------------------------------------------------------------------------------------------
-
-    public:
-
-        //---------------------------------------------------------------------------------------------------------
-        //  constructor / destructor
-        //---------------------------------------------------------------------------------------------------------
-
-         SvtWorkingSetOptions_Impl();
-        ~SvtWorkingSetOptions_Impl();
-
-        //---------------------------------------------------------------------------------------------------------
-        //  overloaded methods of baseclass
-        //---------------------------------------------------------------------------------------------------------
-
-        /*-****************************************************************************************************//**
-            @short      called for notify of configmanager
-            @descr      These method is called from the ConfigManager before application ends or from the
-                         PropertyChangeListener if the sub tree broadcasts changes. You must update your
-                        internal values.
-
-            @seealso    baseclass ConfigItem
-
-            @param      "seqPropertyNames" is the list of properties which should be updated.
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        virtual void Notify( const Sequence< OUString >& seqPropertyNames );
-
-        /*-****************************************************************************************************//**
-            @short      write changes to configuration
-            @descr      These method writes the changed values into the sub tree
-                        and should always called in our destructor to guarantee consistency of config data.
-
-            @seealso    baseclass ConfigItem
-
-            @param      -
-            @return     -
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        virtual void Commit();
-
-    //-------------------------------------------------------------------------------------------------------------
-    //  private methods
-    //-------------------------------------------------------------------------------------------------------------
-
-    private:
-
-        /*-****************************************************************************************************//**
-            @short      return list of key names of ouer configuration management which represent oue module tree
-            @descr      These methods return a static const list of key names. We need it to get needed values from our
-                        configuration management.
-
-            @seealso    -
-
-            @param      -
-            @return     A list of needed configuration keys is returned.
-
-            @onerror    -
-        *//*-*****************************************************************************************************/
-
-        static Sequence< OUString > GetPropertyNames();
-
-    //-------------------------------------------------------------------------------------------------------------
-    //  private member
-    //-------------------------------------------------------------------------------------------------------------
-
-    private:
-
-        Sequence< OUString >    m_seqWindowList     ;
-};
-
-//*****************************************************************************************************************
-//  constructor
-//*****************************************************************************************************************
-SvtWorkingSetOptions_Impl::SvtWorkingSetOptions_Impl()
-    // Init baseclasses first
-    :   ConfigItem          ( ROOTNODE_WORKINGSET   )
-    // Init member then.
-    ,   m_seqWindowList     ( DEFAULT_WINDOWLIST    )
-{
-    // Use our static list of configuration keys to get his values.
-    Sequence< OUString >    seqNames    = GetPropertyNames  (           );
-    Sequence< Any >         seqValues   = GetProperties     ( seqNames  );
-
-    // Safe impossible cases.
-    // We need values from ALL configuration keys.
-    // Follow assignment use order of values in relation to our list of key names!
-    DBG_ASSERT( !(seqNames.getLength()!=seqValues.getLength()), "SvtWorkingSetOptions_Impl::SvtWorkingSetOptions_Impl()\nI miss some values of configuration keys!\n" );
-
-    // Copy values from list in right order to ouer internal member.
-    sal_Int32 nPropertyCount = seqValues.getLength();
-    for( sal_Int32 nProperty=0; nProperty<nPropertyCount; ++nProperty )
-    {
-        // Safe impossible cases.
-        // Check any for valid value.
-        DBG_ASSERT( !(seqValues[nProperty].hasValue()==sal_False), "SvtWorkingSetOptions_Impl::SvtWorkingSetOptions_Impl()\nInvalid property value detected!\n" );
-        switch( nProperty )
-        {
-            case PROPERTYHANDLE_WINDOWLIST      :   {
-                                                        DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_SEQUENCE), "SvtWorkingSetOptions_Impl::SvtWorkingSetOptions_Impl()\nWho has changed the value type of \"Office.Common\\WorkingSet\\WindowList\"?" );
-                                                        seqValues[nProperty] >>= m_seqWindowList;
-                                                    }
-                                                    break;
-        }
-    }
-
-    // Enable notification mechanism of ouer baseclass.
-    // We need it to get information about changes outside these class on ouer used configuration keys!
-    EnableNotification( seqNames );
-}
-
-//*****************************************************************************************************************
-//  destructor
-//*****************************************************************************************************************
-SvtWorkingSetOptions_Impl::~SvtWorkingSetOptions_Impl()
-{
-    // We must save our current values .. if user forget it!
-    if( IsModified() == sal_True )
-    {
-        Commit();
-    }
-}
-
-//*****************************************************************************************************************
-//  public method
-//*****************************************************************************************************************
-void SvtWorkingSetOptions_Impl::Notify( const Sequence< OUString >& seqPropertyNames )
-{
-    // Use given list of updated properties to get his values from configuration directly!
-    Sequence< Any > seqValues = GetProperties( seqPropertyNames );
-    // Safe impossible cases.
-    // We need values from ALL notified configuration keys.
-    DBG_ASSERT( !(seqPropertyNames.getLength()!=seqValues.getLength()), "SvtWorkingSetOptions_Impl::Notify()\nI miss some values of configuration keys!\n" );
-    // Step over list of property names and get right value from coreesponding value list to set it on internal members!
-    sal_Int32 nCount = seqPropertyNames.getLength();
-    for( sal_Int32 nProperty=0; nProperty<nCount; ++nProperty )
-    {
-        if( seqPropertyNames[nProperty] == PROPERTYNAME_WINDOWLIST )
-        {
-            DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_SEQUENCE), "SvtWorkingSetOptions_Impl::Notify()\nWho has changed the value type of \"Office.Common\\WorkingSet\\WindowList\"?" );
-            seqValues[nProperty] >>= m_seqWindowList;
-        }
-        #if OSL_DEBUG_LEVEL > 1
-        else DBG_ASSERT( sal_False, "SvtWorkingSetOptions_Impl::Notify()\nUnknown property detected ... I can't handle these!\n" );
-        #endif
-    }
-}
-
-//*****************************************************************************************************************
-//  public method
-//*****************************************************************************************************************
-void SvtWorkingSetOptions_Impl::Commit()
-{
-    // Get names of supported properties, create a list for values and copy current values to it.
-    Sequence< OUString >    seqNames    = GetPropertyNames  ();
-    sal_Int32               nCount      = seqNames.getLength();
-    Sequence< Any >         seqValues   ( nCount );
-    for( sal_Int32 nProperty=0; nProperty<nCount; ++nProperty )
-    {
-        switch( nProperty )
-        {
-            case PROPERTYHANDLE_WINDOWLIST      :   {
-                                                        seqValues[nProperty] <<= m_seqWindowList;
-                                                    }
-                                                    break;
-        }
-    }
-    // Set properties in configuration.
-    PutProperties( seqNames, seqValues );
-}
-
-//*****************************************************************************************************************
-//  private method
-//*****************************************************************************************************************
-Sequence< OUString > SvtWorkingSetOptions_Impl::GetPropertyNames()
-{
-    // Build list of configuration key names.
-    const OUString pProperties[] =
-    {
-        PROPERTYNAME_WINDOWLIST ,
-    };
-    // Initialize return sequence with these list ...
-    const Sequence< OUString > seqPropertyNames( pProperties, PROPERTYCOUNT );
-    // ... and return it.
-    return seqPropertyNames;
-}
-
-//*****************************************************************************************************************
-//  initialize static member
-//  DON'T DO IT IN YOUR HEADER!
-//  see definition for further informations
-//*****************************************************************************************************************
-SvtWorkingSetOptions_Impl*  SvtWorkingSetOptions::m_pDataContainer  = NULL  ;
-sal_Int32                   SvtWorkingSetOptions::m_nRefCount       = 0     ;
-
-//*****************************************************************************************************************
-//  constructor
-//*****************************************************************************************************************
-SvtWorkingSetOptions::SvtWorkingSetOptions()
-{
-    // Global access, must be guarded (multithreading!).
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    // Increase ouer refcount ...
-    ++m_nRefCount;
-    // ... and initialize ouer data container only if it not already exist!
-    if( m_pDataContainer == NULL )
-    {
-        m_pDataContainer = new SvtWorkingSetOptions_Impl;
-        ItemHolder1::holdConfigItem(E_WORKINGSETOPTIONS);
-    }
-}
-
-//*****************************************************************************************************************
-//  destructor
-//*****************************************************************************************************************
-SvtWorkingSetOptions::~SvtWorkingSetOptions()
-{
-    // Global access, must be guarded (multithreading!)
-    MutexGuard aGuard( GetOwnStaticMutex() );
-    // Decrease ouer refcount.
-    --m_nRefCount;
-    // If last instance was deleted ...
-    // we must destroy ouer static data container!
-    if( m_nRefCount <= 0 )
-    {
-        delete m_pDataContainer;
-        m_pDataContainer = NULL;
-    }
-}
-
-namespace
-{
-    class theWorkingSetOptionsMutex : public rtl::Static<osl::Mutex, theWorkingSetOptionsMutex>{};
-}
-
-//*****************************************************************************************************************
-//  private method
-//*****************************************************************************************************************
-Mutex& SvtWorkingSetOptions::GetOwnStaticMutex()
-{
-    return theWorkingSetOptionsMutex::get();
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

-- 
To view, visit https://gerrit.libreoffice.org/3191
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I95bcac6a3ff8cf4644c9d1596c75cac2d9cd94fe
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Thomas Arnhold <thomas at arnhold.org>



More information about the LibreOffice mailing list