File indexing completed on 2024-05-12 04:38:06

0001 /*
0002     SPDX-FileCopyrightText: 2010 David Nolden <david.nolden.kdevelop@art-master.de>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef KDEVPLATFORM_PERSISTENTMOVINGRANGEPRIVATE_H
0008 #define KDEVPLATFORM_PERSISTENTMOVINGRANGEPRIVATE_H
0009 
0010 #include <backgroundparser/documentchangetracker.h>
0011 #include <KTextEditor/MovingRange>
0012 #include <QObject>
0013 #include <QCoreApplication>
0014 
0015 namespace KDevelop {
0016 class PersistentMovingRangePrivate
0017     : public QObject
0018 {
0019     Q_OBJECT
0020 
0021 public:
0022     PersistentMovingRangePrivate() { moveToThread(QCoreApplication::instance()->thread()); }
0023 
0024     void connectTracker();
0025 
0026     bool m_valid = false;
0027     bool m_shouldExpand = false;
0028     KTextEditor::Range m_range;
0029     IndexedString m_document;
0030     KTextEditor::Attribute::Ptr m_attribte;
0031     KTextEditor::MovingRange* m_movingRange = nullptr;
0032     QPointer<DocumentChangeTracker> m_tracker;
0033     float m_zDepth = 0;
0034 
0035     void updateRangeFromMoving()
0036     {
0037         if (m_movingRange) {
0038             m_range = m_movingRange->toRange();
0039         }
0040     }
0041 
0042 private Q_SLOTS:
0043     void aboutToDeleteMovingInterfaceContent();
0044     void aboutToInvalidateMovingInterfaceContent();
0045 };
0046 }
0047 
0048 #endif // KDEVPLATFORM_PERSISTENTMOVINGRANGEPRIVATE_H