[Libreoffice-commits] core.git: 5 commits - libreofficekit/qa sd/inc sd/source

Pranav Kant pranavk at collabora.co.uk
Mon Feb 20 08:29:13 UTC 2017


 libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx |   41 +++++++++++---------
 sd/inc/Annotation.hxx                               |    2 
 sd/source/core/annotations/Annotation.cxx           |   16 +++++++
 sd/source/ui/annotations/annotationmanager.cxx      |   12 +----
 sd/source/ui/unoidl/unomodel.cxx                    |    3 -
 5 files changed, 48 insertions(+), 26 deletions(-)

New commits:
commit c62d2317472e2a02c7ace08a2f8ecc4135a9ba2c
Author: Pranav Kant <pranavk at collabora.co.uk>
Date:   Mon Feb 20 10:12:07 2017 +0530

    gtktiledviewer: Id param is string now
    
    It was changed in ce96c5957c38384f8911d6307605c502eca0c644
    
    Change-Id: I4cc1f90d85e31044306ab36eaeac9d4424d965c0

diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
index 19ae65c..c8bf3ee 100644
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
@@ -296,7 +296,7 @@ static void editButtonClicked(GtkWidget* pWidget, gpointer userdata)
     gchar *commentId = static_cast<gchar*>(g_object_get_data(G_OBJECT(userdata), "id"));
 
     boost::property_tree::ptree aTree;
-    aTree.put(boost::property_tree::ptree::path_type(g_strconcat("Id", "/", "type", nullptr), '/'), "long");
+    aTree.put(boost::property_tree::ptree::path_type(g_strconcat("Id", "/", "type", nullptr), '/'), "string");
     aTree.put(boost::property_tree::ptree::path_type(g_strconcat("Id", "/", "value", nullptr), '/'), std::string(commentId));
 
     aTree.put(boost::property_tree::ptree::path_type(g_strconcat("Text", "/", "type", nullptr), '/'), "string");
@@ -320,7 +320,7 @@ static void replyButtonClicked(GtkWidget* pWidget, gpointer userdata)
     gchar *commentId = static_cast<gchar*>(g_object_get_data(G_OBJECT(userdata), "id"));
 
     boost::property_tree::ptree aTree;
-    aTree.put(boost::property_tree::ptree::path_type(g_strconcat("Id", "/", "type", nullptr), '/'), "long");
+    aTree.put(boost::property_tree::ptree::path_type(g_strconcat("Id", "/", "type", nullptr), '/'), "string");
     aTree.put(boost::property_tree::ptree::path_type(g_strconcat("Id", "/", "value", nullptr), '/'), std::string(commentId));
 
     aTree.put(boost::property_tree::ptree::path_type(g_strconcat("Text", "/", "type", nullptr), '/'), "string");
@@ -340,7 +340,7 @@ static void deleteCommentButtonClicked(GtkWidget* pWidget, gpointer userdata)
     gchar *commentid = static_cast<gchar*>(g_object_get_data(G_OBJECT(userdata), "id"));
 
     boost::property_tree::ptree aTree;
-    aTree.put(boost::property_tree::ptree::path_type(g_strconcat("Id", "/", "type", nullptr), '/'), "long");
+    aTree.put(boost::property_tree::ptree::path_type(g_strconcat("Id", "/", "type", nullptr), '/'), "string");
     aTree.put(boost::property_tree::ptree::path_type(g_strconcat("Id", "/", "value", nullptr), '/'), std::string(commentid));
 
     std::stringstream aStream;
commit 2acb622631453a3e4b74991986618ba161d9e4b8
Author: Pranav Kant <pranavk at collabora.co.uk>
Date:   Sun Feb 19 19:10:07 2017 +0530

    sd: Superfluous condition
    
    Change-Id: Ice8c5937e208880083b45d11aedcc3cb4a9f3c10

diff --git a/sd/source/ui/annotations/annotationmanager.cxx b/sd/source/ui/annotations/annotationmanager.cxx
index 4f895c53..70d53da 100644
--- a/sd/source/ui/annotations/annotationmanager.cxx
+++ b/sd/source/ui/annotations/annotationmanager.cxx
@@ -315,15 +315,11 @@ void AnnotationManagerImpl::ExecuteDeleteAnnotation(SfxRequest& rReq)
     case SID_DELETE_POSTIT:
         {
             Reference< XAnnotation > xAnnotation;
-
-            if( rReq.GetSlot() == SID_DELETE_POSTIT )
+            if( pArgs )
             {
-                if( pArgs )
-                {
-                    const SfxPoolItem*  pPoolItem = nullptr;
-                    if( SfxItemState::SET == pArgs->GetItemState( SID_DELETE_POSTIT, true, &pPoolItem ) )
-                        static_cast<const SfxUnoAnyItem*>(pPoolItem)->GetValue() >>= xAnnotation;
-                }
+                const SfxPoolItem*  pPoolItem = nullptr;
+                if( SfxItemState::SET == pArgs->GetItemState( SID_DELETE_POSTIT, true, &pPoolItem ) )
+                    static_cast<const SfxUnoAnyItem*>(pPoolItem)->GetValue() >>= xAnnotation;
             }
 
             if( !xAnnotation.is() )
commit 6a4bf88c581b7fc1b6303099c804235027fd9f3e
Author: Pranav Kant <pranavk at collabora.co.uk>
Date:   Sun Feb 19 19:06:50 2017 +0530

    gtktiledviewer: Adjust for different delete uno cmd for impress
    
    Change-Id: I7fa82096298a8a7c9f586a1d3c06aa5852e6842e

diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
index 1996368f..19ae65c 100644
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
@@ -1110,21 +1110,28 @@ static void initWindow(TiledWindow& rWindow)
     gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(rWindow.m_pEnableEditing), TRUE);
 
     LibreOfficeKitDocument* pDocument = lok_doc_view_get_document(LOK_DOC_VIEW(rWindow.m_pDocView));
-    if (pDocument && pDocument->pClass->getDocumentType(pDocument) == LOK_DOCTYPE_SPREADSHEET)
+    if (pDocument)
     {
-        // Align to top left corner, so the tiles are in sync with the
-        // row/column bar, even when zooming out enough that not all space is
-        // used.
-        gtk_widget_set_halign(GTK_WIDGET(rWindow.m_pDocView), GTK_ALIGN_START);
-        gtk_widget_set_valign(GTK_WIDGET(rWindow.m_pDocView), GTK_ALIGN_START);
-
-        // Change cell alignment uno commands for spreadsheet
-        lcl_registerToolItem(rWindow, rWindow.m_pLeftpara, ".uno:AlignLeft");
-        lcl_registerToolItem(rWindow, rWindow.m_pCenterpara, ".uno:AlignHorizontalCenter");
-        lcl_registerToolItem(rWindow, rWindow.m_pRightpara, ".uno:AlignRight");
-        gtk_widget_hide(GTK_WIDGET(rWindow.m_pJustifypara));
-
-        lcl_registerToolItem(rWindow, rWindow.m_pDeleteComment, ".uno:DeleteNote");
+        if (pDocument->pClass->getDocumentType(pDocument) == LOK_DOCTYPE_SPREADSHEET)
+        {
+            // Align to top left corner, so the tiles are in sync with the
+            // row/column bar, even when zooming out enough that not all space is
+            // used.
+            gtk_widget_set_halign(GTK_WIDGET(rWindow.m_pDocView), GTK_ALIGN_START);
+            gtk_widget_set_valign(GTK_WIDGET(rWindow.m_pDocView), GTK_ALIGN_START);
+
+            // Change cell alignment uno commands for spreadsheet
+            lcl_registerToolItem(rWindow, rWindow.m_pLeftpara, ".uno:AlignLeft");
+            lcl_registerToolItem(rWindow, rWindow.m_pCenterpara, ".uno:AlignHorizontalCenter");
+            lcl_registerToolItem(rWindow, rWindow.m_pRightpara, ".uno:AlignRight");
+            gtk_widget_hide(GTK_WIDGET(rWindow.m_pJustifypara));
+
+            lcl_registerToolItem(rWindow, rWindow.m_pDeleteComment, ".uno:DeleteNote");
+        }
+        else if (pDocument->pClass->getDocumentType(pDocument) == LOK_DOCTYPE_PRESENTATION)
+        {
+            lcl_registerToolItem(rWindow, rWindow.m_pDeleteComment, ".uno:DeleteAnnotation");
+        }
     }
 
     // Fill our comments sidebar
commit 80d1ada96010a943ff1793139d176086f4598d98
Author: Pranav Kant <pranavk at collabora.co.uk>
Date:   Sun Feb 19 18:51:13 2017 +0530

    sd lok: Use IDs in ViewAnnotations output
    
    Change-Id: Ifb1f55ad5a1d21d63f9b37a83e3218c40dfa0b59

diff --git a/sd/inc/Annotation.hxx b/sd/inc/Annotation.hxx
index fe2f39a..39e746c 100644
--- a/sd/inc/Annotation.hxx
+++ b/sd/inc/Annotation.hxx
@@ -35,6 +35,8 @@ void createAnnotation( css::uno::Reference< css::office::XAnnotation >& xAnnotat
 
 SdrUndoAction* CreateUndoInsertOrRemoveAnnotation( const css::uno::Reference< css::office::XAnnotation >& xAnnotation, bool bInsert );
 
+sal_uInt32 getAnnotationId(const css::uno::Reference <css::office::XAnnotation>& xAnnotation);
+
 }
 
 #endif
diff --git a/sd/source/core/annotations/Annotation.cxx b/sd/source/core/annotations/Annotation.cxx
index 3289eb6..fcc0a60 100644
--- a/sd/source/core/annotations/Annotation.cxx
+++ b/sd/source/core/annotations/Annotation.cxx
@@ -370,6 +370,15 @@ SdrUndoAction* CreateUndoInsertOrRemoveAnnotation( const Reference< XAnnotation
     }
 }
 
+sal_uInt32 getAnnotationId(const Reference<XAnnotation>& xAnnotation)
+{
+    Annotation* pAnnotation = dynamic_cast<Annotation*>(xAnnotation.get());
+    sal_uInt32 nId = 0;
+    if (pAnnotation)
+        nId = pAnnotation->GetId();
+    return nId;
+}
+
 UndoInsertOrRemoveAnnotation::UndoInsertOrRemoveAnnotation( Annotation& rAnnotation, bool bInsert )
 : SdrUndoAction( *rAnnotation.GetModel() )
 , mxAnnotation( &rAnnotation )
diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx
index 3fcc45b..efd1b2d 100644
--- a/sd/source/ui/unoidl/unomodel.cxx
+++ b/sd/source/ui/unoidl/unomodel.cxx
@@ -78,6 +78,7 @@
 #include "ViewShellBase.hxx"
 #include <UnoDocumentSettings.hxx>
 
+#include <Annotation.hxx>
 #include <drawdoc.hxx>
 #include <glob.hrc>
 #include <sdresid.hxx>
@@ -2380,7 +2381,7 @@ OUString SdXImpressDocument::getPostIts()
             uno::Reference<office::XAnnotation> xAnnotation(aPageAnnotation);
 
             boost::property_tree::ptree aAnnotation;
-
+            aAnnotation.put("id", sd::getAnnotationId(xAnnotation));
             aAnnotation.put("author", xAnnotation->getAuthor());
             aAnnotation.put("dateTime", utl::toISO8601(xAnnotation->getDateTime()));
             uno::Reference<text::XText> xText(xAnnotation->getTextRange());
commit 46be94e3dc721d936de9699c1e24e5853b00c0fd
Author: Pranav Kant <pranavk at collabora.co.uk>
Date:   Sun Feb 19 18:33:46 2017 +0530

    sd: Give ids to each annotation
    
    We want to refer to these annotations using these IDs from LOK clients,
    for example, to delete or modify them via the LOK API.
    
    Change-Id: I8f516977ece098713bdbf63f15575ae2ded1d2d2

diff --git a/sd/source/core/annotations/Annotation.cxx b/sd/source/core/annotations/Annotation.cxx
index ef89314..3289eb6 100644
--- a/sd/source/core/annotations/Annotation.cxx
+++ b/sd/source/core/annotations/Annotation.cxx
@@ -57,8 +57,11 @@ public:
     Annotation(const Annotation&) = delete;
     Annotation& operator=(const Annotation&) = delete;
 
+    static sal_uInt32 m_nLastId;
+
     SdPage* GetPage() const { return mpPage; }
     SdrModel* GetModel() { return (mpPage != nullptr) ? mpPage->GetModel() : nullptr; }
+    sal_uInt32 GetId() const { return m_nId; }
 
     // XInterface:
     virtual Any SAL_CALL queryInterface(Type const & type) override;
@@ -99,6 +102,7 @@ private:
     // disposed, do it here.
     virtual void SAL_CALL disposing() override;
 
+    sal_uInt32 m_nId;
     SdPage* mpPage;
     RealPoint2D m_Position;
     RealSize2D m_Size;
@@ -170,9 +174,12 @@ void createAnnotation( Reference< XAnnotation >& xAnnotation, SdPage* pPage )
     pPage->addAnnotation(xAnnotation, -1);
 }
 
+sal_uInt32 Annotation::m_nLastId = 1;
+
 Annotation::Annotation( const Reference< XComponentContext >& context, SdPage* pPage )
 : ::cppu::WeakComponentImplHelper< XAnnotation >(m_aMutex)
 , ::cppu::PropertySetMixin< XAnnotation >(context, static_cast< Implements >(IMPLEMENTS_PROPERTY_SET), Sequence< OUString >())
+, m_nId( m_nLastId++ )
 , mpPage( pPage )
 {
 }


More information about the Libreoffice-commits mailing list