Rebased ref, commits from common ancestor: commit e48c4f22d018037868e8aee4790d8ae6e7aa6162 Author: Efe Gürkan YALAMAN <efeyala...@gmail.com> Date: Tue Jul 23 16:28:39 2013 +0300
Reset method implementation. Change-Id: I34fb54feb636eb9b3f61062969855f9d80140c08 diff --git a/cui/source/options/optaboutconfig.cxx b/cui/source/options/optaboutconfig.cxx index 48036df..b7072c3 100644 --- a/cui/source/options/optaboutconfig.cxx +++ b/cui/source/options/optaboutconfig.cxx @@ -14,8 +14,8 @@ #include <comphelper/processfactory.hxx> #include <com/sun/star/configuration/theDefaultProvider.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/container/XNameAccess.hpp> #include <com/sun/star/beans/NamedValue.hpp> +#include <com/sun/star/beans/Property.hpp> #include <com/sun/star/container/XNameAccess.hpp> #include <com/sun/star/container/XHierarchicalNameAccess.hpp> @@ -83,14 +83,20 @@ void CuiAboutConfigTabPage::InsertEntry( OUString& rProp, OUString& rStatus, OU pPrefBox->Insert( pEntry ); } +void CuiAboutConfigTabPage::Reset( const SfxItemSet& ) +{ + pPrefBox->Clear(); + + Reference< XNameAccess > xConfigAccess = getConfigAccess(); + + FillItems( xConfigAccess, OUString("org.openoffice") ); +} void CuiAboutConfigTabPage::FillItems( Reference< XNameAccess >xNameAccess, OUString sPath) { sal_Bool bIsLeafNode; - //Reference< XNameAccess > xNextNameAccess; Reference< XHierarchicalNameAccess > xHierarchicalNameAccess( xNameAccess, uno::UNO_QUERY_THROW ); - //Reference< XHierarchicalNameAccess > xNextHierarchicalNameAccess; uno::Sequence< OUString > seqItems = xNameAccess->getElementNames(); for( sal_Int16 i = 0; i < seqItems.getLength(); ++i ) @@ -115,6 +121,8 @@ void CuiAboutConfigTabPage::FillItems( Reference< XNameAccess >xNameAccess, OUSt if( bIsLeafNode ) { //InsertEntry( sPath, "", "", ""); + //Reference< beans::Property > aProperty = xHierarchicalNameAccess->getAsProperty();//getPropertyValue( seqItems[ i ] ); + //InsertEntry( sPath + OUString("/") + seqItems[ i ], OUString(""), OUString(""), xNameAccess->getPropertyValue( seqItems[ i ] ) ); } } } diff --git a/cui/source/options/optaboutconfig.hxx b/cui/source/options/optaboutconfig.hxx index 2982378..343f0c9 100644 --- a/cui/source/options/optaboutconfig.hxx +++ b/cui/source/options/optaboutconfig.hxx @@ -35,6 +35,7 @@ public: static SfxTabPage* Create( Window* pParent, const SfxItemSet& rItemset ); void InsertEntry(OUString& rProp, OUString& rStatus, OUString& rType, OUString& rValue); + void Reset( const SfxItemSet& ); void FillItems( com::sun::star::uno::Reference < com::sun::star::container::XNameAccess > xNameAccess, OUString sPath); com::sun::star::uno::Reference< com::sun::star::container::XNameAccess > getConfigAccess(); commit 5bb3a60925b6b49811a225120f09b575234d5d15 Author: Efe Gürkan YALAMAN <efeyala...@gmail.com> Date: Mon Jul 22 23:09:28 2013 +0300 FillItems implemened This method will be used for traversing configuration tree. Change-Id: Iefd8a21d1cb27496c87502755834c31b1a35ba44 diff --git a/cui/source/options/optaboutconfig.cxx b/cui/source/options/optaboutconfig.cxx index 09805c0..48036df 100644 --- a/cui/source/options/optaboutconfig.cxx +++ b/cui/source/options/optaboutconfig.cxx @@ -16,10 +16,14 @@ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/container/XNameAccess.hpp> #include <com/sun/star/beans/NamedValue.hpp> +#include <com/sun/star/container/XNameAccess.hpp> +#include <com/sun/star/container/XHierarchicalNameAccess.hpp> using namespace svx; using namespace ::com::sun::star; +using namespace com::sun::star::uno; +using namespace com::sun::star::container; #define ITEMID_PREF 1 #define ITEMID_TYPE 2 @@ -79,12 +83,43 @@ void CuiAboutConfigTabPage::InsertEntry( OUString& rProp, OUString& rStatus, OU pPrefBox->Insert( pEntry ); } -sal_Bool CuiAboutConfigTabPage::FillItems() + +void CuiAboutConfigTabPage::FillItems( Reference< XNameAccess >xNameAccess, OUString sPath) { - return sal_False; + sal_Bool bIsLeafNode; + + //Reference< XNameAccess > xNextNameAccess; + Reference< XHierarchicalNameAccess > xHierarchicalNameAccess( xNameAccess, uno::UNO_QUERY_THROW ); + //Reference< XHierarchicalNameAccess > xNextHierarchicalNameAccess; + + uno::Sequence< OUString > seqItems = xNameAccess->getElementNames(); + for( sal_Int16 i = 0; i < seqItems.getLength(); ++i ) + { + Any aNode = xHierarchicalNameAccess->getByHierarchicalName( seqItems[i] ); + Reference< XHierarchicalNameAccess >xNextHierarchicalNameAccess( aNode, uno::UNO_QUERY_THROW ); + Reference< XNameAccess > xNextNameAccess( xNextHierarchicalNameAccess, uno::UNO_QUERY_THROW ); + + bIsLeafNode = sal_True; + + try + { + uno::Sequence < OUString > seqNext = xNextNameAccess->getElementNames(); + FillItems( xNextNameAccess, sPath + OUString("/") + seqItems[i] ); + bIsLeafNode = sal_False; + + } + catch( uno::Exception& ) + { + } + + if( bIsLeafNode ) + { + //InsertEntry( sPath, "", "", ""); + } + } } -uno::Reference< container::XNameAccess > CuiAboutConfigTabPage::getConfigAccess() +Reference< XNameAccess > CuiAboutConfigTabPage::getConfigAccess() { uno::Reference< uno::XComponentContext > xContext( ::comphelper::getProcessComponentContext() ); diff --git a/cui/source/options/optaboutconfig.hxx b/cui/source/options/optaboutconfig.hxx index eb446dc..2982378 100644 --- a/cui/source/options/optaboutconfig.hxx +++ b/cui/source/options/optaboutconfig.hxx @@ -35,7 +35,7 @@ public: static SfxTabPage* Create( Window* pParent, const SfxItemSet& rItemset ); void InsertEntry(OUString& rProp, OUString& rStatus, OUString& rType, OUString& rValue); - sal_Bool FillItems(); + void FillItems( com::sun::star::uno::Reference < com::sun::star::container::XNameAccess > xNameAccess, OUString sPath); com::sun::star::uno::Reference< com::sun::star::container::XNameAccess > getConfigAccess(); };
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits