Workaround for differences not showing in status bar (#757206) and fixes crash I...
authorEike Sauer <eike@debian.org>
Sat, 7 May 2016 15:42:00 +0000 (16:42 +0100)
committerEike Sauer <eike@debian.org>
Sat, 7 May 2016 15:42:00 +0000 (16:42 +0100)
Origin: eike@debian.org

Gbp-Pq: Name crash-and-status-line.patch

src-QT4/mergeresultwindow.cpp
src-QT4/mergeresultwindow.h
src-QT4/pdiff.cpp

index e3e30deb2cf2a5561998872d279bad937d1901d6..42b974561ac85fa7f992c9da0f873f0dcb8fe8a1 100644 (file)
@@ -145,14 +145,18 @@ void MergeResultWindow::init(
    g_bAutoSolve = true;
    update();
    updateSourceMask();
+   updateStatusBar();
+}
 
+void MergeResultWindow::updateStatusBar()
+{
    int wsc;
    int nofUnsolved = getNrOfUnsolvedConflicts(&wsc);
    if (m_pStatusBar)
       m_pStatusBar->showMessage( i18n("Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)"
          ,nofUnsolved,wsc) );
 }
-
+   
 void MergeResultWindow::reset()
 {
    m_pDiff3LineList = 0;
index 6da0a88a2570e6bd4027dc2c62e16311daa8e34a..419ec6a70cd7340294c2067cb381919aedda24b4 100644 (file)
@@ -119,6 +119,7 @@ public:
    int getNrOfUnsolvedConflicts(int* pNrOfWhiteSpaceConflicts=0);
    void choose(int selector);
    void chooseGlobal(int selector, bool bConflictsOnly, bool bWhiteSpaceOnly );
+   void updateStatusBar();
 
    int getMaxTextWidth();     // width of longest text line
    int getNofLines();
index 59492bc219ae6145d39299840c675d9cb0ca576a..4b790410fda8baeac52454bfd7c2bf956ce9c89d 100644 (file)
@@ -1732,7 +1732,7 @@ void KDiff3App::slotFinishRecalcWordWrap()
          m_pOverview->slotRedraw();
       if (m_pDiffVScrollBar)
          m_pDiffVScrollBar->setRange(0, max2(0, m_neededLines + 1 - m_DTWHeight));
-      if (m_pDiffTextWindow1)
+      if (m_pDiffTextWindow1 && m_firstD3LIdx >= 0)
       {
          m_pDiffVScrollBar->setValue(m_pDiffTextWindow1->convertDiff3LineIdxToLine(m_firstD3LIdx));
 
@@ -1749,6 +1749,8 @@ void KDiff3App::slotFinishRecalcWordWrap()
    }
    if (m_pEventLoopForPrinting)
       m_pEventLoopForPrinting->quit();
+   
+   m_pMergeResultWindow->updateStatusBar();
 }
 
 void KDiff3App::slotShowWhiteSpaceToggled()