desktop/Library_sofficeapp.mk               |    1 
 desktop/qa/desktop_lib/test_desktop_lib.cxx |    8 ++++-
 desktop/source/lib/init.cxx                 |   41 ++++++++++++++++++++++++++++
 3 files changed, 48 insertions(+), 2 deletions(-)

New commits:
commit 533958c02d22bbca2af9c332392bafbdfe7a0309
Author: Andrzej Hunt <andr...@ahunt.org>
Date:   Wed Nov 11 21:07:13 2015 +0100

    lok sw: Place default styles at top of style selector
    
    The order/list of default styles for Writer should be hardcoded,
    (by default the list contains 100+ items), it makes most sense to
    place these at the start of the list, allowing the client to then
    select how many styles they actually want to show.
    
    Change-Id: I491a426397e06b3502cee7484c5f8adfd9d9cdf2
    Reviewed-on: https://gerrit.libreoffice.org/19918
    Reviewed-by: Andrzej Hunt <andr...@ahunt.org>
    Tested-by: Andrzej Hunt <andr...@ahunt.org>
    (cherry picked from commit 5c6119eeaaaed322c884504a53bb558258233fe9)

diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 32570df..20bc654 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -1261,12 +1261,45 @@ static char* getStyles(LibreOfficeKitDocument* pThis, 
const char* pCommand)
     uno::Reference<container::XNameAccess> 
xStyleFamilies(xStyleFamiliesSupplier->getStyleFamilies(), uno::UNO_QUERY);
     uno::Sequence<OUString> aStyleFamilies = xStyleFamilies->getElementNames();
 
+    static const sal_Char* aWriterStyles[] =
+    {
+        "Text body",
+        "Quotations",
+        "Title",
+        "Subtitle",
+        "Heading 1",
+        "Heading 2",
+        "Heading 3"
+    };
+
     boost::property_tree::ptree aValues;
     for (sal_Int32 nStyleFam = 0; nStyleFam < aStyleFamilies.getLength(); 
++nStyleFam)
     {
         boost::property_tree::ptree aChildren;
         OUString sStyleFam = aStyleFamilies[nStyleFam];
         uno::Reference<container::XNameAccess> 
xStyleFamily(xStyleFamilies->getByName(sStyleFam), uno::UNO_QUERY);
+
+        // Writer provides a huge number of styles, we have a list of 7 
"default" styles which
+        // should be shown in the normal dropdown, which we should add to the 
start of the list
+        // to simplify their selection.
+        if (sStyleFam == "ParagraphStyles"
+            && doc_getDocumentType(pThis) == LOK_DOCTYPE_TEXT)
+        {
+            for( sal_uInt32 nStyle = 0; nStyle < sizeof( aWriterStyles ) / 
sizeof( sal_Char*); ++nStyle )
+            {
+                uno::Reference< beans::XPropertySet > xStyle;
+                xStyleFamily->getByName( OUString::createFromAscii( 
aWriterStyles[nStyle] )) >>= xStyle;
+                OUString sName;
+                xStyle->getPropertyValue("DisplayName") >>= sName;
+                if( !sName.isEmpty() )
+                {
+                    boost::property_tree::ptree aChild;
+                    aChild.put("", sName.toUtf8());
+                    aChildren.push_back(std::make_pair("", aChild));
+                }
+            }
+        }
+
         uno::Sequence<OUString> aStyles = xStyleFamily->getElementNames();
         for (sal_Int32 nInd = 0; nInd < aStyles.getLength(); ++nInd)
         {
commit 030318a39b3057a56f9f5f6332d7f8c763e2e505
Author: Andrzej Hunt <andr...@ahunt.org>
Date:   Wed Nov 11 17:09:47 2015 +0100

    lok: add Clear formatting to getStyles()
    
    This requires client-side support too.
    
    Change-Id: I5197ed3ed2b8244b50f7faf84a1cadde6a61b2cb
    Reviewed-on: https://gerrit.libreoffice.org/19917
    Reviewed-by: Andrzej Hunt <andr...@ahunt.org>
    Tested-by: Andrzej Hunt <andr...@ahunt.org>
    (cherry picked from commit 0b5991e4862501f0fa8e34f1b403aca40e51436f)

diff --git a/desktop/Library_sofficeapp.mk b/desktop/Library_sofficeapp.mk
index f0faf21..ed5057b 100644
--- a/desktop/Library_sofficeapp.mk
+++ b/desktop/Library_sofficeapp.mk
@@ -52,6 +52,7 @@ $(eval $(call gb_Library_use_libraries,sofficeapp,\
     sb \
     sfx \
     svl \
+    svxcore \
     svt \
     tk \
     tl \
diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx 
b/desktop/qa/desktop_lib/test_desktop_lib.cxx
index 5170785..981e546 100644
--- a/desktop/qa/desktop_lib/test_desktop_lib.cxx
+++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx
@@ -185,14 +185,18 @@ void DesktopLOKTest::testGetStyles()
     CPPUNIT_ASSERT( aValues.size() > 0 );
     for (const std::pair<std::string, boost::property_tree::ptree>& rPair : 
aValues)
     {
-        CPPUNIT_ASSERT( rPair.second.size() > 0);
+        if( rPair.first != "ClearStyle")
+        {
+            CPPUNIT_ASSERT( rPair.second.size() > 0);
+        }
         if (rPair.first != "CharacterStyles" &&
             rPair.first != "ParagraphStyles" &&
             rPair.first != "FrameStyles" &&
             rPair.first != "PageStyles" &&
             rPair.first != "NumberingStyles" &&
             rPair.first != "CellStyles" &&
-            rPair.first != "ShapeStyles")
+            rPair.first != "ShapeStyles" &&
+            rPair.first != "ClearStyle")
         {
             CPPUNIT_FAIL("Unknown style family: " + rPair.first);
         }
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index b672525..32570df 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -66,6 +66,8 @@
 #include <sfx2/lokhelper.hxx>
 #include <sfx2/viewfrm.hxx>
 #include <sfx2/viewsh.hxx>
+#include <svx/dialmgr.hxx>
+#include <svx/dialogs.hrc>
 #include <svx/svxids.hrc>
 #include <vcl/svapp.hxx>
 #include <vcl/svpforlokit.hxx>
@@ -1274,6 +1276,12 @@ static char* getStyles(LibreOfficeKitDocument* pThis, 
const char* pCommand)
         }
         aValues.add_child(sStyleFam.toUtf8().getStr(), aChildren);
     }
+
+    boost::property_tree::ptree aChildClearFormat;
+    OUString sClearFormat = SVX_RESSTR( RID_SVXSTR_CLEARFORM );
+    aChildClearFormat.put("", sClearFormat.toUtf8());
+    aValues.add_child("ClearStyle", aChildClearFormat);
+
     aTree.add_child("commandValues", aValues);
     std::stringstream aStream;
     boost::property_tree::write_json(aStream, aTree);
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to