summaryrefslogtreecommitdiffstats
path: root/unotools/source/config/undoopt.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'unotools/source/config/undoopt.cxx')
-rw-r--r--unotools/source/config/undoopt.cxx201
1 files changed, 0 insertions, 201 deletions
diff --git a/unotools/source/config/undoopt.cxx b/unotools/source/config/undoopt.cxx
deleted file mode 100644
index 3233b855e7f4..000000000000
--- a/unotools/source/config/undoopt.cxx
+++ /dev/null
@@ -1,201 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#include <unotools/undoopt.hxx>
-#include "rtl/instance.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 <osl/mutex.hxx>
-#include <osl/mutex.hxx>
-#include <rtl/logfile.hxx>
-#include "itemholder1.hxx"
-
-using namespace utl;
-using namespace com::sun::star::uno;
-using ::rtl::OUString;
-
-static SvtUndoOptions_Impl* pOptions = NULL;
-static sal_Int32 nRefCount = 0;
-
-#define STEPS 0
-
-class SvtUndoOptions_Impl : public utl::ConfigItem
-{
- sal_Int32 nUndoCount;
- Sequence< rtl::OUString > m_aPropertyNames;
-
-public:
- SvtUndoOptions_Impl();
-
- virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames );
- virtual void Commit();
- void Load();
-
- void SetUndoCount( sal_Int32 n ) { nUndoCount = n; SetModified(); }
- sal_Int32 GetUndoCount() const { return nUndoCount; }
-};
-
-// -----------------------------------------------------------------------
-
-SvtUndoOptions_Impl::SvtUndoOptions_Impl()
- : ConfigItem( OUString(RTL_CONSTASCII_USTRINGPARAM("Office.Common/Undo")) )
- , nUndoCount( 20 )
-{
- Load();
-}
-
-void SvtUndoOptions_Impl::Commit()
-{
- Sequence< Any > aValues( m_aPropertyNames.getLength() );
- Any* pValues = aValues.getArray();
- for ( int nProp = 0; nProp < m_aPropertyNames.getLength(); nProp++ )
- {
- switch ( nProp )
- {
- case STEPS :
- pValues[nProp] <<= nUndoCount;
- break;
- default:
- SAL_WARN( "unotools.config", "invalid index to save a path" );
- }
- }
-
- PutProperties( m_aPropertyNames, aValues );
- NotifyListeners(0);
-}
-
-// -----------------------------------------------------------------------
-void SvtUndoOptions_Impl::Load()
-{
- if(!m_aPropertyNames.getLength())
- {
- static const char* aPropNames[] =
- {
- "Steps",
- };
-
- const int nCount = sizeof( aPropNames ) / sizeof( const char* );
- m_aPropertyNames.realloc(nCount);
- OUString* pNames = m_aPropertyNames.getArray();
- for ( int i = 0; i < nCount; i++ )
- pNames[i] = OUString::createFromAscii( aPropNames[i] );
- EnableNotification( m_aPropertyNames );
- }
-
- Sequence< Any > aValues = GetProperties( m_aPropertyNames );
- const Any* pValues = aValues.getConstArray();
- DBG_ASSERT( aValues.getLength() == m_aPropertyNames.getLength(), "GetProperties failed" );
- if ( aValues.getLength() == m_aPropertyNames.getLength() )
- {
- for ( int nProp = 0; nProp < m_aPropertyNames.getLength(); nProp++ )
- {
- if ( pValues[nProp].hasValue() )
- {
- switch ( nProp )
- {
- case STEPS :
- {
- sal_Int32 nTemp = 0;
- if ( pValues[nProp] >>= nTemp )
- nUndoCount = nTemp;
- else
- {
- OSL_FAIL( "Wrong Type!" );
- }
- break;
- }
-
- default:
- OSL_FAIL( "Wrong Type!" );
- break;
- }
- }
- }
- }
-}
-// -----------------------------------------------------------------------
-void SvtUndoOptions_Impl::Notify( const Sequence<rtl::OUString>& )
-{
- Load();
-}
-
-// -----------------------------------------------------------------------
-namespace
-{
- class LocalSingleton : public rtl::Static< osl::Mutex, LocalSingleton >
- {
- };
-}
-
-// -----------------------------------------------------------------------
-SvtUndoOptions::SvtUndoOptions()
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( LocalSingleton::get() );
- if ( !pOptions )
- {
- RTL_LOGFILE_CONTEXT(aLog, "unotools ( ??? ) ::SvtUndoOptions_Impl::ctor()");
- pOptions = new SvtUndoOptions_Impl;
-
- ItemHolder1::holdConfigItem(E_UNDOOPTIONS);
- }
- ++nRefCount;
- pImp = pOptions;
- pImp->AddListener(this);
-}
-
-// -----------------------------------------------------------------------
-
-SvtUndoOptions::~SvtUndoOptions()
-{
- // Global access, must be guarded (multithreading)
- ::osl::MutexGuard aGuard( LocalSingleton::get() );
- pImp->RemoveListener(this);
- if ( !--nRefCount )
- {
- if ( pOptions->IsModified() )
- pOptions->Commit();
- DELETEZ( pOptions );
- }
-}
-
-void SvtUndoOptions::SetUndoCount( sal_Int32 n )
-{
- pImp->SetUndoCount( n );
-}
-
-sal_Int32 SvtUndoOptions::GetUndoCount() const
-{
- return pImp->GetUndoCount();
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */