[Libreoffice-commits] core.git: 3 commits - editeng/Library_editeng.mk editeng/qa editeng/source include/editeng sw/source

Tomaž Vajngerl quikee at gmail.com
Thu Feb 6 00:28:25 PST 2014


 editeng/Library_editeng.mk                    |    3 
 editeng/qa/lookuptree/lookuptree_test.cxx     |  219 +++--------------------
 editeng/source/lookuptree/LatinLookupTree.cxx |  242 --------------------------
 editeng/source/lookuptree/LatinTreeNode.cxx   |  112 ------------
 editeng/source/lookuptree/Node.cxx            |  216 -----------------------
 editeng/source/lookuptree/Trie.cxx            |    8 
 include/editeng/LatinLookupTree.hxx           |   74 -------
 include/editeng/LatinTreeNode.hxx             |   48 -----
 include/editeng/LookupTree.hxx                |   95 ----------
 include/editeng/Node.hxx                      |  102 ----------
 include/editeng/TreeHead.hxx                  |   49 -----
 include/editeng/Trie.hxx                      |    2 
 sw/source/core/inc/txtfrm.hxx                 |    2 
 sw/source/core/text/frmpaint.cxx              |    1 
 sw/source/core/text/inftxt.cxx                |   37 +++
 sw/source/core/text/inftxt.hxx                |    2 
 sw/source/core/text/porrst.cxx                |    4 
 sw/source/core/txtnode/fntcache.cxx           |   40 +++-
 18 files changed, 113 insertions(+), 1143 deletions(-)

New commits:
commit fb99a6b9958815eb1ad27179d252a379ce8b79fd
Author: Tomaž Vajngerl <quikee at gmail.com>
Date:   Tue Feb 4 11:19:42 2014 +0100

    fdo#68071 NPC characters now use a fixed color.
    
    The color for non-printing characters (enable with CTRL+F10) has
    now been changed to a fixed color.
    
    Change-Id: I93dfc69fa4be1c1f1373f25434c8f4afa71355d3

diff --git a/sw/source/core/inc/txtfrm.hxx b/sw/source/core/inc/txtfrm.hxx
index 0000555..8445064 100644
--- a/sw/source/core/inc/txtfrm.hxx
+++ b/sw/source/core/inc/txtfrm.hxx
@@ -45,6 +45,8 @@ class SwScriptInfo;
 class SwViewOption;
 class SwWrongList;
 
+#define NON_PRINTING_CHARACTER_COLOR RGB_COLORDATA( 0x6A, 0xBE, 0xD3 )
+
 /// Represents the visualization of a paragraph.
 class SwTxtFrm: public SwCntntFrm
 {
diff --git a/sw/source/core/text/frmpaint.cxx b/sw/source/core/text/frmpaint.cxx
index 422a049..358d134 100644
--- a/sw/source/core/text/frmpaint.cxx
+++ b/sw/source/core/text/frmpaint.cxx
@@ -560,6 +560,7 @@ sal_Bool SwTxtFrm::PaintEmpty( const SwRect &rRect, sal_Bool bCheck ) const
                     aDrawInf.SetFont( pFnt );
                     aDrawInf.SetSnapToGrid( sal_False );
 
+                    pFnt->SetColor(NON_PRINTING_CHARACTER_COLOR);
                     pFnt->_DrawText( aDrawInf );
                 }
                 delete pClip;
diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx
index 73bbd5e..a65a1eb 100644
--- a/sw/source/core/text/inftxt.cxx
+++ b/sw/source/core/text/inftxt.cxx
@@ -934,6 +934,29 @@ void SwTxtPaintInfo::DrawRect( const SwRect &rRect, bool bNoGraphic,
     }
 }
 
+void SwTxtPaintInfo::DrawSpecial( const SwLinePortion &rPor, sal_Unicode cChar, Color* pColor ) const
+{
+    if( OnWin() )
+    {
+        KSHORT nOldWidth = rPor.Width();
+        OUString sChar( cChar );
+        SwPosSize aSize( GetTxtSize( sChar ) );
+
+        ((SwLinePortion&)rPor).Width( aSize.Width() );
+
+        SwRect aRect;
+        CalcRect( rPor, &aRect );
+
+        if( aRect.HasArea() )
+        {
+            const sal_uInt8 nOptions = 0;
+            lcl_DrawSpecial( *this, rPor, aRect, pColor, cChar, nOptions );
+        }
+
+        ((SwLinePortion&)rPor).Width( nOldWidth );
+    }
+}
+
 void SwTxtPaintInfo::DrawTab( const SwLinePortion &rPor ) const
 {
     if( OnWin() )
@@ -944,11 +967,10 @@ void SwTxtPaintInfo::DrawTab( const SwLinePortion &rPor ) const
         if ( ! aRect.HasArea() )
             return;
 
-        const sal_Unicode cChar = GetTxtFrm()->IsRightToLeft() ?
-                                  CHAR_TAB_RTL : CHAR_TAB;
-        const sal_uInt8 nOptions = DRAW_SPECIAL_OPTIONS_CENTER |
-                              DRAW_SPECIAL_OPTIONS_ROTATE;
-        lcl_DrawSpecial( *this, rPor, aRect, 0, cChar, nOptions );
+        const sal_Unicode cChar = GetTxtFrm()->IsRightToLeft() ? CHAR_TAB_RTL : CHAR_TAB;
+        const sal_uInt8 nOptions = DRAW_SPECIAL_OPTIONS_CENTER | DRAW_SPECIAL_OPTIONS_ROTATE;
+
+        lcl_DrawSpecial( *this, rPor, aRect, new Color(0x6a, 0xbe, 0xd3), cChar, nOptions );
     }
 }
 
@@ -967,7 +989,8 @@ void SwTxtPaintInfo::DrawLineBreak( const SwLinePortion &rPor ) const
             const sal_Unicode cChar = GetTxtFrm()->IsRightToLeft() ?
                                       CHAR_LINEBREAK_RTL : CHAR_LINEBREAK;
             const sal_uInt8 nOptions = 0;
-            lcl_DrawSpecial( *this, rPor, aRect, 0, cChar, nOptions );
+
+            lcl_DrawSpecial( *this, rPor, aRect, new Color(NON_PRINTING_CHARACTER_COLOR), cChar, nOptions );
         }
 
         ((SwLinePortion&)rPor).Width( nOldWidth );
@@ -1064,7 +1087,7 @@ void SwTxtPaintInfo::DrawCheckBox( const SwFieldFormPortion &rPor, bool checked)
         if (OnWin() && SwViewOption::IsFieldShadings() &&
                 !GetOpt().IsPagePreview())
         {
-           OutputDevice* pOut = (OutputDevice*)GetOut();
+            OutputDevice* pOut = (OutputDevice*)GetOut();
             pOut->Push( PUSH_LINECOLOR | PUSH_FILLCOLOR );
             pOut->SetFillColor( SwViewOption::GetFieldShadingsColor() );
             pOut->SetLineColor();
diff --git a/sw/source/core/text/inftxt.hxx b/sw/source/core/text/inftxt.hxx
index 520dddc..dd77975 100644
--- a/sw/source/core/text/inftxt.hxx
+++ b/sw/source/core/text/inftxt.hxx
@@ -471,6 +471,8 @@ public:
 
     void DrawRect( const SwRect &rRect, bool bNoGraphic = false,
                    bool bRetouche = true ) const;
+
+    void DrawSpecial( const SwLinePortion &rPor, sal_Unicode cChar, Color* pColor ) const;
     void DrawTab( const SwLinePortion &rPor ) const;
     void DrawLineBreak( const SwLinePortion &rPor ) const;
     void DrawRedArrow( const SwLinePortion &rPor ) const;
diff --git a/sw/source/core/text/porrst.cxx b/sw/source/core/text/porrst.cxx
index 51e2bfc..10e9fec 100644
--- a/sw/source/core/text/porrst.cxx
+++ b/sw/source/core/text/porrst.cxx
@@ -69,9 +69,7 @@ void SwTmpEndPortion::Paint( const SwTxtPaintInfo &rInf ) const
 {
     if( rInf.OnWin() && rInf.GetOpt().IsParagraph() )
     {
-        SwDefFontSave aSave( rInf );
-        const OUString aTmp( CH_PAR );
-        rInf.DrawText( aTmp, *this );
+        rInf.DrawSpecial( *this, CH_PAR, new Color(NON_PRINTING_CHARACTER_COLOR) );
     }
 }
 
diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx
index 8e2e3d4..7299bcb 100644
--- a/sw/source/core/txtnode/fntcache.cxx
+++ b/sw/source/core/txtnode/fntcache.cxx
@@ -1443,6 +1443,7 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
     {
         const OUString* pStr = &rInf.GetText();
         OUString aStr;
+        OUString aBulletOverlay;
         sal_Bool bBullet = rInf.GetBullet();
         if( bSymbol )
             bBullet = sal_False;
@@ -1569,8 +1570,10 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
             aStr = rInf.GetText().copy( nCopyStart, nCopyLen );
             pStr = &aStr;
 
-            for( sal_Int32 i = 0; i < aStr.getLength(); ++i )
-                if( CH_BLANK == aStr[ i ] )
+            aBulletOverlay = rInf.GetText().copy( nCopyStart, nCopyLen );
+
+            for( sal_Int32 i = 0; i < aBulletOverlay.getLength(); ++i )
+                if( CH_BLANK == aBulletOverlay[ i ] )
                 {
                     /* fdo#72488 Hack: try to see if the space is zero width
                      * and don't bother with inserting a bullet in this case.
@@ -1578,9 +1581,17 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
                     if ((i + nCopyStart + 1 >= rInf.GetLen()) ||
                         pKernArray[i + nCopyStart] != pKernArray[ i + nCopyStart + 1])
                     {
-                        aStr = aStr.replaceAt(i, 1, OUString(CH_BULLET));
+                        aBulletOverlay = aBulletOverlay.replaceAt(i, 1, OUString(CH_BULLET));
+                    }
+                    else
+                    {
+                        aBulletOverlay = aBulletOverlay.replaceAt(i, 1, OUString(CH_BLANK));
                     }
                 }
+                else
+                {
+                    aBulletOverlay = aBulletOverlay.replaceAt(i, 1, OUString(CH_BLANK));
+                }
         }
 
         sal_Int32 nCnt = rInf.GetText().getLength();
@@ -1808,6 +1819,29 @@ void SwFntObj::DrawText( SwDrawTextInfo &rInf )
 
                 rInf.GetOut().DrawTextArray( aPos, *pStr, pKernArray + nOffs,
                                              nTmpIdx + nOffs , nLen - nOffs );
+                if (bBullet)
+                {
+                    rInf.GetOut().Push();
+                    Color aPreviousColor = pTmpFont->GetColor();
+
+                    FontUnderline aPreviousUnderline = pTmpFont->GetUnderline();
+                    FontUnderline aPreviousOverline = pTmpFont->GetOverline();
+                    FontStrikeout aPreviousStrikeout = pTmpFont->GetStrikeout();
+
+                    pTmpFont->SetColor( Color(NON_PRINTING_CHARACTER_COLOR) );
+                    pTmpFont->SetUnderline(UNDERLINE_NONE);
+                    pTmpFont->SetOverline(UNDERLINE_NONE);
+                    pTmpFont->SetStrikeout(STRIKEOUT_NONE);
+                    rInf.GetOut().SetFont( *pTmpFont );
+                    rInf.GetOut().DrawTextArray( aPos, aBulletOverlay, pKernArray + nOffs,
+                                                 nTmpIdx + nOffs , nLen - nOffs );
+                    pTmpFont->SetColor( aPreviousColor );
+
+                    pTmpFont->SetUnderline(aPreviousUnderline);
+                    pTmpFont->SetOverline(aPreviousOverline);
+                    pTmpFont->SetStrikeout(aPreviousStrikeout);
+                    rInf.GetOut().Pop();
+                }
             }
         }
         delete[] pScrArray;
commit 0502a09431602baa9a8280b87b77df9ad04e94bc
Author: Tomaž Vajngerl <quikee at gmail.com>
Date:   Sun Feb 2 15:16:36 2014 +0100

    Remove LookupTree as it is replaced with Trie.
    
    Change-Id: I7611c5307e4d4e925dc3e54c6b3f2d1a47bd9080

diff --git a/editeng/Library_editeng.mk b/editeng/Library_editeng.mk
index 21e2fd7..644bf98 100644
--- a/editeng/Library_editeng.mk
+++ b/editeng/Library_editeng.mk
@@ -115,9 +115,6 @@ $(eval $(call gb_Library_add_exception_objects,editeng,\
     editeng/source/uno/unoviwou \
     editeng/source/xml/xmltxtexp \
     editeng/source/xml/xmltxtimp \
-    editeng/source/lookuptree/LatinLookupTree \
-    editeng/source/lookuptree/LatinTreeNode \
-    editeng/source/lookuptree/Node \
     editeng/source/lookuptree/Trie \
 ))
 
diff --git a/editeng/qa/lookuptree/lookuptree_test.cxx b/editeng/qa/lookuptree/lookuptree_test.cxx
index 0bea3a5..e1a35f4 100644
--- a/editeng/qa/lookuptree/lookuptree_test.cxx
+++ b/editeng/qa/lookuptree/lookuptree_test.cxx
@@ -21,10 +21,6 @@
 #include <cppunit/TestFixture.h>
 #include <cppunit/extensions/HelperMacros.h>
 #include <cppunit/plugin/TestPlugIn.h>
-
-#include <editeng/LookupTree.hxx>
-#include <editeng/LatinLookupTree.hxx>
-
 #include <editeng/Trie.hxx>
 
 namespace {
@@ -32,12 +28,10 @@ namespace {
 class LookupTreeTest : public CppUnit::TestFixture
 {
 public:
-    void testLookupTree();
     void testTrie();
     void testTrieGetAllEntries();
 
     CPPUNIT_TEST_SUITE(LookupTreeTest);
-    CPPUNIT_TEST(testLookupTree);
     CPPUNIT_TEST(testTrie);
     CPPUNIT_TEST(testTrieGetAllEntries);
     CPPUNIT_TEST_SUITE_END();
@@ -45,185 +39,6 @@ public:
 
 CPPUNIT_TEST_SUITE_REGISTRATION(LookupTreeTest);
 
-void LookupTreeTest::testLookupTree()
-{
-    LookupTree* a = new LatinLookupTree( "a" );
-
-    a->insert( OUString("vorschlagnummer1"), 2 );
-    a->insert( OUString("vorschlagnummer12") );
-    a->insert( OUString("vorschlagnummer2") );
-
-    CPPUNIT_ASSERT_EQUAL( OUString("vorschlagnummer1"), a->suggestAutoCompletion() );
-
-    a->insert( OUString("vorschlagnummer12") );
-    CPPUNIT_ASSERT_EQUAL( OUString("vorschlagnummer12"), a->suggestAutoCompletion() );
-
-    a->insert( OUString("vorschlagnummer2") );
-    a->insert( OUString("vorschlagnummer2") );
-    CPPUNIT_ASSERT_EQUAL( OUString("vorschlagnummer2"), a->suggestAutoCompletion() );
-
-    a->insert( OUString("vorschlag"), 15 );
-    CPPUNIT_ASSERT_EQUAL( OUString("vorschlag"), a->suggestAutoCompletion() );
-
-    a->insert( OUString("vorschlagnummer2"), 16 );
-    CPPUNIT_ASSERT_EQUAL( OUString("vorschlagnummer2"), a->suggestAutoCompletion() );
-
-    a->remove( OUString("vorschlagnummer2") );
-    CPPUNIT_ASSERT_EQUAL( OUString("vorschlag"), a->suggestAutoCompletion() );
-
-    a->insert( OUString("vorschlag20"), 20 );
-    CPPUNIT_ASSERT_EQUAL( OUString("vorschlag20"), a->suggestAutoCompletion() );
-
-    a->remove( OUString("vorschlag20") );
-    CPPUNIT_ASSERT_EQUAL( OUString("vorschlag"), a->suggestAutoCompletion() );
-
-    a->insert( OUString("vorschlagn"), 14 );
-    CPPUNIT_ASSERT_EQUAL( OUString("vorschlag"), a->suggestAutoCompletion() );
-
-    a->remove( OUString("vorschlag") );
-    CPPUNIT_ASSERT_EQUAL( OUString("vorschlagn"), a->suggestAutoCompletion() );
-
-    a->remove( OUString("vorschlagn") );
-    CPPUNIT_ASSERT_EQUAL( OUString("vorschlagnummer12"), a->suggestAutoCompletion() );
-
-    a->insert( OUString("aber"), 1 );
-    CPPUNIT_ASSERT_EQUAL( OUString("vorschlagnummer12"), a->suggestAutoCompletion() );
-
-    a->advance( 'a' );
-    CPPUNIT_ASSERT_EQUAL( OUString("ber"), a->suggestAutoCompletion() );
-
-    a->goBack();
-    CPPUNIT_ASSERT_EQUAL( OUString("vorschlagnummer12"), a->suggestAutoCompletion() );
-
-    a->insert( OUString("vorschlag"), 15 );
-    CPPUNIT_ASSERT_EQUAL( OUString("vorschlag"), a->suggestAutoCompletion() );
-
-    a->insert( OUString("vorschlag13"), 13 );
-    CPPUNIT_ASSERT_EQUAL( OUString("vorschlag"), a->suggestAutoCompletion() );
-
-    a->gotoNode( "vorsch" );
-    CPPUNIT_ASSERT_EQUAL( OUString("lag"), a->suggestAutoCompletion() );
-
-    a->advance( 'l' );
-    CPPUNIT_ASSERT_EQUAL( OUString("ag"), a->suggestAutoCompletion() );
-
-    a->advance( 'a' );
-    CPPUNIT_ASSERT_EQUAL( OUString("g13"), a->suggestAutoCompletion() );
-
-    a->advance( 'g' );
-    CPPUNIT_ASSERT_EQUAL( OUString("13"), a->suggestAutoCompletion() );
-
-    a->advance( '1' );
-    CPPUNIT_ASSERT_EQUAL( OUString("3"), a->suggestAutoCompletion() );
-
-    a->advance( '3' );
-    CPPUNIT_ASSERT ( a->suggestAutoCompletion().isEmpty() );
-
-    a->goBack();
-    a->advance( 'z' );
-    CPPUNIT_ASSERT ( a->suggestAutoCompletion().isEmpty() );
-
-    /*a->gotoNode( "vorschlag13" );
-    CPPUNIT_ASSERT ( a->suggestAutoCompletion().isEmpty() );
-
-    a->advance( 'g' );
-    a->advance( '1' );
-    a->advance( '3' );
-    a->remove( "vorschlag13" );
-    CPPUNIT_ASSERT_EQUAL( OUString(""), a->suggestAutoCompletion() );*/
-
-    a->insert( "VeraHatMichL1eb.", 1000000 );
-    a->returnToRoot();
-    CPPUNIT_ASSERT_EQUAL( OUString("VeraHatMichL1eb."), a->suggestAutoCompletion() );
-
-    a->remove( "VeraHatMichL1eb." );
-    a->gotoNode( "VeraHatMich" );
-    CPPUNIT_ASSERT_EQUAL( OUString(""), a->suggestAutoCompletion() );
-
-    a->returnToRoot();
-    CPPUNIT_ASSERT_EQUAL( OUString("vorschlag"), a->suggestAutoCompletion() );
-
-    a->gotoNode( "VeraLiebtMich" );
-    a->insert( 600 );
-    a->returnToRoot();
-    CPPUNIT_ASSERT_EQUAL( OUString("VeraLiebtMich"), a->suggestAutoCompletion() );
-
-    a->insert( "VeraHatMichL1eb.", 1000000 );
-    a->returnToRoot();
-    CPPUNIT_ASSERT_EQUAL( OUString("VeraHatMichL1eb."), a->suggestAutoCompletion() );
-
-    a->remove( "VeraHatMichL1eb." );
-    a->gotoNode( "VeraHatMich" );
-    CPPUNIT_ASSERT ( a->suggestAutoCompletion().isEmpty() );
-
-    a->advance( 'L' );
-    CPPUNIT_ASSERT ( a->suggestAutoCompletion().isEmpty() );
-
-    a->insert( "VeraHatMichL1eb.", 1000000 );
-    a->returnToRoot();
-    a->remove( "VeraHatMichL1eb." );
-    a->gotoNode( "VeraHatMich" );
-    CPPUNIT_ASSERT ( a->suggestAutoCompletion().isEmpty() );
-
-    a->goBack();
-    CPPUNIT_ASSERT ( a->suggestAutoCompletion().isEmpty() );
-
-    a->insert( "VeraHatMichL1eb.", 1000000 );
-    a->returnToRoot();
-    a->remove( "VeraHatMichL1eb." );
-    a->gotoNode( "VeraHatMich" );
-    CPPUNIT_ASSERT ( a->suggestAutoCompletion().isEmpty() );
-
-    a->goBack();
-    CPPUNIT_ASSERT ( a->suggestAutoCompletion().isEmpty() );
-
-    a->insert( "neu", 2000 );
-    a->returnToRoot();
-    CPPUNIT_ASSERT_EQUAL( OUString("neu"), a->suggestAutoCompletion() );
-
-    a->gotoNode( "ne" );
-    CPPUNIT_ASSERT_EQUAL( OUString("u"), a->suggestAutoCompletion() );
-
-    a->advance( 'u' );
-    a->advance( 'e' );
-    a->advance( 'r' );
-    a->insert();
-    CPPUNIT_ASSERT ( a->suggestAutoCompletion().isEmpty() );
-
-    a->returnToRoot();
-    CPPUNIT_ASSERT_EQUAL( OUString("neu"), a->suggestAutoCompletion() );
-
-    a->advance( 'n' );
-    CPPUNIT_ASSERT_EQUAL( OUString("eu"), a->suggestAutoCompletion() );
-
-    a->advance( 'e' );
-    CPPUNIT_ASSERT_EQUAL( OUString("uer"), a->suggestAutoCompletion() );
-
-    // Test unicode
-    OUString aQueryString = OStringToOUString( "H\xC3\xA4llo", RTL_TEXTENCODING_UTF8 );
-    a->insert( aQueryString );
-    a->returnToRoot();
-    a->advance( 'H' );
-
-    OUString aAutocompletedString = a->suggestAutoCompletion();
-    OUString aExpectedString = OStringToOUString( "\xC3\xA4llo", RTL_TEXTENCODING_UTF8 );
-
-    CPPUNIT_ASSERT_EQUAL( aExpectedString, aAutocompletedString );
-
-    OString aUtf8String( "\xe3\x81\x82\xe3\x81\x97\xe3\x81\x9f" );
-    aQueryString = OStringToOUString( aUtf8String, RTL_TEXTENCODING_UTF8 );
-    a->insert( aQueryString );
-
-    OUString aGotoString = OStringToOUString( "\xe3\x81\x82", RTL_TEXTENCODING_UTF8 );
-    a->gotoNode( aGotoString );
-
-    aAutocompletedString = a->suggestAutoCompletion();
-    aExpectedString      = OStringToOUString( "\xe3\x81\x97\xe3\x81\x9f", RTL_TEXTENCODING_UTF8 );
-    CPPUNIT_ASSERT_EQUAL( aExpectedString, aAutocompletedString );
-
-    delete a;
-}
-
 void LookupTreeTest::testTrie()
 {
     editeng::Trie trie;
diff --git a/editeng/source/lookuptree/LatinLookupTree.cxx b/editeng/source/lookuptree/LatinLookupTree.cxx
deleted file mode 100644
index cdc0a0b..0000000
--- a/editeng/source/lookuptree/LatinLookupTree.cxx
+++ /dev/null
@@ -1,242 +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 <editeng/LatinLookupTree.hxx>
-#include <editeng/LatinTreeNode.hxx>
-
-LatinLookupTree::LatinLookupTree(OUString sLanguage) :
-    LookupTree( sLanguage )
-{
-    for ( sal_Unicode i = 0; i < 52; ++i )
-    {
-        m_pLeaves[i] = NULL;
-    }
-}
-
-LatinLookupTree::~LatinLookupTree()
-{
-    freeMemory();
-}
-
-void LatinLookupTree::returnToRoot()
-{
-    if ( m_pCurrent == m_pHead )
-        return;
-
-    // If there is no entry in this node or the tree that sprouts from it.
-    if ( m_pCurrent &&
-            m_pCurrent->m_pParent &&
-            !m_pCurrent->m_nChildren &&
-            !m_pCurrent->m_nKeyProbability )
-    {
-        m_pCurrent->m_pParent->childHasChanged( m_pCurrent, 0, true );
-    }
-
-    m_pCurrent = m_pHead;
-}
-
-void LatinLookupTree::gotoNode(OUString sNode)
-{
-    returnToRoot();
-
-    // walk down the tree...
-    for ( int i = 0; i < sNode.getLength(); i++ )
-    {
-        m_pCurrent = m_pCurrent->advanceKey( sNode[i] );
-    }
-}
-
-void LatinLookupTree::advance(const sal_Unicode cKey)
-{
-    m_pCurrent = m_pCurrent->advanceKey( cKey );
-}
-
-void LatinLookupTree::goBack()
-{
-    if ( m_pCurrent->m_pParent ) // if we're not at the root
-    {
-        const Node* const pChild = m_pCurrent;
-        m_pCurrent = m_pCurrent->m_pParent; // set focus to parent
-
-        // if this is an unused tree leaf
-        if (  !pChild->m_nChildren && !pChild->m_nKeyProbability )
-        {
-            m_pCurrent->removeChild( m_pCurrent->getChildRef( pChild->m_cKey ) );
-        }
-    }
-}
-
-void LatinLookupTree::insert(OUString sKey, const int nProbability)
-{
-    if ( !sKey.isEmpty() && nProbability > 0 )
-    {
-        insertKey( sKey, nProbability );
-    }
-}
-
-void LatinLookupTree::insert(const int nProbability)
-{
-    if ( m_pCurrent == this )
-        return;
-
-    // change probability
-    int proba = m_pCurrent->m_nKeyProbability += nProbability;
-
-    // inform his parent
-    m_pCurrent->m_pParent->childHasChanged( m_pCurrent, proba );
-}
-
-void LatinLookupTree::remove(OUString sKey)
-{
-    returnToRoot();
-
-    if ( !sKey.isEmpty() )
-    {
-        removeKey( sKey );
-    }
-}
-
-OUString LatinLookupTree::suggestAutoCompletion() const
-{
-    if ( !m_pCurrent )
-        return OUString();
-
-    Node* pWalker = m_pCurrent;
-
-    int distance = 0, nTargetProbability = 0;
-    OUString sSuggestion;
-
-    while ( pWalker->m_pSuggest && ( distance < 2 ||
-        // Make sure the suggestion is at least 2 chars long.
-        nTargetProbability == pWalker->m_nHighestProbaInSubtree ) )
-    {
-        if ( distance < 2 )
-            nTargetProbability = pWalker->m_nHighestProbaInSubtree;
-
-        // follow the tree along the suggested route
-        pWalker = pWalker->m_pSuggest;
-        ++distance;
-        sSuggestion += OUString(pWalker->m_cKey);
-    }
-
-    return sSuggestion;
-}
-
-void LatinLookupTree::clear()
-{
-    freeMemory();
-}
-
-bool LatinLookupTree::isSeparatedlyHandled(const sal_Unicode cKey) const
-{
-    return
-        ( cKey >= 'a' && cKey <= 'z' )
-    ||  ( cKey >= 'A' && cKey <= 'Z' );
-}
-
-Node*& LatinLookupTree::getChildRef(const sal_Unicode cKey, bool bCreatePlaceholder)
-{
-    int pos = -1;
-
-    // determine position in array if possible
-    if ( cKey >= 'a' && cKey <= 'z' )
-    {
-        pos = cKey - our_nLowerCaseA;
-    }
-    else if ( cKey >= 'A' && cKey <= 'Z' )
-    {
-        pos = cKey - our_nUpperCaseA + 26;
-    }
-
-    if ( pos != -1 )
-    {
-        return m_pLeaves[pos];
-    }
-    else
-    {
-        for ( std::list<Node*>::iterator i = m_lChildren.begin(); i != m_lChildren.end(); ++i )
-        {
-            if ( (*i)->m_cKey == cKey )
-            {
-                return *i;
-            }
-        }
-        if ( bCreatePlaceholder )
-        {
-            // Create new entry in case there isn't one.
-            m_lChildren.push_back( NULL );
-            return *(--m_lChildren.end());
-        }
-        else
-        {
-            return our_pNodeNullPointer;
-        }
-    }
-}
-
-void LatinLookupTree::evaluateSeparateStorage(int& nSuggest, Node*& pSuggest) const
-{
-    for ( sal_Unicode i = 0; i < 52; ++i )
-    {
-        if ( m_pLeaves[i] )
-        {
-            if ( m_pLeaves[i]->m_nHighestProbaInSubtree > nSuggest )
-            {
-                nSuggest = m_pLeaves[i]->m_nHighestProbaInSubtree;
-                pSuggest = m_pLeaves[i];
-            }
-            if ( m_pLeaves[i]->m_nKeyProbability > nSuggest )
-            {
-                nSuggest = m_pLeaves[i]->m_nKeyProbability;
-                pSuggest = m_pLeaves[i];
-            }
-        }
-    }
-}
-
-void LatinLookupTree::freeMemory()
-{
-    // remove nodes from array
-    for ( sal_Unicode i = 0; i < 52; ++i )
-    {
-        if ( m_pLeaves[i] )
-        {
-            m_pLeaves[i]->freeMemory();
-            delete m_pLeaves[i];
-            m_pLeaves[i] = NULL;
-        }
-    }
-    // clear list
-    while ( m_lChildren.size() )
-    {
-        Node* pTmp = m_lChildren.front();
-        m_lChildren.pop_front();
-        delete pTmp;
-    }
-}
-
-Node* LatinLookupTree::newNode(Node* pParent, const sal_Unicode cKey, const int nProbability)
-{
-    return new LatinTreeNode( this, pParent, cKey, nProbability );
-}
-
-const unsigned int LatinLookupTree::our_nLowerCaseA = 97;
-const unsigned int LatinLookupTree::our_nUpperCaseA = 65;
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/editeng/source/lookuptree/LatinTreeNode.cxx b/editeng/source/lookuptree/LatinTreeNode.cxx
deleted file mode 100644
index a7f10aa..0000000
--- a/editeng/source/lookuptree/LatinTreeNode.cxx
+++ /dev/null
@@ -1,112 +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 <editeng/LatinTreeNode.hxx>
-#include <editeng/LatinLookupTree.hxx>
-
-LatinTreeNode::LatinTreeNode(TreeHead* pHead, Node* pParent, const sal_Unicode cKey, const int nProbability) :
-    Node( pHead, pParent, cKey, nProbability )
-{
-    for ( sal_Unicode i = 0; i < 26; ++i )
-    {
-        m_pLeaves[i] = NULL;
-    }
-}
-
-LatinTreeNode::~LatinTreeNode()
-{
-    freeMemory();
-}
-
-bool LatinTreeNode::isSeparatedlyHandled(const sal_Unicode cKey) const
-{
-    return ( cKey >= 'a' && cKey <= 'z' );
-}
-
-Node*& LatinTreeNode::getChildRef(const sal_Unicode cKey, bool bCreatePlaceholder)
-{
-    // determine position in array if possible
-    if ( cKey >= 'a' && cKey <= 'z' )
-    {
-        return m_pLeaves[cKey - LatinLookupTree::our_nLowerCaseA];
-    }
-    else
-    {
-        for ( std::list<Node*>::iterator i = m_lChildren.begin(); i != m_lChildren.end(); ++i )
-        {
-            if ( (*i)->m_cKey == cKey )
-            {
-                return *i;
-            }
-        }
-        if ( bCreatePlaceholder )
-        {
-            // Create new entry in case there isn't one.
-            m_lChildren.push_back( NULL );
-            return *(--m_lChildren.end());
-        }
-        else
-        {
-            return our_pNodeNullPointer;
-        }
-    }
-}
-
-void LatinTreeNode::evaluateSeparateStorage(int& nSuggest, Node*& pSuggest) const
-{
-    for ( sal_Unicode i = 0; i < 26; ++i )
-    {
-        if ( m_pLeaves[i] )
-        {
-            if ( m_pLeaves[i]->m_nHighestProbaInSubtree > nSuggest )
-            {
-                nSuggest = m_pLeaves[i]->m_nHighestProbaInSubtree;
-                pSuggest = m_pLeaves[i];
-            }
-            if ( m_pLeaves[i]->m_nKeyProbability > nSuggest )
-            {
-                nSuggest = m_pLeaves[i]->m_nKeyProbability;
-                pSuggest = m_pLeaves[i];
-            }
-        }
-    }
-}
-
-void LatinTreeNode::freeMemory()
-{
-    // remove nodes from array
-    for ( sal_Unicode i = 0; i < 26; ++i )
-    {
-        if ( m_pLeaves[i] )
-        {
-            m_pLeaves[i]->freeMemory();
-            delete m_pLeaves[i];
-            m_pLeaves[i] = NULL;
-        }
-    }
-    // clear list
-    while ( m_lChildren.size() )
-    {
-        Node* pTmp = m_lChildren.front();
-        m_lChildren.pop_front();
-        delete pTmp;
-    }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/editeng/source/lookuptree/Node.cxx b/editeng/source/lookuptree/Node.cxx
deleted file mode 100644
index 2492a88..0000000
--- a/editeng/source/lookuptree/Node.cxx
+++ /dev/null
@@ -1,216 +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 <editeng/TreeHead.hxx>
-#include <editeng/Node.hxx>
-
-Node::Node(TreeHead* const pHead, Node* const pParent,
-            const sal_Unicode cKey, const int nProbability ) :
-    m_cKey( cKey ),
-    m_nKeyProbability( nProbability ),
-    m_nHighestProbaInSubtree( 0 ),
-    m_pParent( pParent ),
-    m_pSuggest( NULL ),
-    m_pHead( pHead ),
-    m_nChildren( 0 )
-{
-}
-
-Node::~Node()
-{
-}
-
-void Node::removeChild(Node*& pChild)
-{
-    const sal_Unicode cKey = pChild->m_cKey;
-
-    if ( pChild )
-    {
-        delete pChild;
-        pChild = NULL;
-        --m_nChildren;
-    }
-
-    if ( !isSeparatedlyHandled( cKey ) )
-    {
-        std::list<Node*>::iterator i = m_lChildren.begin();
-        while ( i != m_lChildren.end() )
-        {
-            if ( !(*i) )
-            {
-                i = m_lChildren.erase( i );
-            }
-            else
-            {
-                ++i;
-            }
-        }
-    }
-}
-
-void Node::insertKey(OUString sKey, const int nProbability)
-{
-    if ( !sKey.isEmpty() )
-    {
-        const sal_Unicode cKey = sKey[0];
-        sKey = sKey.copy( 1 );
-
-        Node*& pChild = getChildRef( cKey, true );
-
-        if ( !pChild )
-        {
-            pChild = m_pHead->newNode( this, cKey );
-            ++m_nChildren;
-        }
-
-        pChild->insertKey( sKey, nProbability );
-    }
-    else
-    {
-        m_nKeyProbability += nProbability;
-        if ( m_pParent )
-        {
-            // inform parent about change
-            int probability = m_nHighestProbaInSubtree > m_nKeyProbability ? m_nHighestProbaInSubtree : m_nKeyProbability;
-            m_pParent->childHasChanged( this, probability);
-        }
-    }
-}
-
-// Removes a complete keyword starting from this node of the tree.
-void Node::removeKey(OUString sKey)
-{
-    if ( !sKey.isEmpty() )
-    {
-        Node*& pChild = getChildRef( sKey[0] );
-
-        if ( pChild )
-        {
-            // recursive call downwards
-            pChild->removeKey( sKey.copy( 1 ) );
-        }
-        // Else: Keyword to be removed couldn't be found within the tree.
-        // No further changes are going to be made.
-    }
-    else    // If we are the node to be removed...
-    {
-        // ... remove our entry from tree...
-        m_nKeyProbability = 0;
-        // ... and make sure our parent is updated.
-        m_pParent->childHasChanged( this, m_nHighestProbaInSubtree, this != m_pHead->m_pCurrent );
-    }
-}
-
-Node *Node::advanceKey(const sal_Unicode cKey)
-{
-    Node*& pChild = getChildRef( cKey, true );
-
-    if ( !pChild )
-    {
-        pChild = m_pHead->newNode( this, cKey );
-    }
-
-    return pChild;
-}
-
-void Node::childHasChanged(Node *pChild, const int nProbability, bool bAllowRemoval)
-{
-    if ( nProbability > m_nHighestProbaInSubtree )
-    {
-        m_pSuggest = pChild;
-        m_nHighestProbaInSubtree = nProbability;
-
-        if ( m_pParent ) // recursive call upwards
-        {
-            int probabilityChange = nProbability > m_nKeyProbability ? nProbability : m_nKeyProbability;
-            m_pParent->childHasChanged( this, probabilityChange );
-        }
-    }
-    else if ( !nProbability || nProbability < m_nHighestProbaInSubtree )
-    {
-        bool bNewEvaluationRequired = m_pSuggest == pChild;
-
-        if ( !nProbability && bAllowRemoval )
-        {
-            // Remove child. Caller needs to make sure we are allowed to.
-            removeChild( getChildRef( pChild->m_cKey ) );
-        }
-
-        if ( bNewEvaluationRequired )
-        {
-            // This is used to store whether we need to inform our parent about
-            // the changes within this node.
-            bool bNodeProbabilityChanged;
-
-            reevaluateSuggestion( bNodeProbabilityChanged );
-
-            // If necessary, inform our parent about change via recursive call
-            if ( bNodeProbabilityChanged && m_pParent )
-            {
-                bAllowRemoval = bAllowRemoval && this != m_pHead->m_pCurrent;
-                int probabilityChange = m_nHighestProbaInSubtree > m_nKeyProbability ? m_nHighestProbaInSubtree : m_nKeyProbability;
-                m_pParent->childHasChanged( this, probabilityChange, bAllowRemoval );
-            }
-        }
-    }
-}
-
-void Node::reevaluateSuggestion(bool& bNodeProbabilityChanged)
-{
-    if ( m_nChildren ) // find child with highest probability
-    {
-        int nSuggest = 0;
-        Node* pSuggest = NULL;
-
-        // find child with highest probability in array
-        evaluateSeparateStorage( nSuggest, pSuggest );
-
-        // do the same thing within list
-        for ( std::list<Node*>::iterator i = m_lChildren.begin(); i != m_lChildren.end(); ++i )
-        {
-            if ( (*i)->m_nHighestProbaInSubtree > nSuggest )
-            {
-                nSuggest = (*i)->m_nHighestProbaInSubtree;
-                pSuggest = (*i);
-            }
-            if ( (*i)->m_nKeyProbability > nSuggest )
-            {
-                nSuggest = (*i)->m_nKeyProbability;
-                pSuggest = (*i);
-            }
-        }
-
-        // determine whether we need to inform our parent
-        bNodeProbabilityChanged = m_nHighestProbaInSubtree != nSuggest;
-
-        m_pSuggest = pSuggest;
-        m_nHighestProbaInSubtree = nSuggest;
-    }
-    else // there are no children
-    {
-        m_pSuggest = NULL;
-        m_nHighestProbaInSubtree = 0;
-
-        bNodeProbabilityChanged = true;
-    }
-}
-
-Node* Node::our_pNodeNullPointer = NULL;
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/editeng/LatinLookupTree.hxx b/include/editeng/LatinLookupTree.hxx
deleted file mode 100644
index e35d62b..0000000
--- a/include/editeng/LatinLookupTree.hxx
+++ /dev/null
@@ -1,74 +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 INCLUDED_EDITENG_LATINLOOKUPTREE_HXX
-#define INCLUDED_EDITENG_LATINLOOKUPTREE_HXX
-
-#include <editeng/LookupTree.hxx>
-#include <editeng/TreeHead.hxx>
-#include <editeng/editengdllapi.h>
-
-/**
- * LatinLookupTree implements a tree that is optimized for storing and looking
- * up words that mainly consist of roman characters, although any other
- * language can be handled, too.
- */
-class EDITENG_DLLPUBLIC LatinLookupTree : public LookupTree, public TreeHead
-{
-public:
-
-    explicit LatinLookupTree(OUString sLanguage);
-    ~LatinLookupTree();
-
-
-    /* =================== Implemented Virtuals From LookupTree =================== */
-    void returnToRoot();
-    void gotoNode(OUString sNode);
-    void advance(const sal_Unicode a);
-    void goBack();
-    void insert(OUString sKey, const int nProbability = 1);
-    void insert(const int nProbability = 1);
-    void remove(OUString sKey);
-    OUString suggestAutoCompletion() const;
-    void clear();
-
-    /* =================== Implemented Virtuals From Node =================== */
-    bool isSeparatedlyHandled(const sal_Unicode cKey) const;
-    Node*& getChildRef(const sal_Unicode cKey, bool bCreatePlaceholder = false);
-    void evaluateSeparateStorage(int& nSuggest, Node*& pSuggest) const;
-    void freeMemory();
-
-
-    /* =================== Implemented Virtual From TreeHead =================== */
-    Node* newNode(Node* pParent, const sal_Unicode cKey, const int nProbability = 0);
-
-    /* =================== Member Variables =================== */
-    // position of lower case letter 'a' within the selected char encoding.
-    static const unsigned int our_nLowerCaseA;
-
-    // position of upper case letter 'A' within the selected char encoding.
-    static const unsigned int our_nUpperCaseA;
-
-private:
-    Node*   m_pLeaves[52];  // handles [a-z] and [A-Z]
-};
-
-#endif // INCLUDED_EDITENG_LATINLOOKUPTREE_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/editeng/LatinTreeNode.hxx b/include/editeng/LatinTreeNode.hxx
deleted file mode 100644
index 09a82f8..0000000
--- a/include/editeng/LatinTreeNode.hxx
+++ /dev/null
@@ -1,48 +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 INCLUDED_EDITENG_LATINTREENODE_HXX
-#define INCLUDED_EDITENG_LATINTREENODE_HXX
-
-#include <editeng/Node.hxx>
-
-/**
-  * LatinTreeNode represents a node within a LatinLookupTree. As en external
-  * caller, you should never have to do anything with this class directly.
-  * Use the class LatinLookupTree instead for constructing a new tree.
-  */
-class LatinTreeNode : public Node
-{
-public:
-    explicit LatinTreeNode(TreeHead *pHead, Node* pParent, const sal_Unicode cKey, const int nProbability = 0);
-    ~LatinTreeNode();
-
-    /* =================== Implemented Virtuals From Node =================== */
-    bool isSeparatedlyHandled(const sal_Unicode cKey) const;
-    Node*& getChildRef(const sal_Unicode cKey, bool bCreatePlaceholder = false);
-    void evaluateSeparateStorage(int& nSuggest, Node*& pSuggest) const;
-    void freeMemory();
-
-private:
-    Node* m_pLeaves[26];  // handles [a-z]
-};
-
-#endif // INCLUDED_EDITENG_LATINTREENODE_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/editeng/LookupTree.hxx b/include/editeng/LookupTree.hxx
deleted file mode 100644
index c961d11..0000000
--- a/include/editeng/LookupTree.hxx
+++ /dev/null
@@ -1,95 +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 INCLUDED_EDITENG_LOOKUPTREE_HXX
-#define INCLUDED_EDITENG_LOOKUPTREE_HXX
-
-#include <sal/types.h>
-#include <rtl/ustring.hxx>
-#include <editeng/editengdllapi.h>
-
-/** LookupTree is an interface class that allows for unified access to tree
-  * structures used for storing dictionnary words as well as their respective
-  * probabilities.
-  * It allows you to insert or remove words from the tree, navigate threw the
-  * tree along its branches and request for a suggestion for autocompletion
-  * according to the position within the tree.
-  * It also allows you to attribute a specific language to each tree so that
-  * it is possible to serve the correct auto completions even within a document
-  * that contains content in more than one language.
-  */
-class EDITENG_DLLPUBLIC LookupTree
-{
-public:
-    explicit inline LookupTree(OUString sLanguage);
-    virtual ~LookupTree() {}
-
-    inline OUString language() const;
-
-    // Resets the current item to root.
-    virtual void returnToRoot() = 0;
-
-    // Advances from the root position key by key towards the node keyed with
-    // the last char of sKey.
-    virtual void gotoNode(OUString sNode) = 0;
-
-    // Advances from the current position towards the node keyed with cKey.
-    virtual void advance(const sal_Unicode cKey) = 0;
-
-    // Sets the focus to the parent of the current node. Removes the current
-    // node if it is invalid.
-    virtual void goBack() = 0;
-
-    // Inserts a complete keyword starting from the root node of the tree.
-    // Does not change the current position within the tree.
-    virtual void insert(OUString sKey, const int nProbability = 1) = 0;
-
-    // Inserts a keyword with the given probability at the current position
-    // within the tree. Does not change the current position within the tree.
-    virtual void insert(const int nProbability = 1) = 0;
-
-    // Removes a complete keyword starting from the root node of the tree.
-    // Does not change the current position within the tree.
-    virtual void remove(OUString sKey) = 0;
-
-    // Returns the suggested autocompletion for the current location within
-    // the tree.
-    virtual OUString suggestAutoCompletion() const = 0;
-
-    // Clears the tree and removes any information it contains.
-    virtual void clear() = 0;
-
-
-private:
-    const OUString m_sLanguage;  // language handled by this tree
-};
-
-LookupTree::LookupTree(OUString sLanguage) :
-    m_sLanguage( sLanguage )
-{
-}
-
-OUString LookupTree::language() const
-{
-    return m_sLanguage;
-}
-
-#endif // INCLUDED_EDITENG_LOOKUPTREE_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/editeng/Node.hxx b/include/editeng/Node.hxx
deleted file mode 100644
index 62e775d..0000000
--- a/include/editeng/Node.hxx
+++ /dev/null
@@ -1,102 +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 INCLUDED_EDITENG_NODE_HXX
-#define INCLUDED_EDITENG_NODE_HXX
-
-#include <sal/types.h>
-#include <rtl/ustring.hxx>
-#include <list>
-
-class TreeHead;
-
-/**
-  * Node represents a node within a LookupTree. As en external caller, you
-  * should never have to do anything with this class directly.
-  * Use any of the classes derived from LookupTree instead for constructing a
-  * new tree.
-  */
-class Node
-{
-public:
-    //explicit Node(TreeHead* const pHead);
-    explicit Node(TreeHead* const pHead, Node* const pParent = NULL,
-                    const sal_Unicode cKey = 0, const int nProbability = 0);
-
-    virtual ~Node();
-
-    // Removes the specified child from this node. Make sure you may remove it
-    // before doing so.
-    void removeChild(Node*& pChild);
-
-    // Inserts a complete keyword starting from this node of the tree.
-    void insertKey(OUString sKey, const int nProbability);
-    // Removes a complete keyword starting from this node of the tree.
-    void removeKey(OUString sKey);
-
-    // Returns the child node keyed with cKey.
-    Node* advanceKey(const sal_Unicode cKey);
-
-    // Use this to inform a parent about its child having changed.
-    // Call this only with nProbability = 0 if you have made sure the node can
-    // be removed.
-    void childHasChanged(Node* pChild, const int nProbability, bool bAllowRemoval = false);
-
-    // Rechose the node that is suggested for auto-completion
-    void reevaluateSuggestion(bool& bNodeProbabilityChanged);
-
-
-    /*  =================== Virtuals =================== */
-    virtual bool isSeparatedlyHandled(const sal_Unicode cKey) const = 0;
-
-    // Returns a reference to the pointer to the child node for the requested
-    // char. Returns NULL if no such child could be found.
-    // IMPORTANT: In the latter case, you may NOT overwrite the return value,
-    // if you did not set bCreatePlaceholder to true.
-    virtual Node*& getChildRef(const sal_Unicode cKey, bool bCreatePlaceholder = false) = 0;
-
-    // Sets nSuggest to the highest probability within the subtree and pSuggest
-    // to point to the (first) node with this probability.
-    virtual void evaluateSeparateStorage(int& nSuggest, Node*& pSuggest) const = 0;
-
-    // Removes all child nodes and clears all memory.
-    virtual void freeMemory() = 0;
-
-    /* =================== Member Variables =================== */
-    const sal_Unicode m_cKey;             // the char represented by this node
-    int               m_nKeyProbability;  // the number of occurrences of this key
-
-    // the highest KeyProbability in the tree sprouting from this node
-    int m_nHighestProbaInSubtree;
-
-    Node* const m_pParent; // the parent of this node
-    Node* m_pSuggest;      // next node in chain to the suggested autocompletion
-
-    TreeHead* const m_pHead; // head of the tree
-
-    unsigned short m_nChildren;     // the number of children of the node
-    std::list<Node*> m_lChildren;   // all chars not handled by array
-
-    // Allows returning a reference to a valid Null pointer. May NOT be overwritten.
-    static Node* our_pNodeNullPointer;
-};
-
-#endif // INCLUDED_EDITENG_NODE_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/editeng/TreeHead.hxx b/include/editeng/TreeHead.hxx
deleted file mode 100644
index f36aff5..0000000
--- a/include/editeng/TreeHead.hxx
+++ /dev/null
@@ -1,49 +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 INCLUDED_EDITENG_TREEHEAD_HXX
-#define INCLUDED_EDITENG_TREEHEAD_HXX
-
-#include <editeng/Node.hxx>
-
-/**
-  * Represents the root node of a LookupTree.
-  */
-class TreeHead : public Node
-{
-public:
-    explicit inline TreeHead();
-    virtual ~TreeHead() {}
-
-    /* =================== Virtuals =================== */
-    virtual Node* newNode(Node* pParent, const sal_Unicode cKey, const int nProbability = 0) = 0;
-
-    /* =================== Member Variables =================== */
-    Node* m_pCurrent; // current location within the tree
-};
-
-TreeHead::TreeHead() :
-    Node( this ),
-    m_pCurrent( this )
-{
-}
-
-#endif // INCLUDED_EDITENG_TREEHEAD_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 569e5f023ea3dc86988365ac23ceef70b94b177d
Author: Tomaž Vajngerl <quikee at gmail.com>
Date:   Sun Feb 2 15:02:36 2014 +0100

    Add getAllElements (strings) for Trie.
    
    Change-Id: I9603cc51545f72fdb0854f2d76e2326706329000

diff --git a/editeng/qa/lookuptree/lookuptree_test.cxx b/editeng/qa/lookuptree/lookuptree_test.cxx
index ab2f814..0bea3a5 100644
--- a/editeng/qa/lookuptree/lookuptree_test.cxx
+++ b/editeng/qa/lookuptree/lookuptree_test.cxx
@@ -34,10 +34,12 @@ class LookupTreeTest : public CppUnit::TestFixture
 public:
     void testLookupTree();
     void testTrie();
+    void testTrieGetAllEntries();
 
     CPPUNIT_TEST_SUITE(LookupTreeTest);
     CPPUNIT_TEST(testLookupTree);
     CPPUNIT_TEST(testTrie);
+    CPPUNIT_TEST(testTrieGetAllEntries);
     CPPUNIT_TEST_SUITE_END();
 };
 
@@ -227,11 +229,11 @@ void LookupTreeTest::testTrie()
     editeng::Trie trie;
     std::vector<OUString> suggestions;
 
-    trie.findSuggestions( OUString(""), suggestions);
+    trie.findSuggestions( OUString(), suggestions);
     CPPUNIT_ASSERT_EQUAL( (size_t) 0, suggestions.size() );
 
-    trie.insert( OUString("") );
-    trie.findSuggestions( OUString(""), suggestions);
+    trie.insert( OUString() );
+    trie.findSuggestions( OUString(), suggestions);
     CPPUNIT_ASSERT_EQUAL( (size_t) 0, suggestions.size() );
 
     trie.findSuggestions( OUString("a"), suggestions);
@@ -302,7 +304,33 @@ void LookupTreeTest::testTrie()
     trie.findSuggestions( OUString(""), suggestions);
     CPPUNIT_ASSERT_EQUAL( (size_t) 6, suggestions.size() );
     suggestions.clear();
+}
+
+void LookupTreeTest::testTrieGetAllEntries()
+{
+    editeng::Trie trie;
+
+    std::vector<OUString> entries;
+
+    trie.getAllEntries(entries);
+    CPPUNIT_ASSERT_EQUAL( (size_t) 0, entries.size() );
+
+    trie.insert("A");
+    trie.getAllEntries(entries);
+    CPPUNIT_ASSERT_EQUAL( (size_t) 1, entries.size() );
+    entries.clear();
+
+    trie.insert("B");
+    trie.insert("C");
+    trie.getAllEntries(entries);
+    CPPUNIT_ASSERT_EQUAL( (size_t) 3, entries.size() );
+    entries.clear();
 
+    trie.insert("AA");
+    trie.insert("AAA");
+    trie.getAllEntries(entries);
+    CPPUNIT_ASSERT_EQUAL( (size_t) 5, entries.size() );
+    entries.clear();
 }
 
 } // namespace end
diff --git a/editeng/source/lookuptree/Trie.cxx b/editeng/source/lookuptree/Trie.cxx
index 9314069..a0ca91e 100644
--- a/editeng/source/lookuptree/Trie.cxx
+++ b/editeng/source/lookuptree/Trie.cxx
@@ -196,5 +196,13 @@ void Trie::findSuggestions(OUString sWordPart, vector<OUString>& rSuggesstionLis
     }
 }
 
+void Trie::getAllEntries(std::vector<OUString>& entries)
+{
+    if (mRoot != NULL)
+    {
+        mRoot->collectSuggestions(OUString(), entries);
+    }
+}
+
 }
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/editeng/Trie.hxx b/include/editeng/Trie.hxx
index 6c48833..f5f42f0 100644
--- a/include/editeng/Trie.hxx
+++ b/include/editeng/Trie.hxx
@@ -32,7 +32,7 @@ public:
 
     void insert(OUString sInputString) const;
     void findSuggestions(OUString sWordPart, std::vector<OUString>& rSuggesstionList) const;
-
+    void getAllEntries(std::vector<OUString>& entries);
 };
 
 }


More information about the Libreoffice-commits mailing list