summaryrefslogtreecommitdiff
path: root/cui
diff options
context:
space:
mode:
authorEfe Gürkan YALAMAN <efeyalaman@gmail.com>2013-07-22 23:09:28 +0300
committerThorsten Behrens <tbehrens@suse.com>2013-08-01 02:19:31 +0200
commit1fe4ace618d8d3bbd3db1aa361dfc8e2a2426239 (patch)
tree8a8d0a63785610bbecd7b1ff39866fb72a62995d /cui
parent217a1370977bcba866ad292aef4f2047460c275a (diff)
FillItems implemened
This method will be used for traversing configuration tree. Change-Id: Iefd8a21d1cb27496c87502755834c31b1a35ba44
Diffstat (limited to 'cui')
-rw-r--r--cui/source/options/optaboutconfig.cxx41
-rw-r--r--cui/source/options/optaboutconfig.hxx2
2 files changed, 39 insertions, 4 deletions
diff --git a/cui/source/options/optaboutconfig.cxx b/cui/source/options/optaboutconfig.cxx
index 09805c05057d..48036df367ab 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 dae360c01932..510a6c7c6820 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();
};