[Libreoffice-commits] core.git: cui/source
Mihály Palenik
palenik.mihaly at gmail.com
Mon Jun 22 05:14:56 PDT 2015
cui/source/options/optaboutconfig.cxx | 574 +++++++++++++++++-----------------
cui/source/options/optaboutconfig.hxx | 2
2 files changed, 299 insertions(+), 277 deletions(-)
New commits:
commit eb0c9b43e7f09054a864eb44c24c43b27c0f21f5
Author: Mihály Palenik <palenik.mihaly at gmail.com>
Date: Mon Jun 22 13:38:04 2015 +0200
Review Expert Configuration dialog's tree view.
In Expert configuration dialog's tree view didn't work correctly. Now I
followed the old pattern. Additionaly the entries' name are shorter.
Change-Id: Ib7ecd065f02c8f3bbef94daf7f32cb68ab676ee8
Reviewed-on: https://gerrit.libreoffice.org/16411
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/cui/source/options/optaboutconfig.cxx b/cui/source/options/optaboutconfig.cxx
index f2de149..cd1cd4b 100644
--- a/cui/source/options/optaboutconfig.cxx
+++ b/cui/source/options/optaboutconfig.cxx
@@ -55,6 +55,23 @@ struct Prop_Impl
{}
};
+struct UserData
+{
+ bool bIsPropertyPath;
+ OUString sPropertyPath;
+ Reference<XNameAccess> aXNameAccess;
+
+ UserData( OUString rPropertyPath )
+ : bIsPropertyPath( true )
+ , sPropertyPath(rPropertyPath)
+ {}
+
+ UserData( Reference<XNameAccess> rXNameAccess )
+ : bIsPropertyPath( false )
+ , aXNameAccess( rXNameAccess )
+ {}
+};
+
VCL_BUILDER_FACTORY_ARGS(CuiCustomMultilineEdit,WB_LEFT|WB_VCENTER|WB_BORDER|WB_3DLOOK)
void CuiCustomMultilineEdit::KeyInput( const KeyEvent& rKeyEvent )
@@ -176,7 +193,7 @@ void CuiAboutConfigTabPage::dispose()
ModelessDialog::dispose();
}
-void CuiAboutConfigTabPage::InsertEntry(const OUString& rProp, const OUString& rStatus,
+void CuiAboutConfigTabPage::InsertEntry(const OUString& rPropertyPath, const OUString& rProp, const OUString& rStatus,
const OUString& rType, const OUString& rValue, SvTreeListEntry *pParentEntry)
{
SvTreeListEntry* pEntry = new SvTreeListEntry;
@@ -185,6 +202,7 @@ void CuiAboutConfigTabPage::InsertEntry(const OUString& rProp, const OUString& r
pEntry->AddItem( new SvLBoxString( pEntry, 0, rStatus));
pEntry->AddItem( new SvLBoxString( pEntry, 0, rType));
pEntry->AddItem( new SvLBoxString( pEntry, 0, rValue));
+ pEntry->SetUserData( new UserData(rPropertyPath) );
m_pPrefBox->Insert( pEntry, pParentEntry );
@@ -228,208 +246,208 @@ bool CuiAboutConfigTabPage::FillItemSet()
void CuiAboutConfigTabPage::FillItems(const Reference< XNameAccess >& xNameAccess, SvTreeListEntry *pParentEntry)
{
+ OUString sPath = Reference< XHierarchicalName >(
+ xNameAccess, uno::UNO_QUERY_THROW )->getHierarchicalName();
uno::Sequence< OUString > seqItems = xNameAccess->getElementNames();
for( sal_Int32 i = 0; i < seqItems.getLength(); ++i )
{
Any aNode = xNameAccess->getByName( seqItems[i] );
- Reference< XNameAccess > xChildNameAccess;
+ bool bNotLeaf = false;
+
+ Reference< XNameAccess > xNextNameAccess;
try
{
- xChildNameAccess = Reference< XNameAccess >(aNode, uno::UNO_QUERY);
- OUString sPath = Reference< XHierarchicalName >(
- xChildNameAccess, uno::UNO_QUERY_THROW )->getHierarchicalName();
- uno::Sequence< OUString > seqChildItems = xChildNameAccess->getElementNames();
+ xNextNameAccess = Reference< XNameAccess >(aNode, uno::UNO_QUERY);
+ bNotLeaf = xNextNameAccess.is();
+ }
+ catch (const RuntimeException& e)
+ {
+ SAL_WARN( "cui.options", "CuiAboutConfigTabPage: exception " << e.Message);
+ }
- bool bIsNotLeaf = false;
+ if (bNotLeaf)
+ {
+ // not leaf node
+ SvTreeListEntry* pEntry = new SvTreeListEntry;
+ pEntry->AddItem( new SvLBoxContextBmp( pEntry, 0, SvTreeListBox::GetDefaultExpandedNodeImage(),
+ SvTreeListBox::GetDefaultCollapsedNodeImage(), false));
+ pEntry->AddItem( new SvLBoxString( pEntry, 0, seqItems[i]));
+ //It is needed, without this the selection line will be truncated.
+ pEntry->AddItem( new SvLBoxString( pEntry, 0, ""));
+ pEntry->AddItem( new SvLBoxString( pEntry, 0, ""));
+ pEntry->AddItem( new SvLBoxString( pEntry, 0, ""));
+
+ pEntry->SetUserData( new UserData(xNextNameAccess) );
+ m_pPrefBox->Insert( pEntry, pParentEntry );
+ }
+ else
+ {
+ // leaf node
+ OUString sType = aNode.getValueTypeName();
- for( sal_Int32 l = 0; l < seqChildItems.getLength(); ++l )
+ OUString sValue;
+ switch( aNode.getValueType().getTypeClass() )
{
- aNode = xChildNameAccess->getByName( seqChildItems[l] );
-
- Reference< XNameAccess > xGrandChildNameAccess = Reference< XNameAccess >(aNode, uno::UNO_QUERY);
- if(xGrandChildNameAccess.is())
- {
- // not leaf node
- if(bIsNotLeaf)
- continue;
- SvTreeListEntry* pEntry = new SvTreeListEntry;
- pEntry->AddItem( new SvLBoxContextBmp( pEntry, 0, SvTreeListBox::GetDefaultExpandedNodeImage(),
- SvTreeListBox::GetDefaultCollapsedNodeImage(), false));
- pEntry->AddItem( new SvLBoxString( pEntry, 0, sPath));
- //It is needed, without this the selection line will be truncated.
- pEntry->AddItem( new SvLBoxString( pEntry, 0, ""));
- pEntry->AddItem( new SvLBoxString( pEntry, 0, ""));
- pEntry->AddItem( new SvLBoxString( pEntry, 0, ""));
-
- pEntry->SetUserData( new Reference<XNameAccess>(xChildNameAccess) );
- m_pPrefBox->Insert( pEntry, pParentEntry );
- bIsNotLeaf = true;
- }
- else
- {
- // leaf node
- OUString sType = aNode.getValueTypeName();
-
- OUString sValue;
- switch( aNode.getValueType().getTypeClass() )
- {
- case ::com::sun::star::uno::TypeClass_VOID:
- break;
+ case ::com::sun::star::uno::TypeClass_VOID:
+ break;
- case ::com::sun::star::uno::TypeClass_BOOLEAN:
- sValue = OUString::boolean( aNode.get<bool>() );
- break;
+ case ::com::sun::star::uno::TypeClass_BOOLEAN:
+ sValue = OUString::boolean( aNode.get<bool>() );
+ break;
- case ::com::sun::star::uno::TypeClass_SHORT:
- case ::com::sun::star::uno::TypeClass_LONG:
- case ::com::sun::star::uno::TypeClass_HYPER:
- sValue = OUString::number( aNode.get<sal_Int64>() );
- break;
+ case ::com::sun::star::uno::TypeClass_SHORT:
+ case ::com::sun::star::uno::TypeClass_LONG:
+ case ::com::sun::star::uno::TypeClass_HYPER:
+ sValue = OUString::number( aNode.get<sal_Int64>() );
+ break;
- case ::com::sun::star::uno::TypeClass_DOUBLE:
- sValue = OUString::number( aNode.get<double>() );
- break;
+ case ::com::sun::star::uno::TypeClass_DOUBLE:
+ sValue = OUString::number( aNode.get<double>() );
+ break;
- case ::com::sun::star::uno::TypeClass_STRING:
- sValue = aNode.get<OUString>();
- break;
+ case ::com::sun::star::uno::TypeClass_STRING:
+ sValue = aNode.get<OUString>();
+ break;
- case ::com::sun::star::uno::TypeClass_SEQUENCE:
- if( sType == "[]boolean" )
+ case ::com::sun::star::uno::TypeClass_SEQUENCE:
+ if( sType == "[]boolean" )
+ {
+ uno::Sequence<sal_Bool> seq = aNode.get< uno::Sequence<sal_Bool> >();
+ for( sal_Int32 j = 0; j != seq.getLength(); ++j )
+ {
+ if( j != 0 )
{
- uno::Sequence<sal_Bool> seq = aNode.get< uno::Sequence<sal_Bool> >();
- for( sal_Int32 j = 0; j != seq.getLength(); ++j )
- {
- if( j != 0 )
- {
- sValue += ",";
- }
- sValue += OUString::boolean( seq[j] );
- }
+ sValue += ",";
}
- else if( sType == "[]byte" )
+ sValue += OUString::boolean( seq[j] );
+ }
+ }
+ else if( sType == "[]byte" )
+ {
+ uno::Sequence<sal_Int8> seq = aNode.get< uno::Sequence<sal_Int8> >();
+ for( sal_Int32 j = 0; j != seq.getLength(); ++j )
+ {
+ OUString s = OUString::number(
+ static_cast<sal_uInt8>(seq[j]), 16 );
+ if( s.getLength() == 1 )
{
- uno::Sequence<sal_Int8> seq = aNode.get< uno::Sequence<sal_Int8> >();
- for( sal_Int32 j = 0; j != seq.getLength(); ++j )
- {
- OUString s = OUString::number(
- static_cast<sal_uInt8>(seq[j]), 16 );
- if( s.getLength() == 1 )
- {
- sValue += "0";
- }
- sValue += s.toAsciiUpperCase();
- }
+ sValue += "0";
}
- else if( sType == "[][]byte" )
+ sValue += s.toAsciiUpperCase();
+ }
+ }
+ else if( sType == "[][]byte" )
+ {
+ uno::Sequence< uno::Sequence<sal_Int8> > seq = aNode.get< uno::Sequence< uno::Sequence<sal_Int8> > >();
+ for( sal_Int32 j = 0; j != seq.getLength(); ++j )
+ {
+ if( j != 0 )
{
- uno::Sequence< uno::Sequence<sal_Int8> > seq = aNode.get< uno::Sequence< uno::Sequence<sal_Int8> > >();
- for( sal_Int32 j = 0; j != seq.getLength(); ++j )
- {
- if( j != 0 )
- {
- sValue += ",";
- }
- for( sal_Int32 k = 0; k != seq[j].getLength(); ++k )
- {
- OUString s = OUString::number(
- static_cast<sal_uInt8>(seq[j][k]), 16 );
- if( s.getLength() == 1 )
- {
- sValue += "0";
- }
- sValue += s.toAsciiUpperCase();
- }
- }
+ sValue += ",";
}
- else if( sType == "[]short" )
+ for( sal_Int32 k = 0; k != seq[j].getLength(); ++k )
{
- uno::Sequence<sal_Int16> seq = aNode.get< uno::Sequence<sal_Int16> >();
- for( sal_Int32 j = 0; j != seq.getLength(); ++j )
+ OUString s = OUString::number(
+ static_cast<sal_uInt8>(seq[j][k]), 16 );
+ if( s.getLength() == 1 )
{
- if( j != 0 )
- {
- sValue += ",";
- }
- sValue += OUString::number( seq[j] );
+ sValue += "0";
}
+ sValue += s.toAsciiUpperCase();
}
- else if( sType == "[]long" )
+ }
+ }
+ else if( sType == "[]short" )
+ {
+ uno::Sequence<sal_Int16> seq = aNode.get< uno::Sequence<sal_Int16> >();
+ for( sal_Int32 j = 0; j != seq.getLength(); ++j )
+ {
+ if( j != 0 )
{
- uno::Sequence<sal_Int32> seq = aNode.get< uno::Sequence<sal_Int32> >();
- for( sal_Int32 j = 0; j != seq.getLength(); ++j )
- {
- if( j != 0 )
- {
- sValue += ",";
- }
- sValue += OUString::number( seq[j] );
- }
+ sValue += ",";
}
- else if( sType == "[]hyper" )
+ sValue += OUString::number( seq[j] );
+ }
+ }
+ else if( sType == "[]long" )
+ {
+ uno::Sequence<sal_Int32> seq = aNode.get< uno::Sequence<sal_Int32> >();
+ for( sal_Int32 j = 0; j != seq.getLength(); ++j )
+ {
+ if( j != 0 )
{
- uno::Sequence<sal_Int64> seq = aNode.get< uno::Sequence<sal_Int64> >();
- for( sal_Int32 j = 0; j != seq.getLength(); ++j )
- {
- if( j != 0 )
- {
- sValue += ",";
- }
- sValue += OUString::number( seq[j] );
- }
+ sValue += ",";
}
- else if( sType == "[]double" )
+ sValue += OUString::number( seq[j] );
+ }
+ }
+ else if( sType == "[]hyper" )
+ {
+ uno::Sequence<sal_Int64> seq = aNode.get< uno::Sequence<sal_Int64> >();
+ for( sal_Int32 j = 0; j != seq.getLength(); ++j )
+ {
+ if( j != 0 )
{
- uno::Sequence<double> seq = aNode.get< uno::Sequence<double> >();
- for( sal_Int32 j = 0; j != seq.getLength(); ++j )
- {
- if( j != 0 )
- {
- sValue += ",";
- }
- sValue += OUString::number( seq[j] );
- }
+ sValue += ",";
}
- else if( sType == "[]string" )
+ sValue += OUString::number( seq[j] );
+ }
+ }
+ else if( sType == "[]double" )
+ {
+ uno::Sequence<double> seq = aNode.get< uno::Sequence<double> >();
+ for( sal_Int32 j = 0; j != seq.getLength(); ++j )
+ {
+ if( j != 0 )
{
- uno::Sequence<OUString> seq = aNode.get< uno::Sequence<OUString> >();
- for( sal_Int32 j = 0; j != seq.getLength(); ++j )
- {
- if( j != 0 )
- {
- sValue += ",";
- }
- sValue += seq[j];
- }
+ sValue += ",";
}
- else
+ sValue += OUString::number( seq[j] );
+ }
+ }
+ else if( sType == "[]string" )
+ {
+ uno::Sequence<OUString> seq = aNode.get< uno::Sequence<OUString> >();
+ for( sal_Int32 j = 0; j != seq.getLength(); ++j )
+ {
+ if( j != 0 )
{
- SAL_WARN(
- "cui.options",
- "path \"" << sPath << "\" member " << seqItems[i]
- << " of unsupported type " << sType);
+ sValue += ",";
}
- break;
-
- default:
- SAL_WARN(
- "cui.options",
- "path \"" << sPath << "\" member " << seqItems[i]
- << " of unsupported type " << sType);
- break;
+ sValue += seq[j];
}
-
- InsertEntry( sPath, seqChildItems[l], sType, sValue, pParentEntry);
}
+ else
+ {
+ SAL_WARN(
+ "cui.options",
+ "path \"" << sPath << "\" member " << seqItems[i]
+ << " of unsupported type " << sType);
+ }
+ break;
+
+ default:
+ SAL_WARN(
+ "cui.options",
+ "path \"" << sPath << "\" member " << seqItems[i]
+ << " of unsupported type " << sType);
+ break;
}
- }
- catch (const RuntimeException& e)
- {
- SAL_WARN( "cui.options", "CuiAboutConfigTabPage: exception " << e.Message);
+
+ //Short name
+ int index = 0;
+ int lineage;
+ SvTreeListEntry *parentEntry = pParentEntry;
+ for(lineage = 0; parentEntry != nullptr; ++lineage)
+ parentEntry = m_pPrefBox->GetParent(parentEntry);
+
+ for(int j = 1; j < lineage; ++j)
+ index = sPath.indexOf("/", index + 1);
+
+ InsertEntry(sPath, sPath.copy(index+1), seqItems[i], sType, sValue, pParentEntry);
}
}
-
m_pPrefBox->SetAlternatingRowColors( true );
}
@@ -531,21 +549,22 @@ IMPL_LINK_NOARG( CuiAboutConfigTabPage, StandardHdl_Impl )
{
SvTreeListEntry* pEntry = m_pPrefBox->FirstSelected();
- if(pEntry->GetUserData() != nullptr)
+ UserData *pUserData = static_cast<UserData*>(pEntry->GetUserData());
+ if(!pUserData->bIsPropertyPath)
{
//if selection is not node
if(!pEntry->HasChildren())
- FillItems( *static_cast<Reference<XNameAccess>*>(pEntry->GetUserData()), pEntry );
+ FillItems( pUserData->aXNameAccess, pEntry );
}
else
{
//if selection is a node
- OUString sPropertyPath = SvTabListBox::GetEntryText( pEntry, 0 );
OUString sPropertyName = SvTabListBox::GetEntryText( pEntry, 1 );
OUString sPropertyType = SvTabListBox::GetEntryText( pEntry, 2 );
OUString sPropertyValue = SvTabListBox::GetEntryText( pEntry, 3 );
- boost::shared_ptr< Prop_Impl > pProperty (new Prop_Impl( sPropertyPath, sPropertyName, makeAny( sPropertyValue ) ) );
+ boost::shared_ptr< Prop_Impl > pProperty (new Prop_Impl( pUserData->sPropertyPath, sPropertyName, makeAny( sPropertyValue ) ) );
+ bool bSaveChanges = false;
bool bOpenDialog = true;
OUString sDialogValue;
@@ -567,6 +586,7 @@ IMPL_LINK_NOARG( CuiAboutConfigTabPage, StandardHdl_Impl )
pProperty->Value = uno::makeAny( bValue );
bOpenDialog = false;
+ bSaveChanges = true;
}
else if ( sPropertyType == "void" )
{
@@ -596,6 +616,7 @@ IMPL_LINK_NOARG( CuiAboutConfigTabPage, StandardHdl_Impl )
if( pValueDialog->Execute() == RET_OK )
{
sNewValue = pValueDialog->getValue();
+ bSaveChanges = true;
if ( sPropertyType == "short")
{
sal_Int16 nShort;
@@ -608,130 +629,131 @@ IMPL_LINK_NOARG( CuiAboutConfigTabPage, StandardHdl_Impl )
throw uno::Exception();
pProperty->Value = uno::makeAny( nShort );
}
- else
- if( sPropertyType == "long" )
- {
- sal_Int32 nLong = sNewValue.toInt32();
- if( !( nLong==0 && sNewValue.getLength()!=1 ) && nLong < SAL_MAX_INT32 && nLong > SAL_MIN_INT32)
- pProperty->Value = uno::makeAny( nLong );
- else
- throw uno::Exception();
- }
- else if( sPropertyType == "hyper")
- {
- sal_Int64 nHyper = sNewValue.toInt64();
- if( !( nHyper==0 && sNewValue.getLength()!=1 ) && nHyper < SAL_MAX_INT32 && nHyper > SAL_MIN_INT32)
- pProperty->Value = uno::makeAny( nHyper );
- else
- throw uno::Exception();
- }
- else if( sPropertyType == "double")
- {
- double nDoub = sNewValue.toDouble();
- if( !( nDoub ==0 && sNewValue.getLength()!=1 ) && nDoub < SAL_MAX_INT32 && nDoub > SAL_MIN_INT32)
- pProperty->Value = uno::makeAny( nDoub );
- else
- throw uno::Exception();
- }
- else if( sPropertyType == "float")
- {
- float nFloat = sNewValue.toFloat();
- if( !( nFloat ==0 && sNewValue.getLength()!=1 ) && nFloat < SAL_MAX_INT32 && nFloat > SAL_MIN_INT32)
- pProperty->Value = uno::makeAny( nFloat );
- else
- throw uno::Exception();
- }
- else if( sPropertyType == "string" )
- {
- pProperty->Value = uno::makeAny( sNewValue );
- }
- else if( sPropertyType == "[]short" )
+ else if( sPropertyType == "long" )
+ {
+ sal_Int32 nLong = sNewValue.toInt32();
+ if( !( nLong==0 && sNewValue.getLength()!=1 ) && nLong < SAL_MAX_INT32 && nLong > SAL_MIN_INT32)
+ pProperty->Value = uno::makeAny( nLong );
+ else
+ throw uno::Exception();
+ }
+ else if( sPropertyType == "hyper")
+ {
+ sal_Int64 nHyper = sNewValue.toInt64();
+ if( !( nHyper==0 && sNewValue.getLength()!=1 ) && nHyper < SAL_MAX_INT32 && nHyper > SAL_MIN_INT32)
+ pProperty->Value = uno::makeAny( nHyper );
+ else
+ throw uno::Exception();
+ }
+ else if( sPropertyType == "double")
+ {
+ double nDoub = sNewValue.toDouble();
+ if( !( nDoub ==0 && sNewValue.getLength()!=1 ) && nDoub < SAL_MAX_INT32 && nDoub > SAL_MIN_INT32)
+ pProperty->Value = uno::makeAny( nDoub );
+ else
+ throw uno::Exception();
+ }
+ else if( sPropertyType == "float")
+ {
+ float nFloat = sNewValue.toFloat();
+ if( !( nFloat ==0 && sNewValue.getLength()!=1 ) && nFloat < SAL_MAX_INT32 && nFloat > SAL_MIN_INT32)
+ pProperty->Value = uno::makeAny( nFloat );
+ else
+ throw uno::Exception();
+ }
+ else if( sPropertyType == "string" )
+ {
+ pProperty->Value = uno::makeAny( sNewValue );
+ }
+ else if( sPropertyType == "[]short" )
+ {
+ //create string sequence from comma separated string
+ //uno::Sequence< OUString > seqStr;
+ std::vector< OUString > seqStr;
+ seqStr = commaStringToSequence( sNewValue );
+
+ //create appropriate sequence with same size as string sequence
+ uno::Sequence< sal_Int16 > seqShort( seqStr.size() );
+ //convert all strings to appropriate type
+ for( size_t i = 0; i < seqStr.size(); ++i )
{
- //create string sequence from comma separated string
- //uno::Sequence< OUString > seqStr;
- std::vector< OUString > seqStr;
- seqStr = commaStringToSequence( sNewValue );
-
- //create appropriate sequence with same size as string sequence
- uno::Sequence< sal_Int16 > seqShort( seqStr.size() );
- //convert all strings to appropriate type
- for( size_t i = 0; i < seqStr.size(); ++i )
- {
- seqShort[i] = (sal_Int16) seqStr[i].toInt32();
- }
- pProperty->Value = uno::makeAny( seqShort );
+ seqShort[i] = (sal_Int16) seqStr[i].toInt32();
}
- else if( sPropertyType == "[]long" )
- {
- std::vector< OUString > seqStrLong;
- seqStrLong = commaStringToSequence( sNewValue );
+ pProperty->Value = uno::makeAny( seqShort );
+ }
+ else if( sPropertyType == "[]long" )
+ {
+ std::vector< OUString > seqStrLong;
+ seqStrLong = commaStringToSequence( sNewValue );
- uno::Sequence< sal_Int32 > seqLong( seqStrLong.size() );
- for( size_t i = 0; i < seqStrLong.size(); ++i )
- {
- seqLong[i] = seqStrLong[i].toInt32();
- }
- pProperty->Value = uno::makeAny( seqLong );
- }
- else if( sPropertyType == "[]hyper" )
+ uno::Sequence< sal_Int32 > seqLong( seqStrLong.size() );
+ for( size_t i = 0; i < seqStrLong.size(); ++i )
{
- std::vector< OUString > seqStrHyper;
- seqStrHyper = commaStringToSequence( sNewValue );
- uno::Sequence< sal_Int64 > seqHyper( seqStrHyper.size() );
- for( size_t i = 0; i < seqStrHyper.size(); ++i )
- {
- seqHyper[i] = seqStrHyper[i].toInt64();
- }
- pProperty->Value = uno::makeAny( seqHyper );
+ seqLong[i] = seqStrLong[i].toInt32();
}
- else if( sPropertyType == "[]double" )
+ pProperty->Value = uno::makeAny( seqLong );
+ }
+ else if( sPropertyType == "[]hyper" )
+ {
+ std::vector< OUString > seqStrHyper;
+ seqStrHyper = commaStringToSequence( sNewValue );
+ uno::Sequence< sal_Int64 > seqHyper( seqStrHyper.size() );
+ for( size_t i = 0; i < seqStrHyper.size(); ++i )
{
- std::vector< OUString > seqStrDoub;
- seqStrDoub = commaStringToSequence( sNewValue );
- uno::Sequence< double > seqDoub( seqStrDoub.size() );
- for( size_t i = 0; i < seqStrDoub.size(); ++i )
- {
- seqDoub[i] = seqStrDoub[i].toDouble();
- }
- pProperty->Value = uno::makeAny( seqDoub );
+ seqHyper[i] = seqStrHyper[i].toInt64();
}
- else if( sPropertyType == "[]float" )
+ pProperty->Value = uno::makeAny( seqHyper );
+ }
+ else if( sPropertyType == "[]double" )
+ {
+ std::vector< OUString > seqStrDoub;
+ seqStrDoub = commaStringToSequence( sNewValue );
+ uno::Sequence< double > seqDoub( seqStrDoub.size() );
+ for( size_t i = 0; i < seqStrDoub.size(); ++i )
{
- std::vector< OUString > seqStrFloat;
- seqStrFloat = commaStringToSequence( sNewValue );
- uno::Sequence< sal_Int16 > seqFloat( seqStrFloat.size() );
- for( size_t i = 0; i < seqStrFloat.size(); ++i )
- {
- seqFloat[i] = seqStrFloat[i].toFloat();
- }
- pProperty->Value = uno::makeAny( seqFloat );
+ seqDoub[i] = seqStrDoub[i].toDouble();
}
- else if( sPropertyType == "[]string" )
+ pProperty->Value = uno::makeAny( seqDoub );
+ }
+ else if( sPropertyType == "[]float" )
+ {
+ std::vector< OUString > seqStrFloat;
+ seqStrFloat = commaStringToSequence( sNewValue );
+ uno::Sequence< sal_Int16 > seqFloat( seqStrFloat.size() );
+ for( size_t i = 0; i < seqStrFloat.size(); ++i )
{
- pProperty->Value = uno::makeAny( comphelper::containerToSequence( commaStringToSequence( sNewValue )));
+ seqFloat[i] = seqStrFloat[i].toFloat();
}
- else //unknown
- throw uno::Exception();
-
+ pProperty->Value = uno::makeAny( seqFloat );
+ }
+ else if( sPropertyType == "[]string" )
+ {
+ pProperty->Value = uno::makeAny( comphelper::containerToSequence( commaStringToSequence( sNewValue )));
+ }
+ else //unknown
+ throw uno::Exception();
sDialogValue = sNewValue;
-
- AddToModifiedVector( pProperty );
-
- //update listbox value.
- m_pPrefBox->SetEntryText( sDialogValue, pEntry, 3 );
- //update m_prefBoxEntries
- SvTreeListEntries::iterator it = std::find_if(m_prefBoxEntries.begin(), m_prefBoxEntries.end(),
- [&sPropertyPath, &sPropertyName](SvTreeListEntry &entry) -> bool
- {
- return static_cast< SvLBoxString* >( entry.GetItem(1) )->GetText().equals( sPropertyPath ) &&
- static_cast< SvLBoxString* >( entry.GetItem(2) )->GetText().equals( sPropertyName );
- }
- );
- if (it != m_prefBoxEntries.end())
- it->ReplaceItem( new SvLBoxString( &(*it), 0, sDialogValue ), 4 );
}
}
+
+ if(bSaveChanges)
+ {
+ AddToModifiedVector( pProperty );
+
+ //update listbox value.
+ m_pPrefBox->SetEntryText( sDialogValue, pEntry, 3 );
+ //update m_prefBoxEntries
+ SvTreeListEntries::iterator it = std::find_if(m_prefBoxEntries.begin(), m_prefBoxEntries.end(),
+ [&pUserData, &sPropertyName](SvTreeListEntry &entry) -> bool
+ {
+ return static_cast< SvLBoxString* >( entry.GetItem(1) )->GetText().equals( pUserData->sPropertyPath ) &&
+ static_cast< SvLBoxString* >( entry.GetItem(2) )->GetText().equals( sPropertyName );
+ }
+ );
+ if (it != m_prefBoxEntries.end())
+ it->ReplaceItem( new SvLBoxString( &(*it), 0, sDialogValue ), 4 );
+ }
}
catch( uno::Exception& )
{
diff --git a/cui/source/options/optaboutconfig.hxx b/cui/source/options/optaboutconfig.hxx
index 2ef620e..48f97e3 100644
--- a/cui/source/options/optaboutconfig.hxx
+++ b/cui/source/options/optaboutconfig.hxx
@@ -67,7 +67,7 @@ public:
explicit CuiAboutConfigTabPage(vcl::Window* pParent);
virtual ~CuiAboutConfigTabPage();
virtual void dispose() SAL_OVERRIDE;
- void InsertEntry(const OUString& rProp, const OUString& rStatus, const OUString& rType, const OUString& rValue,
+ void InsertEntry(const OUString &rPropertyPath, const OUString& rProp, const OUString& rStatus, const OUString& rType, const OUString& rValue,
SvTreeListEntry *pParentEntry = nullptr);
void Reset();
void FillItems(const com::sun::star::uno::Reference<com::sun::star::container::XNameAccess>& xNameAccess,
More information about the Libreoffice-commits
mailing list