summaryrefslogtreecommitdiff
path: root/svtools/source/config/pathoptions.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svtools/source/config/pathoptions.cxx')
-rw-r--r--svtools/source/config/pathoptions.cxx409
1 files changed, 409 insertions, 0 deletions
diff --git a/svtools/source/config/pathoptions.cxx b/svtools/source/config/pathoptions.cxx
new file mode 100644
index 000000000000..4a659bed30d7
--- /dev/null
+++ b/svtools/source/config/pathoptions.cxx
@@ -0,0 +1,409 @@
+/*************************************************************************
+ *
+ * $RCSfile: pathoptions.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:58:56 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (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.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#pragma hdrstop
+
+#include "pathoptions.hxx"
+
+#ifndef _UTL_CONFIGMGR_HXX_
+#include <unotools/configmgr.hxx>
+#endif
+#ifndef _TOOLS_DEBUG_HXX
+#include <tools/debug.hxx>
+#endif
+#ifndef _COM_SUN_STAR_UNO_ANY_HXX_
+#include <com/sun/star/uno/Any.hxx>
+#endif
+#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_
+#include <com/sun/star/uno/Sequence.hxx>
+#endif
+
+using namespace utl;
+using namespace rtl;
+using namespace com::sun::star::uno;
+
+// class SvtPathOptions --------------------------------------------------
+
+// initialize the static member
+SvtPathOptions* SvtPathOptions::m_pOptions = NULL;
+
+// -----------------------------------------------------------------------
+
+Sequence< OUString > SvtPathOptions::GetPropertyNames()
+{
+ static const char* aPropNames[] =
+ {
+ "Addin", // PATH_ADDIN
+ "AutoCorrect", // PATH_AUTOCORRECT
+ "AutoPilot", // PATH_AUTOPILOT
+ "Backup", // PATH_BACKUP
+ "Basic", // PATH_BASIC
+ "Bitmap", // PATH_BITMAP
+ "Config", // PATH_CONFIG
+ "Database", // PATH_DATABASE
+ "Dictionary", // PATH_DICTIONARY
+ "Favorite", // PATH_FAVORITES
+ "Filter", // PATH_FILTER
+ "Gallery", // PATH_GALLERY
+ "Glossary", // PATH_GLOSSARY
+ "Graphic", // PATH_GRAPHIC
+ "Help", // PATH_HELP
+ "Linguistic", // PATH_LINGUISTIC
+ "Module", // PATH_MODULE
+ "New", // PATH_NEWMENU
+ "Palette", // PATH_PALETTE
+ "Plugin", // PATH_PLUGIN
+ "Storage", // PATH_STORAGE
+ "SubIni", // PATH_SUBINI
+ "Temp", // PATH_TEMP
+ "Template", // PATH_TEMPLATE
+ "Trash", // PATH_TRASH
+ "UserConfig", // PATH_USERCONFIG
+ "UserDictionary", // PATH_USERDICTIONARY
+ "Work" // PATH_WORK
+ };
+
+ const int nCount = 28;
+ Sequence< OUString > aNames( nCount );
+ OUString* pNames = aNames.getArray();
+ for ( int i = 0; i < nCount; i++ )
+ pNames[i] = OUString::createFromAscii( aPropNames[i] );
+
+ return aNames;
+}
+
+// -----------------------------------------------------------------------
+
+const String& SvtPathOptions::GetPath( int nIndex )
+{
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ if ( PATH_ADDIN == nIndex )
+ return m_aAddinPath;
+ else if ( PATH_AUTOCORRECT == nIndex )
+ return m_aAutoCorrectPath;
+ else if ( PATH_AUTOPILOT == nIndex )
+ return m_aAutoPilotPath;
+ else if ( PATH_BACKUP == nIndex )
+ return m_aBackupPath;
+ else if ( PATH_BASIC == nIndex )
+ return m_aBasicPath;
+ else if ( PATH_BITMAP == nIndex )
+ return m_aBitmapPath;
+ else if ( PATH_CONFIG == nIndex )
+ return m_aConfigPath;
+ else if ( PATH_DATABASE == nIndex )
+ return m_aDatabasePath;
+ else if ( PATH_DICTIONARY == nIndex )
+ return m_aDictionaryPath;
+ else if ( PATH_FAVORITES == nIndex )
+ return m_aFavoritesPath;
+ else if ( PATH_FILTER == nIndex )
+ return m_aFilterPath;
+ else if ( PATH_GALLERY == nIndex )
+ return m_aGalleryPath;
+ else if ( PATH_GLOSSARY == nIndex )
+ return m_aGlossaryPath;
+ else if ( PATH_GRAPHIC == nIndex )
+ return m_aGraphicPath;
+ else if ( PATH_HELP == nIndex )
+ return m_aHelpPath;
+ else if ( PATH_LINGUISTIC == nIndex )
+ return m_aLinguisticPath;
+ else if ( PATH_MODULE == nIndex )
+ return m_aModulePath;
+ else if ( PATH_NEWMENU == nIndex )
+ return m_aNewMenuPath;
+ else if ( PATH_PALETTE == nIndex )
+ return m_aPalettePath;
+ else if ( PATH_PLUGIN == nIndex )
+ return m_aPluginPath;
+ else if ( PATH_STORAGE == nIndex )
+ return m_aStoragePath;
+ else if ( PATH_SUBINI == nIndex )
+ return m_aSubIniPath;
+ else if ( PATH_TEMP == nIndex )
+ return m_aTempPath;
+ else if ( PATH_TEMPLATE == nIndex )
+ return m_aTemplatePath;
+ else if ( PATH_TRASH == nIndex )
+ return m_aTrashPath;
+ else if ( PATH_USERCONFIG == nIndex )
+ return m_aUserConfigPath;
+ else if ( PATH_USERDICTIONARY == nIndex )
+ return m_aUserDictionaryPath;
+ else if ( PATH_WORK == nIndex )
+ return m_aWorkPath;
+ else
+ {
+ DBG_ERRORFILE( "invalid index to get a path" );
+ return m_aEmptyString;
+ }
+}
+
+// -----------------------------------------------------------------------
+
+void SvtPathOptions::SetPath( int nIndex, const String& rNewPath )
+{
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ if ( PATH_ADDIN == nIndex )
+ m_aAddinPath = rNewPath;
+ else if ( PATH_AUTOCORRECT == nIndex )
+ m_aAutoCorrectPath = rNewPath;
+ else if ( PATH_AUTOPILOT == nIndex )
+ m_aAutoPilotPath = rNewPath;
+ else if ( PATH_BACKUP == nIndex )
+ m_aBackupPath = rNewPath;
+ else if ( PATH_BASIC == nIndex )
+ m_aBasicPath = rNewPath;
+ else if ( PATH_BITMAP == nIndex )
+ m_aBitmapPath = rNewPath;
+ else if ( PATH_CONFIG == nIndex )
+ m_aConfigPath = rNewPath;
+ else if ( PATH_DATABASE == nIndex )
+ m_aDatabasePath = rNewPath;
+ else if ( PATH_DICTIONARY == nIndex )
+ m_aDictionaryPath = rNewPath;
+ else if ( PATH_FAVORITES == nIndex )
+ m_aFavoritesPath = rNewPath;
+ else if ( PATH_FILTER == nIndex )
+ m_aFilterPath = rNewPath;
+ else if ( PATH_GALLERY == nIndex )
+ m_aGalleryPath = rNewPath;
+ else if ( PATH_GLOSSARY == nIndex )
+ m_aGlossaryPath = rNewPath;
+ else if ( PATH_GRAPHIC == nIndex )
+ m_aGraphicPath = rNewPath;
+ else if ( PATH_HELP == nIndex )
+ m_aHelpPath = rNewPath;
+ else if ( PATH_LINGUISTIC == nIndex )
+ m_aLinguisticPath = rNewPath;
+ else if ( PATH_MODULE == nIndex )
+ m_aModulePath = rNewPath;
+ else if ( PATH_NEWMENU == nIndex )
+ m_aNewMenuPath = rNewPath;
+ else if ( PATH_PALETTE == nIndex )
+ m_aPalettePath = rNewPath;
+ else if ( PATH_PLUGIN == nIndex )
+ m_aPluginPath = rNewPath;
+ else if ( PATH_STORAGE == nIndex )
+ m_aStoragePath = rNewPath;
+ else if ( PATH_SUBINI == nIndex )
+ m_aSubIniPath = rNewPath;
+ else if ( PATH_TEMP == nIndex )
+ m_aTempPath = rNewPath;
+ else if ( PATH_TEMPLATE == nIndex )
+ m_aTemplatePath = rNewPath;
+ else if ( PATH_TRASH == nIndex )
+ m_aTrashPath = rNewPath;
+ else if ( PATH_USERCONFIG == nIndex )
+ m_aUserConfigPath = rNewPath;
+ else if ( PATH_USERDICTIONARY == nIndex )
+ m_aUserDictionaryPath = rNewPath;
+ else if ( PATH_WORK == nIndex )
+ m_aWorkPath = rNewPath;
+ else
+ DBG_ERRORFILE( "invalid index to set a path" );
+ SetModified();
+}
+
+// -----------------------------------------------------------------------
+
+SvtPathOptions::SvtPathOptions() : ConfigItem( OUString::createFromAscii("Office/Common/Path") )
+{
+ Sequence< OUString > aNames = GetPropertyNames();
+ Sequence< Any > aValues = GetProperties( aNames );
+ EnableNotification( aNames );
+ const Any* pValues = aValues.getConstArray();
+ DBG_ASSERT( aValues.getLength() == aNames.getLength(), "GetProperties failed" );
+ if ( aValues.getLength() == aNames.getLength() )
+ {
+ OUString aTempStr;
+
+ for ( int nProp = 0; nProp < aNames.getLength(); nProp++ )
+ {
+ DBG_ASSERT( pValues[nProp].hasValue(), "property value missing" );
+ if ( pValues[nProp].hasValue() )
+ {
+ pValues[nProp] >>= aTempStr;
+ switch ( nProp )
+ {
+ case PATH_ADDIN: m_aAddinPath = String( aTempStr ); break;
+ case PATH_AUTOCORRECT: m_aAutoCorrectPath = String( aTempStr ); break;
+ case PATH_AUTOPILOT: m_aAutoPilotPath = String( aTempStr ); break;
+ case PATH_BACKUP: m_aBackupPath = String( aTempStr ); break;
+ case PATH_BASIC: m_aBasicPath = String( aTempStr ); break;
+ case PATH_BITMAP: m_aBitmapPath = String( aTempStr ); break;
+ case PATH_CONFIG: m_aConfigPath = String( aTempStr ); break;
+ case PATH_DATABASE: m_aDatabasePath = String( aTempStr ); break;
+ case PATH_DICTIONARY: m_aDictionaryPath = String( aTempStr ); break;
+ case PATH_FAVORITES: m_aFavoritesPath = String( aTempStr ); break;
+ case PATH_FILTER: m_aFilterPath = String( aTempStr ); break;
+ case PATH_GALLERY: m_aGalleryPath = String( aTempStr ); break;
+ case PATH_GLOSSARY: m_aGlossaryPath = String( aTempStr ); break;
+ case PATH_GRAPHIC: m_aGraphicPath = String( aTempStr ); break;
+ case PATH_HELP: m_aHelpPath = String( aTempStr ); break;
+ case PATH_LINGUISTIC: m_aLinguisticPath = String( aTempStr ); break;
+ case PATH_MODULE: m_aModulePath = String( aTempStr ); break;
+ case PATH_NEWMENU: m_aNewMenuPath = String( aTempStr ); break;
+ case PATH_PALETTE: m_aPalettePath = String( aTempStr ); break;
+ case PATH_PLUGIN: m_aPluginPath = String( aTempStr ); break;
+ case PATH_STORAGE: m_aStoragePath = String( aTempStr ); break;
+ case PATH_SUBINI: m_aSubIniPath = String( aTempStr ); break;
+ case PATH_TEMP: m_aTempPath = String( aTempStr ); break;
+ case PATH_TEMPLATE: m_aTemplatePath = String( aTempStr ); break;
+ case PATH_TRASH: m_aTrashPath = String( aTempStr ); break;
+ case PATH_USERCONFIG: m_aUserConfigPath = String( aTempStr ); break;
+ case PATH_USERDICTIONARY: m_aUserDictionaryPath = String( aTempStr ); break;
+ case PATH_WORK: m_aWorkPath = String( aTempStr ); break;
+
+ default:
+ DBG_ERRORFILE( "invalid index to load a path" );
+ }
+ }
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+
+SvtPathOptions::~SvtPathOptions()
+{
+}
+
+// -----------------------------------------------------------------------
+
+SvtPathOptions* SvtPathOptions::GetPathOptions()
+{
+ if ( !m_pOptions )
+ m_pOptions = new SvtPathOptions;
+ return m_pOptions;
+}
+
+// -----------------------------------------------------------------------
+
+void SvtPathOptions::DestroyPathOptions()
+{
+ if ( m_pOptions )
+ DELETEZ( m_pOptions );
+}
+
+// -----------------------------------------------------------------------
+
+void SvtPathOptions::Commit()
+{
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ Sequence< OUString > aNames = GetPropertyNames();
+ OUString* pNames = aNames.getArray();
+ Sequence< Any > aValues( aNames.getLength() );
+ Any* pValues = aValues.getArray();
+ const Type& rType = ::getBooleanCppuType();
+ OUString aTempStr;
+ for ( int nProp = 0; nProp < aNames.getLength(); nProp++ )
+ {
+ switch ( nProp )
+ {
+ case PATH_ADDIN: aTempStr = OUString( m_aAddinPath ); break;
+ case PATH_AUTOCORRECT: aTempStr = OUString( m_aAutoCorrectPath ); break;
+ case PATH_AUTOPILOT: aTempStr = OUString( m_aAutoPilotPath ); break;
+ case PATH_BACKUP: aTempStr = OUString( m_aBackupPath ); break;
+ case PATH_BASIC: aTempStr = OUString( m_aBasicPath ); break;
+ case PATH_BITMAP: aTempStr = OUString( m_aBitmapPath ); break;
+ case PATH_CONFIG: aTempStr = OUString( m_aConfigPath ); break;
+ case PATH_DATABASE: aTempStr = OUString( m_aDatabasePath ); break;
+ case PATH_DICTIONARY: aTempStr = OUString( m_aDictionaryPath ); break;
+ case PATH_FAVORITES: aTempStr = OUString( m_aFavoritesPath ); break;
+ case PATH_FILTER: aTempStr = OUString( m_aFilterPath ); break;
+ case PATH_GALLERY: aTempStr = OUString( m_aGalleryPath ); break;
+ case PATH_GLOSSARY: aTempStr = OUString( m_aGlossaryPath ); break;
+ case PATH_GRAPHIC: aTempStr = OUString( m_aGraphicPath ); break;
+ case PATH_HELP: aTempStr = OUString( m_aHelpPath ); break;
+ case PATH_LINGUISTIC: aTempStr = OUString( m_aLinguisticPath ); break;
+ case PATH_MODULE: aTempStr = OUString( m_aModulePath ); break;
+ case PATH_NEWMENU: aTempStr = OUString( m_aNewMenuPath ); break;
+ case PATH_PALETTE: aTempStr = OUString( m_aPalettePath ); break;
+ case PATH_PLUGIN: aTempStr = OUString( m_aPluginPath ); break;
+ case PATH_STORAGE: aTempStr = OUString( m_aStoragePath ); break;
+ case PATH_SUBINI: aTempStr = OUString( m_aSubIniPath ); break;
+ case PATH_TEMP: aTempStr = OUString( m_aTempPath ); break;
+ case PATH_TEMPLATE: aTempStr = OUString( m_aTemplatePath ); break;
+ case PATH_TRASH: aTempStr = OUString( m_aTrashPath ); break;
+ case PATH_USERCONFIG: aTempStr = OUString( m_aUserConfigPath ); break;
+ case PATH_USERDICTIONARY: aTempStr = OUString( m_aUserDictionaryPath ); break;
+ case PATH_WORK: aTempStr = OUString( m_aWorkPath ); break;
+
+ default:
+ DBG_ERRORFILE( "invalid index to save a path" );
+ }
+ pValues[nProp] <<= aTempStr;
+ }
+ PutProperties( aNames, aValues );
+}
+
+// -----------------------------------------------------------------------
+
+void SvtPathOptions::Notify( const Sequence<rtl::OUString>& aPropertyNames )
+{
+ DBG_ERRORFILE( "properties have been changed" );
+}
+