diff options
author | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2018-02-01 15:47:22 +0100 |
---|---|---|
committer | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2018-02-09 12:03:18 +0000 |
commit | c6d4308ccd5819602864eb128c2ba4b5e31e6511 (patch) | |
tree | 6f73949859933d3478293c55bc94153c40cde5be /src/plugins/cpptools/cppeditoroutline.cpp | |
parent | 9a7e7f7d4268b833c490c37327b266574e0735e9 (diff) |
CPlusPlus: CppEditor: refactor overview model
Introduce abstract model to be able to use clang
based version of it in follow up patches.
Fix warnings and modernize source code a little.
Move OverviewModel to CppTools.
Change-Id: Idcc9bf03cad047026a456bd01063597a1eb95147
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Diffstat (limited to 'src/plugins/cpptools/cppeditoroutline.cpp')
-rw-r--r-- | src/plugins/cpptools/cppeditoroutline.cpp | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/src/plugins/cpptools/cppeditoroutline.cpp b/src/plugins/cpptools/cppeditoroutline.cpp index 48e5712713..cf4e3dbafa 100644 --- a/src/plugins/cpptools/cppeditoroutline.cpp +++ b/src/plugins/cpptools/cppeditoroutline.cpp @@ -25,14 +25,15 @@ #include "cppeditoroutline.h" -#include <cpptools/cppmodelmanager.h> -#include <cpptools/cpptoolsreuse.h> -#include <cpptools/cpptoolssettings.h> +#include "cppmodelmanager.h" +#include "cppoverviewmodel.h" +#include "cpptoolsreuse.h" +#include "cpptoolssettings.h" + #include <texteditor/texteditor.h> #include <texteditor/textdocument.h> #include <coreplugin/editormanager/editormanager.h> -#include <cplusplus/OverviewModel.h> #include <utils/treeviewcombobox.h> #include <QAction> @@ -56,14 +57,13 @@ class OverviewProxyModel : public QSortFilterProxyModel Q_OBJECT public: - OverviewProxyModel(CPlusPlus::OverviewModel *sourceModel, QObject *parent) + OverviewProxyModel(CppTools::AbstractOverviewModel *sourceModel, QObject *parent) : QSortFilterProxyModel(parent) , m_sourceModel(sourceModel) { - setSourceModel(m_sourceModel); } - bool filterAcceptsRow(int sourceRow,const QModelIndex &sourceParent) const + bool filterAcceptsRow(int sourceRow,const QModelIndex &sourceParent) const override { // Ignore generated symbols, e.g. by macro expansion (Q_OBJECT) const QModelIndex sourceIndex = m_sourceModel->index(sourceRow, 0, sourceParent); @@ -74,12 +74,12 @@ public: return QSortFilterProxyModel::filterAcceptsRow(sourceRow, sourceParent); } private: - CPlusPlus::OverviewModel *m_sourceModel; + CppTools::AbstractOverviewModel *m_sourceModel; }; QTimer *newSingleShotTimer(QObject *parent, int msInternal, const QString &objectName) { - QTimer *timer = new QTimer(parent); + auto *timer = new QTimer(parent); timer->setObjectName(objectName); timer->setSingleShot(true); timer->setInterval(msInternal); @@ -94,9 +94,11 @@ CppEditorOutline::CppEditorOutline(TextEditor::TextEditorWidget *editorWidget) : QObject(editorWidget) , m_editorWidget(editorWidget) , m_combo(new Utils::TreeViewComboBox) - , m_model(new CPlusPlus::OverviewModel(this)) - , m_proxyModel(new OverviewProxyModel(m_model, this)) { + m_model = new CppTools::OverviewModel(this); + m_proxyModel = new OverviewProxyModel(m_model, this); + m_proxyModel->setSourceModel(m_model); + // Set up proxy model if (CppTools::CppToolsSettings::instance()->sortedEditorDocumentOutline()) m_proxyModel->sort(0, Qt::AscendingOrder); @@ -163,7 +165,7 @@ void CppEditorOutline::setSorted(bool sort) } } -CPlusPlus::OverviewModel *CppEditorOutline::model() const +CppTools::AbstractOverviewModel *CppEditorOutline::model() const { return m_model; } @@ -194,7 +196,8 @@ void CppEditorOutline::updateNow() if (!document) return; - if (document->editorRevision() != (unsigned) m_editorWidget->document()->revision()) { + if (document->editorRevision() + != static_cast<unsigned>(m_editorWidget->document()->revision())) { m_updateTimer->start(); return; } @@ -212,11 +215,12 @@ void CppEditorOutline::updateIndex() void CppEditorOutline::updateIndexNow() { - if (!m_model->document()) + const CPlusPlus::Document::Ptr document = m_model->document(); + if (!document) return; - const unsigned revision = m_editorWidget->document()->revision(); - if (m_model->document()->editorRevision() != revision) { + const auto revision = static_cast<unsigned>(m_editorWidget->document()->revision()); + if (document->editorRevision() != revision) { m_updateIndexTimer->start(); return; } @@ -253,7 +257,7 @@ void CppEditorOutline::gotoSymbolInEditor() Core::EditorManager::cutForwardNavigationHistory(); Core::EditorManager::addCurrentPositionToNavigationHistory(); m_editorWidget->gotoLine(link.targetLine, link.targetColumn, true, true); - m_editorWidget->activateEditor(); + emit m_editorWidget->activateEditor(); } QModelIndex CppEditorOutline::indexForPosition(int line, int column, |