cui/source/options/optaboutconfig.cxx |   53 ++++++++++++++++++++++++++++++----
 cui/source/options/optaboutconfig.hxx |    6 +--
 2 files changed, 51 insertions(+), 8 deletions(-)

New commits:
commit 69892393f2588767e1d380ad0fc9d8e812a9713f
Author: Efe Gürkan YALAMAN <efeyala...@gmail.com>
Date:   Mon Jul 22 23:09:28 2013 +0300

    Draft for FillItems
    
    Change-Id: Iefd8a21d1cb27496c87502755834c31b1a35ba44

diff --git a/cui/source/options/optaboutconfig.cxx 
b/cui/source/options/optaboutconfig.cxx
index 09805c0..6bc02bf 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,44 @@ void CuiAboutConfigTabPage::InsertEntry( OUString& rProp, 
OUString&  rStatus, OU
     pPrefBox->Insert( pEntry );
 }
 
-sal_Bool CuiAboutConfigTabPage::FillItems()
+
+void CuiAboutConfigTabPage::FillItems( Reference< XNameAccess >xNameAccess,
+        Reference< XHierarchicalNameAccess > xHierarchicalNameAccess, OUString 
sPath)
 {
-    return sal_False;
+    sal_Bool bIsLeafNode;
+//    Reference< XNameAccess > xNameAccess = getConfigAccess();
+    //Reference< XHierarchicalNameAccess > xNextHierarchicalNameAccess;
+
+    uno::Sequence< OUString > seqItems = xNameAccess->getElementNames();
+    for( sal_Int16 i = 0; i < seqItems.getLength(); ++i )
+    {
+        xHierarchicalNextNameAccess = 
xHierarchicalNameAccess->getByHierarchicalName( seqItems[i] );
+
+        //getConfigAccess for nextNameAccess ? with 
xHierarchicalNextName.getName()
+
+        bIsLeafNode = sal_True;
+
+        try
+        {
+            uno::Sequence < OUString  > seqNext = 
xNextNameAccess->getElementNames();
+            FillItems( xHierarchicalNextAccess, sPath + OUString("/") + 
seqItems[i] );
+            bIsLeafNode = sal_False;
+
+        }
+        catch( uno::Exception& )
+        {
+        }
+
+        if( bIsLeafNode )
+        {
+            InsertEntry( sPath, "", "", "");
+        }
+    }
 }
 
-uno::Reference< container::XNameAccess > 
CuiAboutConfigTabPage::getConfigAccess()
+//uno::Reference< XNameAccess > CuiAboutConfigTabPage::getConfigAccess( 
sal_Bool isHierarchical )
+void CuiAboutConfigTabPage::getConfigAccess( Reference< XNameAccess >& 
xNameAccess,
+        Reference< XHierarchicalNameAccess >& xHierarchicalNameAccess )
 {
     uno::Reference< uno::XComponentContext > xContext( 
::comphelper::getProcessComponentContext() );
 
@@ -98,11 +134,18 @@ uno::Reference< container::XNameAccess > 
CuiAboutConfigTabPage::getConfigAccess(
     uno::Sequence< uno::Any > aArgumentList( 1 );
     aArgumentList[0] = uno::makeAny( aProperty );
 
-    uno::Reference< container::XNameAccess > xNameAccess(
+    uno::Reference< container::XNameAccess > xNameAcc(
                 xConfigProvider->createInstanceWithArguments(
                     "com.sun.star.configuration.ConfigurationAccess", 
aArgumentList ),
                 uno::UNO_QUERY_THROW );
 
-    return xNameAccess;
+    Reference< XHierarchicalNameAccess > xHierarchicalNameAcc(
+                xConfigProvider->createInstanceWithArguments(
+                    "com.sun.star.configuration.ConfigurationAccess", 
aArgumentList ),
+                uno::UNO_QUERY_THROW );
+
+    xNameAccess = xNameAcc;
+    xHierarchicalNameAccess = xHierarchicalNameAcc;
+
 }
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/optaboutconfig.hxx 
b/cui/source/options/optaboutconfig.hxx
index eb446dc..947009e 100644
--- a/cui/source/options/optaboutconfig.hxx
+++ b/cui/source/options/optaboutconfig.hxx
@@ -13,7 +13,7 @@
 #include <sfx2/tabdlg.hxx>
 #include <svx/simptabl.hxx>
 #include "optHeaderTabListbox.hxx"
-#include <com/sun/star/container/XNameAccess.hpp>
+#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
 
 namespace svx
 {
@@ -35,8 +35,8 @@ public:
    static SfxTabPage* Create( Window* pParent, const SfxItemSet& rItemset );
 
    void     InsertEntry(OUString& rProp, OUString&  rStatus, OUString& rType, 
OUString& rValue);
-   sal_Bool FillItems();
-   com::sun::star::uno::Reference< com::sun::star::container::XNameAccess > 
getConfigAccess();
+   void     FillItems( com::sun::star::uno::Reference < 
com::sun::star::container::XHierarchicalNameAccess > xNameAccess, OUString 
sPath);
+   com::sun::star::uno::Reference< 
com::sun::star::container::XHierarchicalNameAccess > getConfigAccess();
 
 };
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to