Hi,
I have submitted a patch for review:
https://gerrit.libreoffice.org/1506
To pull it, you can do:
git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/06/1506/1
Simple fix for fdo#58766
Load (and thereby Commit) of the last misc. config item
in the define block was broken by the hole in the number sequence
that effectively dropped off the last item,
which just happened to be the Macro Recorder option.
Change-Id: I85dbb808db8f04c1c0eac6ed85ef412306a446f3
---
M svtools/source/config/miscopt.cxx
1 file changed, 114 insertions(+), 127 deletions(-)
diff --git a/svtools/source/config/miscopt.cxx b/svtools/source/config/miscopt.cxx
index c3666d0..f2405a0 100644
--- a/svtools/source/config/miscopt.cxx
+++ b/svtools/source/config/miscopt.cxx
@@ -34,39 +34,37 @@
#include <list>
-using namespace ::utl ;
-using namespace ::rtl ;
-using namespace ::osl ;
-using namespace ::com::sun::star::uno ;
+using namespace ::utl;
+using namespace ::rtl;
+using namespace ::osl;
+using namespace ::com::sun::star::uno;
using namespace ::com::sun::star;
-#define ASCII_STR(s) OUString( RTL_CONSTASCII_USTRINGPARAM(s) )
-#define ROOTNODE_MISC ASCII_STR("Office.Common/Misc")
+#define ROOTNODE_MISC "Office.Common/Misc"
-#define PROPERTYNAME_PLUGINSENABLED ASCII_STR("PluginsEnabled")
-#define PROPERTYHANDLE_PLUGINSENABLED 0
-#define PROPERTYNAME_SYMBOLSET ASCII_STR("SymbolSet")
+#define PROPERTYNAME_PLUGINSENABLED "PluginsEnabled"
+#define PROPERTYHANDLE_PLUGINSENABLED 0
+#define PROPERTYNAME_SYMBOLSET "SymbolSet"
#define PROPERTYHANDLE_SYMBOLSET 1
-#define PROPERTYNAME_TOOLBOXSTYLE ASCII_STR("ToolboxStyle")
+#define PROPERTYNAME_TOOLBOXSTYLE "ToolboxStyle"
#define PROPERTYHANDLE_TOOLBOXSTYLE 2
-#define PROPERTYNAME_USESYSTEMFILEDIALOG ASCII_STR("UseSystemFileDialog")
+#define PROPERTYNAME_USESYSTEMFILEDIALOG "UseSystemFileDialog"
#define PROPERTYHANDLE_USESYSTEMFILEDIALOG 3
-#define PROPERTYNAME_SYMBOLSTYLE ASCII_STR("SymbolStyle")
+#define PROPERTYNAME_SYMBOLSTYLE "SymbolStyle"
#define PROPERTYHANDLE_SYMBOLSTYLE 4
-#define PROPERTYNAME_USESYSTEMPRINTDIALOG ASCII_STR("UseSystemPrintDialog")
+#define PROPERTYNAME_USESYSTEMPRINTDIALOG "UseSystemPrintDialog"
#define PROPERTYHANDLE_USESYSTEMPRINTDIALOG 5
-#define PROPERTYNAME_SHOWLINKWARNINGDIALOG ASCII_STR("ShowLinkWarningDialog")
-#define PROPERTYHANDLE_SHOWLINKWARNINGDIALOG 7
-#define PROPERTYNAME_DISABLEUICUSTOMIZATION ASCII_STR("DisableUICustomization")
-#define PROPERTYHANDLE_DISABLEUICUSTOMIZATION 8
-#define PROPERTYNAME_ALWAYSALLOWSAVE ASCII_STR("AlwaysAllowSave")
-#define PROPERTYHANDLE_ALWAYSALLOWSAVE 9
-#define PROPERTYNAME_EXPERIMENTALMODE ASCII_STR("ExperimentalMode")
-#define PROPERTYHANDLE_EXPERIMENTALMODE 10
-#define PROPERTYNAME_MACRORECORDERMODE ASCII_STR("MacroRecorderMode")
-#define PROPERTYHANDLE_MACRORECORDERMODE 11
+#define PROPERTYNAME_SHOWLINKWARNINGDIALOG "ShowLinkWarningDialog"
+#define PROPERTYHANDLE_SHOWLINKWARNINGDIALOG 6
+#define PROPERTYNAME_DISABLEUICUSTOMIZATION "DisableUICustomization"
+#define PROPERTYHANDLE_DISABLEUICUSTOMIZATION 7
+#define PROPERTYNAME_ALWAYSALLOWSAVE "AlwaysAllowSave"
+#define PROPERTYHANDLE_ALWAYSALLOWSAVE 8
+#define PROPERTYNAME_EXPERIMENTALMODE "ExperimentalMode"
+#define PROPERTYHANDLE_EXPERIMENTALMODE 9
+#define PROPERTYNAME_MACRORECORDERMODE "MacroRecorderMode"
+#define PROPERTYHANDLE_MACRORECORDERMODE 10
-#define VCL_TOOLBOX_STYLE_FLAT ((sal_uInt16)0x0004) // from <vcl/toolbox.hxx>
class SvtMiscOptions_Impl : public ConfigItem
{
@@ -96,15 +94,15 @@
~SvtMiscOptions_Impl();
/*-****************************************************************************************************//**
- @short called for notify of configmanager
- @descr These method is called from the ConfigManager before application ends or
from the
+ @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 -
+ @param "seqPropertyNames" is the list of properties which should be updated.
+ @return -
@onerror -
*//*-*****************************************************************************************************/
@@ -118,14 +116,14 @@
void Load( const Sequence< OUString >& rPropertyNames );
/*-****************************************************************************************************//**
- @short write changes to configuration
- @descr These method writes the changed values into the sub tree
+ @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 -
+ @param -
+ @return -
@onerror -
*//*-*****************************************************************************************************/
@@ -187,15 +185,15 @@
inline void SetSymbolsStyle( sal_Int16 nSet )
{ ImplSetSymbolsStyle( true, nSet, ::rtl::OUString() ); }
- inline void SetSymbolsStyleName( ::rtl::OUString &rName )
+ inline void SetSymbolsStyleName( OUString &rName )
{ ImplSetSymbolsStyle( false, 0, rName ); }
inline sal_Bool IsGetSymbolsStyleReadOnly()
{ return m_bIsSymbolsStyleRO; }
- // translate to VCL settings ( "0" = 3D, "1" = FLAT )
+ // 0x0004 is VCL_TOOLBOX_STYLE_FLAT in <vcl/toolbox.hxx>
inline sal_Int16 GetToolboxStyle()
- { return m_nToolboxStyle ? VCL_TOOLBOX_STYLE_FLAT : 0; }
+ { return m_nToolboxStyle ? ((sal_uInt16)0x0004) : 0; }
// translate from VCL settings
void SetToolboxStyle( sal_Int16 nStyle, bool _bSetModified );
@@ -232,14 +230,14 @@
private:
/*-****************************************************************************************************//**
- @short return list of key names of our 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
+ @short return list of key names of our 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.
+ @param -
+ @return A list of needed configuration keys is returned.
@onerror -
*//*-*****************************************************************************************************/
@@ -275,15 +273,12 @@
, m_bMacroRecorderMode( sal_False )
{
- // Use our static list of configuration keys to get his values.
- Sequence< OUString > seqNames = GetPropertyNames ( );
+ // Use GetPropertyNames to get all configuration key names & values.
+ Sequence< OUString > seqNames = GetPropertyNames ( );
Load( seqNames );
- Sequence< Any > seqValues = GetProperties ( seqNames );
- Sequence< sal_Bool > seqRO = GetReadOnlyStates ( seqNames );
+ Sequence< Any > seqValues = GetProperties ( seqNames );
+ Sequence< sal_Bool > seqRO = GetReadOnlyStates( 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()),
"SvtMiscOptions_Impl::SvtMiscOptions_Impl()\nI miss some values of configuration keys!\n" );
// Copy values from list in right order to our internal member.
@@ -440,67 +435,72 @@
continue;
switch( lcl_MapPropertyName(rPropertyNames[nProperty], aInternalPropertyNames) )
{
- case PROPERTYHANDLE_PLUGINSENABLED : {
- if( !(seqValues[nProperty] >>=
m_bPluginsEnabled) )
- {
- OSL_FAIL("Wrong type of
\"Misc\\PluginsEnabled\"!" );
- }
- }
- break;
- case PROPERTYHANDLE_SYMBOLSET : {
- if( !(seqValues[nProperty] >>=
m_nSymbolsSize) )
- {
- OSL_FAIL("Wrong type of
\"Misc\\SymbolSet\"!" );
- }
- }
- break;
- case PROPERTYHANDLE_TOOLBOXSTYLE : {
- if( !(seqValues[nProperty] >>=
m_nToolboxStyle) )
- {
- OSL_FAIL("Wrong type of
\"Misc\\ToolboxStyle\"!" );
- }
- }
- break;
- case PROPERTYHANDLE_USESYSTEMFILEDIALOG : {
- if( !(seqValues[nProperty] >>=
m_bUseSystemFileDialog) )
- {
- OSL_FAIL("Wrong type of
\"Misc\\UseSystemFileDialog\"!" );
- }
- }
- break;
- case PROPERTYHANDLE_USESYSTEMPRINTDIALOG : {
- if( !(seqValues[nProperty] >>=
m_bUseSystemPrintDialog) )
- {
- OSL_FAIL("Wrong type of
\"Misc\\UseSystemPrintDialog\"!" );
- }
- }
- break;
- case PROPERTYHANDLE_SHOWLINKWARNINGDIALOG : {
- if( !(seqValues[nProperty] >>=
m_bShowLinkWarningDialog) )
- {
- OSL_FAIL("Wrong type of
\"Misc\\ShowLinkWarningDialog\"!" );
- }
- }
- break;
- case PROPERTYHANDLE_SYMBOLSTYLE : {
- ::rtl::OUString aSymbolsStyle;
- if( seqValues[nProperty] >>=
aSymbolsStyle )
- SetSymbolsStyleName( aSymbolsStyle
);
- else
- {
- OSL_FAIL("Wrong type of
\"Misc\\SymbolStyle\"!" );
- }
- }
- break;
- case PROPERTYHANDLE_DISABLEUICUSTOMIZATION : {
- if( !(seqValues[nProperty] >>=
m_bDisableUICustomization) )
- OSL_FAIL("Wrong type of
\"Misc\\DisableUICustomization\"!" );
- }
- break;
+ case PROPERTYHANDLE_PLUGINSENABLED:
+ {
+ if( !(seqValues[nProperty] >>= m_bPluginsEnabled) )
+ OSL_FAIL("Wrong type of \"Misc\\PluginsEnabled\"!" );
+ break;
+ }
+ case PROPERTYHANDLE_SYMBOLSET:
+ {
+ if( !(seqValues[nProperty] >>= m_nSymbolsSize) )
+ OSL_FAIL("Wrong type of \"Misc\\SymbolSet\"!" );
+ break;
+ }
+ case PROPERTYHANDLE_TOOLBOXSTYLE:
+ {
+ if( !(seqValues[nProperty] >>= m_nToolboxStyle) )
+ OSL_FAIL("Wrong type of \"Misc\\ToolboxStyle\"!" );
+ break;
+ }
+ case PROPERTYHANDLE_USESYSTEMFILEDIALOG:
+ {
+ if( !(seqValues[nProperty] >>= m_bUseSystemFileDialog) )
+ OSL_FAIL("Wrong type of \"Misc\\UseSystemFileDialog\"!" );
+ break;
+ }
+ case PROPERTYHANDLE_USESYSTEMPRINTDIALOG :
+ {
+ if( !(seqValues[nProperty] >>= m_bUseSystemPrintDialog) )
+ OSL_FAIL("Wrong type of \"Misc\\UseSystemPrintDialog\"!" );
+ break;
+ }
+ case PROPERTYHANDLE_SHOWLINKWARNINGDIALOG :
+ {
+ if( !(seqValues[nProperty] >>= m_bShowLinkWarningDialog) )
+ OSL_FAIL("Wrong type of \"Misc\\ShowLinkWarningDialog\"!" );
+ break;
+ }
+ case PROPERTYHANDLE_SYMBOLSTYLE :
+ { OUString aSymbolsStyle;
+ if( seqValues[nProperty] >>= aSymbolsStyle )
+ SetSymbolsStyleName( aSymbolsStyle );
+ else
+ OSL_FAIL("Wrong type of \"Misc\\SymbolStyle\"!" );
+ break;
+ }
+ case PROPERTYHANDLE_DISABLEUICUSTOMIZATION:
+ {
+ if( !(seqValues[nProperty] >>= m_bDisableUICustomization) )
+ OSL_FAIL("Wrong type of \"Misc\\DisableUICustomization\"!" );
+ }
+ break;
case PROPERTYHANDLE_ALWAYSALLOWSAVE:
{
if( !(seqValues[nProperty] >>= m_bAlwaysAllowSave) )
OSL_FAIL("Wrong type of \"Misc\\AlwaysAllowSave\"!" );
+ }
+ break;
+ case PROPERTYHANDLE_EXPERIMENTALMODE:
+ {
+ if( !(seqValues[nProperty] >>= m_bExperimentalMode) )
+ OSL_FAIL("Wrong type of \"Misc\\MacroRecorderMode\"!" );
+ }
+ break;
+ case PROPERTYHANDLE_MACRORECORDERMODE:
+ {
+ if( !(seqValues[nProperty] >>= m_bMacroRecorderMode) )
+ OSL_FAIL("Wrong type of \"Misc\\MacroRecorderMode\"!" );
}
break;
}
@@ -596,10 +596,11 @@
//*****************************************************************************************************************
void SvtMiscOptions_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 );
+ // Get names of supported properties, and their values.
+ Sequence< OUString > seqNames = GetPropertyNames ();
+ sal_Int32 nCount = seqNames.getLength();
+ Sequence< Any > seqValues( nCount );
+
for( sal_Int32 nProperty=0; nProperty<nCount; ++nProperty )
{
switch( nProperty )
@@ -700,27 +701,22 @@
PROPERTYNAME_MACRORECORDERMODE
};
- // Initialize return sequence with these list ...
+ // return as sequence
const Sequence< OUString > seqPropertyNames( pProperties, SAL_N_ELEMENTS( pProperties ) );
- // ... and return it.
return seqPropertyNames;
}
//*****************************************************************************************************************
-// initialize static member
-// DON'T DO IT IN YOUR HEADER!
-// see definition for further informations
+// initialize static members
//*****************************************************************************************************************
-SvtMiscOptions_Impl* SvtMiscOptions::m_pDataContainer = NULL ;
-sal_Int32 SvtMiscOptions::m_nRefCount = 0 ;
+SvtMiscOptions_Impl* SvtMiscOptions::m_pDataContainer= NULL;
+sal_Int32 SvtMiscOptions::m_nRefCount = 0;
//*****************************************************************************************************************
// constructor
//*****************************************************************************************************************
SvtMiscOptions::SvtMiscOptions()
{
- // Global access, must be guarded (multithreading!).
- MutexGuard aGuard( GetInitMutex() );
// Increase our refcount ...
++m_nRefCount;
// ... and initialize our data container only if it not already exist!
@@ -738,7 +734,8 @@
SvtMiscOptions::~SvtMiscOptions()
{
// Global access, must be guarded (multithreading!)
- MutexGuard aGuard( GetInitMutex() );
+ MutexGuard aGuard( Mutex::getGlobalMutex() );
+
// Decrease our refcount.
--m_nRefCount;
// If last instance was deleted ...
@@ -888,16 +885,6 @@
return m_pDataContainer->IsMacroRecorderMode();
}
-namespace
-{
- class theSvtMiscOptionsMutex :
- public rtl::Static< osl::Mutex, theSvtMiscOptionsMutex > {};
-}
-
-Mutex & SvtMiscOptions::GetInitMutex()
-{
- return theSvtMiscOptionsMutex::get();
-}
void SvtMiscOptions::AddListenerLink( const Link& rLink )
{
--
To view, visit https://gerrit.libreoffice.org/1506
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I85dbb808db8f04c1c0eac6ed85ef412306a446f3
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: LeMoyne Castle <lemoyne.castle@gmail.com>
Context
- [PATCH] Simple fix for fdo#58766 · LeMoyne Castle (via Code Review)
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.