summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Common.xcs15
-rw-r--r--sfx2/source/appl/app.cxx1
-rw-r--r--unotools/Library_utl.mk2
-rw-r--r--unotools/Package_inc.mk2
-rw-r--r--unotools/inc/unotools/accelcfg.hxx65
-rw-r--r--unotools/inc/unotools/itemholderbase.hxx9
-rw-r--r--unotools/inc/unotools/workingsetoptions.hxx122
-rw-r--r--unotools/inc/unotools/xmlaccelcfg.hxx11
-rw-r--r--unotools/source/config/accelcfg.cxx202
-rw-r--r--unotools/source/config/itemholder1.cxx18
-rw-r--r--unotools/source/config/workingsetoptions.cxx304
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 66e353c91dcc..f819ebee90c3 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 479f9d4479a3..3b31dbdad56f 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 d99c18bc562b..dcef7a82155a 100644
--- a/unotools/Library_utl.mk
+++ b/unotools/Library_utl.mk
@@ -71,7 +71,6 @@ $(eval $(call gb_Library_use_libraries,utl,\
$(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 @@ $(eval $(call gb_Library_add_exception_objects,utl,\
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 92ec12ea1cd3..1a47ec10f902 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/ucbstreamhelper.hxx,
$(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 c60a4f09de83..000000000000
--- 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 2efc282284f4..831cba4a4a72 100644
--- a/unotools/inc/unotools/itemholderbase.hxx
+++ b/unotools/inc/unotools/itemholderbase.hxx
@@ -33,7 +33,6 @@ struct ItemHolderMutexBase
enum EItem
{
- E_ACCELCFG , //
E_ACCESSIBILITYOPTIONS , // 2
E_ADDXMLTOSTORAGEOPTIONS , //
E_APEARCFG , // 2
@@ -57,8 +56,6 @@ enum EItem
E_HELPOPTIONS , // 2
E_HISTORYOPTIONS , //
- E_JAVAOPTIONS , //
-
E_LANGUAGEOPTIONS , // 2
E_LINGUCFG , //
E_LOCALISATIONOPTIONS , //
@@ -87,11 +84,7 @@ enum EItem
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 c351da83f3ec..000000000000
--- 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 8e2c6982e705..48417b2a229a 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 9c48b7f5e06e..000000000000
--- 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 8d042453a6c0..8220c48ed28e 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 @@ void ItemHolder1::impl_newItem(TItemInfo& rItem)
{
switch(rItem.eItem)
{
- case E_ACCELCFG :
- rItem.pItem = new SvtAcceleratorConfiguration();
- break;
-
case E_CMDOPTIONS :
rItem.pItem = new SvtCommandOptions();
break;
@@ -186,10 +180,6 @@ void ItemHolder1::impl_newItem(TItemInfo& rItem)
rItem.pItem = new SvtHistoryOptions();
break;
- case E_JAVAOPTIONS :
-// no ref count rItem.pItem = new SvtJavaOptions();
- break;
-
case E_LINGUCFG :
rItem.pItem = new SvtLinguConfig();
break;
@@ -246,14 +236,6 @@ void ItemHolder1::impl_newItem(TItemInfo& rItem)
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 :
rItem.pItem = new SvtUserOptions();
break;
diff --git a/unotools/source/config/workingsetoptions.cxx b/unotools/source/config/workingsetoptions.cxx
deleted file mode 100644
index 0ea5c47bbcb5..000000000000
--- 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: */