[Libreoffice-commits] .: 2 commits - connectivity/Library_mork.mk connectivity/registry connectivity/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Wed Sep 19 07:15:33 PDT 2012


 connectivity/Library_mork.mk                                            |    1 
 connectivity/registry/mork/org/openoffice/Office/DataAccess/Drivers.xcu |   22 
 connectivity/source/drivers/mork/MColumnAlias.cxx                       |   90 +--
 connectivity/source/drivers/mork/MConfigAccess.cxx                      |  259 ----------
 connectivity/source/drivers/mork/MConfigAccess.hxx                      |   32 -
 connectivity/source/drivers/mork/MExtConfigAccess.hxx                   |   39 -
 connectivity/source/drivers/mork/MQueryHelper.cxx                       |   55 +-
 7 files changed, 55 insertions(+), 443 deletions(-)

New commits:
commit f9a05f4ddfd1a93eb6f2167236cc4a49b275c82d
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Wed Sep 19 16:14:49 2012 +0200

    Some mork driver clean-up and configmgr access fix
    
    Change-Id: I213a9ac5b41c66cd039016315f4641773364fd7c

diff --git a/connectivity/Library_mork.mk b/connectivity/Library_mork.mk
index 17de768..9a73cd0 100644
--- a/connectivity/Library_mork.mk
+++ b/connectivity/Library_mork.mk
@@ -34,7 +34,6 @@ $(eval $(call gb_Library_use_sdk_api,mork))
 
 $(eval $(call gb_Library_add_exception_objects,mork, \
     connectivity/source/drivers/mork/MColumns \
-    connectivity/source/drivers/mork/MConfigAccess \
     connectivity/source/drivers/mork/MColumnAlias \
     connectivity/source/drivers/mork/MNSFolders \
     connectivity/source/drivers/mork/MNSINIParser \
diff --git a/connectivity/registry/mork/org/openoffice/Office/DataAccess/Drivers.xcu b/connectivity/registry/mork/org/openoffice/Office/DataAccess/Drivers.xcu
index 408b005..ff3aa66 100644
--- a/connectivity/registry/mork/org/openoffice/Office/DataAccess/Drivers.xcu
+++ b/connectivity/registry/mork/org/openoffice/Office/DataAccess/Drivers.xcu
@@ -18,28 +18,6 @@
  -->
 <oor:component-data oor:name="Drivers" oor:package="org.openoffice.Office.DataAccess" xmlns:install="http://openoffice.org/2004/installation" xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <node oor:name="Installed" install:module="mork">
-    <node oor:name="sdbc:address:mozilla:" oor:op="replace">
-      <prop oor:name="Driver">
-        <value>com.sun.star.comp.sdbc.MozabDriver</value>
-      </prop>
-      <prop oor:name="DriverTypeDisplayName" oor:type="xs:string">
-        <value xml:lang="en-US">SeaMonkey Address Book</value>
-      </prop>
-      <node oor:name="Features">
-        <node oor:name="EscapeDateTime" oor:op="replace">
-          <prop oor:name="Value" oor:type="xs:boolean">
-            <value>true</value>
-          </prop>
-        </node>
-      </node>
-      <node oor:name="MetaData">
-        <node oor:name="SupportsBrowsing" oor:op="replace">
-          <prop oor:name="Value" oor:type="xs:boolean">
-            <value>true</value>
-          </prop>
-        </node>
-      </node>
-    </node>
     <node oor:name="sdbc:address:thunderbird:" oor:op="replace">
       <prop oor:name="Driver">
         <value>com.sun.star.comp.sdbc.MorkDriver</value>
diff --git a/connectivity/source/drivers/mork/MColumnAlias.cxx b/connectivity/source/drivers/mork/MColumnAlias.cxx
index d2c3ad1..c833787 100644
--- a/connectivity/source/drivers/mork/MColumnAlias.cxx
+++ b/connectivity/source/drivers/mork/MColumnAlias.cxx
@@ -20,10 +20,10 @@
 #include <sal/macros.h>
 #include "MColumnAlias.hxx"
 #include "MConnection.hxx"
-#include "MExtConfigAccess.hxx"
 
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/container/XNameAccess.hpp>
+#include <officecfg/Office/DataAccess.hxx>
 
 #include <tools/diagnose_ex.h>
 
@@ -90,70 +90,38 @@ OColumnAlias::OColumnAlias( const ::com::sun::star::uno::Reference< ::com::sun::
 //------------------------------------------------------------------------------
 void OColumnAlias::initialize( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB )
 {
-    // open our driver settings config node
-
-    // the config path for our own driver's settings
-    Reference< XPropertySet > xDriverNode = createDriverConfigNode( _rxORB );
-    if ( xDriverNode.is() )
-    {
-        try
+    Reference< XNameAccess > xAliasesNode(
+        officecfg::Office::DataAccess::DriverSettings::
+        com_sun_star_comp_sdbc_MozabDriver::ColumnAliases::get(
+            comphelper::getComponentContext(_rxORB)),
+        UNO_QUERY_THROW);
+    Sequence< OUString > aProgrammaticNames(xAliasesNode->getElementNames());
+    for (sal_Int32 i = 0; i != aProgrammaticNames.getLength(); ++i) {
+        OString sAsciiProgrammaticName(
+            OUStringToOString(
+                aProgrammaticNames[i], RTL_TEXTENCODING_ASCII_US));
+        bool bFound = false;
+        for (AliasMap::iterator j(m_aAliasMap.begin()); j != m_aAliasMap.end();
+             ++j)
         {
-            //.............................................................
-            Reference< XNameAccess > xAliasesNode;
-            xDriverNode->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ColumnAliases")) ) >>= xAliasesNode;
-            OSL_ENSURE( xAliasesNode.is(), "OColumnAlias::setAlias: missing the aliases node!" );
-
-            // this is a set of string nodes
-            Sequence< ::rtl::OUString > aProgrammaticNames;
-            if ( xAliasesNode.is() )
-                aProgrammaticNames = xAliasesNode->getElementNames();
-
-            //.............................................................
-            // travel through all the set elements
-            const ::rtl::OUString* pProgrammaticNames = aProgrammaticNames.getConstArray();
-            const ::rtl::OUString* pProgrammaticNamesEnd = pProgrammaticNames + aProgrammaticNames.getLength();
-            ::rtl::OUString sAssignedAlias;
-
-            for ( ; pProgrammaticNames < pProgrammaticNamesEnd; ++pProgrammaticNames )
-            {
-                OSL_VERIFY( xAliasesNode->getByName( *pProgrammaticNames ) >>= sAssignedAlias );
-
-                // normalize in case the config data is corrupted
-                // (what we really don't need is an empty alias ...)
-                if ( sAssignedAlias.isEmpty() )
-                      sAssignedAlias = *pProgrammaticNames;
-
-                ::rtl::OString sAsciiProgrammaticName( ::rtl::OUStringToOString( *pProgrammaticNames, RTL_TEXTENCODING_ASCII_US ) );
-                //.............................................................
-            #if OSL_DEBUG_LEVEL > 0
-                bool bFound = false;
-            #endif
-                for (   AliasMap::iterator search = m_aAliasMap.begin();
-                        ( search != m_aAliasMap.end() );
-                        ++search
-                    )
-                {
-                    if ( search->second.programmaticAsciiName.equals( sAsciiProgrammaticName ) )
-                    {
-                        AliasEntry entry( search->second );
-                        m_aAliasMap.erase( search );
-                        m_aAliasMap[ sAssignedAlias ] = entry;
-
-                    #if OSL_DEBUG_LEVEL > 0
-                        bFound = true;
-                    #endif
-
-                        break;
-                    }
+            if (j->second.programmaticAsciiName == sAsciiProgrammaticName) {
+                OUString sAssignedAlias;
+                xAliasesNode->getByName(aProgrammaticNames[i]) >>=
+                    sAssignedAlias;
+                if (sAssignedAlias.isEmpty()) {
+                    sAssignedAlias = aProgrammaticNames[i];
                 }
-
-                OSL_ENSURE( bFound, "OColumnAlias::setAlias: did not find a programmatic name which exists in the configuration!" );
+                AliasEntry entry(j->second);
+                m_aAliasMap.erase(j);
+                m_aAliasMap[sAssignedAlias] = entry;
+                bFound = true;
+                break;
             }
         }
-        catch( const Exception& )
-        {
-            DBG_UNHANDLED_EXCEPTION();
-        }
+        SAL_WARN_IF(
+            !bFound, "connectivity.mork",
+            "unknown programmatic name " << aProgrammaticNames[i]
+                <<" from configuration");
     }
 }
 
diff --git a/connectivity/source/drivers/mork/MConfigAccess.cxx b/connectivity/source/drivers/mork/MConfigAccess.cxx
deleted file mode 100644
index 0734f12..0000000
--- a/connectivity/source/drivers/mork/MConfigAccess.cxx
+++ /dev/null
@@ -1,259 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-
-#include "com/sun/star/configuration/theDefaultProvider.hpp"
-#include "comphelper/processfactory.hxx"
-
-#include "MConfigAccess.hxx"
-#include "MExtConfigAccess.hxx"
-#include "MConnection.hxx"
-#include "MDriver.hxx"
-
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::beans;
-
-//.........................................................................
-namespace connectivity
-{
-    namespace mork
-    {
-        //-----------------------------------------------------------------
-        Reference< XPropertySet > createDriverConfigNode( Reference< XMultiServiceFactory > _rxORB )
-        {
-            Reference< XPropertySet > xNode;
-            try
-            {
-                //=============================================================
-                // create the config provider
-                Reference< XMultiServiceFactory > xConfigProvider(
-                    com::sun::star::configuration::theDefaultProvider::get(
-                        comphelper::getComponentContext( _rxORB ) ) );
-
-                ::rtl::OUString sCompleteNodePath(RTL_CONSTASCII_USTRINGPARAM( "/org.openoffice.Office.DataAccess/DriverSettings/" ));
-                sCompleteNodePath += MorkDriver::getImplementationName_Static(  );
-
-                //=========================================================
-                // arguments for creating the config access
-                Sequence< Any > aArguments(2);
-                // the path to the node to open
-                aArguments[0] <<= PropertyValue(
-                    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("nodepath")),
-                    0,
-                    makeAny( sCompleteNodePath ),
-                    PropertyState_DIRECT_VALUE
-                );
-                // the depth: -1 means unlimited
-                aArguments[1] <<= PropertyValue(
-                    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("depth")),
-                    0,
-                    makeAny( (sal_Int32)-1 ),
-                    PropertyState_DIRECT_VALUE
-                );
-
-                //=========================================================
-                // create the access
-                Reference< XInterface > xAccess = xConfigProvider->createInstanceWithArguments(
-                    ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.configuration.ConfigurationAccess" )),
-                    aArguments
-                );
-                OSL_ENSURE( xAccess.is(), "createDriverConfigNode: invalid access returned (should throw an exception instead)!" );
-
-                xNode = xNode.query( xAccess );
-            }
-            catch( const Exception& )
-            {
-                OSL_FAIL( "createDriverConfigNode: caught an exception while accessing the driver's config node!" );
-            }
-
-            // outta here
-            return xNode;
-        }
-
-        //-----------------------------------------------------------------
-        namespace
-        {
-            // a private helper to accessing the point where we store the reference
-            // to the factory
-            Reference< XMultiServiceFactory >& accessFactoryStorage( )
-            {
-                static Reference< XMultiServiceFactory > xMozabServiceFactory;
-                return xMozabServiceFactory;
-            }
-        }
-
-        //-----------------------------------------------------------------
-        void setMozabServiceFactory( const Reference< XMultiServiceFactory >& _rxFactory )
-        {
-            accessFactoryStorage( ) = _rxFactory;
-        }
-
-        //-----------------------------------------------------------------
-        const Reference< XMultiServiceFactory >& getMozabServiceFactory( )
-        {
-            return accessFactoryStorage( );
-        }
-
-        //-----------------------------------------------------------------
-        ::rtl::OUString getDescription(const sal_Char* sNode,const ::rtl::OUString & sDefault)
-        {
-            ::rtl::OUString sPreferredName;
-            ::rtl::OUString sDescription;
-
-            Reference< XMultiServiceFactory > xFactory = getMozabServiceFactory();
-            OSL_ENSURE( xFactory.is(), "getPreferredProfileName: invalid service factory!" );
-            if ( xFactory.is() )
-            {
-                try
-                {
-                    Reference< XPropertySet > xDriverNode = createDriverConfigNode( xFactory );
-                    Reference< XPropertySet > xMozPrefsNode;
-                    if ( xDriverNode.is() )
-                        xDriverNode->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("MozillaPreferences" )) ) >>= xMozPrefsNode;
-                    OSL_ENSURE( xMozPrefsNode.is(), "getPreferredProfileName: could not access the node for the mozilla preferences!" );
-                    if ( xMozPrefsNode.is() )
-                        xMozPrefsNode->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ProfileName" )) ) >>= sPreferredName;
-                    if ( xMozPrefsNode.is() )
-                        xMozPrefsNode->getPropertyValue( ::rtl::OUString::createFromAscii(sNode) ) >>= sDescription;
-                    if (sDescription.getLength() == 0)
-                        sDescription = sDefault;
-                }
-                catch( const Exception& )
-                {
-                    OSL_FAIL( "getDescription: caught an exception!" );
-                }
-            }
-            if (sDescription.getLength() == 0)
-                sDescription = sDefault;
-            return sDescription;
-        }
-        //-----------------------------------------------------------------
-        ::rtl::OUString getPreferredProfileName( )
-        {
-            ::rtl::OUString sPreferredName;
-
-            Reference< XMultiServiceFactory > xFactory = getMozabServiceFactory();
-            OSL_ENSURE( xFactory.is(), "getPreferredProfileName: invalid service factory!" );
-            if ( xFactory.is() )
-            {
-                try
-                {
-                    Reference< XPropertySet > xDriverNode = createDriverConfigNode( xFactory );
-                    Reference< XPropertySet > xMozPrefsNode;
-                    if ( xDriverNode.is() )
-                        xDriverNode->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("MozillaPreferences" )) ) >>= xMozPrefsNode;
-                    OSL_ENSURE( xMozPrefsNode.is(), "getPreferredProfileName: could not access the node for the mozilla preferences!" );
-                    if ( xMozPrefsNode.is() )
-                        xMozPrefsNode->getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ProfileName" )) ) >>= sPreferredName;
-                }
-                catch( const Exception& )
-                {
-                    OSL_FAIL( "getPreferredProfileName: caught an exception!" );
-                }
-            }
-            return sPreferredName;
-        }
-    }
-}
-
-//.........................................................................
-
-//-------------------------------------------------------------------------
-extern "C" const sal_Unicode* SAL_CALL getUserProfile( void )
-{
-    static sal_Bool         bReadConfig = sal_False;
-    static ::rtl::OUString  sUserProfile;
-    if ( !bReadConfig )
-    {
-        sUserProfile = ::connectivity::mork::getPreferredProfileName( );
-        bReadConfig = sal_True;
-    }
-
-    return sUserProfile.getStr();
-}
-//------------------------------------------------------------------------
-extern "C" const sal_Char* SAL_CALL getPabDescription( void )
-{
-    static sal_Bool         bReadConfig = sal_False;
-    static ::rtl::OUString  usPabDescription;
-    static ::rtl::OString   sPabDescription;
-
-    if ( !bReadConfig )
-    {
-        usPabDescription = ::connectivity::mork::getDescription(
-                            "PabDescription" ,
-                            ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Personal Address Book" )));
-        sPabDescription = ::rtl::OUStringToOString( usPabDescription,
-                                                 RTL_TEXTENCODING_UTF8);
-        bReadConfig = sal_True;
-    }
-
-    return sPabDescription.getStr();
-}
-
-//-------------------------------------------------------------------------
-extern "C" const sal_Char* SAL_CALL getHisDescription( void )
-{
-    static sal_Bool         bReadConfig = sal_False;
-    static ::rtl::OUString  usHisDescription;
-    static ::rtl::OString   sHisDescription;
-
-    if ( !bReadConfig )
-    {
-        usHisDescription = ::connectivity::mork::getDescription(
-                            "HisDescription" ,
-                            ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Collected Addresses" )));
-        sHisDescription = ::rtl::OUStringToOString( usHisDescription,
-                                                 RTL_TEXTENCODING_UTF8);
-        bReadConfig = sal_True;
-    }
-
-    return sHisDescription.getStr();
-}
-
-//-------------------------------------------------------------------------
-// MConfigAccess was invented to allow non-UNO parts access to the configuration.
-// Unfortunately, configuration access requires a XMultiServiceFactory - which the
-// mozilla side does not have.
-// So we create a "library-local" service factory here: Every need for a service
-// factory can be fullfilled by this factory (similar to the get/setProcessServiceFactory
-// in comphelper).
-// This is halfway valid, as usually, the mozabdrv library is invoked from the mozab library
-// only. The latter contains the driver class (and only this class and nothing more), and
-// the driver class is a singleton. The driver itself is created with a service factory,
-// which (by definition) can and should be used for all subsequent service requests.
-// And this is exactly what we're allowing with the following functions ....
-
-/** _pFactory must point to an XMultiServiceFactory, which must be aquired once
-    for purpose of safely transfering it. The callee will release this interface
-    when it has stored the pointer somewhere else.
-*/
-extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL setMozabServiceFactory(
-    void* _pFactory )
-{
-    Reference< XMultiServiceFactory > xFactory = static_cast< XMultiServiceFactory* >( _pFactory );
-  //  ::connectivity::mozab::setMozabServiceFactory( xFactory );
-
-    // by definition, the object behind the interface pointer has been acquired once for purpose
-    // of safely transporting it
-    xFactory->release();
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/connectivity/source/drivers/mork/MConfigAccess.hxx b/connectivity/source/drivers/mork/MConfigAccess.hxx
deleted file mode 100644
index e00986b..0000000
--- a/connectivity/source/drivers/mork/MConfigAccess.hxx
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef CONNECTIVITY_MORK_MCONFIGACCESS_HXX
-
-#include <sal/types.h>
-
-extern "C" const sal_Unicode* SAL_CALL getUserProfile( void );
-
-extern "C" const sal_Char* SAL_CALL getPabDescription( void );
-
-extern "C" const sal_Char* SAL_CALL getHisDescription( void );
-
-#endif  // CONNECTIVITY_MORK_MCONFIGACCESS_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/connectivity/source/drivers/mork/MExtConfigAccess.hxx b/connectivity/source/drivers/mork/MExtConfigAccess.hxx
deleted file mode 100644
index 44e7a86..0000000
--- a/connectivity/source/drivers/mork/MExtConfigAccess.hxx
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef CONNECTIVITY_MORK_MEXTCONFIGACCESS_HXX
-
-// This is the extended version (for use on the SO side of the driver) of MConfigAccess
-// (which is for use on the mozilla side only)
-
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-
-namespace connectivity
-{
-    namespace mork
-    {
-        ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
-                createDriverConfigNode( ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > _rxORB );
-    }
-}
-
-#endif // CONNECTIVITY_MORK_MEXTCONFIGACCESS_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 58d24271ffbbcfe299591b4592c653a7c41c20e6
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Wed Sep 19 16:12:50 2012 +0200

    Assuming the double iteration is a copy/paste snafu
    
    ...causes "error: attempt to increment a past-the-end iterator." with debug-mode
    libstdc++.
    
    Change-Id: I89af3944b04ad6ab4ef3561d2aa91b5bab1edf20

diff --git a/connectivity/source/drivers/mork/MQueryHelper.cxx b/connectivity/source/drivers/mork/MQueryHelper.cxx
index ffc2a5f..b4f14a5 100644
--- a/connectivity/source/drivers/mork/MQueryHelper.cxx
+++ b/connectivity/source/drivers/mork/MQueryHelper.cxx
@@ -241,40 +241,37 @@ sal_Int32 MQueryHelper::executeQuery(OConnection* xConnection)
     MorkRowMap *Rows = 0;
     MorkRowMap::iterator rowIter;
 
+    // Iterate all tables
     for ( tableIter = Tables->begin(); tableIter != Tables->end(); tableIter++ )
     {
-        // Iterate all tables
-        for ( tableIter = Tables->begin(); tableIter != Tables->end(); tableIter++ )
+        if (tableIter->first != 1) break;
+        Rows =  xConnection->getMorkParser()->getRows( 0x80, &tableIter->second );
+        if ( Rows )
         {
-            if (tableIter->first != 1) break;
-            Rows =  xConnection->getMorkParser()->getRows( 0x80, &tableIter->second );
-            if ( Rows )
+            // Iterate all rows
+            for ( rowIter = Rows->begin(); rowIter != Rows->end(); rowIter++ )
             {
-                // Iterate all rows
-                for ( rowIter = Rows->begin(); rowIter != Rows->end(); rowIter++ )
+                MQueryHelperResultEntry* entry = new MQueryHelperResultEntry();
+                for (MorkCells::iterator CellsIter = rowIter->second.begin();
+                     CellsIter != rowIter->second.end(); CellsIter++ )
                 {
-                    MQueryHelperResultEntry* entry = new MQueryHelperResultEntry();
-                    for (MorkCells::iterator CellsIter = rowIter->second.begin();
-                         CellsIter != rowIter->second.end(); CellsIter++ )
-                    {
-                        std::string column = xConnection->getMorkParser()->getColumn(CellsIter->first);
-                        std::string value = xConnection->getMorkParser()->getValue(CellsIter->second);
-
-                        //SAL_INFO("connectivity.mork", "key: " << column << " value: " << value);
-
-                        OString key(column.c_str(), static_cast<sal_Int32>(column.size()));
-                        OString valueOString(value.c_str(), static_cast<sal_Int32>(value.size()));
-                        rtl::OUString valueOUString = ::rtl::OStringToOUString( valueOString, RTL_TEXTENCODING_UTF8 );
-                        entry->setValue(key, valueOUString);
-                    }
-                    ::std::vector< sal_Bool > vector = entryMatchedByExpression(this, &m_aExpr, entry);
-                    sal_Bool result = sal_True;
-                    for (::std::vector<sal_Bool>::iterator iter = vector.begin(); iter != vector.end(); ++iter) {
-                        result = result && *iter;
-                    }
-                    if (result) {
-                        append(entry);
-                    }
+                    std::string column = xConnection->getMorkParser()->getColumn(CellsIter->first);
+                    std::string value = xConnection->getMorkParser()->getValue(CellsIter->second);
+
+                    //SAL_INFO("connectivity.mork", "key: " << column << " value: " << value);
+
+                    OString key(column.c_str(), static_cast<sal_Int32>(column.size()));
+                    OString valueOString(value.c_str(), static_cast<sal_Int32>(value.size()));
+                    rtl::OUString valueOUString = ::rtl::OStringToOUString( valueOString, RTL_TEXTENCODING_UTF8 );
+                    entry->setValue(key, valueOUString);
+                }
+                ::std::vector< sal_Bool > vector = entryMatchedByExpression(this, &m_aExpr, entry);
+                sal_Bool result = sal_True;
+                for (::std::vector<sal_Bool>::iterator iter = vector.begin(); iter != vector.end(); ++iter) {
+                    result = result && *iter;
+                }
+                if (result) {
+                    append(entry);
                 }
             }
         }


More information about the Libreoffice-commits mailing list