[Libreoffice-commits] core.git: 7 commits - accessibility/source include/vcl starmath/inc starmath/source svl/source sw/source vcl/source

Caolán McNamara caolanm at redhat.com
Wed Feb 19 16:32:27 CET 2014


 accessibility/source/extended/textwindowaccessibility.cxx |    1 
 include/vcl/textdata.hxx                                  |    1 
 include/vcl/vclmedit.hxx                                  |    2 +
 starmath/inc/cursor.hxx                                   |   22 +++++++-------
 starmath/source/node.cxx                                  |   18 ++++++-----
 starmath/source/rtfexport.cxx                             |    1 
 starmath/source/view.cxx                                  |   11 +++----
 svl/source/filerec/filerec.cxx                            |    6 ++-
 svl/source/inc/poolio.hxx                                 |    3 +
 sw/source/ui/dbui/mmaddressblockpage.cxx                  |   13 +++++---
 vcl/source/control/edit.cxx                               |    6 +--
 vcl/source/edit/textview.cxx                              |   18 ++++++++++-
 vcl/source/edit/vclmedit.cxx                              |   18 +++++++++++
 13 files changed, 85 insertions(+), 35 deletions(-)

New commits:
commit 49cecd8b41cac29cc9642944eaae5b5f63a1bd46
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Feb 19 12:26:47 2014 +0000

    Related: fdo#74242 hook up a selection and caret change for multiline edits
    
    a) split the textengine selection changed broadcast into a text selection changed
    and text caret change event
    b) handle both in existing places that handled the text selection event
    c) listen for them in VclMultiLineEdit and translate to
    VCLEVENT_EDIT_SELECTIONCHANGED VCLEVENT_EDIT_CARETCHANGED events
    d) profit from the VCLEVENT_EDIT_SELECTIONCHANGED and
    VCLEVENT_EDIT_CARETCHANGED handling in
    accessibility/source/standard/vclxaccessibleedit.cxx for VCLXAccessibleEdits
    
    Change-Id: I09187e76ae4eb189ee9469e388374154087faf80

diff --git a/accessibility/source/extended/textwindowaccessibility.cxx b/accessibility/source/extended/textwindowaccessibility.cxx
index d13525d..a37effa 100644
--- a/accessibility/source/extended/textwindowaccessibility.cxx
+++ b/accessibility/source/extended/textwindowaccessibility.cxx
@@ -1659,6 +1659,7 @@ void Document::Notify(::SfxBroadcaster &, ::SfxHint const & rHint)
                 break;
             }
         case TEXT_HINT_VIEWSELECTIONCHANGED:
+        case TEXT_HINT_VIEWCARETCHANGED:
             {
                 ::osl::MutexGuard aInternalGuard(GetMutex());
                 if (!isAlive())
diff --git a/include/vcl/textdata.hxx b/include/vcl/textdata.hxx
index 925efff..d05f2f7 100644
--- a/include/vcl/textdata.hxx
+++ b/include/vcl/textdata.hxx
@@ -121,6 +121,7 @@ inline sal_Bool TextSelection::operator != ( const TextSelection& rSel ) const
 
 #define TEXT_HINT_VIEWSCROLLED          100
 #define TEXT_HINT_VIEWSELECTIONCHANGED  101
+#define TEXT_HINT_VIEWCARETCHANGED      102
 
 class VCL_DLLPUBLIC TextHint : public SfxSimpleHint
 {
diff --git a/include/vcl/vclmedit.hxx b/include/vcl/vclmedit.hxx
index 83c50c6..097d9e8 100644
--- a/include/vcl/vclmedit.hxx
+++ b/include/vcl/vclmedit.hxx
@@ -63,6 +63,8 @@ public:
                     virtual ~VclMultiLineEdit();
 
 
+    void            SelectionChanged();
+    void            CaretChanged();
     virtual void    Modify();
     virtual void    UpdateData();
 
diff --git a/sw/source/ui/dbui/mmaddressblockpage.cxx b/sw/source/ui/dbui/mmaddressblockpage.cxx
index bdb0848..18b9707 100644
--- a/sw/source/ui/dbui/mmaddressblockpage.cxx
+++ b/sw/source/ui/dbui/mmaddressblockpage.cxx
@@ -1293,13 +1293,16 @@ AddressMultiLineEdit::~AddressMultiLineEdit()
     EndListening(*GetTextEngine());
 }
 
-void    AddressMultiLineEdit::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint )
+void AddressMultiLineEdit::Notify(SfxBroadcaster& /*rBC*/, const SfxHint& rHint)
 {
-    if(rHint.ISA(TextHint) &&
-            static_cast<const TextHint&>(rHint).GetId() == TEXT_HINT_VIEWSELECTIONCHANGED &&
-            m_aSelectionLink.IsSet())
+    if (m_aSelectionLink.IsSet() && rHint.ISA(TextHint))
     {
-        m_aSelectionLink.Call(this);
+        const TextHint& rTextHint = static_cast<const TextHint&>(rHint);
+        if (rTextHint.GetId() == TEXT_HINT_VIEWSELECTIONCHANGED ||
+            rTextHint.GetId() == TEXT_HINT_VIEWCARETCHANGED)
+        {
+            m_aSelectionLink.Call(this);
+        }
     }
 }
 
diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx
index f923c51..cd75e6b 100644
--- a/vcl/source/control/edit.cxx
+++ b/vcl/source/control/edit.cxx
@@ -2642,13 +2642,13 @@ void Edit::ImplSetSelection( const Selection& rSelection, sal_Bool bPaint )
                     ImplInvalidateOrRepaint();
                 ImplShowCursor();
 
-                sal_Bool bCaret = sal_False, bSelection = sal_False;
+                bool bCaret = false, bSelection = false;
                 long nB=aNew.Max(), nA=aNew.Min(),oB=aTemp.Max(), oA=aTemp.Min();
                 long nGap = nB-nA, oGap = oB-oA;
                 if (nB != oB)
-                    bCaret = sal_True;
+                    bCaret = true;
                 if (nGap != 0 || oGap != 0)
-                    bSelection = sal_True;
+                    bSelection = true;
 
                 if (bSelection)
                 {
diff --git a/vcl/source/edit/textview.cxx b/vcl/source/edit/textview.cxx
index cd5a9b3..53d49cc 100644
--- a/vcl/source/edit/textview.cxx
+++ b/vcl/source/edit/textview.cxx
@@ -463,10 +463,24 @@ void TextView::ImpHighlight( const TextSelection& rSel )
 
 void TextView::ImpSetSelection( const TextSelection& rSelection )
 {
-    if ( rSelection != mpImpl->maSelection )
+    if (rSelection != mpImpl->maSelection)
     {
+        bool bCaret = false, bSelection = false;
+        const TextPaM &rEnd = rSelection.GetEnd();
+        const TextPaM &rOldEnd = mpImpl->maSelection.GetEnd();
+        bool bGap = rSelection.HasRange(), bOldGap = mpImpl->maSelection.HasRange();
+        if (rEnd != rOldEnd)
+            bCaret = true;
+        if (bGap || bOldGap)
+            bSelection = true;
+
         mpImpl->maSelection = rSelection;
-        mpImpl->mpTextEngine->Broadcast( TextHint( TEXT_HINT_VIEWSELECTIONCHANGED ) );
+
+        if (bSelection)
+            mpImpl->mpTextEngine->Broadcast(TextHint(TEXT_HINT_VIEWSELECTIONCHANGED));
+
+        if (bCaret)
+            mpImpl->mpTextEngine->Broadcast(TextHint(TEXT_HINT_VIEWCARETCHANGED));
     }
 }
 
diff --git a/vcl/source/edit/vclmedit.cxx b/vcl/source/edit/vclmedit.cxx
index c468468..ca5e548 100644
--- a/vcl/source/edit/vclmedit.cxx
+++ b/vcl/source/edit/vclmedit.cxx
@@ -561,6 +561,14 @@ void ImpVclMEdit::Notify( SfxBroadcaster&, const SfxHint& rHint )
             ImpUpdateSrollBarVis(pVclMultiLineEdit->GetStyle());
             pVclMultiLineEdit->Modify();
         }
+        else if( rTextHint.GetId() == TEXT_HINT_VIEWSELECTIONCHANGED )
+        {
+            pVclMultiLineEdit->SelectionChanged();
+        }
+        else if( rTextHint.GetId() == TEXT_HINT_VIEWCARETCHANGED )
+        {
+            pVclMultiLineEdit->CaretChanged();
+        }
     }
 }
 
@@ -1053,6 +1061,16 @@ void VclMultiLineEdit::Modify()
         pUpdateDataTimer->Start();
 }
 
+void VclMultiLineEdit::SelectionChanged()
+{
+    CallEventListeners(VCLEVENT_EDIT_SELECTIONCHANGED);
+}
+
+void VclMultiLineEdit::CaretChanged()
+{
+    CallEventListeners(VCLEVENT_EDIT_CARETCHANGED);
+}
+
 IMPL_LINK_NOARG(VclMultiLineEdit, ImpUpdateDataHdl)
 {
     UpdateData();
commit e77819f578b4b01314359380e6f115bacb9967f5
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Feb 19 15:18:55 2014 +0000

    coverity#738849 Uninitialized scalar field
    
    Change-Id: I5374e4427f800c4500818b97bfe6e94b303a8974

diff --git a/starmath/inc/cursor.hxx b/starmath/inc/cursor.hxx
index 8cc88a5..b1f6e8b 100644
--- a/starmath/inc/cursor.hxx
+++ b/starmath/inc/cursor.hxx
@@ -75,20 +75,22 @@ class SmDocShell;
  */
 class SmCursor{
 public:
-    SmCursor(SmNode* tree, SmDocShell* pShell){
-        //Initialize members
-        pTree           = tree;
-        anchor          = NULL;
-        position        = NULL;
-        pGraph          = NULL;
-        pDocShell       = pShell;
-        pClipboard      = NULL;
-        nEditSections   = 0;
+    SmCursor(SmNode* tree, SmDocShell* pShell)
+        : anchor(NULL)
+        , position(NULL)
+        , pTree(tree)
+        , pDocShell(pShell)
+        , pGraph(NULL)
+        , pClipboard(NULL)
+        , nEditSections(0)
+        , bIsEnabledSetModifiedSmDocShell(false)
+    {
         //Build graph
         BuildGraph();
     }
 
-    ~SmCursor(){
+    ~SmCursor()
+    {
         SetClipboard();
         delete pGraph;
         pGraph = NULL;
diff --git a/starmath/source/node.cxx b/starmath/source/node.cxx
index 0e7d6a4..7bc5932 100644
--- a/starmath/source/node.cxx
+++ b/starmath/source/node.cxx
@@ -2336,13 +2336,14 @@ void SmRectangleNode::Arrange(const OutputDevice &rDev, const SmFormat &/*rForma
 /**************************************************************************/
 
 
-SmTextNode::SmTextNode( SmNodeType eNodeType, const SmToken &rNodeToken, sal_uInt16 nFontDescP ) :
-    SmVisibleNode(eNodeType, rNodeToken)
+SmTextNode::SmTextNode( SmNodeType eNodeType, const SmToken &rNodeToken, sal_uInt16 nFontDescP )
+    : SmVisibleNode(eNodeType, rNodeToken)
+    , nFontDesc(nFontDescP)
+    , nSelectionStart(0)
+    , nSelectionEnd(0)
 {
-    nFontDesc = nFontDescP;
 }
 
-
 SmTextNode::SmTextNode( const SmToken &rNodeToken, sal_uInt16 nFontDescP )
     : SmVisibleNode(NTEXT, rNodeToken)
     , nFontDesc(nFontDescP)
@@ -2351,7 +2352,6 @@ SmTextNode::SmTextNode( const SmToken &rNodeToken, sal_uInt16 nFontDescP )
 {
 }
 
-
 void SmTextNode::Prepare(const SmFormat &rFormat, const SmDocShell &rDocShell)
 {
     SmNode::Prepare(rFormat, rDocShell);
commit bfd0e9b7eaa3d24de239647aba7374529dd67572
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Feb 19 15:17:22 2014 +0000

    coverity#738850 Uninitialized scalar field
    
    Change-Id: I87cd5cee9df31d2ff847d4c41978ae2b422bb71d

diff --git a/starmath/source/node.cxx b/starmath/source/node.cxx
index 6ffd0fb..0e7d6a4 100644
--- a/starmath/source/node.cxx
+++ b/starmath/source/node.cxx
@@ -2343,10 +2343,12 @@ SmTextNode::SmTextNode( SmNodeType eNodeType, const SmToken &rNodeToken, sal_uIn
 }
 
 
-SmTextNode::SmTextNode( const SmToken &rNodeToken, sal_uInt16 nFontDescP ) :
-    SmVisibleNode(NTEXT, rNodeToken)
+SmTextNode::SmTextNode( const SmToken &rNodeToken, sal_uInt16 nFontDescP )
+    : SmVisibleNode(NTEXT, rNodeToken)
+    , nFontDesc(nFontDescP)
+    , nSelectionStart(0)
+    , nSelectionEnd(0)
 {
-    nFontDesc = nFontDescP;
 }
 
 
commit f37a8c6b8b16666a5fcf9689486a0e549e292aea
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Feb 19 15:14:11 2014 +0000

    coverity#738851 Uninitialized scalar field
    
    Change-Id: I1aa25c29c4e58b30d0fc29768af7c2025e39c1be

diff --git a/starmath/source/rtfexport.cxx b/starmath/source/rtfexport.cxx
index 45354fc..bc121f5 100644
--- a/starmath/source/rtfexport.cxx
+++ b/starmath/source/rtfexport.cxx
@@ -17,6 +17,7 @@
 SmRtfExport::SmRtfExport(const SmNode* pIn)
     : SmWordExportBase(pIn)
     , m_pBuffer(0)
+    , m_nEncoding(RTL_TEXTENCODING_DONTKNOW)
 {
 }
 
commit 1ba089104be0be09e82b91102fc4543d15e33b0d
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Feb 19 15:11:15 2014 +0000

    coverity#738852 Uninitialized scalar field
    
    Change-Id: I03519a9ff6d3bde489e005ebc3affdce02eab8e4

diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx
index 7b5e042..b2cb21b 100644
--- a/starmath/source/view.cxx
+++ b/starmath/source/view.cxx
@@ -1990,11 +1990,12 @@ void SmViewShell::GetState(SfxItemSet &rSet)
 }
 
 
-SmViewShell::SmViewShell(SfxViewFrame *pFrame_, SfxViewShell *):
-    SfxViewShell(pFrame_, SFX_VIEW_HAS_PRINTOPTIONS | SFX_VIEW_CAN_PRINT),
-    pImpl( new SmViewShell_Impl ),
-    aGraphic(this),
-    aGraphicController(aGraphic, SID_GAPHIC_SM, pFrame_->GetBindings())
+SmViewShell::SmViewShell(SfxViewFrame *pFrame_, SfxViewShell *)
+    : SfxViewShell(pFrame_, SFX_VIEW_HAS_PRINTOPTIONS | SFX_VIEW_CAN_PRINT)
+    , pImpl(new SmViewShell_Impl)
+    , aGraphic(this)
+    , aGraphicController(aGraphic, SID_GAPHIC_SM, pFrame_->GetBindings())
+    , bPasteState(false)
     , bInsertIntoEditWindow(false)
 {
     SAL_INFO( "starmath", "SmViewShell::SmViewShell" );
commit 636d41d09adf9cd903fd2f4008da9519367a61ae
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Feb 19 15:07:42 2014 +0000

    coverity#738853 Uninitialized scalar field
    
    Change-Id: I01e72000f9e624b73351306e7d52c0ba18cbd8e1

diff --git a/svl/source/filerec/filerec.cxx b/svl/source/filerec/filerec.cxx
index 20c9fa9..3a7b24b 100644
--- a/svl/source/filerec/filerec.cxx
+++ b/svl/source/filerec/filerec.cxx
@@ -360,8 +360,10 @@ SfxMultiFixRecordWriter::SfxMultiFixRecordWriter
     Interne Methode f"ur Subklassen.
 */
 
-:   SfxSingleRecordWriter( nRecordType, pStream, nContentTag, nContentVer ),
-    _nContentCount( 0 )
+    :  SfxSingleRecordWriter( nRecordType, pStream, nContentTag, nContentVer )
+    , _nContentStartPos(0)
+    , _nContentSize(0)
+    , _nContentCount(0)
 {
     // Platz f"ur eigenen Header
     pStream->SeekRel( + SFX_REC_HEADERSIZE_MULTI );
commit 249d901a89a917c99cbd99005f8348bfe15e3ce3
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Feb 19 15:06:07 2014 +0000

    coverity#738854 Uninitialized scalar field
    
    Change-Id: Iace6e3f93f05342d7b1652e8118be01a142b82cc

diff --git a/svl/source/inc/poolio.hxx b/svl/source/inc/poolio.hxx
index 9bb29f9..de90d0b 100644
--- a/svl/source/inc/poolio.hxx
+++ b/svl/source/inc/poolio.hxx
@@ -98,6 +98,7 @@ struct SfxItemPool_Impl
         , mnStart(nStart)
         , mnEnd(nEnd)
         , mnFileFormatVersion(0)
+        , nVersion(0)
         , nLoadingVersion(0)
         , nInitRefCount(0)
         , nVerStart(0)
@@ -106,8 +107,10 @@ struct SfxItemPool_Impl
         , nStoringEnd(0)
         , nMajorVer(0)
         , nMinorVer(0)
+        , eDefMetric(SFX_MAPUNIT_CM)
         , bInSetItem(false)
         , bStreaming(false)
+        , mbPersistentRefCounts(false)
     {
         DBG_ASSERT(mnStart, "Start-Which-Id must be greater 0" );
         memset( ppPoolDefaults, 0, sizeof( SfxPoolItem* ) * (nEnd - nStart + 1));


More information about the Libreoffice-commits mailing list