[Libreoffice-commits] core.git: desktop/qa svx/sdi sw/inc sw/sdi sw/source

Pranav Kant pranavk at collabora.co.uk
Mon Jan 30 12:15:27 UTC 2017


 desktop/qa/desktop_lib/test_desktop_lib.cxx |   14 ++++++++++++++
 svx/sdi/svx.sdi                             |    2 +-
 sw/inc/AnnotationWin.hxx                    |    1 +
 sw/sdi/_textsh.sdi                          |    5 +++++
 sw/source/uibase/docvw/AnnotationWin.cxx    |    7 +++++++
 sw/source/uibase/shells/textfld.cxx         |   16 ++++++++++++++++
 6 files changed, 44 insertions(+), 1 deletion(-)

New commits:
commit 8a7c459f6afb7b8f1f622a61230a0a4411a417ac
Author: Pranav Kant <pranavk at collabora.co.uk>
Date:   Fri Jan 27 17:39:10 2017 +0530

    lok: Allow to edit comment by postit id
    
    Change-Id: Ice1d40b7813226fe99c423047392b3416d763dd4
    Reviewed-on: https://gerrit.libreoffice.org/33614
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: pranavk <pranavk at collabora.co.uk>

diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx b/desktop/qa/desktop_lib/test_desktop_lib.cxx
index b53461f..a1a769b 100644
--- a/desktop/qa/desktop_lib/test_desktop_lib.cxx
+++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx
@@ -1938,6 +1938,20 @@ void DesktopLOKTest::testCommentsCallbacks()
     CPPUNIT_ASSERT_EQUAL(std::string("Reply comment"), aView2.m_aCommentCallbackResult.get<std::string>("text"));
     int nCommentId2 = aView1.m_aCommentCallbackResult.get<int>("id");
 
+    // Edit the previously added comment
+    aCommandArgs = "{ \"Id\": { \"type\": \"long\", \"value\": \"" + OString::number(nCommentId2) + "\" }, \"Text\": { \"type\": \"string\", \"value\": \"Edited comment\" } }";
+    pDocument->pClass->postUnoCommand(pDocument, ".uno:EditAnnotation", aCommandArgs.getStr(), false);
+    Scheduler::ProcessEventsToIdle();
+
+    // We received a LOK_CALLBACK_COMMENT callback with comment 'Modify' action
+    CPPUNIT_ASSERT_EQUAL(std::string("Modify"), aView1.m_aCommentCallbackResult.get<std::string>("action"));
+    CPPUNIT_ASSERT_EQUAL(std::string("Modify"), aView2.m_aCommentCallbackResult.get<std::string>("action"));
+    // parent is unchanged still
+    CPPUNIT_ASSERT_EQUAL(nCommentId1, aView1.m_aCommentCallbackResult.get<int>("parent"));
+    CPPUNIT_ASSERT_EQUAL(nCommentId1, aView2.m_aCommentCallbackResult.get<int>("parent"));
+    CPPUNIT_ASSERT_EQUAL(std::string("Edited comment"), aView1.m_aCommentCallbackResult.get<std::string>("text"));
+    CPPUNIT_ASSERT_EQUAL(std::string("Edited comment"), aView2.m_aCommentCallbackResult.get<std::string>("text"));
+
     // Delete the reply comment just added
     aCommandArgs = "{ \"Id\": { \"type\": \"long\", \"value\":  \"" + OString::number(nCommentId2) + "\" } }";
     pDocument->pClass->postUnoCommand(pDocument, ".uno:DeleteComment", aCommandArgs.getStr(), false);
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi
index 2029d78..ca91a73 100644
--- a/svx/sdi/svx.sdi
+++ b/svx/sdi/svx.sdi
@@ -4554,7 +4554,7 @@ SfxVoidItem InsertAnnotation SID_INSERT_POSTIT
 ]
 
 SfxVoidItem EditAnnotation SID_EDIT_POSTIT
-(SvxPostItAuthorItem Author SID_ATTR_POSTIT_AUTHOR,SvxPostItDateItem Date SID_ATTR_POSTIT_DATE,SvxPostItTextItem Text SID_ATTR_POSTIT_TEXT)
+(SvxPostItIdItem Id SID_ATTR_POSTIT_ID,SvxPostItAuthorItem Author SID_ATTR_POSTIT_AUTHOR,SvxPostItDateItem Date SID_ATTR_POSTIT_DATE,SvxPostItTextItem Text SID_ATTR_POSTIT_TEXT)
 [
     AutoUpdate = FALSE,
     FastCall = FALSE,
diff --git a/sw/inc/AnnotationWin.hxx b/sw/inc/AnnotationWin.hxx
index 0062f96..6186576 100644
--- a/sw/inc/AnnotationWin.hxx
+++ b/sw/inc/AnnotationWin.hxx
@@ -45,6 +45,7 @@ class SwAnnotationWin : public sw::sidebarwindows::SwSidebarWin
         virtual void    Delete() override;
         virtual void    GotoPos() override;
         inline const SwPostItField* GetPostItField() { return mpField; }
+        void UpdateText(const OUString& aText);
 
         virtual OUString GetAuthor() override;
         virtual Date    GetDate() override;
diff --git a/sw/sdi/_textsh.sdi b/sw/sdi/_textsh.sdi
index 388690d..eec76a3 100644
--- a/sw/sdi/_textsh.sdi
+++ b/sw/sdi/_textsh.sdi
@@ -924,6 +924,11 @@ interface BaseText
         ExecMethod = ExecField;
         StateMethod = StateField;
     ]
+    SID_EDIT_POSTIT
+    [
+        ExecMethod = ExecField;
+        StateMethod = StateField;
+    ]
     FN_DELETE_COMMENT
     [
         ExecMethod = ExecField ;
diff --git a/sw/source/uibase/docvw/AnnotationWin.cxx b/sw/source/uibase/docvw/AnnotationWin.cxx
index 5ecc03a..b606cee 100644
--- a/sw/source/uibase/docvw/AnnotationWin.cxx
+++ b/sw/source/uibase/docvw/AnnotationWin.cxx
@@ -300,6 +300,13 @@ void SwAnnotationWin::InitAnswer(OutlinerParaObject* pText)
     Engine()->GetUndoManager().Clear();
 }
 
+void SwAnnotationWin::UpdateText(const OUString& aText)
+{
+    Engine()->Clear();
+    GetOutlinerView()->InsertText(aText);
+    UpdateData();
+}
+
 SvxLanguageItem SwAnnotationWin::GetLanguage()
 {
     // set initial language for outliner
diff --git a/sw/source/uibase/shells/textfld.cxx b/sw/source/uibase/shells/textfld.cxx
index 8ee0ad9..a8fab5b 100644
--- a/sw/source/uibase/shells/textfld.cxx
+++ b/sw/source/uibase/shells/textfld.cxx
@@ -476,6 +476,22 @@ void SwTextShell::ExecField(SfxRequest &rReq)
                 }
             }
             break;
+            case SID_EDIT_POSTIT:
+            {
+                const SvxPostItIdItem* pIdItem = rReq.GetArg<SvxPostItIdItem>(SID_ATTR_POSTIT_ID);
+                if (pIdItem && pIdItem->GetValue())
+                {
+                    const SvxPostItTextItem* pTextItem = rReq.GetArg<SvxPostItTextItem>(SID_ATTR_POSTIT_TEXT);
+                    OUString sText;
+                    if ( pTextItem )
+                        sText = pTextItem->GetValue();
+
+                    sw::annotation::SwAnnotationWin* pAnnotationWin = GetView().GetPostItMgr()->GetAnnotationWin(pIdItem->GetValue());
+                    if (pAnnotationWin)
+                        pAnnotationWin->UpdateText(sText);
+                }
+            }
+            break;
             case FN_REDLINE_COMMENT:
             {
                 /*  this code can be used once we want redline comments in the margin, all other stuff can


More information about the Libreoffice-commits mailing list