dbaccess/source/ui/inc/QueryTableView.hxx         |    1 
 dbaccess/source/ui/querydesign/QueryTableView.cxx |   71 +++++++++++------
 python/makefile.mk                                |    1 
 python/python-solver-before-std.patch             |   90 ++++++++++++++++++++++
 sc/source/filter/html/htmlpars.cxx                |   67 ++++++----------
 5 files changed, 166 insertions(+), 64 deletions(-)

New commits:
commit a934522d93ba1131052308b4f0b225adb9855c5b
Author: Oliver-Rainer Wittmann <o...@apache.org>
Date:   Tue Jul 2 09:00:25 2013 +0000

    122591: correct the iteration on an HTML table
    
    Patch by: Ariel <arielch>
    Review by: Herbert <hdu>

diff --git a/sc/source/filter/html/htmlpars.cxx 
b/sc/source/filter/html/htmlpars.cxx
index 79b5079..1a28d46 100644
--- a/sc/source/filter/html/htmlpars.cxx
+++ b/sc/source/filter/html/htmlpars.cxx
@@ -1897,40 +1897,6 @@ ScHTMLTable* ScHTMLTableMap::CreateTable( const 
ImportInfo& rInfo, bool bPreForm
     return pTable;
 }
 
-// ----------------------------------------------------------------------------
-
-/** Simplified forward iterator for convenience.
-
-    Before the iterator can be dereferenced, it must be tested with the is()
-    method. The iterator may be invalid directly after construction (e.g. empty
-    container).
- */
-class ScHTMLTableIterator
-{
-public:
-    /** Constructs the iterator for the passed table map.
-        @param pTableMap  Pointer to the table map (is allowed to be NULL). */
-    explicit            ScHTMLTableIterator( const ScHTMLTableMap* pTableMap );
-
-    inline bool         is() const { return maIter != maEnd; }
-    inline ScHTMLTable* operator->() { return maIter->second.get(); }
-    inline ScHTMLTable& operator*() { return *maIter->second; }
-    inline ScHTMLTableIterator& operator++() { ++maIter; return *this; }
-
-private:
-    ScHTMLTableMap::const_iterator maIter;
-    ScHTMLTableMap::const_iterator maEnd;
-};
-
-ScHTMLTableIterator::ScHTMLTableIterator( const ScHTMLTableMap* pTableMap )
-{
-    if( pTableMap )
-    {
-        maIter = pTableMap->begin();
-        maEnd = pTableMap->end();
-    }
-}
-
 // ============================================================================
 
 ScHTMLTableAutoId::ScHTMLTableAutoId( ScHTMLTableId& rnUnusedId ) :
@@ -2299,8 +2265,15 @@ void ScHTMLTable::ApplyCellBorders( ScDocument* pDoc, 
const ScAddress& rFirstPos
         }
     }
 
-    for( ScHTMLTableIterator aIter( mxNestedTables.get() ); aIter.is(); 
++aIter )
-        aIter->ApplyCellBorders( pDoc, rFirstPos );
+    if ( mxNestedTables.get() )
+    {
+        for ( ScHTMLTableMap::const_iterator aIter( mxNestedTables->begin() );
+             aIter != mxNestedTables->end(); ++aIter )
+        {
+            if ( aIter->second.get() )
+                aIter->second->ApplyCellBorders( pDoc, rFirstPos );
+        }
+    }
 }
 
 // ----------------------------------------------------------------------------
@@ -2593,8 +2566,15 @@ void ScHTMLTable::CalcNeededDocSize(
 
 void ScHTMLTable::FillEmptyCells()
 {
-    for( ScHTMLTableIterator aIter( mxNestedTables.get() ); aIter.is(); 
++aIter )
-        aIter->FillEmptyCells();
+    if ( mxNestedTables.get() )
+    {
+        for ( ScHTMLTableMap::const_iterator aIter( mxNestedTables->begin() );
+             aIter != mxNestedTables->end(); ++aIter )
+        {
+            if ( aIter->second.get() )
+                aIter->second->FillEmptyCells();
+        }
+    }
 
     // insert the final vertically merged ranges into maUsedCells
     for( const ScRange* pRange = maVMergedCells.First(); pRange; pRange = 
maVMergedCells.Next() )
@@ -2627,8 +2607,15 @@ void ScHTMLTable::FillEmptyCells()
 void ScHTMLTable::RecalcDocSize()
 {
     // recalc table sizes recursively from inner to outer
-    for( ScHTMLTableIterator aIter( mxNestedTables.get() ); aIter.is(); 
++aIter )
-        aIter->RecalcDocSize();
+    if ( mxNestedTables.get() )
+    {
+        for ( ScHTMLTableMap::const_iterator aIter( mxNestedTables->begin() );
+             aIter != mxNestedTables->end(); ++aIter )
+        {
+            if ( aIter->second.get() )
+                aIter->second->RecalcDocSize();
+        }
+    }
 
     /*  Two passes: first calculates the sizes of single columns/rows, then
         the sizes of spanned columns/rows. This allows to fill nested tables
commit 48558dc3e09ec442bc4caf867df4b97354b4d334
Author: Armin Le Grand <a...@apache.org>
Date:   Tue Jul 2 08:50:18 2013 +0000

    i122589 check if element is added before removing and deleting it (well, 
put it in undo)

diff --git a/dbaccess/source/ui/inc/QueryTableView.hxx 
b/dbaccess/source/ui/inc/QueryTableView.hxx
index 7e6979e..d6bce5d 100644
--- a/dbaccess/source/ui/inc/QueryTableView.hxx
+++ b/dbaccess/source/ui/inc/QueryTableView.hxx
@@ -73,6 +73,7 @@ namespace dbaui
 
         // Basisklasse ueberschrieben : Fenster kreieren und loeschen
         // (eigentlich nicht wirklich LOESCHEN, es geht in die Verantwortung 
einer UNDO-Action ueber)
+        bool ContainsTabWin(const OTableWindow& rTabWin); // #122589# Allow to 
check if OTableWindow is registered
         virtual void AddTabWin( const ::rtl::OUString& _rTableName, const 
::rtl::OUString& _rAliasName, sal_Bool bNewTable = sal_False );
         virtual void RemoveTabWin(OTableWindow* pTabWin);
 
diff --git a/dbaccess/source/ui/querydesign/QueryTableView.cxx 
b/dbaccess/source/ui/querydesign/QueryTableView.cxx
index bf5f76a..0984fa3 100644
--- a/dbaccess/source/ui/querydesign/QueryTableView.cxx
+++ b/dbaccess/source/ui/querydesign/QueryTableView.cxx
@@ -835,42 +835,65 @@ sal_Bool OQueryTableView::FindTableFromField(const 
String& rFieldName, OTableFie
 }
 
 
//------------------------------------------------------------------------------
+bool OQueryTableView::ContainsTabWin(const OTableWindow& rTabWin)
+{
+    OTableWindowMap* pTabWins = GetTabWinMap();
+    DBG_ASSERT(pTabWins != NULL, "OQueryTableView::HideTabWin : habe keine 
TabWins !");
+
+    OTableWindowMap::iterator aIter = pTabWins->begin();
+    OTableWindowMap::iterator aEnd  = pTabWins->end();
+
+    for ( ;aIter != aEnd ; ++aIter )
+    {
+        if ( aIter->second == &rTabWin )
+        {
+            return true;
+        }
+    }
+
+    return false;
+}
+
+//------------------------------------------------------------------------------
 void OQueryTableView::RemoveTabWin(OTableWindow* pTabWin)
 {
     DBG_CHKTHIS(OQueryTableView,NULL);
     DBG_ASSERT(pTabWin != NULL, "OQueryTableView::RemoveTabWin : Fenster 
sollte ungleich NULL sein !");
 
-    // mein Parent brauche ich, da es vom Loeschen erfahren soll
-    OQueryDesignView* pParent = 
static_cast<OQueryDesignView*>(getDesignView());
+    if(pTabWin && ContainsTabWin(*pTabWin)) // #122589# check if registered 
before deleting
+    {
+        // mein Parent brauche ich, da es vom Loeschen erfahren soll
+        OQueryDesignView* pParent = 
static_cast<OQueryDesignView*>(getDesignView());
 
-    SfxUndoManager& rUndoMgr = m_pView->getController().GetUndoManager();
-    rUndoMgr.EnterListAction( String( ModuleRes(STR_QUERY_UNDO_TABWINDELETE) 
), String() );
+        SfxUndoManager& rUndoMgr = m_pView->getController().GetUndoManager();
+        rUndoMgr.EnterListAction( String( 
ModuleRes(STR_QUERY_UNDO_TABWINDELETE) ), String() );
 
-    // Undo-Action anlegen
-    OQueryTabWinDelUndoAct* pUndoAction = new OQueryTabWinDelUndoAct(this);
-    pUndoAction->SetTabWin(static_cast< OQueryTableWindow*>(pTabWin));
+        // Undo-Action anlegen
+        OQueryTabWinDelUndoAct* pUndoAction = new OQueryTabWinDelUndoAct(this);
+        pUndoAction->SetTabWin(static_cast< OQueryTableWindow*>(pTabWin));
 
-    // und Fenster verstecken
-    HideTabWin(static_cast< OQueryTableWindow*>(pTabWin), pUndoAction);
+        // und Fenster verstecken
+        HideTabWin(static_cast< OQueryTableWindow*>(pTabWin), pUndoAction);
 
-    // Undo Actions und Loeschen der Felder in SelectionBrowseBox
-    pParent->TableDeleted( static_cast< 
OQueryTableWindowData*>(pTabWin->GetData().get())->GetAliasName() );
+        // Undo Actions und Loeschen der Felder in SelectionBrowseBox
+        pParent->TableDeleted( static_cast< 
OQueryTableWindowData*>(pTabWin->GetData().get())->GetAliasName() );
 
-    m_pView->getController().addUndoActionAndInvalidate( pUndoAction );
-    rUndoMgr.LeaveListAction();
+        m_pView->getController().addUndoActionAndInvalidate( pUndoAction );
+        rUndoMgr.LeaveListAction();
 
-    if (m_lnkTabWinsChangeHandler.IsSet())
-    {
-        TabWinsChangeNotification 
aHint(TabWinsChangeNotification::AT_REMOVED_WIN, static_cast< 
OQueryTableWindow*>(pTabWin)->GetAliasName());
-        m_lnkTabWinsChangeHandler.Call(&aHint);
-    }
+        if (m_lnkTabWinsChangeHandler.IsSet())
+        {
+            TabWinsChangeNotification 
aHint(TabWinsChangeNotification::AT_REMOVED_WIN, static_cast< 
OQueryTableWindow*>(pTabWin)->GetAliasName());
+            m_lnkTabWinsChangeHandler.Call(&aHint);
+        }
 
-    modified();
-    if ( m_pAccessible )
-        m_pAccessible->notifyAccessibleEvent(   AccessibleEventId::CHILD,
-                                                
makeAny(pTabWin->GetAccessible()),
-                                                Any()
-                                                );
+        modified();
+        if ( m_pAccessible )
+            m_pAccessible->notifyAccessibleEvent(   AccessibleEventId::CHILD,
+                                                    
makeAny(pTabWin->GetAccessible()),
+                                                    Any()
+                                                    );
+    }
 }
 
 //------------------------------------------------------------------------
commit b7d947c22a7078733a3ed502b71257dd61f6faed
Author: Herbert Dürr <h...@apache.org>
Date:   Tue Jul 2 08:35:57 2013 +0000

    #i122647# link python against own libraries
    
    The python module prefered system headers and libraries over the ones
    requested by AOO's configure scripts. This impacted the build for packages
    intended for redistribution, especially for the OpenSSL provided libs.
    
    Found by: Ariel Constenla-Haile <arie...@apache.org>
    Fixed by: Herbert Durr <h...@apache.org>

diff --git a/python/makefile.mk b/python/makefile.mk
index 3bf7e1a..f9b0051 100644
--- a/python/makefile.mk
+++ b/python/makefile.mk
@@ -48,6 +48,7 @@ PATCH_FILES=\
     python-freebsd.patch \
     python-md5.patch \
     python-ssl.patch \
+    python-solver-before-std.patch \
     python-$(PYVERSION)-sysbase.patch \
     python-$(PYVERSION)-nohardlink.patch \
     python-$(PYVERSION)-pcbuild.patch
diff --git a/python/python-solver-before-std.patch 
b/python/python-solver-before-std.patch
new file mode 100644
index 0000000..d180843
--- /dev/null
+++ b/python/python-solver-before-std.patch
@@ -0,0 +1,90 @@
+--- misc/Python-2.7.5/setup.py 2013-07-01 17:51:46.237674580 +0200
++++ misc/build/Python-2.7.5/setup.py   2013-07-01 17:51:24.230453108 +0200
+@@ -80,61 +80,62 @@
+         # system, but with only header files and libraries.
+         sysroot = macosx_sdk_root()
+ 
+-    # Check the standard locations
+-    for dir in std_dirs:
++    # Check the additional directories
++    for dir in paths:
+         f = os.path.join(dir, filename)
+ 
+         if host_platform == 'darwin' and is_macosx_sdk_path(dir):
+             f = os.path.join(sysroot, dir[1:], filename)
+ 
+-        if os.path.exists(f): return []
++        if os.path.exists(f):
++            return [dir]
+ 
+-    # Check the additional directories
+-    for dir in paths:
++    # Check the standard locations
++    for dir in std_dirs:
+         f = os.path.join(dir, filename)
+ 
+         if host_platform == 'darwin' and is_macosx_sdk_path(dir):
+             f = os.path.join(sysroot, dir[1:], filename)
+ 
+         if os.path.exists(f):
+-            return [dir]
++            return []
+ 
+     # Not found anywhere
+     return None
+ 
+ def find_library_file(compiler, libname, std_dirs, paths):
+-    result = compiler.find_library_file(std_dirs + paths, libname)
++    result = compiler.find_library_file(paths+std_dirs, libname)
+     if result is None:
+         return None
+ 
+     if host_platform == 'darwin':
+         sysroot = macosx_sdk_root()
+ 
+-    # Check whether the found file is in one of the standard directories
+     dirname = os.path.dirname(result)
+-    for p in std_dirs:
++    # Otherwise, it must have been in one of the additional directories,
++    # so we have to figure out which one.
++    for p in paths:
+         # Ensure path doesn't end with path separator
+         p = p.rstrip(os.sep)
+ 
+         if host_platform == 'darwin' and is_macosx_sdk_path(p):
+             if os.path.join(sysroot, p[1:]) == dirname:
+-                return [ ]
++                return [ p ]
+ 
+         if p == dirname:
+-            return [ ]
++            return [p]
+ 
+-    # Otherwise, it must have been in one of the additional directories,
+-    # so we have to figure out which one.
+-    for p in paths:
++    # Check whether the found file is in one of the standard directories
++    for p in std_dirs:
+         # Ensure path doesn't end with path separator
+         p = p.rstrip(os.sep)
+ 
+         if host_platform == 'darwin' and is_macosx_sdk_path(p):
+             if os.path.join(sysroot, p[1:]) == dirname:
+-                return [ p ]
++                return [ ]
+ 
+         if p == dirname:
+-            return [p]
++            return [ ]
+     else:
+         assert False, "Internal error: Path not found in std_dirs or paths"
+ 
+@@ -851,6 +852,8 @@
+         have_usable_openssl = (have_any_openssl and
+                                openssl_ver >= min_openssl_ver)
+ 
++        print( "ssl_incs="+str(ssl_incs))
++        print( "ssl_libs="+str(ssl_libs))
+         if have_any_openssl:
+             if have_usable_openssl:
+                 # The _hashlib module wraps optimized implementations
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to