1. 17 Aug, 2018 2 commits
  2. 15 Aug, 2018 8 commits
  3. 14 Aug, 2018 1 commit
    • Bernd Buschinski's avatar
      Fix last > rowCount() assert in ClassModel Node dtor · 04f522f5
      Bernd Buschinski authored
      Summary:
      This patch fixes another assert in the classmodel.
      This time it is the assert triggered from
      Node::~Node -> ClassModel::nodesAboutToBeRemoved -> QAbstractItemModel::beginRemoveRows(index, first, last)
      
      last > rowCount(), last was greater than the rowCount.
      
      This is because in Node::removeNode the child was first removed from the childrenlist and then deleted.
      But createIndex() & rowCount() rely on the item to still be in the model/list. Node::row() would simply return -1 which would result in an invalid index.
      
      rowCount for invalid index < last Item
      
      The solution is simple, like in Node::clear(), first delete the item and then remove it from the list.
      
      Test Plan:
      - compile Qt 5.11.1 with debug&asserts enabled
      - compile kdevelop against this version of Qt
      - start kdevelop and open a project
      - open the Classes toolview
      - expand & collapse some items
      -> assert/crash
      
      Reviewers: #kdevelop, brauch
      
      Reviewed By: #kdevelop, brauch
      
      Subscribers: brauch, kdevelop-devel
      
      Tags: #kdevelop
      
      Differential Revision: https://phabricator.kde.org/D14840
      04f522f5
  4. 13 Aug, 2018 7 commits
  5. 10 Aug, 2018 2 commits
  6. 07 Aug, 2018 2 commits
  7. 04 Aug, 2018 1 commit
  8. 30 Jul, 2018 2 commits
  9. 29 Jul, 2018 4 commits
  10. 28 Jul, 2018 1 commit
    • Friedrich W. H. Kossebau's avatar
      Fix KTextEditor::MainWindow to outlive the KTextEditor::View objects · 1641d714
      Friedrich W. H. Kossebau authored
      Summary:
      The KTextEditor::MainWindow API requires that the MainWindow wrapper
      object passed to the created KTextEditor::View objects "stays valid
      for the complete lifetime of the view."
      
      The old code had Shell::MainWindow own the MainWindow wrapper
      object as child object, thus deleting as part of its own destruction.
      Though any KTextEditor::View objects still alive are being deleted
      with deleteLater(), so only destructed on the next QEvent::DeferredDelete
      handling. And they still assume they can access the MainWindow wrapper
      during their shutdown as normal, e.g. to call "MainWindow::deleteViewBar".
      
      To get things into some proper order again, this patch adds a method
      KTextEditorIntegration::MainWindow::startDestroy(), which now is called
      in the destruction of Shell::MainWindow instead of instantly deleting the
      MainWindow wrapper object as normal child object. The method starts a
      delayed delete instead, to outlive any TextEditor::View objects
      being deleteLatered() inside the Core::self()->shutdown().
      
      KTextEditorIntegration::MainWindow also gets fixed to know about the
      state of being destroyed and in that case no longer do things on the
      former mainwindow object.
      
      The patch also moves the layout code for stacking the viewbars into a
      new special class Sublime::ViewBarContainer. That solves lifetime and
      ownership handling of the widget and the layout, and hides the
      implementation detail behind a simple API.
      While this makes viewBarContainer() no longer a simple plain widget
      to be customized by any caller, no other user is known which would need
      that.
      
      Reviewers: #kdevelop, croick, mwolff
      
      Subscribers: kdevelop-devel
      
      Tags: #kdevelop
      
      Differential Revision: https://phabricator.kde.org/D13905
      1641d714
  11. 27 Jul, 2018 1 commit
  12. 23 Jul, 2018 3 commits
  13. 22 Jul, 2018 3 commits
  14. 19 Jul, 2018 2 commits
  15. 18 Jul, 2018 1 commit