(/home/runner/work/graphia/graphia/source/shared/graph/covariancematrix.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/graph/covariancematrix.cpp should add these lines:
#include <qassert.h>  // for Q_ASSERT
#include <utility>    // for swap

/home/runner/work/graphia/graphia/source/shared/graph/covariancematrix.cpp should remove these lines:
- #include <QtGlobal>  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/shared/graph/covariancematrix.cpp:
#include "covariancematrix.h"
#include <qassert.h>  // for Q_ASSERT
#include <utility>    // for swap
---


/home/runner/work/graphia/graphia/source/shared/graph/elementtype.h should add these lines:
#include <qtmetamacros.h>          // for Q_GADGET
#include <QString>                 // for QString

/home/runner/work/graphia/graphia/source/shared/graph/elementtype.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/graph/elementtype.h:
#include <qtmetamacros.h>          // for Q_GADGET
#include <QString>                 // for QString
#include "shared/utils/qmlenum.h"  // for DEFINE_QML_ENUM
---

(/home/runner/work/graphia/graphia/source/shared/graph/elementtype.cpp has correct #includes/fwd-decls)


/home/runner/work/graphia/graphia/source/shared/loading/biopaxfileparser.h should add these lines:
class QUrl;

/home/runner/work/graphia/graphia/source/shared/loading/biopaxfileparser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/biopaxfileparser.h:
#include "shared/loading/iparser.h"           // for IParser
#include "shared/loading/iuserelementdata.h"  // for IUserNodeData
class IGraphModel;  // lines 25-25
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/loading/biopaxfileparser.cpp should add these lines:
#include <qassert.h>                     // for Q_ASSERT
#include <QLatin1Char>                   // for StringLiterals
#include <QList>                         // for QList
#include <QObject>                       // for QObject
#include <QString>                       // for QString, operator""_s, opera...
#include <QStringList>                   // for QStringList
#include <QStringView>                   // for QStringView, operator!=
#include <QVariant>                      // for QVariant
#include <QXmlStreamAttributes>          // for QXmlStreamAttributes
#include <algorithm>                     // for copy
#include <compare>                       // for operator<
#include <tuple>                         // for tie, operator<=>, tuple
#include <utility>                       // for pair
#include <vector>                        // for vector
#include "graph/elementid.h"             // for NodeId
#include "loading/iuserelementdata.h"    // for IUserElementData

/home/runner/work/graphia/graphia/source/shared/loading/biopaxfileparser.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/biopaxfileparser.cpp:
#include "biopaxfileparser.h"
#include <qassert.h>                     // for Q_ASSERT
#include <QFile>                         // for QFile
#include <QLatin1Char>                   // for StringLiterals
#include <QList>                         // for QList
#include <QObject>                       // for QObject
#include <QString>                       // for QString, operator""_s, opera...
#include <QStringList>                   // for QStringList
#include <QStringView>                   // for QStringView, operator!=
#include <QUrl>                          // for QUrl
#include <QVariant>                      // for QVariant
#include <QXmlStreamAttributes>          // for QXmlStreamAttributes
#include <QXmlStreamReader>              // for QXmlStreamReader
#include <algorithm>                     // for copy
#include <compare>                       // for operator<
#include <map>                           // for map, operator==, _Rb_tree_it...
#include <stack>                         // for stack
#include <tuple>                         // for tie, operator<=>, tuple
#include <utility>                       // for pair
#include <vector>                        // for vector
#include "graph/elementid.h"             // for NodeId
#include "loading/iuserelementdata.h"    // for IUserElementData
#include "shared/graph/igraphmodel.h"    // for IGraphModel, IUserNodeData
#include "shared/graph/imutablegraph.h"  // for IMutableGraph
---


/home/runner/work/graphia/graphia/source/shared/loading/matlabfileparser.h should add these lines:
#include <matio_pubconf_unix.h>          // for mat_uint32_t
#include <qassert.h>                     // for Q_ASSERT
#include <stddef.h>                      // for size_t
#include <stdint.h>                      // for uint64_t
#include <QString>                       // for QString
class IGraphModel;
class QUrl;

/home/runner/work/graphia/graphia/source/shared/loading/matlabfileparser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/matlabfileparser.h:
#include <matio.h>                       // for matio_classes, mat_sparse_t
#include <matio_pubconf_unix.h>          // for mat_uint32_t
#include <qassert.h>                     // for Q_ASSERT
#include <stddef.h>                      // for size_t
#include <stdint.h>                      // for uint64_t
#include <QString>                       // for QString
#include "shared/loading/iparser.h"      // for IParser
#include "shared/loading/tabulardata.h"  // for TabularData
class IGraphModel;
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/loading/matlabfileparser.cpp should add these lines:
#include <QByteArray>                      // for QByteArray
class IGraphModel;

/home/runner/work/graphia/graphia/source/shared/loading/matlabfileparser.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/matlabfileparser.cpp:
#include "matlabfileparser.h"
#include <QByteArray>                      // for QByteArray
#include <QUrl>                            // for QUrl
#include "shared/utils/source_location.h"  // for CURRENT_SOURCE_LOCATION
class IGraphModel;
---


/home/runner/work/graphia/graphia/source/shared/loading/cxparser.h should add these lines:
class IGraphModel;
class QUrl;

/home/runner/work/graphia/graphia/source/shared/loading/cxparser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/cxparser.h:
#include "json_helper.h"                      // for json
#include "shared/loading/iuserelementdata.h"  // for IUserEdgeData, IUserNod...
#include "shared/loading/jsonparser.h"        // for JsonParser
class IGraphModel;
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/loading/cxparser.cpp should add these lines:
#include <json_helper.h>                 // for json
#include <QLatin1Char>                   // for StringLiterals
#include <QObject>                       // for QObject
#include <QString>                       // for QString, operator""_s
#include <algorithm>                     // for any_of
#include <json.hpp>                      // for basic_json, iter_impl, itera...
#include <string>                        // for string, operator<=>, char_tr...
#include "loading/iparser.h"             // for IParser
#include "loading/iuserelementdata.h"    // for IUserElementData

/home/runner/work/graphia/graphia/source/shared/loading/cxparser.cpp should remove these lines:
- #include <type_traits>  // lines 28-28

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/cxparser.cpp:
#include "cxparser.h"
#include <json_helper.h>                 // for json
#include <QLatin1Char>                   // for StringLiterals
#include <QObject>                       // for QObject
#include <QString>                       // for QString, operator""_s
#include <algorithm>                     // for any_of
#include <json.hpp>                      // for basic_json, iter_impl, itera...
#include <map>                           // for map, operator==, allocator
#include <string>                        // for string, operator<=>, char_tr...
#include "loading/iparser.h"             // for IParser
#include "loading/iuserelementdata.h"    // for IUserElementData
#include "shared/graph/elementid.h"      // for NodeId, EdgeId
#include "shared/graph/igraphmodel.h"    // for IGraphModel, IUserEdgeData
#include "shared/graph/imutablegraph.h"  // for IMutableGraph
#include "shared/utils/container.h"      // for contains
---


/home/runner/work/graphia/graphia/source/shared/loading/adjacencymatrixfileparser.h should add these lines:
#include <qtmetamacros.h>                         // for Q_PROPERTY, Q_OBJECT
#include <stddef.h>                               // for size_t
#include <QMap>                                   // for QMap
#include <QString>                                // for QString
#include <QVariant>                               // for QVariant
#include <utility>                                // for move, declval
#include "loading/tabulardata.h"                  // for TabularData, CsvFil...
#include "utils/string.h"                         // for formatNumberScientific
class EdgeId;
class IGraphModel;
class MatLabFileParser;
class NodeId;
class QPoint;
class QUrl;
class XlsxTabularDataParser;

/home/runner/work/graphia/graphia/source/shared/loading/adjacencymatrixfileparser.h should remove these lines:
- #include <QPoint>  // lines 31-31
- #include <type_traits>  // lines 33-33
- #include "shared/loading/matlabfileparser.h"  // lines 26-26
- #include "shared/loading/xlsxtabulardataparser.h"  // lines 25-25
- #include "shared/utils/is_detected.h"  // lines 28-28
- class TabularData;  // lines 35-35

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/adjacencymatrixfileparser.h:
#include <qtmetamacros.h>                         // for Q_PROPERTY, Q_OBJECT
#include <stddef.h>                               // for size_t
#include <QMap>                                   // for QMap
#include <QString>                                // for QString
#include <QVariant>                               // for QVariant
#include <QVariantMap>                            // for QVariantMap
#include <utility>                                // for move, declval
#include "loading/tabulardata.h"                  // for TabularData, CsvFil...
#include "shared/loading/iparser.h"               // for IParser
#include "shared/loading/qmltabulardataparser.h"  // for QmlTabularDataParser
#include "utils/string.h"                         // for formatNumberScientific
class EdgeId;
class IGraphModel;
class MatLabFileParser;
class NodeId;
class QPoint;
class QUrl;
class XlsxTabularDataParser;
template <typename> class IUserElementData;  // lines 37-37
---

/home/runner/work/graphia/graphia/source/shared/loading/adjacencymatrixfileparser.cpp should add these lines:
#include <bits/std_abs.h>                      // for abs
#include <stdint.h>                            // for uint64_t
#include <QObject>                             // for QObject
#include <QPoint>                              // for QPoint
#include <QTypeInfo>                           // for QTypeInfo<>::isValueIn...
#include <QtQml>                               // for qmlRegisterType
#include <algorithm>                           // for min
#include <cmath>                               // for isfinite, isnan
#include <vector>                              // for vector
#include "graph/elementid.h"                   // for NodeId, EdgeId, ElementId
#include "graph/igraphmodel.h"                 // for IGraphModel
#include "graph/imutablegraph.h"               // for IMutableGraph
#include "loading/iparser.h"                   // for IParser
#include "loading/iuserelementdata.h"          // for IUserEdgeData, IUserNo...
#include "loading/qmltabulardataparser.h"      // for QmlTabularDataParser
#include "utils/container.h"                   // for contains

/home/runner/work/graphia/graphia/source/shared/loading/adjacencymatrixfileparser.cpp should remove these lines:
- #include <QQmlEngine>  // lines 31-31
- #include "shared/loading/userelementdata.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/adjacencymatrixfileparser.cpp:
#include "adjacencymatrixfileparser.h"
#include <bits/std_abs.h>                      // for abs
#include <stdint.h>                            // for uint64_t
#include <QObject>                             // for QObject
#include <QPoint>                              // for QPoint
#include <QString>                             // for QString, operator<
#include <QTypeInfo>                           // for QTypeInfo<>::isValueIn...
#include <QtQml>                               // for qmlRegisterType
#include <algorithm>                           // for min
#include <cmath>                               // for isfinite, isnan
#include <map>                                 // for map, operator==
#include <vector>                              // for vector
#include "graph/elementid.h"                   // for NodeId, EdgeId, ElementId
#include "graph/igraphmodel.h"                 // for IGraphModel
#include "graph/imutablegraph.h"               // for IMutableGraph
#include "loading/iparser.h"                   // for IParser
#include "loading/iuserelementdata.h"          // for IUserEdgeData, IUserNo...
#include "loading/qmltabulardataparser.h"      // for QmlTabularDataParser
#include "shared/graph/edgelist.h"             // for EdgeListEdge, EdgeList
#include "shared/loading/graphsizeestimate.h"  // for graphSizeEstimateThres...
#include "shared/loading/tabulardata.h"        // for TabularData
#include "shared/utils/static_block.h"         // for static_block
#include "shared/utils/string.h"               // for isNumeric, isInteger
#include "utils/container.h"                   // for contains
---


/home/runner/work/graphia/graphia/source/shared/loading/graphmlparser.h should add these lines:
class QUrl;

/home/runner/work/graphia/graphia/source/shared/loading/graphmlparser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/graphmlparser.h:
#include "shared/loading/iparser.h"           // for IParser
#include "shared/loading/iuserelementdata.h"  // for IUserEdgeData, IUserNod...
class IGraphModel;  // lines 25-25
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/loading/graphmlparser.cpp should add these lines:
#include <qassert.h>                     // for Q_ASSERT
#include <QLatin1Char>                   // for StringLiterals
#include <QMessageLogger>                // for qDebug
#include <QObject>                       // for QObject
#include <QString>                       // for QString, operator""_s, opera...
#include <QStringView>                   // for operator==, QStringView, ope...
#include <QXmlStreamAttributes>          // for QXmlStreamAttributes
#include <algorithm>                     // for copy
#include "graph/elementid.h"             // for NodeId, EdgeId
#include "loading/iuserelementdata.h"    // for IUserElementData

/home/runner/work/graphia/graphia/source/shared/loading/graphmlparser.cpp should remove these lines:
- #include "shared/graph/elementid_debug.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/graphmlparser.cpp:
#include "graphmlparser.h"
#include <qassert.h>                     // for Q_ASSERT
#include <QDebug>                        // for QDebug
#include <QFile>                         // for QFile
#include <QLatin1Char>                   // for StringLiterals
#include <QMessageLogger>                // for qDebug
#include <QObject>                       // for QObject
#include <QString>                       // for QString, operator""_s, opera...
#include <QStringView>                   // for operator==, QStringView, ope...
#include <QUrl>                          // for QUrl
#include <QXmlStreamAttributes>          // for QXmlStreamAttributes
#include <QXmlStreamReader>              // for QXmlStreamReader
#include <algorithm>                     // for copy
#include <map>                           // for map, operator==
#include <stack>                         // for stack
#include "graph/elementid.h"             // for NodeId, EdgeId
#include "loading/iuserelementdata.h"    // for IUserElementData
#include "shared/graph/igraphmodel.h"    // for IGraphModel, IUserEdgeData
#include "shared/graph/imutablegraph.h"  // for IMutableGraph
#include "shared/utils/container.h"      // for contains
---


/home/runner/work/graphia/graphia/source/shared/loading/graphsizeestimate.h should add these lines:
#include <stddef.h>                 // for size_t

/home/runner/work/graphia/graphia/source/shared/loading/graphsizeestimate.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/graphsizeestimate.h:
#include <stddef.h>                 // for size_t
#include <QVariantMap>              // for QVariantMap
#include <limits>                   // for numeric_limits
#include "shared/graph/edgelist.h"  // for EdgeList
---

/home/runner/work/graphia/graphia/source/shared/loading/graphsizeestimate.cpp should add these lines:
#include <bits/std_abs.h>                       // for abs
#include <qtypes.h>                             // for qsizetype
#include <QMap>                                 // for QMap
#include <QString>                              // for operator""_s, QString
#include <QVariant>                             // for QVariant
#include <QtCore>                               // for QTypeInfo<>::isReloca...
#include <utility>                              // for pair
#include <vector>                               // for vector
#include "graph/edgelist.h"                     // for EdgeListEdge, EdgeList
#include "graph/elementid.h"                    // for NodeId, ElementId

/home/runner/work/graphia/graphia/source/shared/loading/graphsizeestimate.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/graphsizeestimate.cpp:
#include "graphsizeestimate.h"
#include <bits/std_abs.h>                       // for abs
#include <qtypes.h>                             // for qsizetype
#include <QMap>                                 // for QMap
#include <QString>                              // for operator""_s, QString
#include <QVariant>                             // for QVariant
#include <QVector>                              // for QVector
#include <QtCore>                               // for QTypeInfo<>::isReloca...
#include <algorithm>                            // for min, reverse, sort
#include <cmath>                                // for ceil
#include <cstdlib>                              // for size_t, abs
#include <set>                                  // for set, operator==, _Rb_...
#include <utility>                              // for pair
#include <vector>                               // for vector
#include "graph/edgelist.h"                     // for EdgeListEdge, EdgeList
#include "graph/elementid.h"                    // for NodeId, ElementId
#include "shared/graph/elementid_containers.h"  // for NodeIdMap, NodeIdSet
#include "shared/graph/undirectededge.h"        // for UndirectedEdge
#include "shared/utils/utils.h"                 // for evenDivisionOf
---


/home/runner/work/graphia/graphia/source/shared/loading/gmlfileparser.h should add these lines:
class IGraphModel;
class QUrl;

/home/runner/work/graphia/graphia/source/shared/loading/gmlfileparser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/gmlfileparser.h:
#include "shared/loading/iparser.h"           // for IParser
#include "shared/loading/iuserelementdata.h"  // for IUserEdgeData, IUserNod...
class IGraphModel;
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/loading/gmlfileparser.cpp should add these lines:
#include <qassert.h>
#include <qtypes.h>
#include <stddef.h>
#include <stdint.h>
#include <QLatin1Char>
#include <QObject>
#include <QString>
#include <algorithm>
#include <boost/core/swap.hpp>
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/adapted/struct/detail/adapt_auto.hpp>
#include <boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/mpl/aux_/preprocessor/is_seq.hpp>
#include <boost/preprocessor/arithmetic/dec.hpp>
#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/comparison/not_equal.hpp>
#include <boost/preprocessor/control/detail/while.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/control/while.hpp>
#include <boost/preprocessor/detail/auto_rec.hpp>
#include <boost/preprocessor/detail/is_binary.hpp>
#include <boost/preprocessor/facilities/detail/is_empty.hpp>
#include <boost/preprocessor/list/fold_left.hpp>
#include <boost/preprocessor/logical/bitand.hpp>
#include <boost/preprocessor/logical/bool.hpp>
#include <boost/preprocessor/logical/compl.hpp>
#include <boost/preprocessor/punctuation/detail/is_begin_parens.hpp>
#include <boost/preprocessor/repetition/detail/for.hpp>
#include <boost/preprocessor/repetition/for.hpp>
#include <boost/preprocessor/seq/elem.hpp>
#include <boost/preprocessor/seq/size.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/tuple/to_seq.hpp>
#include <boost/preprocessor/variadic/elem.hpp>
#include <boost/spirit/home/support/char_encoding/ascii.hpp>
#include <boost/spirit/home/support/char_encoding/standard.hpp>
#include <boost/spirit/home/support/multi_pass_wrapper.hpp>
#include <boost/spirit/home/x3/char/char.hpp>
#include <boost/spirit/home/x3/char/char_class.hpp>
#include <boost/spirit/home/x3/char/char_class_tags.hpp>
#include <boost/spirit/home/x3/char/char_parser.hpp>
#include <boost/spirit/home/x3/char/char_set.hpp>
#include <boost/spirit/home/x3/char/literal_char.hpp>
#include <boost/spirit/home/x3/char/negated_char_parser.hpp>
#include <boost/spirit/home/x3/core/parse.hpp>
#include <boost/spirit/home/x3/directive/lexeme.hpp>
#include <boost/spirit/home/x3/nonterminal/rule.hpp>
#include <boost/spirit/home/x3/numeric/int.hpp>
#include <boost/spirit/home/x3/numeric/real.hpp>
#include <boost/spirit/home/x3/numeric/real_policies.hpp>
#include <boost/spirit/home/x3/operator/alternative.hpp>
#include <boost/spirit/home/x3/operator/kleene.hpp>
#include <boost/spirit/home/x3/operator/sequence.hpp>
#include <boost/spirit/home/x3/support/unused.hpp>
#include <boost/variant/recursive_wrapper.hpp>
#include <vector>
#include "loading/iuserelementdata.h"

/home/runner/work/graphia/graphia/source/shared/loading/gmlfileparser.cpp should remove these lines:
- #include <boost/boost_spirit_qstring_adapter.h>  // lines 24-24
- #include <boost/fusion/include/adapt_struct.hpp>  // lines 22-22
- #include <boost/spirit/home/x3.hpp>  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/gmlfileparser.cpp:
#include "gmlfileparser.h"
#include <qassert.h>
#include <qtypes.h>
#include <stddef.h>
#include <stdint.h>
#include <QFileInfo>
#include <QLatin1Char>
#include <QObject>
#include <QString>
#include <QTextDocumentFragment>
#include <QUrl>
#include <algorithm>
#include <boost/core/swap.hpp>
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/adapted/struct/detail/adapt_auto.hpp>
#include <boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/mpl/aux_/preprocessor/is_seq.hpp>
#include <boost/preprocessor/arithmetic/dec.hpp>
#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/comparison/not_equal.hpp>
#include <boost/preprocessor/control/detail/while.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/control/while.hpp>
#include <boost/preprocessor/detail/auto_rec.hpp>
#include <boost/preprocessor/detail/is_binary.hpp>
#include <boost/preprocessor/facilities/detail/is_empty.hpp>
#include <boost/preprocessor/list/fold_left.hpp>
#include <boost/preprocessor/logical/bitand.hpp>
#include <boost/preprocessor/logical/bool.hpp>
#include <boost/preprocessor/logical/compl.hpp>
#include <boost/preprocessor/punctuation/detail/is_begin_parens.hpp>
#include <boost/preprocessor/repetition/detail/for.hpp>
#include <boost/preprocessor/repetition/for.hpp>
#include <boost/preprocessor/seq/elem.hpp>
#include <boost/preprocessor/seq/size.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/tuple/to_seq.hpp>
#include <boost/preprocessor/variadic/elem.hpp>
#include <boost/spirit/home/support/char_encoding/ascii.hpp>
#include <boost/spirit/home/support/char_encoding/standard.hpp>
#include <boost/spirit/home/support/iterators/istream_iterator.hpp>
#include <boost/spirit/home/support/multi_pass_wrapper.hpp>
#include <boost/spirit/home/x3/char/char.hpp>
#include <boost/spirit/home/x3/char/char_class.hpp>
#include <boost/spirit/home/x3/char/char_class_tags.hpp>
#include <boost/spirit/home/x3/char/char_parser.hpp>
#include <boost/spirit/home/x3/char/char_set.hpp>
#include <boost/spirit/home/x3/char/literal_char.hpp>
#include <boost/spirit/home/x3/char/negated_char_parser.hpp>
#include <boost/spirit/home/x3/core/parse.hpp>
#include <boost/spirit/home/x3/directive/lexeme.hpp>
#include <boost/spirit/home/x3/nonterminal/rule.hpp>
#include <boost/spirit/home/x3/numeric/int.hpp>
#include <boost/spirit/home/x3/numeric/real.hpp>
#include <boost/spirit/home/x3/numeric/real_policies.hpp>
#include <boost/spirit/home/x3/operator/alternative.hpp>
#include <boost/spirit/home/x3/operator/kleene.hpp>
#include <boost/spirit/home/x3/operator/sequence.hpp>
#include <boost/spirit/home/x3/support/unused.hpp>
#include <boost/variant/recursive_wrapper.hpp>
#include <fstream>
#include <map>
#include <variant>
#include <vector>
#include "loading/iuserelementdata.h"
#include "progress_iterator.h"
#include "shared/graph/elementid.h"
#include "shared/graph/igraphmodel.h"
#include "shared/graph/imutablegraph.h"
#include "shared/utils/container.h"
namespace SpiritGmlParser { struct KeyValue; }  // lines 48-48
---


/home/runner/work/graphia/graphia/source/shared/loading/jsonparser.h should add these lines:
class QUrl;

/home/runner/work/graphia/graphia/source/shared/loading/jsonparser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/jsonparser.h:
#include "json_helper.h"             // for json
#include "shared/loading/iparser.h"  // for IParser
class IGraphModel;  // lines 25-25
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/loading/jsonparser.cpp should add these lines:
#include <json_helper.h>                   // for parseJsonFrom
#include <qtypes.h>                        // for qint64
#include <QIODevice>                       // for QIODevice

/home/runner/work/graphia/graphia/source/shared/loading/jsonparser.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/jsonparser.cpp:
#include "jsonparser.h"
#include <json_helper.h>                   // for parseJsonFrom
#include <qtypes.h>                        // for qint64
#include <QByteArray>                      // for QByteArray
#include <QDataStream>                     // for QDataStream
#include <QFile>                           // for QFile
#include <QIODevice>                       // for QIODevice
#include <QUrl>                            // for QUrl
#include <vector>                          // for vector
#include "shared/utils/source_location.h"  // for CURRENT_SOURCE_LOCATION
---


/home/runner/work/graphia/graphia/source/shared/loading/qmltabulardataparser.h should add these lines:
#include <qtmetamacros.h>                     // for Q_INVOKABLE, Q_PROPERTY
#include <stddef.h>                           // for size_t
#include <QModelIndex>                        // for QModelIndex
#include <QString>                            // for QString
#include <QStringList>                        // for QStringList
#include <QVariant>                           // for QVariant
#include <QtCore>                             // for QHash, ItemDataRole
#include "utils/qmlenum.h"                    // for DEFINE_QML_ENUM
class TabularData;

/home/runner/work/graphia/graphia/source/shared/loading/qmltabulardataparser.h should remove these lines:
- #include <QVariantMap>  // lines 32-32
- #include "shared/loading/tabulardata.h"  // lines 25-25
- class QAbstractTableModel;  // lines 39-39

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/qmltabulardataparser.h:
#include <qtmetamacros.h>                     // for Q_INVOKABLE, Q_PROPERTY
#include <stddef.h>                           // for size_t
#include <QAbstractListModel>                 // for QAbstractListModel
#include <QFutureWatcher>                     // for QFutureWatcher
#include <QModelIndex>                        // for QModelIndex
#include <QObject>                            // for QObject
#include <QString>                            // for QString
#include <QStringList>                        // for QStringList
#include <QVariant>                           // for QVariant
#include <QtCore>                             // for QHash, ItemDataRole
#include <atomic>                             // for atomic
#include <memory>                             // for shared_ptr, __shared_pt...
#include <vector>                             // for vector
#include "shared/attributes/valuetype.h"      // for ValueType
#include "shared/loading/tabulardatamodel.h"  // for TabularDataModel
#include "shared/utils/cancellable.h"         // for Cancellable
#include "shared/utils/progressable.h"        // for Progressable
#include "shared/utils/typeidentity.h"        // for TypeIdentity
#include "utils/qmlenum.h"                    // for DEFINE_QML_ENUM
class QmlTabularDataParser;  // lines 38-38
class TabularData;
---

/home/runner/work/graphia/graphia/source/shared/loading/qmltabulardataparser.cpp should add these lines:
#include <qassert.h>                               // for Q_ASSERT
#include <QAbstractItemModel>                      // for QAbstractItemModel
#include <QByteArray>                              // for QByteArray, QTypeI...
#include <QList>                                   // for QList
#include <QUrl>                                    // for QUrl
#include <QtQml>                                   // for qmlRegisterInterface
#include <functional>                              // for function
#include <utility>                                 // for move
#include "attributes/valuetype.h"                  // for operator&, ValueType
#include "loading/tabulardata.h"                   // for TabularData, CsvFi...
#include "loading/tabulardatamodel.h"              // for TabularDataModel
#include "utils/cancellable.h"                     // for Cancellable
#include "utils/typeidentity.h"                    // for TypeIdentity

/home/runner/work/graphia/graphia/source/shared/loading/qmltabulardataparser.cpp should remove these lines:
- #include <QQmlEngine>  // lines 31-31

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/qmltabulardataparser.cpp:
#include "qmltabulardataparser.h"
#include <qassert.h>                               // for Q_ASSERT
#include <QAbstractItemModel>                      // for QAbstractItemModel
#include <QByteArray>                              // for QByteArray, QTypeI...
#include <QFileInfo>                               // for QFileInfo
#include <QFuture>                                 // for QFuture
#include <QList>                                   // for QList
#include <QUrl>                                    // for QUrl
#include <QtConcurrentRun>                         // for run
#include <QtQml>                                   // for qmlRegisterInterface
#include <functional>                              // for function
#include <map>                                     // for map, operator==
#include <utility>                                 // for move
#include "attributes/valuetype.h"                  // for operator&, ValueType
#include "loading/tabulardata.h"                   // for TabularData, CsvFi...
#include "loading/tabulardatamodel.h"              // for TabularDataModel
#include "shared/loading/matlabfileparser.h"       // for MatLabFileParser
#include "shared/loading/xlsxtabulardataparser.h"  // for XlsxTabularDataParser
#include "shared/utils/container.h"                // for contains, indexOf
#include "shared/utils/scope_exit.h"               // for make_scope_exit
#include "shared/utils/static_block.h"             // for static_block
#include "utils/cancellable.h"                     // for Cancellable
#include "utils/typeidentity.h"                    // for TypeIdentity
---


/home/runner/work/graphia/graphia/source/shared/loading/jsongraphparser.h should add these lines:
class IGraphModel;
class IParser;
class QUrl;

/home/runner/work/graphia/graphia/source/shared/loading/jsongraphparser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/jsongraphparser.h:
#include "json_helper.h"                      // for json
#include "shared/loading/iuserelementdata.h"  // for IUserEdgeData, IUserNod...
#include "shared/loading/jsonparser.h"        // for JsonParser
class IGraphModel;
class IParser;
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/loading/jsongraphparser.cpp should add these lines:
#include <json_helper.h>                 // for json
#include <stdint.h>                      // for uint64_t
#include <QObject>                       // for QObject
#include <QString>                       // for QString
#include <json.hpp>                      // for basic_json, iter_impl
#include <map>                           // for map, operator==
#include <string>                        // for operator<=>, string, stoi
#include "graph/elementid.h"             // for NodeId, EdgeId
#include "loading/iparser.h"             // for IParser
#include "loading/iuserelementdata.h"    // for IUserElementData

/home/runner/work/graphia/graphia/source/shared/loading/jsongraphparser.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/jsongraphparser.cpp:
#include "jsongraphparser.h"
#include <json_helper.h>                 // for json
#include <stdint.h>                      // for uint64_t
#include <QObject>                       // for QObject
#include <QString>                       // for QString
#include <json.hpp>                      // for basic_json, iter_impl
#include <map>                           // for map, operator==
#include <string>                        // for operator<=>, string, stoi
#include "graph/elementid.h"             // for NodeId, EdgeId
#include "loading/iparser.h"             // for IParser
#include "loading/iuserelementdata.h"    // for IUserElementData
#include "shared/graph/igraphmodel.h"    // for IGraphModel, IUserEdgeData
#include "shared/graph/imutablegraph.h"  // for IMutableGraph
#include "shared/utils/container.h"      // for contains
#include "shared/utils/string.h"         // for isNumeric
---


/home/runner/work/graphia/graphia/source/shared/loading/xlsxtabulardataparser.h should add these lines:
#include <stddef.h>                      // for size_t
class IGraphModel;
class QUrl;

/home/runner/work/graphia/graphia/source/shared/loading/xlsxtabulardataparser.h should remove these lines:
- #include <QUrl>  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/xlsxtabulardataparser.h:
#include <stddef.h>                      // for size_t
#include "shared/loading/iparser.h"      // for IParser
#include "shared/loading/tabulardata.h"  // for TabularData
class IGraphModel;
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/loading/xlsxtabulardataparser.cpp should add these lines:
#include <QByteArray>                      // for QByteArray
#include <QObject>                         // for QObject
#include <QString>                         // for QString
#include <QUrl>                            // for QUrl
#include "loading/iparser.h"               // for IParser
#include "loading/tabulardata.h"           // for TabularData
class IGraphModel;

/home/runner/work/graphia/graphia/source/shared/loading/xlsxtabulardataparser.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/xlsxtabulardataparser.cpp:
#include "xlsxtabulardataparser.h"
#include <xlsxio/include/xlsxio_read.h>    // for xlsxioread_close, xlsxiore...
#include <QByteArray>                      // for QByteArray
#include <QObject>                         // for QObject
#include <QString>                         // for QString
#include <QUrl>                            // for QUrl
#include "loading/iparser.h"               // for IParser
#include "loading/tabulardata.h"           // for TabularData
#include "shared/utils/source_location.h"  // for CURRENT_SOURCE_LOCATION
class IGraphModel;
---


/home/runner/work/graphia/graphia/source/shared/loading/dotfileparser.h should add these lines:
class IGraphModel;
class QUrl;

/home/runner/work/graphia/graphia/source/shared/loading/dotfileparser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/dotfileparser.h:
#include "shared/loading/iparser.h"           // for IParser
#include "shared/loading/iuserelementdata.h"  // for IUserEdgeData, IUserNod...
class IGraphModel;
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/loading/dotfileparser.cpp should add these lines:
#include <qassert.h>
#include <qtypes.h>
#include <stddef.h>
#include <QObject>
#include <QString>
#include <boost/core/swap.hpp>
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/adapted/struct/detail/adapt_auto.hpp>
#include <boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/mpl/aux_/preprocessor/is_seq.hpp>
#include <boost/preprocessor/arithmetic/dec.hpp>
#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/comparison/not_equal.hpp>
#include <boost/preprocessor/control/detail/while.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/control/while.hpp>
#include <boost/preprocessor/detail/auto_rec.hpp>
#include <boost/preprocessor/detail/is_binary.hpp>
#include <boost/preprocessor/facilities/detail/is_empty.hpp>
#include <boost/preprocessor/list/fold_left.hpp>
#include <boost/preprocessor/logical/bitand.hpp>
#include <boost/preprocessor/logical/bool.hpp>
#include <boost/preprocessor/logical/compl.hpp>
#include <boost/preprocessor/punctuation/detail/is_begin_parens.hpp>
#include <boost/preprocessor/repetition/detail/for.hpp>
#include <boost/preprocessor/repetition/for.hpp>
#include <boost/preprocessor/seq/elem.hpp>
#include <boost/preprocessor/seq/size.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/tuple/to_seq.hpp>
#include <boost/preprocessor/variadic/elem.hpp>
#include <boost/spirit/home/support/char_encoding/ascii.hpp>
#include <boost/spirit/home/support/char_encoding/standard.hpp>
#include <boost/spirit/home/support/multi_pass_wrapper.hpp>
#include <boost/spirit/home/x3/auxiliary/eol.hpp>
#include <boost/spirit/home/x3/char/any_char.hpp>
#include <boost/spirit/home/x3/char/char.hpp>
#include <boost/spirit/home/x3/char/char_class.hpp>
#include <boost/spirit/home/x3/char/char_parser.hpp>
#include <boost/spirit/home/x3/char/char_set.hpp>
#include <boost/spirit/home/x3/char/literal_char.hpp>
#include <boost/spirit/home/x3/char/negated_char_parser.hpp>
#include <boost/spirit/home/x3/core/parse.hpp>
#include <boost/spirit/home/x3/directive/lexeme.hpp>
#include <boost/spirit/home/x3/nonterminal/rule.hpp>
#include <boost/spirit/home/x3/numeric/real.hpp>
#include <boost/spirit/home/x3/numeric/real_policies.hpp>
#include <boost/spirit/home/x3/operator/alternative.hpp>
#include <boost/spirit/home/x3/operator/difference.hpp>
#include <boost/spirit/home/x3/operator/kleene.hpp>
#include <boost/spirit/home/x3/operator/optional.hpp>
#include <boost/spirit/home/x3/operator/plus.hpp>
#include <boost/spirit/home/x3/operator/sequence.hpp>
#include <boost/spirit/home/x3/string/literal_string.hpp>
#include <boost/spirit/home/x3/support/unused.hpp>
#include <boost/variant/recursive_wrapper.hpp>
#include <string>
#include <utility>
#include <vector>
#include "loading/iuserelementdata.h"

/home/runner/work/graphia/graphia/source/shared/loading/dotfileparser.cpp should remove these lines:
- #include <boost/boost_spirit_qstring_adapter.h>  // lines 6-6
- #include <boost/fusion/include/adapt_struct.hpp>  // lines 4-4
- #include <boost/spirit/home/x3.hpp>  // lines 3-3
- #include <type_traits>  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/dotfileparser.cpp:
#include "dotfileparser.h"
#include <qassert.h>
#include <qtypes.h>
#include <stddef.h>
#include <QFileInfo>
#include <QObject>
#include <QString>
#include <QUrl>
#include <boost/core/swap.hpp>
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/adapted/struct/detail/adapt_auto.hpp>
#include <boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/mpl/aux_/preprocessor/is_seq.hpp>
#include <boost/preprocessor/arithmetic/dec.hpp>
#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/comparison/not_equal.hpp>
#include <boost/preprocessor/control/detail/while.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/control/while.hpp>
#include <boost/preprocessor/detail/auto_rec.hpp>
#include <boost/preprocessor/detail/is_binary.hpp>
#include <boost/preprocessor/facilities/detail/is_empty.hpp>
#include <boost/preprocessor/list/fold_left.hpp>
#include <boost/preprocessor/logical/bitand.hpp>
#include <boost/preprocessor/logical/bool.hpp>
#include <boost/preprocessor/logical/compl.hpp>
#include <boost/preprocessor/punctuation/detail/is_begin_parens.hpp>
#include <boost/preprocessor/repetition/detail/for.hpp>
#include <boost/preprocessor/repetition/for.hpp>
#include <boost/preprocessor/seq/elem.hpp>
#include <boost/preprocessor/seq/size.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/tuple/to_seq.hpp>
#include <boost/preprocessor/variadic/elem.hpp>
#include <boost/spirit/home/support/char_encoding/ascii.hpp>
#include <boost/spirit/home/support/char_encoding/standard.hpp>
#include <boost/spirit/home/support/iterators/istream_iterator.hpp>
#include <boost/spirit/home/support/multi_pass_wrapper.hpp>
#include <boost/spirit/home/x3/auxiliary/eol.hpp>
#include <boost/spirit/home/x3/char/any_char.hpp>
#include <boost/spirit/home/x3/char/char.hpp>
#include <boost/spirit/home/x3/char/char_class.hpp>
#include <boost/spirit/home/x3/char/char_parser.hpp>
#include <boost/spirit/home/x3/char/char_set.hpp>
#include <boost/spirit/home/x3/char/literal_char.hpp>
#include <boost/spirit/home/x3/char/negated_char_parser.hpp>
#include <boost/spirit/home/x3/core/parse.hpp>
#include <boost/spirit/home/x3/directive/lexeme.hpp>
#include <boost/spirit/home/x3/nonterminal/rule.hpp>
#include <boost/spirit/home/x3/numeric/real.hpp>
#include <boost/spirit/home/x3/numeric/real_policies.hpp>
#include <boost/spirit/home/x3/operator/alternative.hpp>
#include <boost/spirit/home/x3/operator/difference.hpp>
#include <boost/spirit/home/x3/operator/kleene.hpp>
#include <boost/spirit/home/x3/operator/optional.hpp>
#include <boost/spirit/home/x3/operator/plus.hpp>
#include <boost/spirit/home/x3/operator/sequence.hpp>
#include <boost/spirit/home/x3/string/literal_string.hpp>
#include <boost/spirit/home/x3/support/unused.hpp>
#include <boost/variant/recursive_wrapper.hpp>
#include <fstream>
#include <functional>
#include <map>
#include <string>
#include <utility>
#include <variant>
#include <vector>
#include "loading/iuserelementdata.h"
#include "progress_iterator.h"
#include "shared/graph/elementid.h"
#include "shared/graph/igraphmodel.h"
#include "shared/graph/imutablegraph.h"
#include "shared/utils/container.h"
#include "shared/utils/visitor.h"
namespace SpiritDotParser { struct DotSubGraph; }  // lines 30-30
---


/home/runner/work/graphia/graphia/source/shared/loading/tabulardatamodel.h should add these lines:
#include <qtmetamacros.h>       // for Q_INVOKABLE, Q_OBJECT
#include <QHashNode>            // for QHash
#include <QVariant>             // for QVariant
class QByteArray;
class TabularData;

/home/runner/work/graphia/graphia/source/shared/loading/tabulardatamodel.h should remove these lines:
- #include <QObject>  // lines 22-22
- #include "shared/loading/tabulardata.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/tabulardatamodel.h:
#include <qtmetamacros.h>       // for Q_INVOKABLE, Q_OBJECT
#include <QAbstractTableModel>  // for QAbstractTableModel
#include <QHashNode>            // for QHash
#include <QVariant>             // for QVariant
class QByteArray;
class TabularData;
---

/home/runner/work/graphia/graphia/source/shared/loading/tabulardatamodel.cpp should add these lines:
#include <stddef.h>                     // for size_t
#include <QByteArray>                   // for QByteArray, QTypeInfo<>::isRe...
#include <QModelIndex>                  // for QModelIndex
#include <QtCore>                       // for QTypeInfo<>::isRelocatable
#include <QtQml>                        // for qmlRegisterType
#include "loading/tabulardata.h"        // for TabularData
#include "utils/typeidentity.h"         // for TypeIdentity

/home/runner/work/graphia/graphia/source/shared/loading/tabulardatamodel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/tabulardatamodel.cpp:
#include "tabulardatamodel.h"
#include <stddef.h>                     // for size_t
#include <QByteArray>                   // for QByteArray, QTypeInfo<>::isRe...
#include <QModelIndex>                  // for QModelIndex
#include <QtCore>                       // for QTypeInfo<>::isRelocatable
#include <QtQml>                        // for qmlRegisterType
#include "loading/tabulardata.h"        // for TabularData
#include "shared/utils/static_block.h"  // for static_block
#include "utils/typeidentity.h"         // for TypeIdentity
---


/home/runner/work/graphia/graphia/source/shared/loading/tabulardata.h should add these lines:
#include <stddef.h>                        // for size_t
#include <stdint.h>                        // for uint32_t
#include <utf8/checked.h>                  // for next, replace_invalid
#include <utf8/unchecked.h>                // for append
#include <QMetaType>                       // for checkTypeIsSuitableForMeta...
#include <algorithm>                       // for max, min
#include <compare>                         // for operator<, __synth3way_t
#include <iterator>                        // for back_inserter, back_insert...
#include <memory>                          // for shared_ptr
class IGraphModel;

/home/runner/work/graphia/graphia/source/shared/loading/tabulardata.h should remove these lines:
- #include <utf8.h>  // lines 29-29
- #include <iostream>  // lines 37-37
- #include "shared/graph/igraphmodel.h"  // lines 22-22
- #include "shared/graph/imutablegraph.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/tabulardata.h:
#include <stddef.h>                        // for size_t
#include <stdint.h>                        // for uint32_t
#include <utf8/checked.h>                  // for next, replace_invalid
#include <utf8/unchecked.h>                // for append
#include <QMetaType>                       // for checkTypeIsSuitableForMeta...
#include <QObject>                         // for QObject
#include <QString>                         // for QString
#include <QStringList>                     // for QStringList
#include <QUrl>                            // for QUrl
#include <algorithm>                       // for max, min
#include <compare>                         // for operator<, __synth3way_t
#include <fstream>                         // for basic_istream::seekg, basi...
#include <iterator>                        // for back_inserter, back_insert...
#include <limits>                          // for numeric_limits
#include <memory>                          // for shared_ptr
#include <string>                          // for basic_string, string
#include <vector>                          // for vector
#include "shared/loading/iparser.h"        // for IParser
#include "shared/utils/source_location.h"  // for CURRENT_SOURCE_LOCATION
#include "shared/utils/string.h"           // for getline
#include "shared/utils/typeidentity.h"     // for TypeIdentity
class IGraphModel;
class Progressable;  // lines 42-42
---

/home/runner/work/graphia/graphia/source/shared/loading/tabulardata.cpp should add these lines:
#include <qassert.h>                    // for Q_ASSERT
#include <QByteArrayDataPtr>            // for StringLiterals
#include <QList>                        // for QList
#include <map>                          // for map
#include <utility>                      // for move, pair
#include "utils/string.h"               // for getline
#include "utils/typeidentity.h"         // for TypeIdentity

/home/runner/work/graphia/graphia/source/shared/loading/tabulardata.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/tabulardata.cpp:
#include "tabulardata.h"
#include <qassert.h>                    // for Q_ASSERT
#include <QByteArrayDataPtr>            // for StringLiterals
#include <QList>                        // for QList
#include <algorithm>                    // for max, set_intersection, max_el...
#include <map>                          // for map
#include <set>                          // for set, operator==, _Rb_tree_ite...
#include <utility>                      // for move, pair
#include "shared/utils/progressable.h"  // for Progressable
#include "utils/string.h"               // for getline
#include "utils/typeidentity.h"         // for TypeIdentity
#include "xlsxtabulardataparser.h"      // for XlsxTabularDataParser
---


/home/runner/work/graphia/graphia/source/shared/loading/urltypes.h should add these lines:
#include <QList>        // for QList

/home/runner/work/graphia/graphia/source/shared/loading/urltypes.h should remove these lines:
- #include <utility>  // lines 28-28

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/urltypes.h:
#include <QList>        // for QList
#include <QString>      // for QString
#include <QStringList>  // for QStringList
#include <map>          // for map
#include "iurltypes.h"  // for IUrlTypes
class QUrl;  // lines 30-30
---

/home/runner/work/graphia/graphia/source/shared/loading/urltypes.cpp should add these lines:
#include <qassert.h>                 // for Q_ASSERT
#include <Qt>                        // for CaseSensitivity
#include <utility>                   // for pair

/home/runner/work/graphia/graphia/source/shared/loading/urltypes.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/urltypes.cpp:
#include "urltypes.h"
#include <qassert.h>                 // for Q_ASSERT
#include <QFileInfo>                 // for QFileInfo
#include <QUrl>                      // for QUrl
#include <Qt>                        // for CaseSensitivity
#include <utility>                   // for pair
#include "shared/utils/container.h"  // for contains
---


/home/runner/work/graphia/graphia/source/shared/loading/userdata.h should add these lines:
#include <qtmetamacros.h>                   // for Q_OBJECT, signals
#include <stddef.h>                         // for size_t
class Progressable;

/home/runner/work/graphia/graphia/source/shared/loading/userdata.h should remove these lines:
- #include <QSet>  // lines 31-31
- #include "shared/utils/pair_iterator.h"  // lines 25-25
- #include "shared/utils/progressable.h"  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/userdata.h:
#include <json_helper.h>                    // for json
#include <qtmetamacros.h>                   // for Q_OBJECT, signals
#include <stddef.h>                         // for size_t
#include <QObject>                          // for QObject
#include <QString>                          // for QString
#include <QVariant>                         // for QVariant
#include <map>                              // for map
#include <vector>                           // for vector
#include "shared/loading/iuserdata.h"       // for IUserData
#include "shared/loading/userdatavector.h"  // for UserDataVector
class Progressable;
---

/home/runner/work/graphia/graphia/source/shared/loading/userdata.cpp should add these lines:
#include <qassert.h>                 // for Q_ASSERT
#include <stdint.h>                  // for uint64_t
#include <QMessageLogger>            // for qDebug
#include <algorithm>                 // for find_if, max
#include <json.hpp>                  // for basic_json, iter_impl
#include <string>                    // for operator<=>, string
#include <utility>                   // for pair, move
#include "loading/userdatavector.h"  // for UserDataVector
#include "utils/progressable.h"      // for Progressable

/home/runner/work/graphia/graphia/source/shared/loading/userdata.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/userdata.cpp:
#include "userdata.h"
#include <qassert.h>                 // for Q_ASSERT
#include <stdint.h>                  // for uint64_t
#include <QDebug>                    // for QDebug
#include <QMessageLogger>            // for qDebug
#include <algorithm>                 // for find_if, max
#include <json.hpp>                  // for basic_json, iter_impl
#include <string>                    // for operator<=>, string
#include <utility>                   // for pair, move
#include "loading/userdatavector.h"  // for UserDataVector
#include "shared/utils/container.h"  // for contains, removeByValue
#include "utils/progressable.h"      // for Progressable
---


/home/runner/work/graphia/graphia/source/shared/plugins/baseplugin.h should add these lines:
#include <qassert.h>                       // for Q_ASSERT
#include <qtmetamacros.h>                  // for emit, Q_INVOKABLE, Q_OBJECT
#include <QByteArray>                      // for QByteArray
#include <QList>                           // for QList
#include <QString>                         // for QString
#include <QStringList>                     // for QStringList
#include <QVariant>                        // for QVariant
#include <QtCore>                          // for SIGNAL, ConnectionType, SLOT
#include "graph/elementid.h"               // for EdgeId, NodeId
class IApplication;
class ICommandManager;
class IMutableGraph;
class IParser;
class Progressable;

/home/runner/work/graphia/graphia/source/shared/plugins/baseplugin.h should remove these lines:
- #include "shared/commands/icommandmanager.h"  // lines 27-27

The full include-list for /home/runner/work/graphia/graphia/source/shared/plugins/baseplugin.h:
#include <qassert.h>                       // for Q_ASSERT
#include <qtmetamacros.h>                  // for emit, Q_INVOKABLE, Q_OBJECT
#include <QByteArray>                      // for QByteArray
#include <QList>                           // for QList
#include <QObject>                         // for QObject
#include <QString>                         // for QString
#include <QStringList>                     // for QStringList
#include <QVariant>                        // for QVariant
#include <QtCore>                          // for SIGNAL, ConnectionType, SLOT
#include <memory>                          // for unique_ptr, make_unique
#include "graph/elementid.h"               // for EdgeId, NodeId
#include "shared/graph/igraph.h"           // for IGraph
#include "shared/graph/igraphmodel.h"      // for IGraphModel
#include "shared/loading/iparserthread.h"  // for IParserThread
#include "shared/loading/urltypes.h"       // for UrlTypes
#include "shared/plugins/iplugin.h"        // for IPlugin, IPluginInstance
#include "shared/ui/idocument.h"           // for IDocument
#include "shared/ui/iselectionmanager.h"   // for ISelectionManager
class Graph;  // lines 37-37
class IApplication;
class ICommandManager;
class IMutableGraph;
class IParser;
class Progressable;
class SelectionManager;  // lines 38-38
---

/home/runner/work/graphia/graphia/source/shared/plugins/baseplugin.cpp should add these lines:
#include "iapplication.h"  // for IApplication

/home/runner/work/graphia/graphia/source/shared/plugins/baseplugin.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/plugins/baseplugin.cpp:
#include "baseplugin.h"
#include "iapplication.h"  // for IApplication
---


/home/runner/work/graphia/graphia/source/shared/loading/userdatavector.h should add these lines:
#include <stddef.h>                     // for size_t

/home/runner/work/graphia/graphia/source/shared/loading/userdatavector.h should remove these lines:
- #include <limits>  // lines 29-29
- #include <utility>  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/userdatavector.h:
#include <json_helper.h>                // for json
#include <stddef.h>                     // for size_t
#include <QString>                      // for QString
#include <QStringList>                  // for QStringList
#include <vector>                       // for vector
#include "shared/utils/typeidentity.h"  // for TypeIdentity
---

/home/runner/work/graphia/graphia/source/shared/loading/userdatavector.cpp should add these lines:
#include <QList>      // for QList
#include <algorithm>  // for sort, unique
#include <json.hpp>   // for basic_json, iter_impl

/home/runner/work/graphia/graphia/source/shared/loading/userdatavector.cpp should remove these lines:
- #include "shared/utils/container.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/shared/loading/userdatavector.cpp:
#include "userdatavector.h"
#include <QList>      // for QList
#include <algorithm>  // for sort, unique
#include <json.hpp>   // for basic_json, iter_impl
---


/home/runner/work/graphia/graphia/source/shared/plugins/nodeattributetablemodel.h should add these lines:
#include <qtmetamacros.h>                     // for Q_INVOKABLE, slots, Q_O...
#include <stddef.h>                           // for size_t
#include <QByteArray>                         // for QByteArray, QTypeInfo<>...
#include <QList>                              // for QList
#include <QModelIndex>                        // for QModelIndex
#include <QString>                            // for QString
#include <QVariant>                           // for QVariant
#include <QtCore>                             // for QTypeInfo<>::isRelocatable
class IDocument;

/home/runner/work/graphia/graphia/source/shared/plugins/nodeattributetablemodel.h should remove these lines:
- #include <QHash>  // lines 28-28
- #include <QObject>  // lines 29-29
- #include <deque>  // lines 33-33
- #include "shared/graph/elementid.h"  // lines 22-22
- #include "shared/ui/idocument.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/shared/plugins/nodeattributetablemodel.h:
#include <qtmetamacros.h>                     // for Q_INVOKABLE, slots, Q_O...
#include <stddef.h>                           // for size_t
#include <QAbstractTableModel>                // for QAbstractTableModel
#include <QByteArray>                         // for QByteArray, QTypeInfo<>...
#include <QList>                              // for QList
#include <QModelIndex>                        // for QModelIndex
#include <QString>                            // for QString
#include <QStringList>                        // for QStringList
#include <QVariant>                           // for QVariant
#include <QtCore>                             // for QTypeInfo<>::isRelocatable
#include <mutex>                              // for recursive_mutex
#include <vector>                             // for vector
#include "shared/loading/iuserelementdata.h"  // for IUserNodeData
class Graph;  // lines 35-35
class IDocument;
class IGraph;  // lines 36-36
---

/home/runner/work/graphia/graphia/source/shared/plugins/nodeattributetablemodel.cpp should add these lines:
#include <qassert.h>                          // for Q_ASSERT
#include <QMetaObject>                        // for QMetaObject, SIGNAL, SLOT
#include <QObject>                            // for QObject
#include <algorithm>                          // for sort, transform, remove_if
#include <functional>                         // for less, greater
#include <iterator>                           // for back_inserter
#include <map>                                // for operator==, _Rb_tree_co...
#include <utility>                            // for as_const
#include "graph/elementid.h"                  // for NodeId
#include "graph/elementid_containers.h"       // for NodeIdSet
#include "graph/elementtype.h"                // for ElementType
#include "loading/iuserelementdata.h"         // for IUserElementData
#include "ui/idocument.h"                     // for IDocument

/home/runner/work/graphia/graphia/source/shared/plugins/nodeattributetablemodel.cpp should remove these lines:
- #include <QtGlobal>  // lines 32-32

The full include-list for /home/runner/work/graphia/graphia/source/shared/plugins/nodeattributetablemodel.cpp:
#include "nodeattributetablemodel.h"
#include <qassert.h>                          // for Q_ASSERT
#include <QMetaObject>                        // for QMetaObject, SIGNAL, SLOT
#include <QObject>                            // for QObject
#include <QSet>                               // for QSet
#include <algorithm>                          // for sort, transform, remove_if
#include <functional>                         // for less, greater
#include <iterator>                           // for back_inserter
#include <map>                                // for operator==, _Rb_tree_co...
#include <utility>                            // for as_const
#include "graph/elementid.h"                  // for NodeId
#include "graph/elementid_containers.h"       // for NodeIdSet
#include "graph/elementtype.h"                // for ElementType
#include "loading/iuserelementdata.h"         // for IUserElementData
#include "shared/attributes/iattribute.h"     // for IAttribute
#include "shared/attributes/valuetype.h"      // for operator&, ValueType
#include "shared/commands/icommandmanager.h"  // for ICommandManager
#include "shared/graph/igraph.h"              // for IGraph
#include "shared/graph/igraphmodel.h"         // for IGraphModel, IUserNodeData
#include "shared/ui/iselectionmanager.h"      // for ISelectionManager
#include "shared/utils/container.h"           // for contains, hasUniqueValues
#include "shared/utils/string.h"              // for toQStringList, toQStrin...
#include "ui/idocument.h"                     // for IDocument
---


/home/runner/work/graphia/graphia/source/shared/plugins/basegenericplugin.h should add these lines:
#include <qtmetamacros.h>                            // for Q_PROPERTY, Q_OB...
#include <QString>                                   // for QString
#include <QStringList>                               // for QStringList
#include <QVariant>                                  // for QVariant
class IDocument;
class IGraphModel;
class IParser;
class IParserThread;
class IPlugin;
class ISelectionManager;
class QAbstractTableModel;
class QUrl;

/home/runner/work/graphia/graphia/source/shared/plugins/basegenericplugin.h should remove these lines:
- #include "shared/graph/grapharray.h"  // lines 30-30
- #include "shared/loading/userelementdata.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/shared/plugins/basegenericplugin.h:
#include <qtmetamacros.h>                            // for Q_PROPERTY, Q_OB...
#include <QList>                                     // for QList
#include <QString>                                   // for QString
#include <QStringList>                               // for QStringList
#include <QVariant>                                  // for QVariant
#include <memory>                                    // for unique_ptr
#include "baseplugin.h"                              // for BasePlugin, Base...
#include "shared/loading/pairwisecolumntype.h"       // for PairwiseColumnsC...
#include "shared/loading/tabulardata.h"              // for TabularData
#include "shared/plugins/nodeattributetablemodel.h"  // for NodeAttributeTab...
class IDocument;
class IGraphModel;
class IParser;
class IParserThread;
class IPlugin;
class ISelectionManager;
class QAbstractTableModel;
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/plugins/basegenericplugin.cpp should add these lines:
#include <qassert.h>                                   // for Q_ASSERT
#include <stddef.h>                                    // for size_t
#include <QDebug>                                      // for QDebug
#include <QMap>                                        // for QMap, operator!=
#include <QMessageLogger>                              // for qDebug
#include <QObject>                                     // for QObject
#include <QStringLiteral>                              // for qMakeStringPri...
#include <QUrl>                                        // for QUrl
#include <QVector>                                     // for QVector
#include <QtCore>                                      // for SIGNAL, SLOT
#include <map>                                         // for operator==
#include <utility>                                     // for move
#include "graph/elementid.h"                           // for NodeId
#include "graph/elementid_containers.h"                // for NodeIdSet
#include "graph/igraphmodel.h"                         // for IGraphModel
#include "loading/iparser.h"                           // for IParser
#include "loading/iuserelementdata.h"                  // for IUserElementData
#include "loading/pairwisecolumntype.h"                // for PairwiseColumn...
#include "loading/tabulardata.h"                       // for TabularData
#include "plugins/baseplugin.h"                        // for BasePluginInst...
#include "plugins/nodeattributetablemodel.h"           // for NodeAttributeT...
#include "ui/idocument.h"                              // for IDocument
#include "ui/iselectionmanager.h"                      // for ISelectionManager
#include "utils/string.h"                              // for isInteger
class IParserThread;
class IPlugin;

/home/runner/work/graphia/graphia/source/shared/plugins/basegenericplugin.cpp should remove these lines:
- #include <json_helper.h>  // lines 34-34
- #include "shared/attributes/iattribute.h"  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/shared/plugins/basegenericplugin.cpp:
#include "basegenericplugin.h"
#include <qassert.h>                                   // for Q_ASSERT
#include <stddef.h>                                    // for size_t
#include <QDebug>                                      // for QDebug
#include <QMap>                                        // for QMap, operator!=
#include <QMessageLogger>                              // for qDebug
#include <QObject>                                     // for QObject
#include <QStringLiteral>                              // for qMakeStringPri...
#include <QUrl>                                        // for QUrl
#include <QVector>                                     // for QVector
#include <QtCore>                                      // for SIGNAL, SLOT
#include <map>                                         // for operator==
#include <utility>                                     // for move
#include "graph/elementid.h"                           // for NodeId
#include "graph/elementid_containers.h"                // for NodeIdSet
#include "graph/igraphmodel.h"                         // for IGraphModel
#include "loading/iparser.h"                           // for IParser
#include "loading/iuserelementdata.h"                  // for IUserElementData
#include "loading/pairwisecolumntype.h"                // for PairwiseColumn...
#include "loading/tabulardata.h"                       // for TabularData
#include "plugins/baseplugin.h"                        // for BasePluginInst...
#include "plugins/nodeattributetablemodel.h"           // for NodeAttributeT...
#include "shared/loading/adjacencymatrixfileparser.h"  // for AdjacencyMatri...
#include "shared/loading/biopaxfileparser.h"           // for BiopaxFileParser
#include "shared/loading/cxparser.h"                   // for CxParser
#include "shared/loading/dotfileparser.h"              // for DotFileParser
#include "shared/loading/gmlfileparser.h"              // for GmlFileParser
#include "shared/loading/graphmlparser.h"              // for GraphMLParser
#include "shared/loading/jsongraphparser.h"            // for JsonGraphParser
#include "shared/loading/pairwisefileparser.h"         // for PairwiseFilePa...
#include "shared/utils/container.h"                    // for contains
#include "ui/idocument.h"                              // for IDocument
#include "ui/iselectionmanager.h"                      // for ISelectionManager
#include "utils/string.h"                              // for isInteger
class IParserThread;
class IPlugin;
---


/home/runner/work/graphia/graphia/source/shared/plugins/tableproxymodel.h should add these lines:
#include <qtmetamacros.h>               // for Q_INVOKABLE, Q_PROPERTY, Q_OB...
#include <stddef.h>                     // for size_t
#include <QAbstractItemModel>           // for QAbstractItemModel
#include <QByteArray>                   // for QByteArray, QTypeInfo<>::isRe...
#include <QItemSelection>               // for QItemSelection
#include <QList>                        // for QList
#include <QString>                      // for QString
#include <QVariant>                     // for QVariant
#include <QtCore>                       // for QTypeInfo<>::isRelocatable
#include <QtQml>                        // for qmlRegisterType

/home/runner/work/graphia/graphia/source/shared/plugins/tableproxymodel.h should remove these lines:
- #include <QQmlEngine>  // lines 24-24
- #include <QTimer>  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/shared/plugins/tableproxymodel.h:
#include <qtmetamacros.h>               // for Q_INVOKABLE, Q_PROPERTY, Q_OB...
#include <stddef.h>                     // for size_t
#include <QAbstractItemModel>           // for QAbstractItemModel
#include <QByteArray>                   // for QByteArray, QTypeInfo<>::isRe...
#include <QCollator>                    // for QCollator
#include <QItemSelection>               // for QItemSelection
#include <QItemSelectionRange>          // for QItemSelectionRange
#include <QList>                        // for QList
#include <QSortFilterProxyModel>        // for QSortFilterProxyModel
#include <QStandardItemModel>           // for QStandardItemModel
#include <QString>                      // for QString
#include <QStringList>                  // for QStringList
#include <QVariant>                     // for QVariant
#include <QtCore>                       // for QTypeInfo<>::isRelocatable
#include <QtQml>                        // for qmlRegisterType
#include <deque>                        // for deque
#include <map>                          // for map
#include <unordered_set>                // for unordered_set
#include <utility>                      // for pair
#include <vector>                       // for vector
#include "shared/utils/static_block.h"  // for static_block
---

/home/runner/work/graphia/graphia/source/shared/plugins/tableproxymodel.cpp should add these lines:
#include <qassert.h>                  // for Q_ASSERT
#include <qtypes.h>                   // for qsizetype
#include <QAbstractProxyModel>        // for QAbstractProxyModel
#include <QMetaType>                  // for QMetaType
#include <QModelIndex>                // for QModelIndex
#include <QPersistentModelIndex>      // for QPersistentModelIndex, operator<<
#include <QStandardItem>              // for QStandardItem
#include <algorithm>                  // for max, copy, find_if, remove_if

/home/runner/work/graphia/graphia/source/shared/plugins/tableproxymodel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/plugins/tableproxymodel.cpp:
#include "tableproxymodel.h"
#include <qassert.h>                  // for Q_ASSERT
#include <qtypes.h>                   // for qsizetype
#include <QAbstractProxyModel>        // for QAbstractProxyModel
#include <QMetaType>                  // for QMetaType
#include <QModelIndex>                // for QModelIndex
#include <QPersistentModelIndex>      // for QPersistentModelIndex, operator<<
#include <QStandardItem>              // for QStandardItem
#include <algorithm>                  // for max, copy, find_if, remove_if
#include "nodeattributetablemodel.h"  // for NodeAttributeTableModel
#include "shared/utils/container.h"   // for contains, setIntersection
#include "shared/utils/string.h"      // for toQStringList
---


/home/runner/work/graphia/graphia/source/shared/ui/iconitem.h should add these lines:
#include <qtmetamacros.h>               // for Q_PROPERTY, Q_OBJECT, signals
#include <QTypeInfo>                    // for QTypeInfo<>::isValueInitializ...
#include <QtQml>                        // for qmlRegisterType
class QPainter;
class QQuickItem;

/home/runner/work/graphia/graphia/source/shared/ui/iconitem.h should remove these lines:
- #include <QQmlEngine>  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/shared/ui/iconitem.h:
#include <qtmetamacros.h>               // for Q_PROPERTY, Q_OBJECT, signals
#include <QIcon>                        // for QIcon
#include <QQuickPaintedItem>            // for QQuickPaintedItem
#include <QString>                      // for QString
#include <QTypeInfo>                    // for QTypeInfo<>::isValueInitializ...
#include <QtQml>                        // for qmlRegisterType
#include "shared/utils/static_block.h"  // for static_block
class QPainter;
class QQuickItem;
---

/home/runner/work/graphia/graphia/source/shared/ui/iconitem.cpp should add these lines:
#include <QtCore/qobjectdefs.h>  // for FunctionPointer<>::ArgumentCount
#include <QPixmap>               // for QPixmap
#include <QRect>                 // for QRect
#include <QRectF>                // for QRectF
#include <QSize>                 // for QSize
#include <QSizeF>                // for QSizeF
class QQuickItem;

/home/runner/work/graphia/graphia/source/shared/ui/iconitem.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/ui/iconitem.cpp:
#include "iconitem.h"
#include <QtCore/qobjectdefs.h>  // for FunctionPointer<>::ArgumentCount
#include <QPainter>              // for QPainter
#include <QPixmap>               // for QPixmap
#include <QQuickWindow>          // for QQuickWindow
#include <QRect>                 // for QRect
#include <QRectF>                // for QRectF
#include <QSize>                 // for QSize
#include <QSizeF>                // for QSizeF
class QQuickItem;
---


/home/runner/work/graphia/graphia/source/shared/ui/outline.h should add these lines:
#include <qtmetamacros.h>                   // for Q_PROPERTY, Q_OBJECT, sig...
#include <QColor>                           // for QColor
#include <QtCore>                           // for QTypeInfo<>::isValueIniti...
#include <QtQml>                            // for qmlRegisterType
class QPainter;
class QQuickItem;

/home/runner/work/graphia/graphia/source/shared/ui/outline.h should remove these lines:
- #include <QQmlEngine>  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/shared/ui/outline.h:
#include <qtmetamacros.h>                   // for Q_PROPERTY, Q_OBJECT, sig...
#include <QColor>                           // for QColor
#include <QQuickPaintedItem>                // for QQuickPaintedItem
#include <QtCore>                           // for QTypeInfo<>::isValueIniti...
#include <QtQml>                            // for qmlRegisterType
#include "shared/utils/qmlcontrolcolors.h"  // for QmlControlColors
#include "shared/utils/static_block.h"      // for static_block
class QPainter;
class QQuickItem;
---

/home/runner/work/graphia/graphia/source/shared/ui/outline.cpp should add these lines:
#include <qtypes.h>                  // for qreal
#include <QPen>                      // for QPen
#include <QRectF>                    // for QRectF
#include <Qt>                        // for PenCapStyle, PenJoinStyle, PenStyle
#include "utils/qmlcontrolcolors.h"  // for QmlControlColors
class QQuickItem;

/home/runner/work/graphia/graphia/source/shared/ui/outline.cpp should remove these lines:
- #include <QQuickWindow>  // lines 22-22
- #include <QtGlobal>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/shared/ui/outline.cpp:
#include "outline.h"
#include <qtypes.h>                  // for qreal
#include <QPainter>                  // for QPainter
#include <QPen>                      // for QPen
#include <QRectF>                    // for QRectF
#include <Qt>                        // for PenCapStyle, PenJoinStyle, PenStyle
#include "utils/qmlcontrolcolors.h"  // for QmlControlColors
class QQuickItem;
---


(/home/runner/work/graphia/graphia/source/shared/updates/updates.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/updates/updates.cpp should add these lines:
#include <QByteArray>                // for QByteArray
#include <QFile>                     // for QFile
#include <QtCore>                    // for operator|, StringLiterals
#include <json.hpp>                  // for basic_json, iter_impl, json_ref
#include <string>                    // for allocator, string, basic_string

/home/runner/work/graphia/graphia/source/shared/updates/updates.cpp should remove these lines:
- #include <QStringList>  // lines 32-32
- #include "shared/utils/checksum.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/shared/updates/updates.cpp:
#include "updates.h"
#include <json_helper.h>             // for json
#include <QByteArray>                // for QByteArray
#include <QCollator>                 // for QCollator
#include <QDir>                      // for QDir
#include <QFile>                     // for QFile
#include <QFileInfo>                 // for QFileInfo
#include <QStandardPaths>            // for QStandardPaths
#include <QString>                   // for QString, operator""_s, operator+
#include <QSysInfo>                  // for QSysInfo
#include <QtCore>                    // for operator|, StringLiterals
#include <algorithm>                 // for remove_if, sort
#include <json.hpp>                  // for basic_json, iter_impl, json_ref
#include <regex>                     // for regex_match, regex
#include <string>                    // for allocator, string, basic_string
#include "build_defines.h"           // for VERSION
#include "shared/utils/container.h"  // for contains
#include "shared/utils/crypto.h"     // for rsaVerifySignature
#include "shared/utils/string.h"     // for hexToString, isHex
#include "shared/utils/utils.h"      // for exclusiveOr
---


(/home/runner/work/graphia/graphia/source/shared/ui/visualisations/colorgradient.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/ui/visualisations/colorgradient.cpp should add these lines:
#include <stddef.h>              // for size_t
#include <QMessageLogger>        // for qDebug
#include <json.hpp>              // for iter_impl, iteration_proxy_value
#include <string>                // for stod

/home/runner/work/graphia/graphia/source/shared/ui/visualisations/colorgradient.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/ui/visualisations/colorgradient.cpp:
#include "colorgradient.h"
#include <json_helper.h>         // for parseJsonFrom
#include <stddef.h>              // for size_t
#include <QDebug>                // for QDebug
#include <QMessageLogger>        // for qDebug
#include <algorithm>             // for sort
#include <json.hpp>              // for iter_impl, iteration_proxy_value
#include <string>                // for stod
#include "shared/utils/utils.h"  // for normalise
---


/home/runner/work/graphia/graphia/source/shared/utils/console.h should add these lines:
#include <stddef.h>  // for size_t

/home/runner/work/graphia/graphia/source/shared/utils/console.h should remove these lines:
- #include <QtGlobal>  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/console.h:
#include <stddef.h>  // for size_t
---

/home/runner/work/graphia/graphia/source/shared/utils/console.cpp should add these lines:
#include <qtpreprocessorsupport.h>  // for Q_UNUSED

/home/runner/work/graphia/graphia/source/shared/utils/console.cpp should remove these lines:
- #include <QtGlobal>  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/console.cpp:
#include "console.h"
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <sys/ioctl.h>              // for ioctl, winsize, TIOCGWINSZ
#include <unistd.h>                 // for isatty
#include <cstdio>                   // for fileno, size_t, stderr, stdout
---


(/home/runner/work/graphia/graphia/source/shared/utils/color.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/utils/color.cpp should add these lines:
#include <bits/std_abs.h>  // for abs
#include <QByteArray>      // for QByteArray
#include <QtCore>          // for QCryptographicHash, GlobalColor

/home/runner/work/graphia/graphia/source/shared/utils/color.cpp should remove these lines:
- #include <QCryptographicHash>  // lines 23-23
- #include <cmath>  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/color.cpp:
#include "color.h"
#include <bits/std_abs.h>  // for abs
#include <QByteArray>      // for QByteArray
#include <QtCore>          // for QCryptographicHash, GlobalColor
---


(/home/runner/work/graphia/graphia/source/shared/utils/apppathname.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/utils/apppathname.cpp should add these lines:
#include <qtenvironmentvariables.h>  // for qEnvironmentVariableIsSet, qgetenv
#include <QByteArray>                // for QByteArray
#include <QtCore>                    // for Q_OS_LINUX

/home/runner/work/graphia/graphia/source/shared/utils/apppathname.cpp should remove these lines:
- #include <QDir>  // lines 23-23
- #include <QtGlobal>  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/apppathname.cpp:
#include "apppathname.h"
#include <qtenvironmentvariables.h>  // for qEnvironmentVariableIsSet, qgetenv
#include <QByteArray>                // for QByteArray
#include <QFileInfo>                 // for QFileInfo
#include <QtCore>                    // for Q_OS_LINUX
---


(/home/runner/work/graphia/graphia/source/shared/ui/visualisations/colorpalette.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/ui/visualisations/colorpalette.cpp should add these lines:
#include <stddef.h>                         // for size_t
#include <QChar>                            // for QChar, StringLiterals
#include <QMessageLogger>                   // for qDebug
#include <QRegularExpressionMatchIterator>  // for QRegularExpressionMatchIt...
#include <json.hpp>                         // for iter_impl, basic_json
#include <utility>                          // for as_const

/home/runner/work/graphia/graphia/source/shared/ui/visualisations/colorpalette.cpp should remove these lines:
- #include <algorithm>  // lines 30-30
- #include "shared/utils/utils.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/shared/ui/visualisations/colorpalette.cpp:
#include "colorpalette.h"
#include <json_helper.h>                    // for parseJsonFrom
#include <stddef.h>                         // for size_t
#include <QChar>                            // for QChar, StringLiterals
#include <QDebug>                           // for QDebug
#include <QMessageLogger>                   // for qDebug
#include <QRegularExpression>               // for QRegularExpressionMatch
#include <QRegularExpressionMatchIterator>  // for QRegularExpressionMatchIt...
#include <json.hpp>                         // for iter_impl, basic_json
#include <utility>                          // for as_const
#include "shared/utils/color.h"             // for colorForString
#include "shared/utils/container.h"         // for contains
---


/home/runner/work/graphia/graphia/source/shared/utils/consolecapture.h should add these lines:
#include <memory>   // for shared_ptr
#include <vector>   // for vector

/home/runner/work/graphia/graphia/source/shared/utils/consolecapture.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/consolecapture.h:
#include <QString>  // for QString
#include <cstdio>   // for FILE
#include <fstream>  // for ostream, ofstream, streambuf
#include <memory>   // for shared_ptr
#include <vector>   // for vector
---

/home/runner/work/graphia/graphia/source/shared/utils/consolecapture.cpp should add these lines:
#include <QByteArray>   // for QByteArray
#include <QLatin1Char>  // for StringLiterals

/home/runner/work/graphia/graphia/source/shared/utils/consolecapture.cpp should remove these lines:
- #include "odsconsolecapture.h"  // lines 20-20

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/consolecapture.cpp:
#include "consolecapture.h"
#include <QByteArray>   // for QByteArray
#include <QLatin1Char>  // for StringLiterals
#include <iostream>     // for cerr, cout
#include "console.h"    // for isRunningInConsole
#include "debugger.h"   // for isDebuggerPresent
---


(/home/runner/work/graphia/graphia/source/shared/utils/crypto.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/utils/crypto.cpp should add these lines:
#include <cryptopp/config_int.h>    // for byte
#include <cryptopp/filters.h>       // for SignatureVerificationFilter, Stri...
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <QByteArray>               // for QByteArray
#include <QIODevice>                // for QIODevice
#include <QString>                  // for QString
#include <exception>                // for exception

/home/runner/work/graphia/graphia/source/shared/utils/crypto.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/crypto.cpp:
#include "crypto.h"
#include <cryptopp/aes.h>           // for AES
#include <cryptopp/config_int.h>    // for byte
#include <cryptopp/filters.h>       // for SignatureVerificationFilter, Stri...
#include <cryptopp/modes.h>         // for CFB_Mode
#include <cryptopp/osrng.h>         // for AutoSeededRandomPool
#include <cryptopp/rsa.h>           // for RSA, RSAFunction, InvertibleRSAFu...
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <QByteArray>               // for QByteArray
#include <QFile>                    // for QFile
#include <QIODevice>                // for QIODevice
#include <QString>                  // for QString
#include <exception>                // for exception
#include "shared/utils/string.h"    // for bytesToHex
---


/home/runner/work/graphia/graphia/source/shared/utils/deferredexecutor.h should add these lines:
#include <stddef.h>            // for size_t

/home/runner/work/graphia/graphia/source/shared/utils/deferredexecutor.h should remove these lines:
- #include <atomic>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/deferredexecutor.h:
#include <stddef.h>            // for size_t
#include <QString>             // for QString
#include <condition_variable>  // for condition_variable_any
#include <deque>               // for deque
#include <functional>          // for function
#include <map>                 // for map
#include <mutex>               // for recursive_mutex
#include <thread>              // for thread
---

/home/runner/work/graphia/graphia/source/shared/utils/deferredexecutor.cpp should add these lines:
#include <qtenvironmentvariables.h>  // for qEnvironmentVariableIntValue
#include <QMessageLogger>            // for qDebug
#include <algorithm>                 // for min
#include <utility>                   // for move, pair

/home/runner/work/graphia/graphia/source/shared/utils/deferredexecutor.cpp should remove these lines:
- #include <QtGlobal>  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/deferredexecutor.cpp:
#include "deferredexecutor.h"
#include <qtenvironmentvariables.h>  // for qEnvironmentVariableIntValue
#include <QDebug>                    // for QDebug
#include <QMessageLogger>            // for qDebug
#include <algorithm>                 // for min
#include <utility>                   // for move, pair
#include "shared/utils/container.h"  // for contains
#include "shared/utils/thread.h"     // for currentThreadName
---


/home/runner/work/graphia/graphia/source/shared/utils/downloadqueue.h should add these lines:
#include <qtmetamacros.h>         // for Q_OBJECT, signals
class QTemporaryFile;
class QUrl;

/home/runner/work/graphia/graphia/source/shared/utils/downloadqueue.h should remove these lines:
- #include <QTemporaryFile>  // lines 29-29
- #include <QUrl>  // lines 27-27

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/downloadqueue.h:
#include <qtmetamacros.h>         // for Q_OBJECT, signals
#include <QNetworkAccessManager>  // for QNetworkAccessManager
#include <QObject>                // for QObject
#include <QString>                // for QString
#include <QTimer>                 // for QTimer
#include <map>                    // for map
#include <memory>                 // for unique_ptr
#include <queue>                  // for queue
class QNetworkReply;  // lines 33-33
class QTemporaryFile;
class QUrl;
---

/home/runner/work/graphia/graphia/source/shared/utils/downloadqueue.cpp should add these lines:
#include <qassert.h>           // for Q_ASSERT
#include <qtypes.h>            // for qint64
#include <QByteArray>          // for QByteArray
#include <QDebug>              // for QDebug
#include <QDir>                // for QDir
#include <QFile>               // for QFile
#include <QMessageLogger>      // for qDebug
#include <QNetworkRequest>     // for QNetworkRequest
#include <QStringLiteral>      // for qMakeStringPrivate, QStringLiteral
#include <QUrl>                // for QUrl
#include <QVariant>            // for QVariant
#include <utility>             // for pair

/home/runner/work/graphia/graphia/source/shared/utils/downloadqueue.cpp should remove these lines:
- #include <cstdio>  // lines 29-29
- #include <iostream>  // lines 28-28

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/downloadqueue.cpp:
#include "downloadqueue.h"
#include <qassert.h>           // for Q_ASSERT
#include <qtypes.h>            // for qint64
#include <QByteArray>          // for QByteArray
#include <QDebug>              // for QDebug
#include <QDir>                // for QDir
#include <QFile>               // for QFile
#include <QFileInfo>           // for QFileInfo
#include <QMessageLogger>      // for qDebug
#include <QNetworkReply>       // for QNetworkReply
#include <QNetworkRequest>     // for QNetworkRequest
#include <QRegularExpression>  // for QRegularExpression
#include <QStringLiteral>      // for qMakeStringPrivate, QStringLiteral
#include <QTemporaryDir>       // for QTemporaryDir
#include <QTemporaryFile>      // for QTemporaryFile
#include <QUrl>                // for QUrl
#include <QVariant>            // for QVariant
#include <algorithm>           // for any_of
#include <utility>             // for pair
---


(/home/runner/work/graphia/graphia/source/shared/utils/failurereason.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/utils/failurereason.cpp should add these lines:
#include <QLatin1Char>        // for StringLiterals
#include <QStringLiteral>     // for qMakeStringPrivate, QStringLiteral

/home/runner/work/graphia/graphia/source/shared/utils/failurereason.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/failurereason.cpp:
#include "failurereason.h"
#include <QLatin1Char>        // for StringLiterals
#include <QStringLiteral>     // for qMakeStringPrivate, QStringLiteral
#include "build_defines.h"    // for GIT_SHA
#include "source_location.h"  // for source_location
---


/home/runner/work/graphia/graphia/source/shared/utils/performancecounter.h should add these lines:
#include <bits/chrono.h>  // for time_point, high_resolution_clock, seconds
#include <utility>        // for move

/home/runner/work/graphia/graphia/source/shared/utils/performancecounter.h should remove these lines:
- #include <chrono>  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/performancecounter.h:
#include <bits/chrono.h>  // for time_point, high_resolution_clock, seconds
#include <deque>          // for deque
#include <functional>     // for function
#include <utility>        // for move
---

/home/runner/work/graphia/graphia/source/shared/utils/performancecounter.cpp should add these lines:
#include <stddef.h>   // for size_t
#include <algorithm>  // for copy, max
#include <compare>    // for operator>, strong_ordering

/home/runner/work/graphia/graphia/source/shared/utils/performancecounter.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/performancecounter.cpp:
#include "performancecounter.h"
#include <stddef.h>   // for size_t
#include <algorithm>  // for copy, max
#include <compare>    // for operator>, strong_ordering
---


/home/runner/work/graphia/graphia/source/shared/utils/modelcompleter.h should add these lines:
#include <qtmetamacros.h>               // for Q_PROPERTY, Q_OBJECT, signals
#include <QModelIndex>                  // for QModelIndex
#include <QTypeInfo>                    // for QTypeInfo<>::isValueInitializ...
#include <QtQml>                        // for qmlRegisterType

/home/runner/work/graphia/graphia/source/shared/utils/modelcompleter.h should remove these lines:
- #include <QAbstractItemModel>  // lines 26-26
- #include <QQmlEngine>  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/modelcompleter.h:
#include <qtmetamacros.h>               // for Q_PROPERTY, Q_OBJECT, signals
#include <QList>                        // for QList
#include <QModelIndex>                  // for QModelIndex
#include <QObject>                      // for QObject
#include <QString>                      // for QString
#include <QTypeInfo>                    // for QTypeInfo<>::isValueInitializ...
#include <QtQml>                        // for qmlRegisterType
#include "shared/utils/static_block.h"  // for static_block
---

/home/runner/work/graphia/graphia/source/shared/utils/modelcompleter.cpp should add these lines:
#include <QAbstractItemModel>  // for QAbstractItemModel
#include <QChar>               // for QChar, operator!=
#include <QVariant>            // for QVariant
#include <QVector>             // for QVector
#include <Qt>                  // for CaseSensitivity
#include <algorithm>           // for min

/home/runner/work/graphia/graphia/source/shared/utils/modelcompleter.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/modelcompleter.cpp:
#include "modelcompleter.h"
#include <QAbstractItemModel>  // for QAbstractItemModel
#include <QChar>               // for QChar, operator!=
#include <QVariant>            // for QVariant
#include <QVector>             // for QVector
#include <Qt>                  // for CaseSensitivity
#include <algorithm>           // for min
#include <limits>              // for numeric_limits
---


/home/runner/work/graphia/graphia/source/shared/utils/macosfileopeneventfilter.h should add these lines:
#include <qtmetamacros.h>  // for Q_OBJECT, signals
#include <QString>         // for QString

/home/runner/work/graphia/graphia/source/shared/utils/macosfileopeneventfilter.h should remove these lines:
- class QString;  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/macosfileopeneventfilter.h:
#include <qtmetamacros.h>  // for Q_OBJECT, signals
#include <QObject>         // for QObject
#include <QString>         // for QString
class QEvent;  // lines 24-24
---

/home/runner/work/graphia/graphia/source/shared/utils/macosfileopeneventfilter.cpp should add these lines:
#include <QUrl>            // for QUrl

/home/runner/work/graphia/graphia/source/shared/utils/macosfileopeneventfilter.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/macosfileopeneventfilter.cpp:
#include "macosfileopeneventfilter.h"
#include <QEvent>          // for QEvent
#include <QFileOpenEvent>  // for QFileOpenEvent
#include <QString>         // for QString
#include <QUrl>            // for QUrl
---


/home/runner/work/graphia/graphia/source/shared/utils/qmlcontrolcolors.h should add these lines:
#include <qtclasshelpermacros.h>        // for Q_DISABLE_COPY
#include <qtmetamacros.h>               // for Q_PROPERTY, Q_OBJECT, signals
#include <QTypeInfo>                    // for QTypeInfo<>::isValueInitializ...
#include <QtQml>                        // for qmlRegisterSingletonType
class QEvent;

/home/runner/work/graphia/graphia/source/shared/utils/qmlcontrolcolors.h should remove these lines:
- #include <QGuiApplication>  // lines 25-25
- #include <QQmlEngine>  // lines 24-24
- class QJSEngine;  // lines 31-31
- class QQmlEngine;  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/qmlcontrolcolors.h:
#include <qtclasshelpermacros.h>        // for Q_DISABLE_COPY
#include <qtmetamacros.h>               // for Q_PROPERTY, Q_OBJECT, signals
#include <QColor>                       // for QColor
#include <QObject>                      // for QObject
#include <QPalette>                     // for QPalette
#include <QTypeInfo>                    // for QTypeInfo<>::isValueInitializ...
#include <QtQml>                        // for qmlRegisterSingletonType
#include "shared/utils/static_block.h"  // for static_block
class QEvent;
---

/home/runner/work/graphia/graphia/source/shared/utils/qmlcontrolcolors.cpp should add these lines:
#include <QCoreApplication>  // for QCoreApplication
#include <QEvent>            // for QEvent
#include <QGuiApplication>   // for QGuiApplication
#include <QtCore>            // for operator<<, ColorScheme

/home/runner/work/graphia/graphia/source/shared/utils/qmlcontrolcolors.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/qmlcontrolcolors.cpp:
#include "qmlcontrolcolors.h"
#include <QCoreApplication>  // for QCoreApplication
#include <QEvent>            // for QEvent
#include <QGuiApplication>   // for QGuiApplication
#include <QStyleHints>       // for QStyleHints
#include <QtCore>            // for operator<<, ColorScheme
---


/home/runner/work/graphia/graphia/source/shared/utils/random.h should add these lines:
class QVector2D;
class QVector3D;

/home/runner/work/graphia/graphia/source/shared/utils/random.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/random.h:
#include <QColor>     // for QColor
#include <QVector2D>  // for QVector2D
#include <QVector3D>  // for QVector3D
class QVector2D;
class QVector3D;
---

(/home/runner/work/graphia/graphia/source/shared/utils/random.cpp has correct #includes/fwd-decls)


(/home/runner/work/graphia/graphia/source/shared/utils/static_block.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/utils/static_block.cpp should add these lines:
#include <utility>    // for pair

/home/runner/work/graphia/graphia/source/shared/utils/static_block.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/static_block.cpp:
#include "static_block.h"
#include <algorithm>  // for sort
#include <utility>    // for pair
#include <vector>     // for vector
---


/home/runner/work/graphia/graphia/source/shared/utils/scopetimer.h should add these lines:
#include <qtypes.h>                  // for qint64
#include <stddef.h>                  // for size_t
#include <QLatin1Char>               // for StringLiterals
#include <QStringLiteral>            // for QStringLiteral

/home/runner/work/graphia/graphia/source/shared/utils/scopetimer.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/scopetimer.h:
#include <qtypes.h>                  // for qint64
#include <stddef.h>                  // for size_t
#include <QElapsedTimer>             // for QElapsedTimer
#include <QLatin1Char>               // for StringLiterals
#include <QString>                   // for QString
#include <QStringLiteral>            // for QStringLiteral
#include <deque>                     // for deque
#include <map>                       // for map
#include <mutex>                     // for mutex
#include "shared/utils/singleton.h"  // for Singleton
---

/home/runner/work/graphia/graphia/source/shared/utils/scopetimer.cpp should add these lines:
#include <QMessageLogger>  // for qDebug
#include <utility>         // for pair

/home/runner/work/graphia/graphia/source/shared/utils/scopetimer.cpp should remove these lines:
- #include "shared/utils/container.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/scopetimer.cpp:
#include "scopetimer.h"
#include <QDebug>          // for QDebug
#include <QMessageLogger>  // for qDebug
#include <algorithm>       // for minmax_element
#include <cmath>           // for sqrt
#include <numeric>         // for accumulate
#include <utility>         // for pair
---


(/home/runner/work/graphia/graphia/source/shared/utils/showinfolder.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/utils/showinfolder.cpp should add these lines:
#include <qtconfigmacros.h>  // for QT_CONFIG
#include <qtcore-config.h>   // for QT_FEATURE_process
#include <QtCore>            // for Q_OS_UNIX, StringLiterals

/home/runner/work/graphia/graphia/source/shared/utils/showinfolder.cpp should remove these lines:
- #include <QDebug>  // lines 26-26
- #include <QDir>  // lines 23-23
- #include <QtGlobal>  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/showinfolder.cpp:
#include "showinfolder.h"
#include <qtconfigmacros.h>  // for QT_CONFIG
#include <qtcore-config.h>   // for QT_FEATURE_process
#include <QFileInfo>         // for QFileInfo
#include <QProcess>          // for QProcess
#include <QtCore>            // for Q_OS_UNIX, StringLiterals
---


(/home/runner/work/graphia/graphia/source/shared/utils/signalhandling.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/shared/utils/signalhandling.cpp should add these lines:
#include <initializer_list>  // for initializer_list

/home/runner/work/graphia/graphia/source/shared/utils/signalhandling.cpp should remove these lines:
- #include <unistd.h>  // lines 30-30
- #include <QtGlobal>  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/signalhandling.cpp:
#include "signalhandling.h"
#include <QCoreApplication>  // for QCoreApplication
#include <csignal>           // for sigaction, sigaddset, sigemptyset, SIGHUP
#include <initializer_list>  // for initializer_list
#include <iostream>          // for char_traits, operator<<, basic_ostream::...
---


/home/runner/work/graphia/graphia/source/shared/utils/utils.h should add these lines:
#include <stddef.h>  // for size_t

/home/runner/work/graphia/graphia/source/shared/utils/utils.h should remove these lines:
- #include <QString>  // lines 25-25
- #include <cmath>  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/utils.h:
#include <stddef.h>  // for size_t
#include <vector>    // for vector
---

/home/runner/work/graphia/graphia/source/shared/utils/utils.cpp should add these lines:
#include <qtresource.h>    // for Q_INIT_RESOURCE
#include <stdint.h>        // for uint64_t

/home/runner/work/graphia/graphia/source/shared/utils/utils.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/utils.cpp:
#include "utils.h"
#include <qtresource.h>    // for Q_INIT_RESOURCE
#include <stdint.h>        // for uint64_t
#include <numbers>         // for pi_v
#include "static_block.h"  // for static_block
---


/home/runner/work/graphia/graphia/source/shared/utils/string.h should add these lines:
#include <QLatin1Char>               // for StringLiterals

/home/runner/work/graphia/graphia/source/shared/utils/string.h should remove these lines:
- #include <sstream>  // lines 31-31

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/string.h:
#include <QLatin1Char>               // for StringLiterals
#include <QRegularExpression>        // for QRegularExpressionMatch, QRegula...
#include <QString>                   // for QString, operator""_s
#include <QStringList>               // for QStringList
#include <cstddef>                   // for byte, size_t
#include <iomanip>                   // for operator<<, setfill, setw
#include <istream>                   // for basic_ostream, basic_ostream::op...
#include <string>                    // for char_traits, string
#include <vector>                    // for vector
#include "shared/utils/container.h"  // for contains
---

/home/runner/work/graphia/graphia/source/shared/utils/string.cpp should add these lines:
#include <bits/std_abs.h>           // for abs
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <stdio.h>                  // for EOF
#include <QChar>                    // for QChar, operator==, StringLiterals
#include <QList>                    // for QList
#include <QStringLiteral>           // for qMakeStringPrivate, QStringLiteral
#include <algorithm>                // for copy, max
#include <cstdlib>                  // for strtol
#include <iterator>                 // for back_insert_iterator, back_inserter

/home/runner/work/graphia/graphia/source/shared/utils/string.cpp should remove these lines:
- #include <sstream>  // lines 27-27

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/string.cpp:
#include "string.h"
#include <bits/std_abs.h>           // for abs
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <stdio.h>                  // for EOF
#include <QChar>                    // for QChar, operator==, StringLiterals
#include <QList>                    // for QList
#include <QLocale>                  // for QLocale
#include <QRegularExpression>       // for QRegularExpression, QRegularExpre...
#include <QStringList>              // for QStringList
#include <QStringLiteral>           // for qMakeStringPrivate, QStringLiteral
#include <algorithm>                // for copy, max
#include <cmath>                    // for pow, isfinite
#include <cstdlib>                  // for strtol
#include <iterator>                 // for back_insert_iterator, back_inserter
#include <limits>                   // for numeric_limits
#include <vector>                   // for vector
---


/home/runner/work/graphia/graphia/source/shared/utils/threadpool.h should add these lines:
#include <qassert.h>                // for Q_ASSERT
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <stddef.h>                 // for size_t
#include <stdint.h>                 // for uint64_t
#include <QLatin1Char>              // for StringLiterals
#include <iterator>                 // for distance, forward_iterator_tag
class void_callable_wrapper;

/home/runner/work/graphia/graphia/source/shared/utils/threadpool.h should remove these lines:
- #include <algorithm>  // lines 30-30
- #include <atomic>  // lines 31-31
- #include <memory>  // lines 34-34
- #include "is_detected.h"  // lines 25-25
- #include "is_std_container.h"  // lines 24-24
- #include "void_callable_wrapper.h"  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/threadpool.h:
#include <qassert.h>                // for Q_ASSERT
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <stddef.h>                 // for size_t
#include <stdint.h>                 // for uint64_t
#include <QLatin1Char>              // for StringLiterals
#include <QString>                  // for operator""_s, QString
#include <condition_variable>       // for condition_variable
#include <future>                   // for future, packaged_task
#include <iterator>                 // for distance, forward_iterator_tag
#include <mutex>                    // for mutex, unique_lock
#include <queue>                    // for queue
#include <thread>                   // for thread
#include <type_traits>              // for enable_if_t, invoke_result_t
#include <utility>                  // for forward, exchange, declval
#include <vector>                   // for vector
#include "function_traits.h"        // for function_traits
#include "singleton.h"              // for Singleton
class void_callable_wrapper;
template <typename ResultsVectorOrVoid, bool = std::is_void_v<ResultsVectorOrVoid>> class ThreadPool::ResultMember;  // lines 84-85
---

/home/runner/work/graphia/graphia/source/shared/utils/threadpool.cpp should add these lines:
#include "utils/void_callable_wrapper.h"  // for void_callable_wrapper

/home/runner/work/graphia/graphia/source/shared/utils/threadpool.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/threadpool.cpp:
#include "threadpool.h"
#include "shared/utils/thread.h"          // for setCurrentThreadName
#include "utils/void_callable_wrapper.h"  // for void_callable_wrapper
---


/home/runner/work/graphia/graphia/source/shared/utils/typeidentity.h should add these lines:
#include <stddef.h>                       // for size_t

/home/runner/work/graphia/graphia/source/shared/utils/typeidentity.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/typeidentity.h:
#include <stddef.h>                       // for size_t
#include <array>                          // for array
#include "shared/attributes/valuetype.h"  // for ValueType
class QString;  // lines 26-26
---

/home/runner/work/graphia/graphia/source/shared/utils/typeidentity.cpp should add these lines:
#include <qassert.h>                // for Q_ASSERT
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include "attributes/valuetype.h"   // for ValueType

/home/runner/work/graphia/graphia/source/shared/utils/typeidentity.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/shared/utils/typeidentity.cpp:
#include "typeidentity.h"
#include <qassert.h>                // for Q_ASSERT
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <QString>                  // for QString
#include "attributes/valuetype.h"   // for ValueType
---


/home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.h should add these lines:
#include <QtGui/qopengl.h>            // for APIENTRY, APIENTRYP, GL_ARB_sam...
#include <QSurfaceFormat>             // for QSurfaceFormat

/home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.h should remove these lines:
- #include <memory>  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.h:
#include <QtGui/qopengl.h>            // for APIENTRY, APIENTRYP, GL_ARB_sam...
#include <QOpenGLFunctions_3_3_Core>  // for QOpenGLFunctions_3_3_Core
#include <QString>                    // for QString
#include <QSurfaceFormat>             // for QSurfaceFormat
---

/home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.cpp should add these lines:
#include <qassert.h>              // for Q_ASSERT
#include <QDebug>                 // for QDebug
#include <QMessageLogger>         // for qDebug, qFatal
#include <QtCore>                 // for QByteArrayLiteral, StringLiterals
#include <compare>                // for operator<
#include <utility>                // for operator<=>, pair

/home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.cpp:
#include "openglfunctions.h"
#include <qassert.h>              // for Q_ASSERT
#include <QDebug>                 // for QDebug
#include <QMessageLogger>         // for qDebug, qFatal
#include <QOffscreenSurface>      // for QOffscreenSurface
#include <QOpenGLContext>         // for QOpenGLContext
#include <QOpenGLExtraFunctions>  // for QOpenGLExtraFunctions
#include <QSurfaceFormat>         // for QSurfaceFormat
#include <QtCore>                 // for QByteArrayLiteral, StringLiterals
#include <compare>                // for operator<
#include <utility>                // for operator<=>, pair
---


/home/runner/work/graphia/graphia/source/messagebox/main.cpp should add these lines:
#include <QCommandLineOption>  // for QCommandLineOption
#include <QList>               // for QList
#include <QObject>             // for QObject
#include <QString>             // for QString, operator""_s, QTypeInfo<>::is...
#include <QStringLiteral>      // for qMakeStringPrivate, QStringLiteral
#include <QtCore>              // for QTypeInfo<>::isRelocatable, QHash, Str...

/home/runner/work/graphia/graphia/source/messagebox/main.cpp should remove these lines:
- #include <QAbstractButton>  // lines 24-24
- #include <QHash>  // lines 28-28

The full include-list for /home/runner/work/graphia/graphia/source/messagebox/main.cpp:
#include <QApplication>        // for QApplication
#include <QCommandLineOption>  // for QCommandLineOption
#include <QCommandLineParser>  // for QCommandLineParser
#include <QCoreApplication>    // for QCoreApplication
#include <QIcon>               // for QIcon
#include <QList>               // for QList
#include <QMessageBox>         // for QMessageBox
#include <QObject>             // for QObject
#include <QString>             // for QString, operator""_s, QTypeInfo<>::is...
#include <QStringList>         // for QStringList
#include <QStringLiteral>      // for qMakeStringPrivate, QStringLiteral
#include <QtCore>              // for QTypeInfo<>::isRelocatable, QHash, Str...
#include "build_defines.h"     // for VERSION
---


/home/runner/work/graphia/graphia/source/crashreporter/main.cpp should add these lines:
#include <bits/chrono.h>                                   // for operator""min
#include <google_breakpad/processor/code_module.h>         // for CodeModule
#include <google_breakpad/processor/process_result.h>      // for ProcessResult
#include <qassert.h>                                       // for Q_ASSERT
#include <qquickstyle.h>                                   // for QQuickStyle
#include <qtresource.h>                                    // for Q_INIT_RES...
#include <stddef.h>                                        // for size_t
#include <QByteArray>                                      // for QByteArray
#include <QCommandLineOption>                              // for QCommandLi...
#include <QCoreApplication>                                // for QCoreAppli...
#include <QEventLoop>                                      // for QEventLoop
#include <QFile>                                           // for QFile
#include <QHttpPart>                                       // for QHttpPart
#include <QIODevice>                                       // for QIODevice
#include <QList>                                           // for QList
#include <QMetaObject>                                     // for QMetaObject
#include <QObject>                                         // for QObject
#include <QString>                                         // for QString
#include <QStringLiteral>                                  // for qMakeStrin...
#include <QVariant>                                        // for QVariant
#include <QtCore>                                          // for QTypeInfo<...
#include <QtQml>                                           // for qmlRegiste...
#include <algorithm>                                       // for any_of
#include <utility>                                         // for pair
#include <vector>                                          // for vector

/home/runner/work/graphia/graphia/source/crashreporter/main.cpp should remove these lines:
- #include <QCryptographicHash>  // lines 33-33
- #include <QDebug>  // lines 34-34
- #include <QQuickStyle>  // lines 38-38
- #include <chrono>  // lines 44-44

The full include-list for /home/runner/work/graphia/graphia/source/crashreporter/main.cpp:
#include <bits/chrono.h>                                   // for operator""min
#include <google_breakpad/processor/call_stack.h>          // for CallStack
#include <google_breakpad/processor/code_module.h>         // for CodeModule
#include <google_breakpad/processor/minidump.h>            // for Minidump
#include <google_breakpad/processor/minidump_processor.h>  // for MinidumpPr...
#include <google_breakpad/processor/process_result.h>      // for ProcessResult
#include <google_breakpad/processor/process_state.h>       // for ProcessState
#include <google_breakpad/processor/stack_frame.h>         // for StackFrame
#include <processor/pathname_stripper.h>                   // for PathnameSt...
#include <qassert.h>                                       // for Q_ASSERT
#include <qquickstyle.h>                                   // for QQuickStyle
#include <qtresource.h>                                    // for Q_INIT_RES...
#include <stddef.h>                                        // for size_t
#include <QApplication>                                    // for QApplication
#include <QByteArray>                                      // for QByteArray
#include <QCommandLineOption>                              // for QCommandLi...
#include <QCommandLineParser>                              // for QCommandLi...
#include <QCoreApplication>                                // for QCoreAppli...
#include <QDirIterator>                                    // for QDirIterator
#include <QEventLoop>                                      // for QEventLoop
#include <QFile>                                           // for QFile
#include <QFileInfo>                                       // for QFileInfo
#include <QHttpMultiPart>                                  // for QHttpMulti...
#include <QHttpPart>                                       // for QHttpPart
#include <QIODevice>                                       // for QIODevice
#include <QIcon>                                           // for QIcon
#include <QList>                                           // for QList
#include <QMessageBox>                                     // for QMessageBox
#include <QMetaObject>                                     // for QMetaObject
#include <QNetworkAccessManager>                           // for QNetworkAc...
#include <QNetworkReply>                                   // for QNetworkReply
#include <QNetworkRequest>                                 // for QNetworkRe...
#include <QObject>                                         // for QObject
#include <QQmlApplicationEngine>                           // for QQmlApplic...
#include <QQmlContext>                                     // for QQmlContext
#include <QString>                                         // for QString
#include <QStringLiteral>                                  // for qMakeStrin...
#include <QSysInfo>                                        // for QSysInfo
#include <QTimer>                                          // for QTimer
#include <QUrl>                                            // for QUrl
#include <QVariant>                                        // for QVariant
#include <QtCore>                                          // for QTypeInfo<...
#include <QtQml>                                           // for qmlRegiste...
#include <algorithm>                                       // for any_of
#include <iostream>                                        // for operator<<
#include <map>                                             // for map, opera...
#include <regex>                                           // for regex_match
#include <string>                                          // for allocator
#include <utility>                                         // for pair
#include <vector>                                          // for vector
#include "app/rendering/openglfunctions.h"                 // for OpenGLFunc...
#include "build_defines.h"                                 // for VERSION
#include "report.h"                                        // for Report
#include "shared/utils/preferences.h"                      // for getPref
#include "shared/utils/qmlcontrolcolors.h"                 // for QmlControl...
---


/home/runner/work/graphia/graphia/source/updater/installer.h should add these lines:
#include <qtmetamacros.h>  // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT, signals

/home/runner/work/graphia/graphia/source/updater/installer.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/updater/installer.h:
#include <json_helper.h>   // for json
#include <qtmetamacros.h>  // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT, signals
#include <QObject>         // for QObject
#include <QProcess>        // for QProcess
#include <QString>         // for QString
---

/home/runner/work/graphia/graphia/source/updater/installer.cpp should add these lines:
#include <qoverload.h>                 // for QOverload
#include <QByteArray>                  // for operator+, QByteArray
#include <QList>                       // for QList
#include <QStringList>                 // for QStringList
#include <QtCore>                      // for operator<<, Q_OS_UNIX, StringL...

/home/runner/work/graphia/graphia/source/updater/installer.cpp should remove these lines:
- #include <QFutureWatcher>  // lines 29-29
- #include <iostream>  // lines 31-31
- #include "shared/utils/scope_exit.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/updater/installer.cpp:
#include "installer.h"
#include <qoverload.h>                 // for QOverload
#include <QByteArray>                  // for operator+, QByteArray
#include <QFile>                       // for QFile
#include <QList>                       // for QList
#include <QString>                     // for QString, operator!=, operator""_s
#include <QStringList>                 // for QStringList
#include <QtCore>                      // for operator<<, Q_OS_UNIX, StringL...
#include "shared/updates/updates.h"    // for fullyQualifiedInstallerFileName
#include "shared/utils/checksum.h"     // for sha256ChecksumMatchesFile
#include "shared/utils/container.h"    // for contains
#include "shared/utils/doasyncthen.h"  // for doAsync, _Then
---


/home/runner/work/graphia/graphia/source/plugins/correlation/columnannotation.h should add these lines:
#include <stddef.h>  // for size_t

/home/runner/work/graphia/graphia/source/plugins/correlation/columnannotation.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/columnannotation.h:
#include <stddef.h>  // for size_t
#include <QString>   // for QString
#include <limits>    // for numeric_limits
#include <map>       // for map
#include <vector>    // for vector
---

/home/runner/work/graphia/graphia/source/plugins/correlation/columnannotation.cpp should add these lines:
#include <qassert.h>                 // for Q_ASSERT
#include <QDebug>                    // for QDebug
#include <QMessageLogger>            // for qDebug
#include <algorithm>                 // for max, min
#include <utility>                   // for pair

/home/runner/work/graphia/graphia/source/plugins/correlation/columnannotation.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/columnannotation.cpp:
#include "columnannotation.h"
#include <qassert.h>                 // for Q_ASSERT
#include <QDebug>                    // for QDebug
#include <QMessageLogger>            // for qDebug
#include <algorithm>                 // for max, min
#include <utility>                   // for pair
#include "shared/utils/container.h"  // for contains
#include "shared/utils/string.h"     // for toNumber, isNumeric
---


/home/runner/work/graphia/graphia/source/updater/main.cpp should add these lines:
#include <qassert.h>                                  // for Q_ASSERT
#include <qquickstyle.h>                              // for QQuickStyle
#include <qtenvironmentvariables.h>                   // for qEnvironmentVar...
#include <qtresource.h>                               // for Q_INIT_RESOURCE
#include <QByteArray>                                 // for QByteArray
#include <QFile>                                      // for QFile
#include <QIODevice>                                  // for QIODevice
#include <QList>                                      // for QList
#include <QObject>                                    // for QObject
#include <QString>                                    // for operator""_s
#include <QStringList>                                // for QStringList
#include <QStringLiteral>                             // for qMakeStringPrivate
#include <QUrl>                                       // for QUrl
#include <QVariant>                                   // for QVariant
#include <QtCore>                                     // for QTypeInfo<>::is...
#include <QtQml>                                      // for qmlRegisterSing...
#include <json.hpp>                                   // for basic_json, ite...
#include <string>                                     // for operator<<

/home/runner/work/graphia/graphia/source/updater/main.cpp should remove these lines:
- #include <QDebug>  // lines 41-41
- #include <QQuickStyle>  // lines 38-38

The full include-list for /home/runner/work/graphia/graphia/source/updater/main.cpp:
#include <qassert.h>                                  // for Q_ASSERT
#include <qquickstyle.h>                              // for QQuickStyle
#include <qtenvironmentvariables.h>                   // for qEnvironmentVar...
#include <qtresource.h>                               // for Q_INIT_RESOURCE
#include <qtsingleapplication/qtsingleapplication.h>  // for QtSingleApplica...
#include <QApplication>                               // for QApplication
#include <QByteArray>                                 // for QByteArray
#include <QDir>                                       // for QDir
#include <QFile>                                      // for QFile
#include <QFileInfo>                                  // for QFileInfo
#include <QIODevice>                                  // for QIODevice
#include <QIcon>                                      // for QIcon
#include <QList>                                      // for QList
#include <QObject>                                    // for QObject
#include <QProcess>                                   // for QProcess
#include <QQmlApplicationEngine>                      // for QQmlApplication...
#include <QQmlContext>                                // for QQmlContext
#include <QRegularExpression>                         // for QRegularExpression
#include <QStandardPaths>                             // for QStandardPaths
#include <QString>                                    // for operator""_s
#include <QStringList>                                // for QStringList
#include <QStringLiteral>                             // for qMakeStringPrivate
#include <QTemporaryDir>                              // for QTemporaryDir
#include <QUrl>                                       // for QUrl
#include <QVariant>                                   // for QVariant
#include <QtCore>                                     // for QTypeInfo<>::is...
#include <QtQml>                                      // for qmlRegisterSing...
#include <iostream>                                   // for char_traits
#include <json.hpp>                                   // for basic_json, ite...
#include <string>                                     // for operator<<
#include "build_defines.h"                            // for VERSION
#include "installer.h"                                // for Installer
#include "shared/updates/updates.h"                   // for latestUpdateJson
#include "shared/utils/consolecapture.h"              // for captureConsoleO...
#include "shared/utils/container.h"                   // for contains
#include "shared/utils/preferences.h"                 // for getPref
#include "shared/utils/qmlcontrolcolors.h"            // for QmlControlColors
---


/home/runner/work/graphia/graphia/source/updater/editor/main.cpp should add these lines:
#include <qassert.h>                    // for Q_ASSERT
#include <qquickstyle.h>                // for QQuickStyle
#include <qtresource.h>                 // for Q_INIT_RESOURCE
#include <QCoreApplication>             // for QCoreApplication
#include <QList>                        // for QList
#include <QStringLiteral>               // for qMakeStringPrivate, QStringLi...
#include <QVariant>                     // for QVariant
#include <QtCore>                       // for QTypeInfo<>::isValueInitializ...
#include <QtQml>                        // for qmlRegisterSingletonType

/home/runner/work/graphia/graphia/source/updater/editor/main.cpp should remove these lines:
- #include <json_helper.h>  // lines 33-33
- #include <QQuickStyle>  // lines 31-31

The full include-list for /home/runner/work/graphia/graphia/source/updater/editor/main.cpp:
#include <qassert.h>                    // for Q_ASSERT
#include <qquickstyle.h>                // for QQuickStyle
#include <qtresource.h>                 // for Q_INIT_RESOURCE
#include <QApplication>                 // for QApplication
#include <QCoreApplication>             // for QCoreApplication
#include <QIcon>                        // for QIcon
#include <QList>                        // for QList
#include <QQmlApplicationEngine>        // for QQmlApplicationEngine
#include <QSettings>                    // for QSettings
#include <QString>                      // for operator""_s
#include <QStringLiteral>               // for qMakeStringPrivate, QStringLi...
#include <QUrl>                         // for QUrl
#include <QVariant>                     // for QVariant
#include <QtCore>                       // for QTypeInfo<>::isValueInitializ...
#include <QtQml>                        // for qmlRegisterSingletonType
#include "build_defines.h"              // for VERSION
#include "shared/utils/preferences.h"   // for getPref
#include "shared/utils/qmlutils.h"      // for QmlUtils
#include "shared/utils/static_block.h"  // for execute_static_blocks
---


/home/runner/work/graphia/graphia/source/plugins/correlation/correlationdatavector.h should add these lines:
#include <qassert.h>                  // for Q_ASSERT
#include <stddef.h>                   // for size_t
#include <stdint.h>                   // for uint64_t

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationdatavector.h should remove these lines:
- #include <iterator>  // lines 28-28
- #include <limits>  // lines 27-27
- #include <type_traits>  // lines 31-31

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationdatavector.h:
#include <qassert.h>                  // for Q_ASSERT
#include <stddef.h>                   // for size_t
#include <stdint.h>                   // for uint64_t
#include <QString>                    // for QString
#include <map>                        // for map
#include <memory>                     // for shared_ptr
#include <vector>                     // for vector
#include "shared/graph/elementid.h"   // for NodeId
#include "shared/utils/container.h"   // for contains
#include "shared/utils/statistics.h"  // for Statistics
---

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationdatavector.cpp should add these lines:

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationdatavector.cpp should remove these lines:
- #include <algorithm>  // lines 23-23
- #include <cmath>  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationdatavector.cpp:
#include "correlationdatavector.h"
#include "shared/utils/container.h"  // for rankingOf
---


/home/runner/work/graphia/graphia/source/plugins/correlation/correlation.h should add these lines:
#include <stddef.h>                         // for size_t
#include <stdint.h>                         // for uint64_t
#include <QLatin1Char>                      // for StringLiterals
#include <QMap>                             // for QMap
#include <QVariant>                         // for QVariant
#include <algorithm>                        // for transform, max
#include <atomic>                           // for atomic, __atomic_base
#include <memory>                           // for unique_ptr
#include <utility>                          // for declval, move
#include <variant>                          // for monostate
#include "shared/utils/qmlenum.h"           // for normaliseQmlEnum

/home/runner/work/graphia/graphia/source/plugins/correlation/correlation.h should remove these lines:
- #include "shared/utils/is_detected.h"  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlation.h:
#include <stddef.h>                         // for size_t
#include <stdint.h>                         // for uint64_t
#include <QLatin1Char>                      // for StringLiterals
#include <QMap>                             // for QMap
#include <QObject>                          // for QObject
#include <QString>                          // for QString, operator""_s
#include <QVariant>                         // for QVariant
#include <QVariantMap>                      // for QVariantMap
#include <algorithm>                        // for transform, max
#include <atomic>                           // for atomic, __atomic_base
#include <cmath>                            // for isfinite
#include <iterator>                         // for back_inserter, distance
#include <memory>                           // for unique_ptr
#include <utility>                          // for declval, move
#include <variant>                          // for monostate
#include <vector>                           // for vector
#include "correlationdatavector.h"          // for DiscreteDataVector, Conti...
#include "correlationtype.h"                // for CorrelationPolarity, corr...
#include "knnprotograph.h"                  // for KnnProtoGraph
#include "shared/graph/covariancematrix.h"  // for CovarianceMatrix
#include "shared/graph/edgelist.h"          // for EdgeList, EdgeListEdge
#include "shared/utils/cancellable.h"       // for Cancellable
#include "shared/utils/progressable.h"      // for Progressable
#include "shared/utils/qmlenum.h"           // for normaliseQmlEnum
#include "shared/utils/redirects.h"         // for redirectLink
#include "shared/utils/threadpool.h"        // for ThreadPool
---

/home/runner/work/graphia/graphia/source/plugins/correlation/correlation.cpp should add these lines:
#include <bits/std_abs.h>             // for abs
#include <numeric>                    // for inner_product
#include "shared/utils/statistics.h"  // for medianOf

/home/runner/work/graphia/graphia/source/plugins/correlation/correlation.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlation.cpp:
#include "correlation.h"
#include <bits/std_abs.h>             // for abs
#include <numeric>                    // for inner_product
#include "shared/utils/statistics.h"  // for medianOf
---


/home/runner/work/graphia/graphia/source/plugins/correlation/correlationnodeattributetablemodel.h should add these lines:
#include <qtmetamacros.h>                            // for Q_OBJECT
#include <stddef.h>                                  // for size_t
#include <QStringList>                               // for QStringList
#include <QVariant>                                  // for QVariant

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationnodeattributetablemodel.h should remove these lines:
- #include <QObject>  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationnodeattributetablemodel.h:
#include <qtmetamacros.h>                            // for Q_OBJECT
#include <stddef.h>                                  // for size_t
#include <QString>                                   // for QString
#include <QStringList>                               // for QStringList
#include <QVariant>                                  // for QVariant
#include <map>                                       // for map
#include <vector>                                    // for vector
#include "shared/plugins/nodeattributetablemodel.h"  // for NodeAttributeTab...
---

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationnodeattributetablemodel.cpp should add these lines:
#include <qassert.h>                 // for Q_ASSERT
#include <QLatin1Char>               // for StringLiterals
#include <QList>                     // for QList

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationnodeattributetablemodel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationnodeattributetablemodel.cpp:
#include "correlationnodeattributetablemodel.h"
#include <qassert.h>                 // for Q_ASSERT
#include <QLatin1Char>               // for StringLiterals
#include <QList>                     // for QList
#include <algorithm>                 // for transform
#include "shared/utils/container.h"  // for contains
---


/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotitem_discrete.cpp should add these lines:
#include <qcustomplot.h>                               // for QCPAxis, QCPBars
#include <stddef.h>                                    // for size_t
#include <QColor>                                      // for QColor
#include <QList>                                       // for QList
#include <QMetaObject>                                 // for argument, Q_ARG
#include <QPen>                                        // for QPen
#include <QSharedPointer>                              // for QSharedPointer
#include <QString>                                     // for QString, opera...
#include <QtCore>                                      // for ConnectionType
#include <algorithm>                                   // for max_element
#include <utility>                                     // for as_const
#include <vector>                                      // for vector
#include "shared/utils/container.h"                    // for keysFor

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotitem_discrete.cpp should remove these lines:
- #include "shared/utils/color.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotitem_discrete.cpp:
#include <qcustomplot.h>                               // for QCPAxis, QCPBars
#include <stddef.h>                                    // for size_t
#include <QColor>                                      // for QColor
#include <QList>                                       // for QList
#include <QMetaObject>                                 // for argument, Q_ARG
#include <QPen>                                        // for QPen
#include <QSharedPointer>                              // for QSharedPointer
#include <QString>                                     // for QString, opera...
#include <QtCore>                                      // for ConnectionType
#include <algorithm>                                   // for max_element
#include <map>                                         // for map, operator==
#include <utility>                                     // for as_const
#include <vector>                                      // for vector
#include "correlationplotitem.h"                       // for CorrelationPlo...
#include "correlationplugin.h"                         // for CorrelationPlu...
#include "shared/ui/visualisations/colorpalette.h"     // for ColorPalette
#include "shared/ui/visualisations/defaultpalettes.h"  // for PALETTE
#include "shared/utils/container.h"                    // for keysFor
---


/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotitem.h should add these lines:
#include <qtmetamacros.h>              // for Q_PROPERTY, Q_INVOKABLE, Q_GADGET
#include <stddef.h>                    // for size_t
#include <QColor>                      // for QColor
#include <QFont>                       // for QFont
#include <QFontMetrics>                // for QFontMetrics
#include <QObject>                     // for QObject
#include <QPoint>                      // for QPoint
#include <QPointF>                     // for QPointF
#include <QString>                     // for QString
#include <QVariant>                    // for QVariant
#include <limits>                      // for numeric_limits
#include <thread>                      // for thread
#include <utility>                     // for pair
class CorrelationPluginInstance;
class QEvent;
class QOffscreenSurface;
class QPainter;
class QQuickItem;
class QUrl;

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotitem.h should remove these lines:
- #include <QOffscreenSurface>  // lines 41-41
- #include <QVariantList>  // lines 36-36
- #include "columnannotation.h"  // lines 24-24
- #include "correlationplugin.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotitem.h:
#include <qcustomplot.h>               // for QCPAxis (ptr only), QCPAxisRec...
#include <qcustomplotcolorprovider.h>  // for QCustomPlotColorProvider
#include <qtmetamacros.h>              // for Q_PROPERTY, Q_INVOKABLE, Q_GADGET
#include <stddef.h>                    // for size_t
#include <QColor>                      // for QColor
#include <QElapsedTimer>               // for QElapsedTimer
#include <QFont>                       // for QFont
#include <QFontMetrics>                // for QFontMetrics
#include <QList>                       // for QList
#include <QMap>                        // for QMap
#include <QObject>                     // for QObject
#include <QPixmap>                     // for QPixmap
#include <QPoint>                      // for QPoint
#include <QPointF>                     // for QPointF
#include <QQuickPaintedItem>           // for QQuickPaintedItem
#include <QString>                     // for QString
#include <QStringList>                 // for QStringList
#include <QThread>                     // for QThread
#include <QVariant>                    // for QVariant
#include <QVariantMap>                 // for QVariantMap
#include <QVector>                     // for QVector
#include <atomic>                      // for atomic_bool
#include <limits>                      // for numeric_limits
#include <map>                         // for map
#include <mutex>                       // for recursive_mutex
#include <set>                         // for set
#include <thread>                      // for thread
#include <utility>                     // for pair
#include <vector>                      // for vector
#include "shared/utils/qmlenum.h"      // for DEFINE_QML_ENUM
class CorrelationPluginInstance;
class QCPColumnAnnotations;  // lines 49-49
class QEvent;
class QOffscreenSurface;
class QPainter;
class QQuickItem;
class QUrl;
---

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotitem.cpp should add these lines:
#include <qassert.h>                          // for Q_ASSERT
#include <qtenvironmentvariables.h>           // for qEnvironmentVariableInt...
#include <QEvent>                             // for QEvent
#include <QFileInfo>                          // for QFileInfo
#include <QHoverEvent>                        // for QHoverEvent
#include <QImage>                             // for QImage
#include <QMargins>                           // for QMargins
#include <QMessageLogger>                     // for qDebug
#include <QMetaObject>                        // for argument, Q_ARG, QMetaO...
#include <QMouseEvent>                        // for QMouseEvent
#include <QOffscreenSurface>                  // for QOffscreenSurface
#include <QPainter>                           // for QPainter
#include <QPen>                               // for QPen
#include <QQuickItem>                         // for QQuickItem
#include <QRect>                              // for QRect
#include <QRectF>                             // for QRectF
#include <QRegularExpression>                 // for QRegularExpression
#include <QRgb>                               // for qAlpha, qGray, QRgb
#include <QSharedPointer>                     // for QSharedPointer
#include <QSize>                              // for QSize
#include <QStringLiteral>                     // for qMakeStringPrivate, QSt...
#include <QSurfaceFormat>                     // for QSurfaceFormat
#include <QUrl>                               // for QUrl
#include <QWheelEvent>                        // for QWheelEvent
#include <QtCore>                             // for SortOrder, ConnectionType
#include <QtGui>                              // for QBrush
#include <iterator>                           // for back_insert_iterator
#include <memory>                             // for make_unique, unique_ptr
#include "columnannotation.h"                 // for ColumnAnnotation
#include "shared/commands/icommandmanager.h"  // for ExecutePolicy, ICommand...
#include "shared/graph/igraphmodel.h"         // for VisualChangeFlags
#include "shared/utils/statistics.h"          // for medianOf

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotitem.cpp should remove these lines:
- #include <QDesktopServices>  // lines 36-36
- #include <QSet>  // lines 37-37
- #include "qcpcolumnannotations.h"  // lines 24-24
- #include "shared/utils/color.h"  // lines 30-30
- #include "shared/utils/random.h"  // lines 29-29
- #include "shared/utils/utils.h"  // lines 28-28

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotitem.cpp:
#include "correlationplotitem.h"
#include <qassert.h>                          // for Q_ASSERT
#include <qtenvironmentvariables.h>           // for qEnvironmentVariableInt...
#include <QCollator>                          // for QCollator
#include <QDebug>                             // for QDebug
#include <QEvent>                             // for QEvent
#include <QFileInfo>                          // for QFileInfo
#include <QHoverEvent>                        // for QHoverEvent
#include <QImage>                             // for QImage
#include <QMargins>                           // for QMargins
#include <QMessageLogger>                     // for qDebug
#include <QMetaObject>                        // for argument, Q_ARG, QMetaO...
#include <QMouseEvent>                        // for QMouseEvent
#include <QOffscreenSurface>                  // for QOffscreenSurface
#include <QPainter>                           // for QPainter
#include <QPen>                               // for QPen
#include <QQuickItem>                         // for QQuickItem
#include <QQuickWindow>                       // for QQuickWindow
#include <QRect>                              // for QRect
#include <QRectF>                             // for QRectF
#include <QRegularExpression>                 // for QRegularExpression
#include <QRgb>                               // for qAlpha, qGray, QRgb
#include <QSharedPointer>                     // for QSharedPointer
#include <QSize>                              // for QSize
#include <QStringLiteral>                     // for qMakeStringPrivate, QSt...
#include <QSurfaceFormat>                     // for QSurfaceFormat
#include <QUrl>                               // for QUrl
#include <QWheelEvent>                        // for QWheelEvent
#include <QtCore>                             // for SortOrder, ConnectionType
#include <QtGui>                              // for QBrush
#include <algorithm>                          // for max, min, any_of, clamp
#include <cmath>                              // for round
#include <iterator>                           // for back_insert_iterator
#include <map>                                // for operator==, map, _Rb_tr...
#include <memory>                             // for make_unique, unique_ptr
#include <numeric>                            // for iota
#include <vector>                             // for vector, operator==, all...
#include "columnannotation.h"                 // for ColumnAnnotation
#include "correlationplotsaveimagecommand.h"  // for CorrelationPlotSaveImag...
#include "correlationplugin.h"                // for CorrelationPluginInstance
#include "shared/commands/icommandmanager.h"  // for ExecutePolicy, ICommand...
#include "shared/graph/igraphmodel.h"         // for VisualChangeFlags
#include "shared/utils/container.h"           // for containsAllOf
#include "shared/utils/fatalerror.h"          // for FATAL_ERROR
#include "shared/utils/flags.h"               // for Flags
#include "shared/utils/scope_exit.h"          // for make_scope_exit
#include "shared/utils/statistics.h"          // for medianOf
#include "shared/utils/string.h"              // for toNumber, formatNumberS...
#include "shared/utils/thread.h"              // for setCurrentThreadName
---


/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotitem_continuous.cpp should add these lines:
#include <qassert.h>                              // for Q_ASSERT
#include <qcustomplot.h>                          // for QCPGraph, QCPAxis
#include <qtmetamacros.h>                         // for emit
#include <stddef.h>                               // for size_t
#include <QApplication>                           // for QApplication
#include <QColor>                                 // for QColor
#include <QList>                                  // for QList
#include <QMap>                                   // for QMap
#include <QMetaObject>                            // for argument, Q_ARG
#include <QObject>                                // for QObject
#include <QPalette>                               // for QPalette
#include <QPen>                                   // for QPen
#include <QSharedPointer>                         // for QSharedPointer
#include <QString>                                // for QString, operator!=
#include <QVector>                                // for QVector
#include <QtCore>                                 // for PenStyle, Connectio...
#include <QtGui>                                  // for QBrush
#include <algorithm>                              // for max, min, nth_element
#include <cmath>                                  // for sqrt, exp, log, isf...
#include <iterator>                               // for back_insert_iterator
#include <limits>                                 // for numeric_limits
#include <numeric>                                // for iota, accumulate
#include <set>                                    // for set
#include <utility>                                // for as_const, pair, move
#include <vector>                                 // for vector
#include "shared/utils/qmlenum.h"                 // for normaliseQmlEnum
#include "shared/utils/string.h"                  // for toNumber

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotitem_continuous.cpp should remove these lines:
- #include "qcpcolumnannotations.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotitem_continuous.cpp:
#include <qassert.h>                              // for Q_ASSERT
#include <qcustomplot.h>                          // for QCPGraph, QCPAxis
#include <qtmetamacros.h>                         // for emit
#include <stddef.h>                               // for size_t
#include <QApplication>                           // for QApplication
#include <QColor>                                 // for QColor
#include <QList>                                  // for QList
#include <QMap>                                   // for QMap
#include <QMetaObject>                            // for argument, Q_ARG
#include <QObject>                                // for QObject
#include <QPalette>                               // for QPalette
#include <QPen>                                   // for QPen
#include <QSharedPointer>                         // for QSharedPointer
#include <QString>                                // for QString, operator!=
#include <QVector>                                // for QVector
#include <QtCore>                                 // for PenStyle, Connectio...
#include <QtGui>                                  // for QBrush
#include <algorithm>                              // for max, min, nth_element
#include <cmath>                                  // for sqrt, exp, log, isf...
#include <iterator>                               // for back_insert_iterator
#include <limits>                                 // for numeric_limits
#include <numeric>                                // for iota, accumulate
#include <set>                                    // for set
#include <utility>                                // for as_const, pair, move
#include <vector>                                 // for vector
#include "correlationplotitem.h"                  // for CorrelationPlotItem
#include "correlationplugin.h"                    // for CorrelationPluginIn...
#include "shared/utils/container_randomsample.h"  // for randomSample
#include "shared/utils/qmlenum.h"                 // for normaliseQmlEnum
#include "shared/utils/statistics.h"              // for medianOf
#include "shared/utils/string.h"                  // for toNumber
---


/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotitem_columnannotations.cpp should add these lines:
#include <qassert.h>                 // for Q_ASSERT
#include <qcustomplot.h>             // for QCPAxisRect, operator|, QCPAxis
#include <qtmetamacros.h>            // for emit
#include <stddef.h>                  // for size_t
#include <QColor>                    // for QColor
#include <QFlags>                    // for QFlags
#include <QList>                     // for QList
#include <QMap>                      // for QMap
#include <QMargins>                  // for QMargins
#include <QMouseEvent>               // for QMouseEvent
#include <QPen>                      // for QPen
#include <QPoint>                    // for QPoint
#include <QPointF>                   // for operator-, QPointF
#include <QRect>                     // for QRect
#include <QSharedPointer>            // for QSharedPointer
#include <QString>                   // for QString, operator""_s, operator<
#include <QStringList>               // for QStringList
#include <QVariant>                  // for QVariant
#include <QVector>                   // for QVector
#include <QWidget>                   // for QWIDGETSIZE_MAX
#include <QtCore>                    // for GlobalColor, SortOrder, Keyboard...
#include <algorithm>                 // for equal, all_of, max, min, remove_if
#include <functional>                // for less
#include <iterator>                  // for back_insert_iterator, back_inserter
#include <limits>                    // for numeric_limits
#include <set>                       // for set, operator==, _Rb_tree_const_...
#include <utility>                   // for as_const, move, pair
#include <vector>                    // for vector, allocator
#include "columnannotation.h"        // for ColumnAnnotation
#include "shared/utils/qmlenum.h"    // for normaliseQmlEnum

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotitem_columnannotations.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotitem_columnannotations.cpp:
#include <qassert.h>                 // for Q_ASSERT
#include <qcustomplot.h>             // for QCPAxisRect, operator|, QCPAxis
#include <qtmetamacros.h>            // for emit
#include <stddef.h>                  // for size_t
#include <QColor>                    // for QColor
#include <QFlags>                    // for QFlags
#include <QList>                     // for QList
#include <QMap>                      // for QMap
#include <QMargins>                  // for QMargins
#include <QMouseEvent>               // for QMouseEvent
#include <QPen>                      // for QPen
#include <QPoint>                    // for QPoint
#include <QPointF>                   // for operator-, QPointF
#include <QRect>                     // for QRect
#include <QSharedPointer>            // for QSharedPointer
#include <QString>                   // for QString, operator""_s, operator<
#include <QStringList>               // for QStringList
#include <QVariant>                  // for QVariant
#include <QVector>                   // for QVector
#include <QWidget>                   // for QWIDGETSIZE_MAX
#include <QtCore>                    // for GlobalColor, SortOrder, Keyboard...
#include <algorithm>                 // for equal, all_of, max, min, remove_if
#include <functional>                // for less
#include <iterator>                  // for back_insert_iterator, back_inserter
#include <limits>                    // for numeric_limits
#include <set>                       // for set, operator==, _Rb_tree_const_...
#include <utility>                   // for as_const, move, pair
#include <vector>                    // for vector, allocator
#include "columnannotation.h"        // for ColumnAnnotation
#include "correlationplotitem.h"     // for CorrelationPlotItem, PlotMode
#include "correlationplugin.h"       // for CorrelationPluginInstance
#include "qcpcolumnannotations.h"    // for QCPColumnAnnotations
#include "shared/utils/container.h"  // for contains
#include "shared/utils/qmlenum.h"    // for normaliseQmlEnum
---


/home/runner/work/graphia/graphia/source/plugins/correlation/featurescaling.h should add these lines:
#include "correlationdatavector.h"  // for ContinuousDataVectors
class IParser;

/home/runner/work/graphia/graphia/source/plugins/correlation/featurescaling.h should remove these lines:
- #include <vector>  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/featurescaling.h:
#include "correlationdatavector.h"  // for ContinuousDataVectors
#include "normaliser.h"             // for Normaliser
class IParser;
---

/home/runner/work/graphia/graphia/source/plugins/correlation/featurescaling.cpp should add these lines:
#include <stddef.h>                  // for size_t
#include <stdint.h>                  // for uint64_t
#include <vector>                    // for vector

/home/runner/work/graphia/graphia/source/plugins/correlation/featurescaling.cpp should remove these lines:
- #include "shared/utils/cancellable.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/featurescaling.cpp:
#include "featurescaling.h"
#include <stddef.h>                  // for size_t
#include <stdint.h>                  // for uint64_t
#include <algorithm>                 // for max, min
#include <cmath>                     // for sqrt
#include <limits>                    // for numeric_limits
#include <vector>                    // for vector
#include "shared/loading/iparser.h"  // for IParser
---


/home/runner/work/graphia/graphia/source/plugins/correlation/correlationtype.h should add these lines:
#include <qtmetamacros.h>          // for Q_GADGET

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationtype.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationtype.h:
#include <qtmetamacros.h>          // for Q_GADGET
#include "shared/utils/qmlenum.h"  // for DEFINE_QML_ENUM
---

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationtype.cpp should add these lines:
#include <bits/std_abs.h>  // for abs

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationtype.cpp should remove these lines:
- #include <cmath>  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationtype.cpp:
#include "correlationtype.h"
#include <bits/std_abs.h>  // for abs
---


/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotsaveimagecommand.h should add these lines:
#include <qtmetamacros.h>                   // for Q_OBJECT, signals, slots
#include <QVector>                          // for QVector

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotsaveimagecommand.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotsaveimagecommand.h:
#include <qtmetamacros.h>                   // for Q_OBJECT, signals, slots
#include <QObject>                          // for QObject
#include <QString>                          // for QString
#include <QVector>                          // for QVector
#include <condition_variable>               // for condition_variable
#include <deque>                            // for deque
#include <mutex>                            // for mutex
#include "correlationplotitem.h"            // for CorrelationPlotItem
#include "shared/commands/icommand.h"       // for ICommand
#include "shared/utils/deferredexecutor.h"  // for DeferredExecutor
---

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotsaveimagecommand.cpp should add these lines:
#include <qassert.h>         // for Q_ASSERT
#include <QDir>              // for QDir
#include <QtCore>            // for CaseSensitivity, StringLiterals
#include <algorithm>         // for copy
#include <iostream>          // for operator<<, cerr

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotsaveimagecommand.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationplotsaveimagecommand.cpp:
#include "correlationplotsaveimagecommand.h"
#include <qassert.h>         // for Q_ASSERT
#include <QDesktopServices>  // for QDesktopServices
#include <QDir>              // for QDir
#include <QFileInfo>         // for QFileInfo
#include <QUrl>              // for QUrl
#include <QtCore>            // for CaseSensitivity, StringLiterals
#include <algorithm>         // for copy
#include <iostream>          // for operator<<, cerr
---


/home/runner/work/graphia/graphia/source/plugins/correlation/hierarchicalclusteringcommand.h should add these lines:
#include <stddef.h>                    // for size_t
#include <QString>                     // for QString
#include <vector>                      // for vector

/home/runner/work/graphia/graphia/source/plugins/correlation/hierarchicalclusteringcommand.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/hierarchicalclusteringcommand.h:
#include <stddef.h>                    // for size_t
#include <QObject>                     // for QObject
#include <QString>                     // for QString
#include <vector>                      // for vector
#include "shared/commands/icommand.h"  // for ICommand
class CorrelationPluginInstance;  // lines 26-26
---

/home/runner/work/graphia/graphia/source/plugins/correlation/hierarchicalclusteringcommand.cpp should add these lines:
#include <qassert.h>                        // for Q_ASSERT
#include <stdint.h>                         // for uint64_t
#include <algorithm>                        // for min, sort
#include <cmath>                            // for sqrt
#include <numeric>                          // for iota
#include "shared/graph/covariancematrix.h"  // for CovarianceMatrix

/home/runner/work/graphia/graphia/source/plugins/correlation/hierarchicalclusteringcommand.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/hierarchicalclusteringcommand.cpp:
#include "hierarchicalclusteringcommand.h"
#include <qassert.h>                        // for Q_ASSERT
#include <stdint.h>                         // for uint64_t
#include <QObject>                          // for QObject
#include <algorithm>                        // for min, sort
#include <cmath>                            // for sqrt
#include <limits>                           // for numeric_limits
#include <numeric>                          // for iota
#include <vector>                           // for vector
#include "correlation.h"                    // for CovarianceCorrelation
#include "correlationdatavector.h"          // for ContinuousDataVector, Con...
#include "correlationplugin.h"              // for CorrelationPluginInstance
#include "shared/graph/covariancematrix.h"  // for CovarianceMatrix
---


/home/runner/work/graphia/graphia/source/plugins/correlation/graphsizeestimateplotitem.h should add these lines:
#include <qtmetamacros.h>          // for Q_PROPERTY, Q_OBJECT, signals
#include <QMap>                    // for QMap
#include <QString>                 // for QString
#include <QVariant>                // for QVariant
#include <QVariantMap>             // for QVariantMap
class QCPItemStraightLine;
class QMouseEvent;
class QQuickItem;

/home/runner/work/graphia/graphia/source/plugins/correlation/graphsizeestimateplotitem.h should remove these lines:
- #include <QObject>  // lines 24-24
- #include <QQuickPaintedItem>  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/graphsizeestimateplotitem.h:
#include <qcustomplotquickitem.h>  // for QCustomPlotQuickItem
#include <qtmetamacros.h>          // for Q_PROPERTY, Q_OBJECT, signals
#include <QMap>                    // for QMap
#include <QString>                 // for QString
#include <QVariant>                // for QVariant
#include <QVariantMap>             // for QVariantMap
#include <QVector>                 // for QVector
class QCPItemStraightLine;
class QMouseEvent;
class QQuickItem;
---

/home/runner/work/graphia/graphia/source/plugins/correlation/graphsizeestimateplotitem.cpp should add these lines:
#include <bits/std_abs.h>                   // for abs
#include <qcustomplot.h>                    // for QCustomPlot, QCPAxis, QCP...
#include <stddef.h>                         // for size_t
#include <QColor>                           // for QColor
#include <QList>                            // for QList
#include <QMouseEvent>                      // for QMouseEvent
#include <QPen>                             // for QPen
#include <QPoint>                           // for QPoint
#include <QSharedPointer>                   // for QSharedPointer
#include <QStyleHints>                      // for QStyleHints
#include <QtCore>                           // for MouseButton, operator|
#include <QtGui>                            // for QBrush
#include <cmath>                            // for round
#include <limits>                           // for numeric_limits
#include <utility>                          // for as_const
class QQuickItem;

/home/runner/work/graphia/graphia/source/plugins/correlation/graphsizeestimateplotitem.cpp should remove these lines:
- #include "shared/utils/utils.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/graphsizeestimateplotitem.cpp:
#include "graphsizeestimateplotitem.h"
#include <bits/std_abs.h>                   // for abs
#include <qcustomplot.h>                    // for QCustomPlot, QCPAxis, QCP...
#include <stddef.h>                         // for size_t
#include <QColor>                           // for QColor
#include <QGuiApplication>                  // for QGuiApplication
#include <QList>                            // for QList
#include <QMouseEvent>                      // for QMouseEvent
#include <QPen>                             // for QPen
#include <QPoint>                           // for QPoint
#include <QSharedPointer>                   // for QSharedPointer
#include <QStyleHints>                      // for QStyleHints
#include <QVariantMap>                      // for QVariantMap
#include <QVector>                          // for QVector
#include <QtCore>                           // for MouseButton, operator|
#include <QtGui>                            // for QBrush
#include <algorithm>                        // for clamp, minmax
#include <cmath>                            // for round
#include <limits>                           // for numeric_limits
#include <utility>                          // for as_const
#include "shared/rendering/multisamples.h"  // for multisamples
#include "shared/utils/string.h"            // for formatNumberSIPostfix
class QQuickItem;
---


/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplugin.h should add these lines:
#include <qtmetamacros.h>                        // for Q_PROPERTY, Q_INVOKABLE
#include <stddef.h>                              // for size_t
#include <QByteArray>                            // for QByteArray
#include <QVariant>                              // for QVariant
#include <QtCore>                                // for qobject_iid_cast
#include <cmath>                                 // for nextafter
#include <memory>                                // for unique_ptr, shared_ptr
#include "correlationtype.h"                     // for CorrelationType, Cor...
#include "shared/plugins/iplugin.h"              // for IPluginIID, IPlugin ...
class IDocument;
class IGraphModel;
class IMutableGraph;
class IParser;
class IParserThread;
class ISelectionManager;
class NodeId;
class Progressable;

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplugin.h should remove these lines:
- #include <QVariantList>  // lines 46-46
- #include <algorithm>  // lines 40-40
- #include <functional>  // lines 39-39
- #include <utility>  // lines 41-41
- #include "shared/graph/igraphmodel.h"  // lines 23-23
- #include "shared/loading/iparser.h"  // lines 27-27
- #include "shared/loading/userelementdata.h"  // lines 29-29

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationplugin.h:
#include <qtmetamacros.h>                        // for Q_PROPERTY, Q_INVOKABLE
#include <stddef.h>                              // for size_t
#include <QByteArray>                            // for QByteArray
#include <QColor>                                // for QColor
#include <QList>                                 // for QList
#include <QRect>                                 // for QRect
#include <QString>                               // for QString, operator""_s
#include <QStringList>                           // for QStringList
#include <QVariant>                              // for QVariant
#include <QVariantMap>                           // for QVariantMap
#include <QtCore>                                // for qobject_iid_cast
#include <cmath>                                 // for nextafter
#include <map>                                   // for map
#include <memory>                                // for unique_ptr, shared_ptr
#include <vector>                                // for vector
#include "columnannotation.h"                    // for ColumnAnnotation
#include "correlationdatavector.h"               // for ContinuousDataVector...
#include "correlationnodeattributetablemodel.h"  // for CorrelationNodeAttri...
#include "correlationtype.h"                     // for CorrelationType, Cor...
#include "loading/correlationfileparser.h"       // for NormaliseType, Clipp...
#include "shared/graph/edgelist.h"               // for EdgeList
#include "shared/graph/grapharray.h"             // for EdgeArray
#include "shared/loading/tabulardata.h"          // for TabularData
#include "shared/loading/userdata.h"             // for UserData
#include "shared/plugins/baseplugin.h"           // for BasePlugin, BasePlug...
#include "shared/plugins/iplugin.h"              // for IPluginIID, IPlugin ...
class IDocument;
class IGraphModel;
class IMutableGraph;
class IParser;
class IParserThread;
class ISelectionManager;
class NodeId;
class Progressable;
---

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplugin.cpp should add these lines:
#include <bits/std_abs.h>                             // for abs
#include <qassert.h>                                  // for Q_ASSERT
#include <qcustomplotcolorprovider.h>                 // for QCustomPlotColo...
#include <qtresource.h>                               // for Q_INIT_RESOURCE
#include <stdint.h>                                   // for uint64_t
#include <sys/types.h>                                // for size_t, uint
#include <QDebug>                                     // for QDebug
#include <QMap>                                       // for QMap
#include <QMessageLogger>                             // for qDebug
#include <QObject>                                    // for QObject
#include <QStringLiteral>                             // for qMakeStringPrivate
#include <QUrl>                                       // for QUrl
#include <QVector>                                    // for QVector
#include <QtQml>                                      // for qmlRegisterType
#include <algorithm>                                  // for copy, sort, tra...
#include <iterator>                                   // for back_insert_ite...
#include <json.hpp>                                   // for basic_json, ite...
#include <set>                                        // for set
#include <utility>                                    // for move
#include "shared/attributes/valuetype.h"              // for operator&, Valu...
#include "shared/commands/icommandmanager.h"          // for ExecutePolicy
#include "shared/graph/elementid.h"                   // for NodeId, EdgeId
#include "shared/graph/elementid_containers.h"        // for NodeIdSet
#include "shared/graph/elementtype.h"                 // for ElementType
#include "shared/graph/igraph.h"                      // for IGraph
#include "shared/graph/igraphmodel.h"                 // for IGraphModel
#include "shared/graph/imutablegraph.h"               // for IMutableGraph
#include "shared/loading/iparser.h"                   // for IParser
#include "shared/loading/iuserelementdata.h"          // for IUserElementData
#include "shared/loading/userdatavector.h"            // for UserDataVector
#include "shared/ui/idocument.h"                      // for IDocument
#include "shared/utils/progressable.h"                // for Progressable
#include "shared/utils/qmlenum.h"                     // for normaliseQmlEnum
class IParserThread;
class ISelectionManager;

/home/runner/work/graphia/graphia/source/plugins/correlation/correlationplugin.cpp should remove these lines:
- #include <QDir>  // lines 48-48
- #include "shared/loading/xlsxtabulardataparser.h"  // lines 44-44
- #include "shared/utils/iterator_range.h"  // lines 33-33
- #include "shared/utils/random.h"  // lines 35-35
- #include "shared/utils/threadpool.h"  // lines 32-32

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/correlationplugin.cpp:
#include "correlationplugin.h"
#include <bits/std_abs.h>                             // for abs
#include <json_helper.h>                              // for json, jsonArray...
#include <qassert.h>                                  // for Q_ASSERT
#include <qcustomplotcolorprovider.h>                 // for QCustomPlotColo...
#include <qtresource.h>                               // for Q_INIT_RESOURCE
#include <stdint.h>                                   // for uint64_t
#include <sys/types.h>                                // for size_t, uint
#include <QDebug>                                     // for QDebug
#include <QMap>                                       // for QMap
#include <QMessageLogger>                             // for qDebug
#include <QObject>                                    // for QObject
#include <QStringLiteral>                             // for qMakeStringPrivate
#include <QUrl>                                       // for QUrl
#include <QVector>                                    // for QVector
#include <QtQml>                                      // for qmlRegisterType
#include <algorithm>                                  // for copy, sort, tra...
#include <iterator>                                   // for back_insert_ite...
#include <json.hpp>                                   // for basic_json, ite...
#include <map>                                        // for map, operator==
#include <set>                                        // for set
#include <utility>                                    // for move
#include "correlation.h"                              // for ContinuousCorre...
#include "correlationplotitem.h"                      // for CorrelationPlot...
#include "graphsizeestimateplotitem.h"                // for GraphSizeEstima...
#include "hierarchicalclusteringcommand.h"            // for HierarchicalClu...
#include "importannotationscommand.h"                 // for ImportAnnotatio...
#include "importannotationskeydetection.h"            // for ImportAnnotatio...
#include "shared/attributes/iattribute.h"             // for IAttribute, Att...
#include "shared/attributes/valuetype.h"              // for operator&, Valu...
#include "shared/commands/icommandmanager.h"          // for ExecutePolicy
#include "shared/graph/elementid.h"                   // for NodeId, EdgeId
#include "shared/graph/elementid_containers.h"        // for NodeIdSet
#include "shared/graph/elementtype.h"                 // for ElementType
#include "shared/graph/grapharray_json.h"             // for forEachJsonGrap...
#include "shared/graph/igraph.h"                      // for IGraph
#include "shared/graph/igraphmodel.h"                 // for IGraphModel
#include "shared/graph/imutablegraph.h"               // for IMutableGraph
#include "shared/loading/iparser.h"                   // for IParser
#include "shared/loading/iuserelementdata.h"          // for IUserElementData
#include "shared/loading/userdatavector.h"            // for UserDataVector
#include "shared/ui/idocument.h"                      // for IDocument
#include "shared/ui/visualisations/ielementvisual.h"  // for IElementVisual
#include "shared/utils/container.h"                   // for contains, conta...
#include "shared/utils/progressable.h"                // for Progressable
#include "shared/utils/qmlenum.h"                     // for normaliseQmlEnum
#include "shared/utils/redirects.h"                   // for redirectLink
#include "shared/utils/source_location.h"             // for CURRENT_SOURCE_...
#include "shared/utils/string.h"                      // for toQStringList
class IParserThread;
class ISelectionManager;
---


/home/runner/work/graphia/graphia/source/plugins/correlation/importannotationscommand.h should add these lines:
#include <stddef.h>                         // for size_t

/home/runner/work/graphia/graphia/source/plugins/correlation/importannotationscommand.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/importannotationscommand.h:
#include <stddef.h>                         // for size_t
#include <QString>                          // for QString
#include <set>                              // for set
#include <vector>                           // for vector
#include "shared/commands/icommand.h"       // for ICommand
#include "shared/loading/tabulardata.h"     // for TabularData
#include "shared/loading/userdatavector.h"  // for UserDataVector
class CorrelationPluginInstance;  // lines 32-32
---

/home/runner/work/graphia/graphia/source/plugins/correlation/importannotationscommand.cpp should add these lines:
#include <QLatin1Char>                  // for StringLiterals
#include <QObject>                      // for QObject
#include <map>                          // for map
#include <utility>                      // for move
#include "shared/loading/userdata.h"    // for UserData
#include "shared/utils/typeidentity.h"  // for TypeIdentity

/home/runner/work/graphia/graphia/source/plugins/correlation/importannotationscommand.cpp should remove these lines:
- #include "../crashhandler.h"  // lines 26-26
- #include "shared/loading/userelementdata.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/importannotationscommand.cpp:
#include "importannotationscommand.h"
#include <QLatin1Char>                  // for StringLiterals
#include <QObject>                      // for QObject
#include <map>                          // for map
#include <utility>                      // for move
#include "correlationplugin.h"          // for CorrelationPluginInstance
#include "shared/loading/userdata.h"    // for UserData
#include "shared/utils/string.h"        // for findUniqueName
#include "shared/utils/typeidentity.h"  // for TypeIdentity
---


/home/runner/work/graphia/graphia/source/plugins/correlation/quantilenormaliser.h should add these lines:
#include "correlationdatavector.h"  // for ContinuousDataVectors
class IParser;

/home/runner/work/graphia/graphia/source/plugins/correlation/quantilenormaliser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/quantilenormaliser.h:
#include "correlationdatavector.h"  // for ContinuousDataVectors
#include "normaliser.h"             // for Normaliser
class IParser;
---

/home/runner/work/graphia/graphia/source/plugins/correlation/quantilenormaliser.cpp should add these lines:
#include <qassert.h>                 // for Q_ASSERT
#include <stddef.h>                  // for size_t
#include <iterator>                  // for back_insert_iterator, back_inserter
#include <vector>                    // for vector

/home/runner/work/graphia/graphia/source/plugins/correlation/quantilenormaliser.cpp should remove these lines:
- #include <QtGlobal>  // lines 27-27
- #include <set>  // lines 24-24
- #include "shared/utils/cancellable.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/quantilenormaliser.cpp:
#include "quantilenormaliser.h"
#include <qassert.h>                 // for Q_ASSERT
#include <stddef.h>                  // for size_t
#include <algorithm>                 // for sort, transform, unique
#include <iterator>                  // for back_insert_iterator, back_inserter
#include <vector>                    // for vector
#include "shared/loading/iparser.h"  // for IParser
---


/home/runner/work/graphia/graphia/source/plugins/correlation/importannotationskeydetection.h should add these lines:
#include <qtmetamacros.h>              // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
#include <QMap>                        // for QMap
#include <QString>                     // for QString
#include <QVariant>                    // for QVariant
#include <memory>                      // for shared_ptr
class TabularData;

/home/runner/work/graphia/graphia/source/plugins/correlation/importannotationskeydetection.h should remove these lines:
- #include "shared/loading/tabulardata.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/importannotationskeydetection.h:
#include <qtmetamacros.h>              // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
#include <QFutureWatcher>              // for QFutureWatcher
#include <QMap>                        // for QMap
#include <QObject>                     // for QObject
#include <QString>                     // for QString
#include <QVariant>                    // for QVariant
#include <QVariantMap>                 // for QVariantMap
#include <memory>                      // for shared_ptr
#include "shared/utils/cancellable.h"  // for Cancellable
class CorrelationPluginInstance;  // lines 29-29
class TabularData;
---

/home/runner/work/graphia/graphia/source/plugins/correlation/importannotationskeydetection.cpp should add these lines:
#include <stddef.h>                      // for size_t
#include <QByteArrayDataPtr>             // for StringLiterals
#include <QList>                         // for QList
#include <QStringList>                   // for QStringList
#include <vector>                        // for vector
#include "shared/loading/tabulardata.h"  // for TabularData
#include "shared/utils/typeidentity.h"   // for TypeIdentity

/home/runner/work/graphia/graphia/source/plugins/correlation/importannotationskeydetection.cpp should remove these lines:
- #include <QQmlEngine>  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/importannotationskeydetection.cpp:
#include "importannotationskeydetection.h"
#include <stddef.h>                      // for size_t
#include <QByteArrayDataPtr>             // for StringLiterals
#include <QFuture>                       // for QFuture
#include <QList>                         // for QList
#include <QStringList>                   // for QStringList
#include <QtConcurrentRun>               // for run
#include <vector>                        // for vector
#include "correlationplugin.h"           // for CorrelationPluginInstance
#include "shared/loading/tabulardata.h"  // for TabularData
#include "shared/utils/typeidentity.h"   // for TypeIdentity
---


/home/runner/work/graphia/graphia/source/plugins/correlation/loading/correlationfileparser.h should add these lines:
#include <qtmetamacros.h>                               // for Q_PROPERTY
#include <stddef.h>                                     // for size_t
#include <QMap>                                         // for QMap
#include <QObject>                                      // for QObject
#include <QVariant>                                     // for QVariant
#include <cmath>                                        // for nextafter
#include <utility>                                      // for pair
#include <vector>                                       // for vector
#include "shared/utils/progressable.h"                  // for Progressable
class IGraphModel;
class QAbstractTableModel;
class QUrl;

/home/runner/work/graphia/graphia/source/plugins/correlation/loading/correlationfileparser.h should remove these lines:
- #include <QtConcurrentRun>  // lines 37-37
- #include "plugins/correlation/correlationtype.h"  // lines 31-31
- #include "shared/graph/edgelist.h"  // lines 29-29

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/loading/correlationfileparser.h:
#include <qtmetamacros.h>                               // for Q_PROPERTY
#include <stddef.h>                                     // for size_t
#include <QFutureWatcher>                               // for QFutureWatcher
#include <QMap>                                         // for QMap
#include <QObject>                                      // for QObject
#include <QRect>                                        // for QRect
#include <QString>                                      // for QString
#include <QVariant>                                     // for QVariant
#include <QVariantMap>                                  // for QVariantMap
#include <atomic>                                       // for atomic
#include <cmath>                                        // for nextafter
#include <memory>                                       // for shared_ptr
#include <utility>                                      // for pair
#include <vector>                                       // for vector
#include "plugins/correlation/correlationdatavector.h"  // for ContinuousDat...
#include "shared/loading/iparser.h"                     // for IParser
#include "shared/loading/tabulardata.h"                 // for TabularData
#include "shared/loading/tabulardatamodel.h"            // for TabularDataModel
#include "shared/utils/cancellable.h"                   // for Cancellable
#include "shared/utils/progressable.h"                  // for Progressable
#include "shared/utils/qmlenum.h"                       // for DEFINE_QML_ENUM
class CorrelationPluginInstance;  // lines 76-76
class IGraphModel;
class QAbstractTableModel;
class QUrl;
---

/home/runner/work/graphia/graphia/source/plugins/correlation/loading/correlationfileparser.cpp should add these lines:
#include <qassert.h>                               // for Q_ASSERT
#include <QDebug>                                  // for QDebug
#include <QFuture>                                 // for QFuture
#include <QLatin1Char>                             // for StringLiterals
#include <QMessageLogger>                          // for qDebug
#include <QUrl>                                    // for QUrl
#include <QtConcurrentRun>                         // for run
#include <algorithm>                               // for min, copy, max, sort
#include <numeric>                                 // for iota
#include "correlationdatavector.h"                 // for ContinuousDataVector
#include "correlationtype.h"                       // for CorrelationDataType
#include "shared/graph/edgelist.h"                 // for EdgeList
#include "shared/graph/elementid.h"                // for NodeId, ElementId
class IGraphModel;
class QAbstractTableModel;

/home/runner/work/graphia/graphia/source/plugins/correlation/loading/correlationfileparser.cpp should remove these lines:
- #include "shared/graph/igraphmodel.h"  // lines 26-26
- #include "shared/graph/imutablegraph.h"  // lines 27-27

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/loading/correlationfileparser.cpp:
#include "correlationfileparser.h"
#include <qassert.h>                               // for Q_ASSERT
#include <QDebug>                                  // for QDebug
#include <QFuture>                                 // for QFuture
#include <QLatin1Char>                             // for StringLiterals
#include <QMessageLogger>                          // for qDebug
#include <QRect>                                   // for QRect
#include <QUrl>                                    // for QUrl
#include <QtConcurrentRun>                         // for run
#include <algorithm>                               // for min, copy, max, sort
#include <limits>                                  // for numeric_limits
#include <numeric>                                 // for iota
#include <set>                                     // for set
#include <span>                                    // for span
#include <stack>                                   // for stack
#include <utility>                                 // for move, pair
#include <vector>                                  // for vector
#include "correlation.h"                           // for ContinuousCorrelation
#include "correlationdatavector.h"                 // for ContinuousDataVector
#include "correlationplugin.h"                     // for CorrelationPluginI...
#include "correlationtype.h"                       // for CorrelationDataType
#include "featurescaling.h"                        // for MeanNormaliser
#include "quantilenormaliser.h"                    // for QuantileNormaliser
#include "shared/graph/edgelist.h"                 // for EdgeList
#include "shared/graph/elementid.h"                // for NodeId, ElementId
#include "shared/loading/graphsizeestimate.h"      // for graphSizeEstimateKnn
#include "shared/loading/tabulardata.h"            // for TabularData, CsvFi...
#include "shared/loading/xlsxtabulardataparser.h"  // for XlsxTabularDataParser
#include "shared/utils/container.h"                // for sortedIndicesOf
#include "shared/utils/container_randomsample.h"   // for randomSample
#include "shared/utils/scope_exit.h"               // for make_scope_exit
#include "shared/utils/string.h"                   // for isNumeric, isInteger
class IGraphModel;
class QAbstractTableModel;
---


/home/runner/work/graphia/graphia/source/plugins/correlation/qcpcolumnannotations.h should add these lines:
#include <qtmetamacros.h>                            // for Q_OBJECT
#include <stddef.h>                                  // for size_t
#include <QPointF>                                   // for QPointF
#include <QRectF>                                    // for QRectF
class ColumnAnnotation;
class QVariant;

/home/runner/work/graphia/graphia/source/plugins/correlation/qcpcolumnannotations.h should remove these lines:
- #include <QRect>  // lines 30-30
- #include "columnannotation.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/qcpcolumnannotations.h:
#include <qcustomplot.h>                             // for SignDomain, QCPP...
#include <qtmetamacros.h>                            // for Q_OBJECT
#include <stddef.h>                                  // for size_t
#include <QColor>                                    // for QColor
#include <QPointF>                                   // for QPointF
#include <QRectF>                                    // for QRectF
#include <QString>                                   // for QString
#include <map>                                       // for map
#include <vector>                                    // for vector
#include "shared/ui/visualisations/colorgradient.h"  // for ColorGradient
#include "shared/ui/visualisations/colorpalette.h"   // for ColorPalette
class ColumnAnnotation;
class QVariant;
---

/home/runner/work/graphia/graphia/source/plugins/correlation/qcpcolumnannotations.cpp should add these lines:
#include <qtypes.h>                                     // for qreal
#include <QFlags>                                       // for QFlags
#include <QFont>                                        // for QFont
#include <QFontMetrics>                                 // for QFontMetrics
#include <QPointer>                                     // for QPointer
#include <QRect>                                        // for QRect
#include <Qt>                                           // for operator|
#include <algorithm>                                    // for max
#include <utility>                                      // for move
#include "columnannotation.h"                           // for ColumnAnnotation
class QVariant;

/home/runner/work/graphia/graphia/source/plugins/correlation/qcpcolumnannotations.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/correlation/qcpcolumnannotations.cpp:
#include "qcpcolumnannotations.h"
#include <qtypes.h>                                     // for qreal
#include <QFlags>                                       // for QFlags
#include <QFont>                                        // for QFont
#include <QFontMetrics>                                 // for QFontMetrics
#include <QPointer>                                     // for QPointer
#include <QRect>                                        // for QRect
#include <Qt>                                           // for operator|
#include <algorithm>                                    // for max
#include <utility>                                      // for move
#include "columnannotation.h"                           // for ColumnAnnotation
#include "shared/ui/visualisations/defaultgradients.h"  // for GRADIENT
#include "shared/ui/visualisations/defaultpalettes.h"   // for PALETTE
#include "shared/utils/color.h"                         // for contrastingColor
#include "shared/utils/container.h"                     // for contains
class QVariant;
---


/home/runner/work/graphia/graphia/source/plugins/websearch/websearchplugin.h should add these lines:
#include <qtmetamacros.h>                      // for Q_OBJECT, Q_PLUGIN_MET...
#include <QString>                             // for operator""_s, QString
#include <QtCore>                              // for qobject_iid_cast, Q_DE...
#include "shared/plugins/baseplugin.h"         // for PluginInstanceProvider
#include "shared/plugins/iplugin.h"            // for IPluginIID

/home/runner/work/graphia/graphia/source/plugins/websearch/websearchplugin.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/websearch/websearchplugin.h:
#include <qtmetamacros.h>                      // for Q_OBJECT, Q_PLUGIN_MET...
#include <QString>                             // for operator""_s, QString
#include <QtCore>                              // for qobject_iid_cast, Q_DE...
#include "shared/plugins/basegenericplugin.h"  // for BaseGenericPlugin, Bas...
#include "shared/plugins/baseplugin.h"         // for PluginInstanceProvider
#include "shared/plugins/iplugin.h"            // for IPluginIID
---

/home/runner/work/graphia/graphia/source/plugins/websearch/websearchplugin.cpp should add these lines:
#include <qtresource.h>  // for Q_INIT_RESOURCE

/home/runner/work/graphia/graphia/source/plugins/websearch/websearchplugin.cpp should remove these lines:
- #include <QDir>  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/plugins/websearch/websearchplugin.cpp:
#include "websearchplugin.h"
#include <qtresource.h>  // for Q_INIT_RESOURCE
---


/home/runner/work/graphia/graphia/source/plugins/generic/genericplugin.h should add these lines:
#include <qtmetamacros.h>                      // for Q_OBJECT, Q_PLUGIN_MET...
#include <QString>                             // for operator""_s, QString
#include <QtCore>                              // for qobject_iid_cast, Q_DE...
#include "shared/plugins/baseplugin.h"         // for PluginInstanceProvider
#include "shared/plugins/iplugin.h"            // for IPluginIID

/home/runner/work/graphia/graphia/source/plugins/generic/genericplugin.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/plugins/generic/genericplugin.h:
#include <qtmetamacros.h>                      // for Q_OBJECT, Q_PLUGIN_MET...
#include <QString>                             // for operator""_s, QString
#include <QtCore>                              // for qobject_iid_cast, Q_DE...
#include "shared/plugins/basegenericplugin.h"  // for BaseGenericPlugin, Bas...
#include "shared/plugins/baseplugin.h"         // for PluginInstanceProvider
#include "shared/plugins/iplugin.h"            // for IPluginIID
---

/home/runner/work/graphia/graphia/source/plugins/generic/genericplugin.cpp should add these lines:
#include <qtresource.h>  // for Q_INIT_RESOURCE

/home/runner/work/graphia/graphia/source/plugins/generic/genericplugin.cpp should remove these lines:
- #include <QDir>  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/plugins/generic/genericplugin.cpp:
#include "genericplugin.h"
#include <qtresource.h>  // for Q_INIT_RESOURCE
---


/home/runner/work/graphia/graphia/source/app/attributes/attribute.h should add these lines:
#include <QList>                                // for QList
#include <QMap>                                 // for QMap
#include <QMessageLogger>                       // for qFatal
#include <QStringList>                          // for QStringList
#include <QVariant>                             // for QVariant
#include <QVariantMap>                          // for QVariantMap
#include <algorithm>                            // for copy
#include <iterator>                             // for back_inserter
#include <type_traits>                          // for remove_reference
#include <utility>                              // for move
#include <variant>                              // for variant, visit
#include "shared/attributes/iattributerange.h"  // for IAttributeRange
class IGraph;
class IGraphComponent;

/home/runner/work/graphia/graphia/source/app/attributes/attribute.h should remove these lines:
- #include "shared/graph/igraphcomponent.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/attributes/attribute.h:
#include <QCollator>                            // for QCollator
#include <QList>                                // for QList
#include <QMap>                                 // for QMap
#include <QMessageLogger>                       // for qFatal
#include <QString>                              // for QString
#include <QStringList>                          // for QStringList
#include <QVariant>                             // for QVariant
#include <QVariantMap>                          // for QVariantMap
#include <algorithm>                            // for copy
#include <functional>                           // for function
#include <iterator>                             // for back_inserter
#include <limits>                               // for numeric_limits
#include <map>                                  // for map
#include <tuple>                                // for get, tuple
#include <type_traits>                          // for remove_reference
#include <utility>                              // for move
#include <variant>                              // for variant, visit
#include <vector>                               // for vector
#include "shared/attributes/iattribute.h"       // for AttributeFlag, IAttri...
#include "shared/attributes/iattributerange.h"  // for IAttributeRange
#include "shared/attributes/valuetype.h"        // for ValueType
#include "shared/graph/elementid.h"             // for EdgeId, NodeId
#include "shared/graph/elementtype.h"           // for ElementType
#include "shared/utils/flags.h"                 // for Flags
#include "shared/utils/statistics.h"            // for Statistics, findStati...
class Attribute;  // lines 40-40
class IGraph;
class IGraphComponent;
---

/home/runner/work/graphia/graphia/source/app/attributes/attribute.cpp should add these lines:
#include <qassert.h>                 // for Q_ASSERT
#include <qlatin1stringview.h>       // for operator""_L1
#include <QByteArrayDataPtr>         // for StringLiterals
#include <QObject>                   // for QObject
#include "shared/graph/igraph.h"     // for IEdge, IGraph
class IGraphComponent;

/home/runner/work/graphia/graphia/source/app/attributes/attribute.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/attributes/attribute.cpp:
#include "attribute.h"
#include <qassert.h>                 // for Q_ASSERT
#include <qlatin1stringview.h>       // for operator""_L1
#include <QByteArrayDataPtr>         // for StringLiterals
#include <QDebug>                    // for QDebug
#include <QObject>                   // for QObject
#include <QRegularExpression>        // for QRegularExpression
#include "shared/graph/igraph.h"     // for IEdge, IGraph
#include "shared/utils/container.h"  // for contains, indexOf
class IGraphComponent;
---


/home/runner/work/graphia/graphia/source/app/application.h should add these lines:
#include <qtmetamacros.h>                // for Q_INVOKABLE, Q_PROPERTY, Q_O...
#include <QList>                         // for QList
#include <QVariant>                      // for QVariant
#include <QVariantList>                  // for QVariantList
#include <QtCore>                        // for QHash, ItemDataRole
#include <utility>                       // for move
#include "loading/isaver.h"              // for ISaverFactory
class QImage;

/home/runner/work/graphia/graphia/source/app/application.h should remove these lines:
- #include <QColor>  // lines 33-33
- #include <QImage>  // lines 36-36
- #include <QRect>  // lines 32-32
- #include <QUrl>  // lines 31-31
- class GraphModel;  // lines 54-54
- class IParser;  // lines 55-55
- class ISaverFactory;  // lines 56-56

The full include-list for /home/runner/work/graphia/graphia/source/app/application.h:
#include <qtmetamacros.h>                // for Q_INVOKABLE, Q_PROPERTY, Q_O...
#include <QAbstractListModel>            // for QAbstractListModel
#include <QCoreApplication>              // for QCoreApplication
#include <QList>                         // for QList
#include <QObject>                       // for QObject
#include <QPluginLoader>                 // for QPluginLoader
#include <QProcessEnvironment>           // for QProcessEnvironment
#include <QString>                       // for QString
#include <QStringList>                   // for QStringList
#include <QStringListModel>              // for QStringListModel
#include <QVariant>                      // for QVariant
#include <QVariantList>                  // for QVariantList
#include <QtCore>                        // for QHash, ItemDataRole
#include <memory>                        // for unique_ptr
#include <utility>                       // for move
#include <vector>                        // for vector
#include "loading/isaver.h"              // for ISaverFactory
#include "shared/iapplication.h"         // for IApplication
#include "shared/utils/downloadqueue.h"  // for DownloadQueue
#include "shared/utils/qmlenum.h"        // for DEFINE_QML_ENUM
#include "updates/updater.h"             // for Updater
class IPlugin;  // lines 57-57
class QImage;
---

/home/runner/work/graphia/graphia/source/app/application.cpp should add these lines:
#include <bits/chrono.h>                                  // for operator""s
#include <qassert.h>                                      // for Q_ASSERT
#include <qtpreprocessorsupport.h>                        // for Q_UNUSED
#include <stdio.h>                                        // for fflush, fpr...
#include <QByteArray>                                     // for QByteArray
#include <QChar>                                          // for operator!=
#include <QFileInfo>                                      // for QFileInfo
#include <QLibrary>                                       // for QLibrary
#include <QMap>                                           // for QMap
#include <QMessageLogger>                                 // for qDebug, qCr...
#include <QModelIndex>                                    // for QModelIndex
#include <QStringLiteral>                                 // for qMakeString...
#include <QUrl>                                           // for QUrl
#include <QVariantMap>                                    // for QVariantMap
#include <QtQml>                                          // for qmlRegister...
#include <string>                                         // for operator<<
#include "loading/saverfactory.h"                         // for SaverFactory
#include "shared/utils/container.h"                       // for contains
class QImage;

/home/runner/work/graphia/graphia/source/app/application.cpp should remove these lines:
- #include <QQmlEngine>  // lines 55-55
- #include <chrono>  // lines 62-62
- #include <cmath>  // lines 57-57
- #include "preferences.h"  // lines 25-25
- #include "tracking.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/application.cpp:
#include "application.h"
#include <bits/chrono.h>                                  // for operator""s
#include <qassert.h>                                      // for Q_ASSERT
#include <qtpreprocessorsupport.h>                        // for Q_UNUSED
#include <stdio.h>                                        // for fflush, fpr...
#include <QApplication>                                   // for QApplication
#include <QByteArray>                                     // for QByteArray
#include <QChar>                                          // for operator!=
#include <QClipboard>                                     // for QClipboard
#include <QDebug>                                         // for QDebug, ope...
#include <QDir>                                           // for QDir
#include <QFileInfo>                                      // for QFileInfo
#include <QLibrary>                                       // for QLibrary
#include <QMap>                                           // for QMap
#include <QMessageBox>                                    // for QMessageBox
#include <QMessageLogger>                                 // for qDebug, qCr...
#include <QModelIndex>                                    // for QModelIndex
#include <QStandardPaths>                                 // for QStandardPaths
#include <QString>                                        // for QString
#include <QStringList>                                    // for QStringList
#include <QStringLiteral>                                 // for qMakeString...
#include <QUrl>                                           // for QUrl
#include <QVariantMap>                                    // for QVariantMap
#include <QtQml>                                          // for qmlRegister...
#include <algorithm>                                      // for any_of, max
#include <iostream>                                       // for operator<<
#include <memory>                                         // for unique_ptr
#include <mutex>                                          // for mutex, uniq...
#include <string>                                         // for operator<<
#include <thread>                                         // for sleep_for
#include "../crashhandler.h"                              // for CrashHandler
#include "build_defines.h"                                // for COPYRIGHT
#include "crashtype.h"                                    // for CrashType
#include "loading/gmlsaver.h"                             // for GMLSaverFac...
#include "loading/graphmlsaver.h"                         // for GraphMLSave...
#include "loading/jsongraphsaver.h"                       // for JSONGraphSa...
#include "loading/nativeloader.h"                         // for Loader
#include "loading/nativesaver.h"                          // for NativeSaver...
#include "loading/pairwisesaver.h"                        // for PairwiseSav...
#include "loading/saverfactory.h"                         // for SaverFactory
#include "rendering/openglfunctions.h"                    // for OpenGLFunct...
#include "shared/plugins/iplugin.h"                       // for IPlugin
#include "shared/utils/container.h"                       // for contains
#include "shared/utils/container_combine.h"               // for combine
#include "shared/utils/fatalerror.h"                      // for FATAL_ERROR
#include "shared/utils/msvcwarningsuppress.h"             // for MSVC_WARNIN...
#include "shared/utils/scopetimer.h"                      // for ScopeTimerM...
#include "shared/utils/static_block.h"                    // for execute_sta...
#include "shared/utils/thread.h"                          // for setCurrentT...
#include "transform/graphtransformconfigparser.h"         // for GraphTransf...
#include "ui/visualisations/visualisationconfigparser.h"  // for Visualisati...
class QImage;
---


/home/runner/work/graphia/graphia/source/app/attributes/availableattributesmodel.h should add these lines:
#include <qtmetamacros.h>                  // for Q_INVOKABLE, Q_OBJECT
#include <QModelIndex>                     // for QModelIndex
#include <QString>                         // for QString
#include <QStringList>                     // for QStringList
#include <QtCore>                          // for ItemDataRole, QHash, ItemF...

/home/runner/work/graphia/graphia/source/app/attributes/availableattributesmodel.h should remove these lines:
- class Attribute;  // lines 33-33

The full include-list for /home/runner/work/graphia/graphia/source/app/attributes/availableattributesmodel.h:
#include <qtmetamacros.h>                  // for Q_INVOKABLE, Q_OBJECT
#include <QAbstractItemModel>              // for QAbstractItemModel
#include <QList>                           // for QList
#include <QModelIndex>                     // for QModelIndex
#include <QString>                         // for QString
#include <QStringList>                     // for QStringList
#include <QVariant>                        // for QVariant
#include <QtCore>                          // for ItemDataRole, QHash, ItemF...
#include <set>                             // for set
#include "shared/attributes/iattribute.h"  // for AttributeFlag
#include "shared/attributes/valuetype.h"   // for ValueType
#include "shared/graph/elementtype.h"      // for ElementType
class GraphModel;  // lines 32-32
---

/home/runner/work/graphia/graphia/source/app/attributes/availableattributesmodel.cpp should add these lines:
#include <qassert.h>                    // for Q_ASSERT
#include <QByteArray>                   // for QByteArray, QTypeInfo<>::isRe...
#include <QtQml>                        // for qmlRegisterInterface
#include <utility>                      // for as_const
#include <vector>                       // for vector
#include "attributes/attribute.h"       // for Attribute
#include "shared/utils/flags.h"         // for Flags

/home/runner/work/graphia/graphia/source/app/attributes/availableattributesmodel.cpp should remove these lines:
- #include "../crashhandler.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/attributes/availableattributesmodel.cpp:
#include "availableattributesmodel.h"
#include <qassert.h>                    // for Q_ASSERT
#include <QByteArray>                   // for QByteArray, QTypeInfo<>::isRe...
#include <QtQml>                        // for qmlRegisterInterface
#include <utility>                      // for as_const
#include <vector>                       // for vector
#include "application.h"                // for Application
#include "attributes/attribute.h"       // for Attribute
#include "graph/graphmodel.h"           // for GraphModel
#include "shared/graph/elementtype.h"   // for elementTypeAsString, ElementType
#include "shared/utils/container.h"     // for contains
#include "shared/utils/flags.h"         // for Flags
#include "shared/utils/static_block.h"  // for static_block
---


/home/runner/work/graphia/graphia/source/app/attributes/enrichmentcalculator.h should add these lines:
#include <stddef.h>                // for size_t

/home/runner/work/graphia/graphia/source/app/attributes/enrichmentcalculator.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/attributes/enrichmentcalculator.h:
#include <stddef.h>                // for size_t
#include <vector>                  // for vector
#include "enrichmenttablemodel.h"  // for EnrichmentTableModel
class ICommand;  // lines 27-27
class IGraphModel;  // lines 26-26
class QString;  // lines 25-25
---

/home/runner/work/graphia/graphia/source/app/attributes/enrichmentcalculator.cpp should add these lines:
#include <stdint.h>                            // for uint64_t
#include <QLatin1Char>                         // for StringLiterals
#include <QString>                             // for QString, operator<
#include <QVariant>                            // for QVariant
#include <algorithm>                           // for min
#include "attributes/enrichmenttablemodel.h"   // for EnrichmentTableModel
#include "shared/commands/icommand.h"          // for ICommand
#include "shared/graph/elementid.h"            // for NodeId

/home/runner/work/graphia/graphia/source/app/attributes/enrichmentcalculator.cpp should remove these lines:
- #include <set>  // lines 22-22
- #include "shared/commands/icommandmanager.h"  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/app/attributes/enrichmentcalculator.cpp:
#include "enrichmentcalculator.h"
#include <stdint.h>                            // for uint64_t
#include <QLatin1Char>                         // for StringLiterals
#include <QString>                             // for QString, operator<
#include <QVariant>                            // for QVariant
#include <algorithm>                           // for min
#include <array>                               // for array
#include <cmath>                               // for lgamma, sqrt, exp
#include <map>                                 // for map, operator==
#include <random>                              // for random_device, uniform...
#include <vector>                              // for vector
#include "attributes/enrichmenttablemodel.h"   // for EnrichmentTableModel
#include "shared/attributes/iattribute.h"      // for IAttribute
#include "shared/commands/icommand.h"          // for ICommand
#include "shared/graph/elementid.h"            // for NodeId
#include "shared/graph/igraph.h"               // for IGraph
#include "shared/graph/igraphmodel.h"          // for IGraphModel
#include "shared/utils/container.h"            // for keysFor
#include "shared/utils/msvcwarningsuppress.h"  // for MSVC_WARNING_SUPPRESS_...
---


/home/runner/work/graphia/graphia/source/app/attributes/editattributetablemodel.h should add these lines:
#include <qtmetamacros.h>                       // for Q_PROPERTY, Q_INVOKABLE
#include <QByteArray>                           // for QByteArray, QTypeInfo...
#include <QModelIndex>                          // for QModelIndex
#include <QVariant>                             // for QVariant
#include <QtCore>                               // for QTypeInfo<>::isReloca...
#include "shared/graph/elementid_containers.h"  // for EdgeIdMap, NodeIdMap
class Document;

/home/runner/work/graphia/graphia/source/app/attributes/editattributetablemodel.h should remove these lines:
- #include <QObject>  // lines 27-27
- #include <map>  // lines 32-32
- #include "ui/document.h"  // lines 24-24
- class SelectionManager;  // lines 35-35

The full include-list for /home/runner/work/graphia/graphia/source/app/attributes/editattributetablemodel.h:
#include <qtmetamacros.h>                       // for Q_PROPERTY, Q_INVOKABLE
#include <QAbstractTableModel>                  // for QAbstractTableModel
#include <QByteArray>                           // for QByteArray, QTypeInfo...
#include <QModelIndex>                          // for QModelIndex
#include <QString>                              // for QString
#include <QVariant>                             // for QVariant
#include <QtCore>                               // for QTypeInfo<>::isReloca...
#include <vector>                               // for vector
#include "attributeedits.h"                     // for AttributeEdits
#include "shared/graph/elementid.h"             // for NodeId
#include "shared/graph/elementid_containers.h"  // for EdgeIdMap, NodeIdMap
class Document;
class IAttribute;  // lines 34-34
---

/home/runner/work/graphia/graphia/source/app/attributes/editattributetablemodel.cpp should add these lines:
#include <stddef.h>                        // for size_t
#include <QDebug>                          // for QDebug
#include <QMessageLogger>                  // for qDebug
#include <Qt>                              // for ItemDataRole
#include <QtQml>                           // for qmlRegisterType
#include <algorithm>                       // for sort
#include <map>                             // for operator==
#include <type_traits>                     // for remove_reference_t
#include "attributes/attributeedits.h"     // for AttributeEdits
#include "shared/graph/elementtype.h"      // for ElementType
#include "shared/graph/igraph.h"           // for IGraph
#include "shared/ui/iselectionmanager.h"   // for ISelectionManager
#include "ui/document.h"                   // for Document

/home/runner/work/graphia/graphia/source/app/attributes/editattributetablemodel.cpp should remove these lines:
- #include <QQmlEngine>  // lines 29-29
- #include "ui/selectionmanager.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/app/attributes/editattributetablemodel.cpp:
#include "editattributetablemodel.h"
#include <stddef.h>                        // for size_t
#include <QDebug>                          // for QDebug
#include <QMessageLogger>                  // for qDebug
#include <Qt>                              // for ItemDataRole
#include <QtQml>                           // for qmlRegisterType
#include <algorithm>                       // for sort
#include <map>                             // for operator==
#include <type_traits>                     // for remove_reference_t
#include "attributes/attributeedits.h"     // for AttributeEdits
#include "shared/attributes/iattribute.h"  // for IAttribute
#include "shared/graph/elementtype.h"      // for ElementType
#include "shared/graph/igraph.h"           // for IGraph
#include "shared/graph/igraphmodel.h"      // for IGraphModel
#include "shared/ui/iselectionmanager.h"   // for ISelectionManager
#include "shared/utils/container.h"        // for contains
#include "shared/utils/static_block.h"     // for static_block
#include "ui/document.h"                   // for Document
---


/home/runner/work/graphia/graphia/source/app/attributes/enrichmenttablemodel.h should add these lines:
#include <qtmetamacros.h>       // for Q_PROPERTY, Q_ENUM, Q_OBJECT, signals
#include <QByteArray>           // for QByteArray, QTypeInfo<>::isRelocatable
#include <QModelIndex>          // for QModelIndex
#include <QString>              // for QString
#include <QVariant>             // for QVariant
#include <QtCore>               // for QHash, ItemDataRole, QTypeInfo<>::isR...
#include <vector>               // for vector

/home/runner/work/graphia/graphia/source/app/attributes/enrichmenttablemodel.h should remove these lines:
- #include <QObject>  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/attributes/enrichmenttablemodel.h:
#include <qtmetamacros.h>       // for Q_PROPERTY, Q_ENUM, Q_OBJECT, signals
#include <QAbstractTableModel>  // for QAbstractTableModel
#include <QByteArray>           // for QByteArray, QTypeInfo<>::isRelocatable
#include <QModelIndex>          // for QModelIndex
#include <QString>              // for QString
#include <QVariant>             // for QVariant
#include <QtCore>               // for QHash, ItemDataRole, QTypeInfo<>::isR...
#include <vector>               // for vector
---

/home/runner/work/graphia/graphia/source/app/attributes/enrichmenttablemodel.cpp should add these lines:
#include <qassert.h>                // for Q_ASSERT
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <stddef.h>                 // for size_t
#include <utility>                  // for move

/home/runner/work/graphia/graphia/source/app/attributes/enrichmenttablemodel.cpp should remove these lines:
- #include <QDebug>  // lines 23-23
- #include <QQmlEngine>  // lines 22-22
- #include "enrichmentcalculator.h"  // lines 20-20

The full include-list for /home/runner/work/graphia/graphia/source/app/attributes/enrichmenttablemodel.cpp:
#include "enrichmenttablemodel.h"
#include <qassert.h>                // for Q_ASSERT
#include <qtpreprocessorsupport.h>  // for Q_UNUSED
#include <stddef.h>                 // for size_t
#include <utility>                  // for move
---


/home/runner/work/graphia/graphia/source/app/attributes/conditionfncreator.h should add these lines:
#include <QMessageLogger>                                // for qFatal
#include <QString>                                       // for QString, ope...
#include <boost/variant/detail/apply_visitor_unary.hpp>  // for apply_visitor
#include <functional>                                    // for operator==
#include <utility>                                       // for move
#include <variant>                                       // for visit, opera...
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
class EdgeId;
class IGraphComponent;
class NodeId;

/home/runner/work/graphia/graphia/source/app/attributes/conditionfncreator.h should remove these lines:
- #include "shared/graph/elementid.h"  // lines 24-24
- #include "shared/graph/igraphcomponent.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/attributes/conditionfncreator.h:
#include <QMessageLogger>                                // for qFatal
#include <QRegularExpression>                            // for QRegularExpr...
#include <QString>                                       // for QString, ope...
#include <algorithm>                                     // for any_of
#include <boost/variant/detail/apply_visitor_unary.hpp>  // for apply_visitor
#include <boost/variant/static_visitor.hpp>              // for static_visitor
#include <functional>                                    // for operator==
#include <utility>                                       // for move
#include <variant>                                       // for visit, opera...
#include "attribute.h"                                   // for Attribute
#include "condtionfnops.h"                               // for String, Nume...
#include "graph/graphmodel.h"                            // for GraphModel
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementid_containers.h"           // for ElementCondi...
#include "shared/graph/elementtype.h"                    // for ElementType
#include "transform/graphtransformconfig.h"              // for GraphTransfo...
#include "transform/graphtransformconfigparser.h"        // for GraphTransfo...
class EdgeId;
class IGraphComponent;
class NodeId;
---

(/home/runner/work/graphia/graphia/source/app/attributes/conditionfncreator.cpp has correct #includes/fwd-decls)


/home/runner/work/graphia/graphia/source/app/commands/commandmanager.h should add these lines:
#include <qassert.h>                          // for Q_ASSERT
#include <qtmetamacros.h>                     // for Q_PROPERTY, emit, slots
#include <utility>                            // for move, forward
#include "shared/commands/icommand.h"         // for ICommandPtr, ICommand
class QTimerEvent;

/home/runner/work/graphia/graphia/source/app/commands/commandmanager.h should remove these lines:
- #include <QtGlobal>  // lines 25-25
- #include <functional>  // lines 29-29

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/commandmanager.h:
#include <qassert.h>                          // for Q_ASSERT
#include <qtmetamacros.h>                     // for Q_PROPERTY, emit, slots
#include <QObject>                            // for QObject
#include <QString>                            // for QString
#include <atomic>                             // for atomic_bool
#include <deque>                              // for deque
#include <memory>                             // for operator==, default_delete
#include <mutex>                              // for recursive_mutex
#include <thread>                             // for thread
#include <utility>                            // for move, forward
#include <vector>                             // for vector
#include "shared/commands/icommand.h"         // for ICommandPtr, ICommand
#include "shared/commands/icommandmanager.h"  // for ICommandManager, Execut...
#include "shared/utils/fatalerror.h"          // for FATAL_ERROR
class Graph;  // lines 37-37
class QTimerEvent;
---

/home/runner/work/graphia/graphia/source/app/commands/commandmanager.cpp should add these lines:
#include <qtenvironmentvariables.h>  // for qEnvironmentVariableIntValue
#include <stddef.h>                  // for size_t
#include <QLatin1Char>               // for StringLiterals
#include <QMessageLogger>            // for qDebug
#include <QVariant>                  // for QVariant
#include <algorithm>                 // for copy
#include <type_traits>               // for remove_reference
class QTimerEvent;

/home/runner/work/graphia/graphia/source/app/commands/commandmanager.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/commandmanager.cpp:
#include "commandmanager.h"
#include <qtenvironmentvariables.h>  // for qEnvironmentVariableIntValue
#include <stddef.h>                  // for size_t
#include <QDebug>                    // for QDebug
#include <QLatin1Char>               // for StringLiterals
#include <QMessageLogger>            // for qDebug
#include <QVariant>                  // for QVariant
#include <algorithm>                 // for copy
#include <thread>                    // for thread
#include <type_traits>               // for remove_reference
#include "app/preferences.h"         // for pref
#include "shared/utils/thread.h"     // for setCurrentThreadName
class QTimerEvent;
---


/home/runner/work/graphia/graphia/source/app/commands/applytransformscommand.h should add these lines:
#include <QList>                       // for QList
#include <QString>                     // for QString

/home/runner/work/graphia/graphia/source/app/commands/applytransformscommand.h should remove these lines:
- #include "shared/graph/elementid.h"  // lines 24-24
- #include "shared/graph/elementid_containers.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/applytransformscommand.h:
#include <QList>                       // for QList
#include <QString>                     // for QString
#include <QStringList>                 // for QStringList
#include "shared/commands/icommand.h"  // for ICommand
class Document;  // lines 30-30
class GraphModel;  // lines 29-29
---

/home/runner/work/graphia/graphia/source/app/commands/applytransformscommand.cpp should add these lines:
#include <qassert.h>           // for Q_ASSERT
#include <QLatin1Char>         // for StringLiterals

/home/runner/work/graphia/graphia/source/app/commands/applytransformscommand.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/applytransformscommand.cpp:
#include "applytransformscommand.h"
#include <qassert.h>           // for Q_ASSERT
#include <QLatin1Char>         // for StringLiterals
#include <QObject>             // for QObject
#include <QSet>                // for QSet
#include <algorithm>           // for all_of
#include <utility>             // for move, as_const
#include "graph/graphmodel.h"  // for GraphModel
#include "ui/document.h"       // for Document
---


/home/runner/work/graphia/graphia/source/app/commands/applyvisualisationscommand.h should add these lines:
#include <QList>                       // for QList
#include <QString>                     // for QString

/home/runner/work/graphia/graphia/source/app/commands/applyvisualisationscommand.h should remove these lines:
- #include "shared/graph/elementid.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/applyvisualisationscommand.h:
#include <QList>                       // for QList
#include <QString>                     // for QString
#include <QStringList>                 // for QStringList
#include "shared/commands/icommand.h"  // for ICommand
class Document;  // lines 29-29
class GraphModel;  // lines 28-28
---

/home/runner/work/graphia/graphia/source/app/commands/applyvisualisationscommand.cpp should add these lines:
#include <qassert.h>                                      // for Q_ASSERT
#include <QLatin1Char>                                    // for StringLiterals
#include <vector>                                         // for vector
#include "ui/visualisations/visualisationconfig.h"        // for Visualisati...

/home/runner/work/graphia/graphia/source/app/commands/applyvisualisationscommand.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/applyvisualisationscommand.cpp:
#include "applyvisualisationscommand.h"
#include <qassert.h>                                      // for Q_ASSERT
#include <QLatin1Char>                                    // for StringLiterals
#include <QObject>                                        // for QObject
#include <QRegularExpression>                             // for QRegularExp...
#include <QSet>                                           // for QSet
#include <utility>                                        // for move, as_const
#include <vector>                                         // for vector
#include "graph/graphmodel.h"                             // for GraphModel
#include "ui/document.h"                                  // for Document
#include "ui/visualisations/visualisationconfig.h"        // for Visualisati...
#include "ui/visualisations/visualisationconfigparser.h"  // for Visualisati...
---


(/home/runner/work/graphia/graphia/source/app/commands/cloneattributecommand.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/app/commands/cloneattributecommand.cpp should add these lines:
#include <qassert.h>                   // for Q_ASSERT
#include <QLatin1Char>                 // for StringLiterals
#include <QObject>                     // for QObject
#include <type_traits>                 // for remove_reference_t
#include "attributes/attribute.h"      // for Attribute
#include "shared/graph/elementtype.h"  // for ElementType
class EdgeId;
class NodeId;
template <typename E> class UserElementData;

/home/runner/work/graphia/graphia/source/app/commands/cloneattributecommand.cpp should remove these lines:
- #include "shared/loading/userdatavector.h"  // lines 27-27
- #include "shared/loading/userelementdata.h"  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/cloneattributecommand.cpp:
#include "cloneattributecommand.h"
#include <qassert.h>                   // for Q_ASSERT
#include <QLatin1Char>                 // for StringLiterals
#include <QObject>                     // for QObject
#include <type_traits>                 // for remove_reference_t
#include "attributes/attribute.h"      // for Attribute
#include "graph/graph.h"               // for Graph
#include "graph/graphmodel.h"          // for GraphModel, AttributeChangesTr...
#include "shared/graph/elementtype.h"  // for ElementType
#include "shared/utils/string.h"       // for findUniqueName
class EdgeId;
class NodeId;
template <typename E> class UserElementData;
---


/home/runner/work/graphia/graphia/source/app/commands/deletenodescommand.h should add these lines:
#include <QString>                              // for QString
#include "shared/graph/elementid_containers.h"  // for NodeIdSet

/home/runner/work/graphia/graphia/source/app/commands/deletenodescommand.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/deletenodescommand.h:
#include <QString>                              // for QString
#include <vector>                               // for vector
#include "graph/graph.h"                        // for Edge
#include "shared/commands/icommand.h"           // for ICommand
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
class GraphModel;  // lines 28-28
class SelectionManager;  // lines 29-29
---

/home/runner/work/graphia/graphia/source/app/commands/deletenodescommand.cpp should add these lines:
#include <map>                           // for operator==
#include <utility>                       // for move
#include "shared/graph/elementid.h"      // for NodeId
#include "shared/graph/imutablegraph.h"  // for IMutableGraph

/home/runner/work/graphia/graphia/source/app/commands/deletenodescommand.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/deletenodescommand.cpp:
#include "deletenodescommand.h"
#include <QObject>                       // for QObject
#include <map>                           // for operator==
#include <utility>                       // for move
#include "graph/graphmodel.h"            // for GraphModel
#include "graph/mutablegraph.h"          // for MutableGraph
#include "shared/graph/elementid.h"      // for NodeId
#include "shared/graph/imutablegraph.h"  // for IMutableGraph
#include "ui/selectionmanager.h"         // for SelectionManager
---


/home/runner/work/graphia/graphia/source/app/commands/importattributescommand.h should add these lines:
#include <stddef.h>                         // for size_t

/home/runner/work/graphia/graphia/source/app/commands/importattributescommand.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/importattributescommand.h:
#include <stddef.h>                         // for size_t
#include <QString>                          // for QString
#include <set>                              // for set
#include <vector>                           // for vector
#include "shared/commands/icommand.h"       // for ICommand
#include "shared/loading/tabulardata.h"     // for TabularData
#include "shared/loading/userdatavector.h"  // for UserDataVector
class GraphModel;  // lines 32-32
---

/home/runner/work/graphia/graphia/source/app/commands/importattributescommand.cpp should add these lines:
#include <qassert.h>                    // for Q_ASSERT
#include <QLatin1Char>                  // for StringLiterals
#include <QList>                        // for QList
#include <QObject>                      // for QObject
#include <map>                          // for map
#include <type_traits>                  // for remove_reference_t
#include <utility>                      // for move
#include "attributes/attribute.h"       // for Attribute
#include "shared/graph/elementtype.h"   // for ElementType
#include "shared/utils/typeidentity.h"  // for TypeIdentity
class EdgeId;
class NodeId;
template <typename E> class UserElementData;

/home/runner/work/graphia/graphia/source/app/commands/importattributescommand.cpp should remove these lines:
- #include "shared/loading/userelementdata.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/importattributescommand.cpp:
#include "importattributescommand.h"
#include <qassert.h>                    // for Q_ASSERT
#include <QLatin1Char>                  // for StringLiterals
#include <QList>                        // for QList
#include <QObject>                      // for QObject
#include <map>                          // for map
#include <type_traits>                  // for remove_reference_t
#include <utility>                      // for move
#include "../crashhandler.h"            // for CrashHandler
#include "attributes/attribute.h"       // for Attribute
#include "graph/graphmodel.h"           // for GraphModel, AttributeChangesT...
#include "graph/mutablegraph.h"         // for MutableGraph
#include "shared/graph/elementtype.h"   // for ElementType
#include "shared/utils/string.h"        // for findUniqueName
#include "shared/utils/typeidentity.h"  // for TypeIdentity
class EdgeId;
class NodeId;
template <typename E> class UserElementData;
---


(/home/runner/work/graphia/graphia/source/app/commands/editattributecommand.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/app/commands/editattributecommand.cpp should add these lines:
#include <qassert.h>                            // for Q_ASSERT
#include <QByteArrayDataPtr>                    // for StringLiterals
#include <QObject>                              // for QObject
#include <map>                                  // for operator==
#include <type_traits>                          // for enable_if
#include "attributes/attribute.h"               // for Attribute
#include "attributes/attributeedits.h"          // for AttributeEdits
#include "shared/graph/elementid.h"             // for EdgeId, NodeId
#include "shared/graph/elementid_containers.h"  // for EdgeIdMap, NodeIdMap
#include "shared/graph/elementtype.h"           // for ElementType
#include "shared/loading/userdatavector.h"      // for UserDataVector

/home/runner/work/graphia/graphia/source/app/commands/editattributecommand.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/editattributecommand.cpp:
#include "editattributecommand.h"
#include <qassert.h>                            // for Q_ASSERT
#include <QByteArrayDataPtr>                    // for StringLiterals
#include <QObject>                              // for QObject
#include <QVariant>                             // for QVariant
#include <map>                                  // for operator==
#include <type_traits>                          // for enable_if
#include "attributes/attribute.h"               // for Attribute
#include "attributes/attributeedits.h"          // for AttributeEdits
#include "graph/graphmodel.h"                   // for GraphModel, Attribute...
#include "shared/attributes/valuetype.h"        // for ValueType
#include "shared/graph/elementid.h"             // for EdgeId, NodeId
#include "shared/graph/elementid_containers.h"  // for EdgeIdMap, NodeIdMap
#include "shared/graph/elementtype.h"           // for ElementType
#include "shared/loading/userdatavector.h"      // for UserDataVector
---


/home/runner/work/graphia/graphia/source/app/graph/componentmanager.h should add these lines:
#include <qassert.h>                            // for Q_ASSERT
#include <qtmetamacros.h>                       // for Q_OBJECT, signals, slots
#include <stddef.h>                             // for size_t
#include <map>                                  // for operator==
#include <unordered_set>                        // for unordered_set
#include "graph/graphcomponent.h"               // for GraphComponent
#include "shared/graph/elementid.h"             // for ComponentId, NodeId
class IGraphArray;

/home/runner/work/graphia/graphia/source/app/graph/componentmanager.h should remove these lines:
- #include <QtGlobal>  // lines 35-35
- #include <functional>  // lines 30-30
- class GraphComponent;  // lines 38-38

The full include-list for /home/runner/work/graphia/graphia/source/app/graph/componentmanager.h:
#include <qassert.h>                            // for Q_ASSERT
#include <qtmetamacros.h>                       // for Q_OBJECT, signals, slots
#include <stddef.h>                             // for size_t
#include <QObject>                              // for QObject
#include <algorithm>                            // for any_of
#include <map>                                  // for operator==
#include <memory>                               // for unique_ptr
#include <mutex>                                // for mutex, recursive_mutex
#include <queue>                                // for queue
#include <unordered_set>                        // for unordered_set
#include <vector>                               // for vector
#include "graph/graphcomponent.h"               // for GraphComponent
#include "graphfilter.h"                        // for GraphFilter
#include "shared/graph/elementid.h"             // for ComponentId, NodeId
#include "shared/graph/elementid_containers.h"  // for ComponentIdSet, EdgeC...
#include "shared/graph/grapharray.h"            // for EdgeArray, NodeArray
class Graph;  // lines 37-37
class IGraphArray;
---

/home/runner/work/graphia/graphia/source/app/graph/componentmanager.cpp should add these lines:
#include <bits/chrono.h>                           // for system_clock, dura...
#include <qtenvironmentvariables.h>                // for qEnvironmentVariab...
#include <QDebug>                                  // for QDebug
#include <QMessageLogger>                          // for qDebug, qWarning
#include <Qt>                                      // for ConnectionType
#include <compare>                                 // for operator<, strong_...
#include <iterator>                                // for insert_iterator
#include <set>                                     // for set, erase_if
#include <utility>                                 // for pair, move
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "shared/graph/igraph.h"                   // for IEdge
#include "shared/graph/igrapharray.h"              // for IGraphArray

/home/runner/work/graphia/graphia/source/app/graph/componentmanager.cpp should remove these lines:
- #include <chrono>  // lines 525-525
- #include "shared/utils/container.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/graph/componentmanager.cpp:
#include "componentmanager.h"
#include <bits/chrono.h>                           // for system_clock, dura...
#include <qtenvironmentvariables.h>                // for qEnvironmentVariab...
#include <QDebug>                                  // for QDebug
#include <QMessageLogger>                          // for qDebug, qWarning
#include <Qt>                                      // for ConnectionType
#include <compare>                                 // for operator<, strong_...
#include <iterator>                                // for insert_iterator
#include <map>                                     // for operator==, _Rb_tr...
#include <queue>                                   // for queue
#include <set>                                     // for set, erase_if
#include <utility>                                 // for pair, move
#include "graph.h"                                 // for Graph
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "graphcomponent.h"                        // for GraphComponent
#include "shared/graph/elementid_debug.h"          // for operator<<
#include "shared/graph/igraph.h"                   // for IEdge
#include "shared/graph/igrapharray.h"              // for IGraphArray
#include "shared/utils/thread.h"                   // for currentThreadName
---


/home/runner/work/graphia/graphia/source/app/commands/removeattributescommand.h should add these lines:
#include <QList>                            // for QList

/home/runner/work/graphia/graphia/source/app/commands/removeattributescommand.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/removeattributescommand.h:
#include <QList>                            // for QList
#include <QString>                          // for QString
#include <QStringList>                      // for QStringList
#include <map>                              // for map
#include <vector>                           // for vector
#include "shared/attributes/valuetype.h"    // for ValueType
#include "shared/commands/icommand.h"       // for ICommand
#include "shared/loading/userdatavector.h"  // for UserDataVector
class GraphModel;  // lines 33-33
---

/home/runner/work/graphia/graphia/source/app/commands/removeattributescommand.cpp should add these lines:
#include <qassert.h>                   // for Q_ASSERT
#include <QLatin1Char>                 // for StringLiterals
#include <QObject>                     // for QObject
#include <utility>                     // for move, as_const
#include "attributes/attribute.h"      // for Attribute
#include "shared/graph/elementtype.h"  // for ElementType

/home/runner/work/graphia/graphia/source/app/commands/removeattributescommand.cpp should remove these lines:
- #include "shared/loading/userelementdata.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/commands/removeattributescommand.cpp:
#include "removeattributescommand.h"
#include <qassert.h>                   // for Q_ASSERT
#include <QLatin1Char>                 // for StringLiterals
#include <QObject>                     // for QObject
#include <algorithm>                   // for transform
#include <iterator>                    // for back_insert_iterator, back_ins...
#include <utility>                     // for move, as_const
#include "attributes/attribute.h"      // for Attribute
#include "graph/graphmodel.h"          // for GraphModel, AttributeChangesTr...
#include "shared/graph/elementtype.h"  // for ElementType
---


/home/runner/work/graphia/graphia/source/app/graph/graphconsistencychecker.h should add these lines:
#include <qtmetamacros.h>  // for Q_OBJECT, slots

/home/runner/work/graphia/graphia/source/app/graph/graphconsistencychecker.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/graph/graphconsistencychecker.h:
#include <qtmetamacros.h>  // for Q_OBJECT, slots
#include <QObject>         // for QObject
class Graph;  // lines 24-24
---

/home/runner/work/graphia/graphia/source/app/graph/graphconsistencychecker.cpp should add these lines:
#include <QDebug>                          // for QDebug
#include <QMessageLogger>                  // for qDebug
#include <Qt>                              // for ConnectionType
#include <vector>                          // for vector
#include "shared/graph/elementid.h"        // for ComponentId
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent

/home/runner/work/graphia/graphia/source/app/graph/graphconsistencychecker.cpp should remove these lines:
- #include "componentmanager.h"  // lines 22-22
- #include "graphcomponent.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/app/graph/graphconsistencychecker.cpp:
#include "graphconsistencychecker.h"
#include <QDebug>                          // for QDebug
#include <QMessageLogger>                  // for qDebug
#include <Qt>                              // for ConnectionType
#include <vector>                          // for vector
#include "graph.h"                         // for Graph
#include "shared/graph/elementid.h"        // for ComponentId
#include "shared/graph/elementid_debug.h"  // for operator<<
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent
#include "shared/utils/container.h"        // for contains
---


/home/runner/work/graphia/graphia/source/app/graph/graph.h should add these lines:
#include <qassert.h>                            // for Q_ASSERT
#include <qtmetamacros.h>                       // for Q_OBJECT, signals
#include <stddef.h>                             // for size_t
#include <iterator>                             // for back_inserter
class IGraphArray;
class IGraphComponent;

/home/runner/work/graphia/graphia/source/app/graph/graph.h should remove these lines:
- #include <algorithm>  // lines 34-34

The full include-list for /home/runner/work/graphia/graphia/source/app/graph/graph.h:
#include <qassert.h>                            // for Q_ASSERT
#include <qtmetamacros.h>                       // for Q_OBJECT, signals
#include <stddef.h>                             // for size_t
#include <QObject>                              // for QObject
#include <iterator>                             // for back_inserter
#include <memory>                               // for operator==, unique_ptr
#include <mutex>                                // for mutex
#include <unordered_set>                        // for unordered_set
#include <vector>                               // for vector
#include "elementiddistinctsetcollection.h"     // for EdgeIdDistinctSet
#include "graphconsistencychecker.h"            // for GraphConsistencyChecker
#include "shared/graph/elementid.h"             // for NodeId, EdgeId, Compo...
#include "shared/graph/elementid_containers.h"  // for EdgeIdSet, NodeIdSet
#include "shared/graph/igraph.h"                // for IEdge, IGraph, INode
class ComponentManager;  // lines 36-36
class ComponentMergeSet;  // lines 38-38
class ComponentSplitSet;  // lines 37-37
class IGraphArray;
class IGraphComponent;
---

/home/runner/work/graphia/graphia/source/app/graph/graph.cpp should add these lines:
#include <QMessageLogger>                          // for qDebug, qFatal
#include <Qt>                                      // for ConnectionType
#include <algorithm>                               // for copy
#include <compare>                                 // for operator<, strong_...
#include <set>                                     // for operator<=>, opera...
class IGraphComponent;

/home/runner/work/graphia/graphia/source/app/graph/graph.cpp should remove these lines:
- #include <QtGlobal>  // lines 28-28

The full include-list for /home/runner/work/graphia/graphia/source/app/graph/graph.cpp:
#include "graph.h"
#include <QDebug>                                  // for QDebug
#include <QMessageLogger>                          // for qDebug, qFatal
#include <QMetaType>                               // for qRegisterMetaType
#include <Qt>                                      // for ConnectionType
#include <algorithm>                               // for copy
#include <compare>                                 // for operator<, strong_...
#include <set>                                     // for operator<=>, opera...
#include "componentmanager.h"                      // for ComponentManager
#include "elementiddistinctsetcollection_debug.h"  // for operator<<
#include "graphcomponent.h"                        // for GraphComponent
#include "shared/graph/elementid_debug.h"          // for operator<<
#include "shared/graph/igrapharray.h"              // for IGraphArray
#include "shared/utils/container.h"                // for contains
class IGraphComponent;
---


/home/runner/work/graphia/graphia/source/app/graph/mutablegraph.h should add these lines:
#include <qtmetamacros.h>                          // for Q_OBJECT, signals
#include <cstddef>                                 // for size_t
#include "graph/elementiddistinctsetcollection.h"  // for EdgeIdDistinctSets
#include "shared/graph/elementid.h"                // for NodeId, EdgeId
#include "shared/graph/elementid_containers.h"     // for EdgeIdSet
class IEdge;
class INode;

/home/runner/work/graphia/graphia/source/app/graph/mutablegraph.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/graph/mutablegraph.h:
#include <qtmetamacros.h>                          // for Q_OBJECT, signals
#include <cstddef>                                 // for size_t
#include <deque>                                   // for deque
#include <map>                                     // for map
#include <mutex>                                   // for mutex, unique_lock
#include <vector>                                  // for vector
#include "graph.h"                                 // for Edge, Node, Graph
#include "graph/elementiddistinctsetcollection.h"  // for EdgeIdDistinctSets
#include "shared/graph/elementid.h"                // for NodeId, EdgeId
#include "shared/graph/elementid_containers.h"     // for EdgeIdSet
#include "shared/graph/imutablegraph.h"            // for IMutableGraph
#include "shared/graph/undirectededge.h"           // for UndirectedEdge
class IEdge;
class INode;
---

/home/runner/work/graphia/graphia/source/app/graph/mutablegraph.cpp should add these lines:
#include <qassert.h>                 // for Q_ASSERT
#include <stddef.h>                  // for size_t
#include <algorithm>                 // for copy, min_element, fill, max
#include <compare>                   // for operator<, strong_ordering, oper...
#include <iterator>                  // for back_insert_iterator, back_inserter
#include <utility>                   // for pair
#include "graph/graph.h"             // for Node, Edge, Graph
#include "shared/graph/igraph.h"     // for IEdge, INode

/home/runner/work/graphia/graphia/source/app/graph/mutablegraph.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/graph/mutablegraph.cpp:
#include "mutablegraph.h"
#include <qassert.h>                 // for Q_ASSERT
#include <stddef.h>                  // for size_t
#include <algorithm>                 // for copy, min_element, fill, max
#include <compare>                   // for operator<, strong_ordering, oper...
#include <iterator>                  // for back_insert_iterator, back_inserter
#include <utility>                   // for pair
#include "componentmanager.h"        // for ComponentManager
#include "graph/graph.h"             // for Node, Edge, Graph
#include "graphcomponent.h"          // for GraphComponent
#include "shared/graph/igraph.h"     // for IEdge, INode
#include "shared/utils/container.h"  // for contains
---


/home/runner/work/graphia/graphia/source/app/layout/centreinglayout.h should add these lines:
#include <qtmetamacros.h>  // for Q_OBJECT
class IGraphComponent;
class NodeLayoutPositions;

/home/runner/work/graphia/graphia/source/app/layout/centreinglayout.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/centreinglayout.h:
#include <qtmetamacros.h>  // for Q_OBJECT
#include "layout.h"        // for Layout
class IGraphComponent;
class NodeLayoutPositions;
---

/home/runner/work/graphia/graphia/source/app/layout/centreinglayout.cpp should add these lines:
#include <qvectornd.h>               // for operator-
#include <QVector3D>                 // for QVector3D
#include <vector>                    // for vector
#include "layout/nodepositions.h"    // for NodeLayoutPositions
#include "shared/graph/elementid.h"  // for NodeId

/home/runner/work/graphia/graphia/source/app/layout/centreinglayout.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/centreinglayout.cpp:
#include "centreinglayout.h"
#include <qvectornd.h>               // for operator-
#include <QVector3D>                 // for QVector3D
#include <vector>                    // for vector
#include "layout/nodepositions.h"    // for NodeLayoutPositions
#include "shared/graph/elementid.h"  // for NodeId
---


/home/runner/work/graphia/graphia/source/app/layout/circlepackcomponentlayout.h should add these lines:
#include <vector>             // for vector
class ComponentId;
class Graph;

/home/runner/work/graphia/graphia/source/app/layout/circlepackcomponentlayout.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/circlepackcomponentlayout.h:
#include <vector>             // for vector
#include "componentlayout.h"  // for ComponentLayout, ComponentLayoutData
class ComponentId;
class Graph;
---

/home/runner/work/graphia/graphia/source/app/layout/circlepackcomponentlayout.cpp should add these lines:
#include <stddef.h>                        // for size_t
#include <QtCore>                          // for operator""_s, StringLiterals
#include <compare>                         // for operator<, strong_ordering
#include "layout/componentlayout.h"        // for ComponentLayoutData
#include "maths/circle.h"                  // for Circle
#include "shared/graph/elementid.h"        // for ComponentId, ElementId
#include "shared/graph/grapharray.h"       // for GenericGraphArray, Compone...
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent

/home/runner/work/graphia/graphia/source/app/layout/circlepackcomponentlayout.cpp should remove these lines:
- #include "graph/componentmanager.h"  // lines 37-37
- #include "graph/graphcomponent.h"  // lines 36-36

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/circlepackcomponentlayout.cpp:
#include "circlepackcomponentlayout.h"
#include <stddef.h>                        // for size_t
#include <QVariant>                        // for QVariant
#include <QtCore>                          // for operator""_s, StringLiterals
#include <algorithm>                       // for max, stable_sort
#include <cmath>                           // for sqrt
#include <compare>                         // for operator<, strong_ordering
#include "app/preferences.h"               // for pref
#include "graph/graph.h"                   // for Graph
#include "layout/componentlayout.h"        // for ComponentLayoutData
#include "maths/circle.h"                  // for Circle
#include "shared/graph/elementid.h"        // for ComponentId, ElementId
#include "shared/graph/grapharray.h"       // for GenericGraphArray, Compone...
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent
---


/home/runner/work/graphia/graphia/source/app/headless.h should add these lines:
#include <qtmetamacros.h>  // for Q_OBJECT, signals, slots
#include <QString>         // for QString
#include <QStringList>     // for QStringList

/home/runner/work/graphia/graphia/source/app/headless.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/headless.h:
#include <qtmetamacros.h>  // for Q_OBJECT, signals, slots
#include <QObject>         // for QObject
#include <QString>         // for QString
#include <QStringList>     // for QStringList
#include <memory>          // for unique_ptr
struct HeadlessState;  // lines 27-27
---

/home/runner/work/graphia/graphia/source/app/headless.cpp should add these lines:
#include <stddef.h>                  // for size_t
#include <QList>                     // for QList
#include <QMap>                      // for QMap
#include <QUrl>                      // for QUrl
#include <QVariant>                  // for QVariant
#include <iostream>                  // for operator<<, basic_ostream, cerr
#include <json.hpp>                  // for iter_impl, iteration_proxy_value
#include <string>                    // for char_traits, operator<<, string

/home/runner/work/graphia/graphia/source/app/headless.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/headless.cpp:
#include "headless.h"
#include <json_helper.h>             // for from_json, parseJsonFrom
#include <stddef.h>                  // for size_t
#include <QDir>                      // for QDir
#include <QFileInfo>                 // for QFileInfo
#include <QList>                     // for QList
#include <QMap>                      // for QMap
#include <QString>                   // for QString, operator""_s
#include <QStringList>               // for QStringList
#include <QUrl>                      // for QUrl
#include <QVariant>                  // for QVariant
#include <QVariantMap>               // for QVariantMap
#include <algorithm>                 // for clamp, max
#include <iostream>                  // for operator<<, basic_ostream, cerr
#include <json.hpp>                  // for iter_impl, iteration_proxy_value
#include <string>                    // for char_traits, operator<<, string
#include "app/ui/document.h"         // for Document
#include "application.h"             // for Application
#include "shared/utils/console.h"    // for consoleWidth, isRunningInConsole
#include "shared/utils/container.h"  // for contains, containsAllOf
---


/home/runner/work/graphia/graphia/source/app/layout/componentlayout.h should add these lines:
#include <vector>                     // for vector
class ComponentId;

/home/runner/work/graphia/graphia/source/app/layout/componentlayout.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/componentlayout.h:
#include <QRectF>                     // for QRectF
#include <vector>                     // for vector
#include "maths/circle.h"             // for Circle
#include "shared/graph/grapharray.h"  // for ComponentArray
class ComponentId;
class Graph;  // lines 29-29
---

/home/runner/work/graphia/graphia/source/app/layout/componentlayout.cpp should add these lines:
#include <QPointF>                   // for operator-, QPointF
#include "shared/graph/elementid.h"  // for ComponentId

/home/runner/work/graphia/graphia/source/app/layout/componentlayout.cpp should remove these lines:
- #include "graph/graph.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/componentlayout.cpp:
#include "componentlayout.h"
#include <QPointF>                   // for operator-, QPointF
#include "shared/graph/elementid.h"  // for ComponentId
---


/home/runner/work/graphia/graphia/source/app/graph/graphmodel.h should add these lines:
#include <qtmetamacros.h>                       // for slots, Q_OBJECT, signals
#include <QList>                                // for QList
#include <QObject>                              // for QObject
#include <QVariant>                             // for QVariant
#include "shared/attributes/iattribute.h"       // for AttributeFlag
#include "shared/attributes/valuetype.h"        // for ValueType
#include "shared/graph/elementid.h"             // for ComponentId, NodeId
#include "shared/graph/elementtype.h"           // for ElementType
#include "ui/visualisations/textvisual.h"       // for TextVisual
class IGraph;
class IMutableGraph;
class Progressable;
struct IElementVisual;

/home/runner/work/graphia/graphia/source/app/graph/graphmodel.h should remove these lines:
- class AttributeChangesTracker;  // lines 62-62
- class ICommand;  // lines 50-50
- struct TextVisual;  // lines 54-54

The full include-list for /home/runner/work/graphia/graphia/source/app/graph/graphmodel.h:
#include <qtmetamacros.h>                       // for slots, Q_OBJECT, signals
#include <QList>                                // for QList
#include <QObject>                              // for QObject
#include <QSet>                                 // for QSet
#include <QString>                              // for QString
#include <QStringList>                          // for QStringList
#include <QVariant>                             // for QVariant
#include <QVariantMap>                          // for QVariantMap
#include <atomic>                               // for atomic_bool
#include <map>                                  // for map
#include <memory>                               // for unique_ptr
#include <vector>                               // for vector
#include "app/preferenceswatcher.h"             // for PreferencesWatcher
#include "attributes/attribute.h"               // for Attribute
#include "shared/attributes/iattribute.h"       // for AttributeFlag
#include "shared/attributes/valuetype.h"        // for ValueType
#include "shared/graph/elementid.h"             // for ComponentId, NodeId
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
#include "shared/graph/elementtype.h"           // for ElementType
#include "shared/graph/grapharray.h"            // for NodeArray
#include "shared/graph/igraphmodel.h"           // for VisualChangeFlags (pt...
#include "shared/loading/userelementdata.h"     // for UserEdgeData, UserNod...
#include "ui/visualisations/textvisual.h"       // for TextVisual
class Graph;  // lines 43-43
class GraphModelImpl;  // lines 42-42
class GraphTransformFactory;  // lines 60-60
class IGraph;
class IMutableGraph;
class IPlugin;  // lines 51-51
class MutableGraph;  // lines 44-44
class NodePositions;  // lines 45-45
class Progressable;
class SearchManager;  // lines 48-48
class SelectionManager;  // lines 47-47
class TransformInfo;  // lines 57-57
class VisualisationInfo;  // lines 58-58
struct ElementVisual;  // lines 53-53
struct IElementVisual;
---

/home/runner/work/graphia/graphia/source/app/graph/graphmodel.cpp should add these lines:
#include <qassert.h>
#include <stddef.h>
#include <QCollator>
#include <QColor>
#include <QDebug>
#include <QMap>
#include <QMessageLogger>
#include <QtCore>
#include <algorithm>
#include <cmath>
#include <iterator>
#include <mutex>
#include "attributes/condtionfnops.h"
#include "graph/elementiddistinctsetcollection.h"
#include "graph/graph.h"
#include "preferenceswatcher.h"
#include "shared/attributes/iattributerange.h"
#include "shared/graph/igraph.h"
#include "shared/graph/igraphcomponent.h"
#include "shared/loading/userdata.h"
#include "shared/ui/visualisations/ielementvisual.h"
#include "shared/utils/container.h"
#include "transform/graphtransform.h"
#include "transform/graphtransformconfig.h"
#include "ui/alert.h"
#include "ui/visualisations/visualisationchannel.h"
#include "ui/visualisations/visualisationconfig.h"
class IMutableGraph;
class Progressable;

/home/runner/work/graphia/graphia/source/app/graph/graphmodel.cpp should remove these lines:
- #include "shared/commands/icommand.h"  // lines 72-72

The full include-list for /home/runner/work/graphia/graphia/source/app/graph/graphmodel.cpp:
#include "graphmodel.h"
#include <qassert.h>
#include <stddef.h>
#include <QCollator>
#include <QColor>
#include <QDebug>
#include <QMap>
#include <QMessageLogger>
#include <QMetaType>
#include <QRegularExpression>
#include <QSet>
#include <QtCore>
#include <algorithm>
#include <cmath>
#include <iterator>
#include <map>
#include <mutex>
#include <set>
#include <utility>
#include <vector>
#include "attributes/attribute.h"
#include "attributes/condtionfnops.h"
#include "graph/elementiddistinctsetcollection.h"
#include "graph/graph.h"
#include "graph/mutablegraph.h"
#include "layout/nodepositions.h"
#include "limitconstants.h"
#include "preferences.h"
#include "preferenceswatcher.h"
#include "shared/attributes/iattributerange.h"
#include "shared/graph/grapharray.h"
#include "shared/graph/igraph.h"
#include "shared/graph/igraphcomponent.h"
#include "shared/loading/userdata.h"
#include "shared/loading/userelementdata.h"
#include "shared/plugins/iplugin.h"
#include "shared/ui/visualisations/ielementvisual.h"
#include "shared/utils/container.h"
#include "shared/utils/container_combine.h"
#include "shared/utils/flags.h"
#include "shared/utils/pair_iterator.h"
#include "shared/utils/scopetimer.h"
#include "shared/utils/string.h"
#include "shared/utils/utils.h"
#include "transform/graphtransform.h"
#include "transform/graphtransformconfig.h"
#include "transform/graphtransformconfigparser.h"
#include "transform/transformedgraph.h"
#include "transform/transforminfo.h"
#include "transform/transforms/attributesynthesistransform.h"
#include "transform/transforms/averageattributetransform.h"
#include "transform/transforms/betweennesstransform.h"
#include "transform/transforms/combineattributestransform.h"
#include "transform/transforms/conditionalattributetransform.h"
#include "transform/transforms/contractbyattributetransform.h"
#include "transform/transforms/eccentricitytransform.h"
#include "transform/transforms/edgecontractiontransform.h"
#include "transform/transforms/edgereductiontransform.h"
#include "transform/transforms/filtertransform.h"
#include "transform/transforms/forwardmultielementattributetransform.h"
#include "transform/transforms/knntransform.h"
#include "transform/transforms/louvaintransform.h"
#include "transform/transforms/mcltransform.h"
#include "transform/transforms/pageranktransform.h"
#include "transform/transforms/percentnntransform.h"
#include "transform/transforms/removeleavestransform.h"
#include "transform/transforms/separatebyattributetransform.h"
#include "transform/transforms/spanningtreetransform.h"
#include "transform/transforms/typecasttransform.h"
#include "ui/alert.h"
#include "ui/document.h"
#include "ui/searchmanager.h"
#include "ui/selectionmanager.h"
#include "ui/visualisations/colorvisualisationchannel.h"
#include "ui/visualisations/elementvisual.h"
#include "ui/visualisations/sharedtextvisualisationchannel.h"
#include "ui/visualisations/sizevisualisationchannel.h"
#include "ui/visualisations/textcolorvisualisationchannel.h"
#include "ui/visualisations/textsizevisualisationchannel.h"
#include "ui/visualisations/textvisual.h"
#include "ui/visualisations/textvisualisationchannel.h"
#include "ui/visualisations/visualisationbuilder.h"
#include "ui/visualisations/visualisationchannel.h"
#include "ui/visualisations/visualisationconfig.h"
#include "ui/visualisations/visualisationconfigparser.h"
#include "ui/visualisations/visualisationinfo.h"
class IMutableGraph;
class Progressable;
---


/home/runner/work/graphia/graphia/source/app/layout/collision.h should add these lines:
class QVector3D;

/home/runner/work/graphia/graphia/source/app/layout/collision.h should remove these lines:
- #include <memory>  // lines 28-28
- #include "layout.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/collision.h:
#include <QVector3D>                 // for QVector3D
#include <vector>                    // for vector
#include "shared/graph/elementid.h"  // for NodeId, ComponentId
class GraphModel;  // lines 30-30
class QVector3D;
---

/home/runner/work/graphia/graphia/source/app/layout/collision.cpp should add these lines:
#include <qassert.h>                                  // for Q_ASSERT
#include <qvectornd.h>                                // for QVector3D (ptr ...
#include <limits>                                     // for numeric_limits
#include "layout/nodepositions.h"                     // for NodePositions
#include "shared/graph/igraphcomponent.h"             // for IGraphComponent
#include "shared/ui/visualisations/ielementvisual.h"  // for VisualFlags
#include "shared/utils/flags.h"                       // for Flags

/home/runner/work/graphia/graphia/source/app/layout/collision.cpp should remove these lines:
- #include "maths/ray.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/collision.cpp:
#include "collision.h"
#include <qassert.h>                                  // for Q_ASSERT
#include <qvectornd.h>                                // for QVector3D (ptr ...
#include <limits>                                     // for numeric_limits
#include "graph/graph.h"                              // for Graph
#include "graph/graphmodel.h"                         // for GraphModel
#include "layout/nodepositions.h"                     // for NodePositions
#include "maths/plane.h"                              // for Plane
#include "shared/graph/igraphcomponent.h"             // for IGraphComponent
#include "shared/ui/visualisations/ielementvisual.h"  // for VisualFlags
#include "shared/utils/flags.h"                       // for Flags
#include "ui/visualisations/elementvisual.h"          // for ElementVisual
---


/home/runner/work/graphia/graphia/source/app/layout/fastinitiallayout.h should add these lines:
#include <qtmetamacros.h>             // for Q_OBJECT
#include <QMatrix4x4>                 // for QMatrix4x4
#include "shared/graph/grapharray.h"  // for NodeArray
class IGraphComponent;
class NodeId;
class NodeLayoutPositions;
class QVector3D;

/home/runner/work/graphia/graphia/source/app/layout/fastinitiallayout.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/fastinitiallayout.h:
#include <qtmetamacros.h>             // for Q_OBJECT
#include <QMatrix4x4>                 // for QMatrix4x4
#include "layout.h"                   // for Layout
#include "shared/graph/grapharray.h"  // for NodeArray
class IGraphComponent;
class NodeId;
class NodeLayoutPositions;
class QVector3D;
---

/home/runner/work/graphia/graphia/source/app/layout/fastinitiallayout.cpp should add these lines:
#include <qvectornd.h>                     // for operator*, QVector3D (ptr ...
#include <QVector3D>                       // for QVector3D
#include <algorithm>                       // for copy
#include <queue>                           // for queue
#include <vector>                          // for vector
#include "layout/layout.h"                 // for Layout
#include "layout/nodepositions.h"          // for NodeLayoutPositions
#include "shared/graph/elementid.h"        // for NodeId, EdgeId, ElementId
#include "shared/graph/igraph.h"           // for IGraph, IEdge, INode
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent

/home/runner/work/graphia/graphia/source/app/layout/fastinitiallayout.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/fastinitiallayout.cpp:
#include "fastinitiallayout.h"
#include <qvectornd.h>                     // for operator*, QVector3D (ptr ...
#include <QMatrix4x4>                      // for QMatrix4x4, operator*
#include <QVector3D>                       // for QVector3D
#include <QVector4D>                       // for QVector4D
#include <algorithm>                       // for copy
#include <cmath>                           // for sin, acos, cos, fmod, sqrt
#include <numbers>                         // for pi_v
#include <queue>                           // for queue
#include <vector>                          // for vector
#include "layout/layout.h"                 // for Layout
#include "layout/nodepositions.h"          // for NodeLayoutPositions
#include "shared/graph/elementid.h"        // for NodeId, EdgeId, ElementId
#include "shared/graph/igraph.h"           // for IGraph, IEdge, INode
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent
---


/home/runner/work/graphia/graphia/source/app/layout/layoutsettings.h should add these lines:
#include <qtmetamacros.h>  // for Q_OBJECT, signals

/home/runner/work/graphia/graphia/source/app/layout/layoutsettings.h should remove these lines:
- #include <algorithm>  // lines 29-29
- #include <utility>  // lines 28-28
- #include "shared/utils/utils.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/layoutsettings.h:
#include <qtmetamacros.h>  // for Q_OBJECT, signals
#include <QObject>         // for QObject
#include <QString>         // for QString
#include <vector>          // for vector
---

/home/runner/work/graphia/graphia/source/app/layout/layoutsettings.cpp should add these lines:
#include <QLatin1Char>     // for StringLiterals
#include <QMessageLogger>  // for qDebug
#include <algorithm>       // for clamp, find_if

/home/runner/work/graphia/graphia/source/app/layout/layoutsettings.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/layoutsettings.cpp:
#include "layoutsettings.h"
#include <QDebug>          // for QDebug
#include <QLatin1Char>     // for StringLiterals
#include <QMessageLogger>  // for qDebug
#include <algorithm>       // for clamp, find_if
#include <cmath>           // for log10, pow
---


/home/runner/work/graphia/graphia/source/app/layout/nodepositions.h should add these lines:
#include <qassert.h>                      // for Q_ASSERT
#include <stddef.h>                       // for size_t
#include <vector>                         // for vector
#include "shared/graph/elementid.h"       // for NodeId
class QVector3D;

/home/runner/work/graphia/graphia/source/app/layout/nodepositions.h should remove these lines:
- #include <array>  // lines 27-27
- #include "maths/boundingsphere.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/nodepositions.h:
#include <qassert.h>                      // for Q_ASSERT
#include <stddef.h>                       // for size_t
#include <QVector3D>                      // for QVector3D
#include <mutex>                          // for recursive_mutex
#include <thread>                         // for thread
#include <vector>                         // for vector
#include "maths/boundingbox.h"            // for BoundingBox3D
#include "shared/graph/elementid.h"       // for NodeId
#include "shared/graph/grapharray.h"      // for NodeArray
#include "shared/utils/circularbuffer.h"  // for CircularBuffer
class QVector3D;
---

/home/runner/work/graphia/graphia/source/app/layout/nodepositions.cpp should add these lines:
#include <qvectornd.h>  // for operator*, QVector3D (ptr only), operator+
#include <algorithm>    // for max

/home/runner/work/graphia/graphia/source/app/layout/nodepositions.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/nodepositions.cpp:
#include "nodepositions.h"
#include <qvectornd.h>  // for operator*, QVector3D (ptr only), operator+
#include <algorithm>    // for max
#include <cmath>        // for isnan
#include <numeric>      // for accumulate
---


/home/runner/work/graphia/graphia/source/app/layout/forcedirectedlayout.h should add these lines:
#include <qtmetamacros.h>                 // for Q_OBJECT
#include <stddef.h>                       // for size_t
#include <QLatin1Char>                    // for StringLiterals
#include <QObject>                        // for QObject
#include <QString>                        // for QString, operator""_s
#include <atomic>                         // for atomic
#include <memory>                         // for unique_ptr
#include "shared/graph/grapharray.h"      // for EdgeArray, NodeArray
class ComponentId;
class GraphModel;
class IGraphComponent;
class LayoutSettings;
class NodeLayoutPositions;
class QVector3D;

/home/runner/work/graphia/graphia/source/app/layout/forcedirectedlayout.h should remove these lines:
- #include <vector>  // lines 28-28
- #include "graph/componentmanager.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/forcedirectedlayout.h:
#include <qtmetamacros.h>                 // for Q_OBJECT
#include <stddef.h>                       // for size_t
#include <QLatin1Char>                    // for StringLiterals
#include <QObject>                        // for QObject
#include <QString>                        // for QString, operator""_s
#include <QVector3D>                      // for QVector3D
#include <atomic>                         // for atomic
#include <memory>                         // for unique_ptr
#include "layout.h"                       // for Layout, LayoutFactory
#include "shared/graph/grapharray.h"      // for EdgeArray, NodeArray
#include "shared/utils/circularbuffer.h"  // for CircularBuffer
class ComponentId;
class GraphModel;
class IGraphComponent;
class LayoutSettings;
class NodeLayoutPositions;
class QVector3D;
---

/home/runner/work/graphia/graphia/source/app/layout/forcedirectedlayout.cpp should add these lines:
#include <bits/std_abs.h>                  // for abs
#include <qvectornd.h>                     // for operator*, operator/, oper...
#include <QtCore>                          // for qMakeStringPrivate, qFuzzy...
#include <vector>                          // for vector
#include "layout/layout.h"                 // for Layout, LayoutFactory
#include "layout/layoutsettings.h"         // for LayoutSettings, LayoutSett...
#include "layout/nodepositions.h"          // for NodeLayoutPositions
#include "shared/graph/elementid.h"        // for NodeId, EdgeId, ComponentId
#include "shared/graph/igraph.h"           // for IEdge, IGraph
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent

/home/runner/work/graphia/graphia/source/app/layout/forcedirectedlayout.cpp should remove these lines:
- #include "app/preferences.h"  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/forcedirectedlayout.cpp:
#include "forcedirectedlayout.h"
#include <bits/std_abs.h>                  // for abs
#include <qvectornd.h>                     // for operator*, operator/, oper...
#include <QtCore>                          // for qMakeStringPrivate, qFuzzy...
#include <cmath>                           // for sqrt
#include <vector>                          // for vector
#include "barneshuttree.h"                 // for AbstractBarnesHutTree, Bar...
#include "fastinitiallayout.h"             // for FastInitialLayout
#include "graph/graph.h"                   // for Graph
#include "graph/graphmodel.h"              // for GraphModel
#include "layout/layout.h"                 // for Layout, LayoutFactory
#include "layout/layoutsettings.h"         // for LayoutSettings, LayoutSett...
#include "layout/nodepositions.h"          // for NodeLayoutPositions
#include "shared/graph/elementid.h"        // for NodeId, EdgeId, ComponentId
#include "shared/graph/igraph.h"           // for IEdge, IGraph
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent
#include "shared/utils/scopetimer.h"       // for SCOPE_TIMER_MULTISAMPLES
#include "shared/utils/threadpool.h"       // for parallel_for, ThreadPool
---


/home/runner/work/graphia/graphia/source/app/layout/layout.h should add these lines:
#include <qtmetamacros.h>                       // for Q_OBJECT, signals
#include <stddef.h>                             // for size_t
#include <QMessageLogger>                       // for qFatal
#include <QString>                              // for QString
#include <vector>                               // for vector
#include "shared/graph/grapharray.h"            // for ComponentArray
class ComponentId;
class ComponentSplitSet;
class EdgeId;
class Graph;
class NodeId;

/home/runner/work/graphia/graphia/source/app/layout/layout.h should remove these lines:
- #include <QVector2D>  // lines 33-33
- #include <QVector3D>  // lines 34-34
- #include <algorithm>  // lines 43-43
- #include <atomic>  // lines 41-41
- #include <cstdint>  // lines 45-45
- #include <limits>  // lines 44-44
- #include <map>  // lines 47-47
- #include <set>  // lines 46-46
- #include "graph/componentmanager.h"  // lines 24-24
- #include "shared/utils/enumbitmask.h"  // lines 29-29

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/layout.h:
#include <qtmetamacros.h>                       // for Q_OBJECT, signals
#include <stddef.h>                             // for size_t
#include <QMessageLogger>                       // for qFatal
#include <QObject>                              // for QObject
#include <QString>                              // for QString
#include <condition_variable>                   // for condition_variable
#include <memory>                               // for unique_ptr
#include <mutex>                                // for mutex
#include <thread>                               // for thread
#include <vector>                               // for vector
#include "layoutsettings.h"                     // for LayoutSettings
#include "nodepositions.h"                      // for ExactNodePositions
#include "shared/graph/elementid_containers.h"  // for ComponentIdMap
#include "shared/graph/grapharray.h"            // for ComponentArray
#include "shared/graph/igraphcomponent.h"       // for IGraphComponent
#include "shared/utils/cancellable.h"           // for Cancellable
#include "shared/utils/performancecounter.h"    // for PerformanceCounter
class ComponentId;
class ComponentSplitSet;
class EdgeId;
class Graph;
class GraphModel;  // lines 125-125
class NodeId;
---

/home/runner/work/graphia/graphia/source/app/layout/layout.cpp should add these lines:
#include <bits/chrono.h>               // for seconds
#include <qassert.h>                   // for Q_ASSERT
#include <qtenvironmentvariables.h>    // for qEnvironmentVariableIntValue
#include <QtCore>                      // for ConnectionType, StringLiterals
#include <algorithm>                   // for any_of, all_of, count_if
#include <map>                         // for operator==, _Rb_tree_iterator
#include <utility>                     // for pair, move
#include "layout/layoutsettings.h"     // for LayoutSettings, LayoutSetting ...
#include "layout/nodepositions.h"      // for NodePositions, NodeLayoutPosit...
#include "shared/graph/elementid.h"    // for ComponentId
#include "shared/utils/enumbitmask.h"  // for operator&, operator&&

/home/runner/work/graphia/graphia/source/app/layout/layout.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/layout.cpp:
#include "layout.h"
#include <bits/chrono.h>               // for seconds
#include <qassert.h>                   // for Q_ASSERT
#include <qtenvironmentvariables.h>    // for qEnvironmentVariableIntValue
#include <QDebug>                      // for QDebug
#include <QtCore>                      // for ConnectionType, StringLiterals
#include <algorithm>                   // for any_of, all_of, count_if
#include <map>                         // for operator==, _Rb_tree_iterator
#include <utility>                     // for pair, move
#include "graph/componentmanager.h"    // for ComponentSplitSet
#include "graph/graph.h"               // for Graph
#include "graph/graphmodel.h"          // for GraphModel
#include "layout/layoutsettings.h"     // for LayoutSettings, LayoutSetting ...
#include "layout/nodepositions.h"      // for NodePositions, NodeLayoutPosit...
#include "shared/graph/elementid.h"    // for ComponentId
#include "shared/utils/container.h"    // for contains
#include "shared/utils/enumbitmask.h"  // for operator&, operator&&
#include "shared/utils/thread.h"       // for setCurrentThreadName
---


/home/runner/work/graphia/graphia/source/app/layout/powerof2gridcomponentlayout.h should add these lines:
#include <vector>             // for vector
class ComponentId;
class Graph;

/home/runner/work/graphia/graphia/source/app/layout/powerof2gridcomponentlayout.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/powerof2gridcomponentlayout.h:
#include <vector>             // for vector
#include "componentlayout.h"  // for ComponentLayout, ComponentLayoutData
class ComponentId;
class Graph;
---

/home/runner/work/graphia/graphia/source/app/layout/powerof2gridcomponentlayout.cpp should add these lines:
#include <qtypes.h>                        // for qreal
#include <stddef.h>                        // for size_t
#include "layout/componentlayout.h"        // for ComponentLayoutData
#include "maths/circle.h"                  // for Circle
#include "shared/graph/elementid.h"        // for ComponentId
#include "shared/graph/grapharray.h"       // for ComponentArray, GenericGra...
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent

/home/runner/work/graphia/graphia/source/app/layout/powerof2gridcomponentlayout.cpp should remove these lines:
- #include "graph/componentmanager.h"  // lines 23-23
- #include "graph/graphcomponent.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/powerof2gridcomponentlayout.cpp:
#include "powerof2gridcomponentlayout.h"
#include <qtypes.h>                        // for qreal
#include <stddef.h>                        // for size_t
#include <QPointF>                         // for QPointF
#include <algorithm>                       // for copy, max, stable_sort
#include <stack>                           // for stack
#include <vector>                          // for vector
#include "graph/graph.h"                   // for Graph
#include "layout/componentlayout.h"        // for ComponentLayoutData
#include "maths/circle.h"                  // for Circle
#include "shared/graph/elementid.h"        // for ComponentId
#include "shared/graph/grapharray.h"       // for ComponentArray, GenericGra...
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent
#include "shared/utils/utils.h"            // for smallestPowerOf2GreaterThan
---


/home/runner/work/graphia/graphia/source/app/layout/randomlayout.h should add these lines:
#include <qtmetamacros.h>  // for Q_OBJECT
class IGraphComponent;
class NodeLayoutPositions;

/home/runner/work/graphia/graphia/source/app/layout/randomlayout.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/randomlayout.h:
#include <qtmetamacros.h>  // for Q_OBJECT
#include "layout.h"        // for Layout
class IGraphComponent;
class NodeLayoutPositions;
---

/home/runner/work/graphia/graphia/source/app/layout/randomlayout.cpp should add these lines:
#include <vector>                    // for vector
#include "layout/nodepositions.h"    // for NodeLayoutPositions
#include "shared/graph/elementid.h"  // for NodeId

/home/runner/work/graphia/graphia/source/app/layout/randomlayout.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/randomlayout.cpp:
#include "randomlayout.h"
#include <vector>                    // for vector
#include "layout/nodepositions.h"    // for NodeLayoutPositions
#include "shared/graph/elementid.h"  // for NodeId
#include "shared/utils/random.h"     // for randQVector3D
---


/home/runner/work/graphia/graphia/source/app/layout/scalinglayout.h should add these lines:
#include <qtmetamacros.h>  // for Q_OBJECT
class IGraphComponent;
class NodeLayoutPositions;

/home/runner/work/graphia/graphia/source/app/layout/scalinglayout.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/scalinglayout.h:
#include <qtmetamacros.h>  // for Q_OBJECT
#include "layout.h"        // for Layout
class IGraphComponent;
class NodeLayoutPositions;
---

/home/runner/work/graphia/graphia/source/app/layout/scalinglayout.cpp should add these lines:
#include <qvectornd.h>               // for operator*
#include <QVector3D>                 // for QVector3D
#include <vector>                    // for vector
#include "layout/nodepositions.h"    // for NodeLayoutPositions
#include "shared/graph/elementid.h"  // for NodeId

/home/runner/work/graphia/graphia/source/app/layout/scalinglayout.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/layout/scalinglayout.cpp:
#include "scalinglayout.h"
#include <qvectornd.h>               // for operator*
#include <QVector3D>                 // for QVector3D
#include <vector>                    // for vector
#include "layout/nodepositions.h"    // for NodeLayoutPositions
#include "shared/graph/elementid.h"  // for NodeId
---


/home/runner/work/graphia/graphia/source/app/limitconstants.h should add these lines:
#include <qtmetamacros.h>  // for Q_PROPERTY, Q_OBJECT

/home/runner/work/graphia/graphia/source/app/limitconstants.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/limitconstants.h:
#include <qtmetamacros.h>  // for Q_PROPERTY, Q_OBJECT
#include <QObject>         // for QObject
---

/home/runner/work/graphia/graphia/source/app/limitconstants.cpp should add these lines:
#include <QTypeInfo>                    // for QTypeInfo<>::isValueInitializ...
#include <QtQml>                        // for qmlRegisterType

/home/runner/work/graphia/graphia/source/app/limitconstants.cpp should remove these lines:
- #include <QQmlEngine>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/limitconstants.cpp:
#include "limitconstants.h"
#include <QTypeInfo>                    // for QTypeInfo<>::isValueInitializ...
#include <QtQml>                        // for qmlRegisterType
#include "shared/utils/static_block.h"  // for static_block
---


/home/runner/work/graphia/graphia/source/app/loading/gmlsaver.h should add these lines:
#include <QByteArrayDataPtr>       // for StringLiterals
#include <QString>                 // for operator""_s, QString
#include <QUrl>                    // for QUrl
#include "loading/isaver.h"        // for ISaver
class IGraphModel;

/home/runner/work/graphia/graphia/source/app/loading/gmlsaver.h should remove these lines:
- #include "graph/graphmodel.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/gmlsaver.h:
#include <QByteArrayDataPtr>       // for StringLiterals
#include <QString>                 // for operator""_s, QString
#include <QUrl>                    // for QUrl
#include "loading/isaver.h"        // for ISaver
#include "loading/saverfactory.h"  // for SaverFactory
class IGraphModel;
---

/home/runner/work/graphia/graphia/source/app/loading/gmlsaver.cpp should add these lines:
#include <stddef.h>                        // for size_t
#include <QChar>                           // for QChar
#include <QFlags>                          // for QFlags
#include <QIODevice>                       // for QIODevice, operator|
#include <QObject>                         // for QObject
#include <cmath>                           // for isnan
#include <map>                             // for map, operator==
#include <vector>                          // for vector
#include "shared/attributes/iattribute.h"  // for IAttribute
#include "shared/attributes/valuetype.h"   // for operator&, ValueType
#include "shared/graph/elementid.h"        // for NodeId, EdgeId
#include "shared/graph/elementtype.h"      // for ElementType
#include "shared/graph/igraph.h"           // for IGraph, IEdge
#include "shared/graph/igraphmodel.h"      // for IGraphModel

/home/runner/work/graphia/graphia/source/app/loading/gmlsaver.cpp should remove these lines:
- #include "shared/graph/imutablegraph.h"  // lines 21-21
- #include "ui/document.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/gmlsaver.cpp:
#include "gmlsaver.h"
#include <stddef.h>                        // for size_t
#include <QChar>                           // for QChar
#include <QFile>                           // for QFile
#include <QFlags>                          // for QFlags
#include <QIODevice>                       // for QIODevice, operator|
#include <QObject>                         // for QObject
#include <QRegularExpression>              // for QRegularExpression
#include <QTextStream>                     // for QTextStream
#include <cmath>                           // for isnan
#include <map>                             // for map, operator==
#include <vector>                          // for vector
#include "shared/attributes/iattribute.h"  // for IAttribute
#include "shared/attributes/valuetype.h"   // for operator&, ValueType
#include "shared/graph/elementid.h"        // for NodeId, EdgeId
#include "shared/graph/elementtype.h"      // for ElementType
#include "shared/graph/igraph.h"           // for IGraph, IEdge
#include "shared/graph/igraphmodel.h"      // for IGraphModel
---


/home/runner/work/graphia/graphia/source/app/loading/importattributeskeydetection.h should add these lines:
#include <qtmetamacros.h>              // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
#include <QMap>                        // for QMap
#include <QString>                     // for QString
#include <QVariant>                    // for QVariant
#include <memory>                      // for shared_ptr
class Document;
class TabularData;

/home/runner/work/graphia/graphia/source/app/loading/importattributeskeydetection.h should remove these lines:
- #include "shared/loading/tabulardata.h"  // lines 23-23
- #include "ui/document.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/importattributeskeydetection.h:
#include <qtmetamacros.h>              // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
#include <QFutureWatcher>              // for QFutureWatcher
#include <QMap>                        // for QMap
#include <QObject>                     // for QObject
#include <QString>                     // for QString
#include <QVariant>                    // for QVariant
#include <QVariantMap>                 // for QVariantMap
#include <memory>                      // for shared_ptr
#include "shared/utils/cancellable.h"  // for Cancellable
class Document;
class TabularData;
---

/home/runner/work/graphia/graphia/source/app/loading/importattributeskeydetection.cpp should add these lines:
#include <stddef.h>                       // for size_t
#include <QByteArrayDataPtr>              // for StringLiterals
#include <QList>                          // for QList
#include <QtQml>                          // for qmlRegisterType
#include <vector>                         // for vector
#include "shared/attributes/valuetype.h"  // for ValueType
#include "shared/graph/elementtype.h"     // for ElementType
#include "shared/loading/tabulardata.h"   // for TabularData
#include "shared/utils/typeidentity.h"    // for TypeIdentity
#include "ui/document.h"                  // for Document

/home/runner/work/graphia/graphia/source/app/loading/importattributeskeydetection.cpp should remove these lines:
- #include <QQmlEngine>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/importattributeskeydetection.cpp:
#include "importattributeskeydetection.h"
#include <stddef.h>                       // for size_t
#include <QByteArrayDataPtr>              // for StringLiterals
#include <QFuture>                        // for QFuture
#include <QList>                          // for QList
#include <QtConcurrentRun>                // for run
#include <QtQml>                          // for qmlRegisterType
#include <vector>                         // for vector
#include "shared/attributes/valuetype.h"  // for ValueType
#include "shared/graph/elementtype.h"     // for ElementType
#include "shared/loading/tabulardata.h"   // for TabularData
#include "shared/utils/static_block.h"    // for static_block
#include "shared/utils/typeidentity.h"    // for TypeIdentity
#include "ui/document.h"                  // for Document
---


/home/runner/work/graphia/graphia/source/app/loading/graphmlsaver.h should add these lines:
#include <QLatin1Char>             // for StringLiterals
#include "loading/isaver.h"        // for ISaver
class IGraphModel;

/home/runner/work/graphia/graphia/source/app/loading/graphmlsaver.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/graphmlsaver.h:
#include <QLatin1Char>             // for StringLiterals
#include <QString>                 // for operator""_s, QString
#include <QUrl>                    // for QUrl
#include "loading/isaver.h"        // for ISaver
#include "loading/saverfactory.h"  // for SaverFactory
class IGraphModel;
---

/home/runner/work/graphia/graphia/source/app/loading/graphmlsaver.cpp should add these lines:
#include <qassert.h>                       // for Q_ASSERT
#include <stddef.h>                        // for size_t
#include <QFlags>                          // for QFlags
#include <QIODevice>                       // for QIODevice, operator|
#include <QObject>                         // for QObject
#include <QVector3D>                       // for QVector3D
#include <map>                             // for map
#include <vector>                          // for vector
#include "shared/attributes/valuetype.h"   // for ValueType
#include "shared/graph/elementid.h"        // for NodeId, EdgeId
#include "shared/graph/elementtype.h"      // for ElementType
#include "shared/graph/igraph.h"           // for IGraph, IEdge
#include "shared/graph/igraphmodel.h"      // for IGraphModel

/home/runner/work/graphia/graphia/source/app/loading/graphmlsaver.cpp should remove these lines:
- #include "graph/graph.h"  // lines 21-21
- #include "shared/graph/imutablegraph.h"  // lines 25-25
- #include "ui/document.h"  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/graphmlsaver.cpp:
#include "graphmlsaver.h"
#include <qassert.h>                       // for Q_ASSERT
#include <stddef.h>                        // for size_t
#include <QFile>                           // for QFile
#include <QFlags>                          // for QFlags
#include <QIODevice>                       // for QIODevice, operator|
#include <QObject>                         // for QObject
#include <QString>                         // for operator""_s, QAnyStringVi...
#include <QUrl>                            // for QUrl
#include <QVector3D>                       // for QVector3D
#include <QXmlStreamWriter>                // for QXmlStreamWriter
#include <map>                             // for map
#include <vector>                          // for vector
#include "graph/graphmodel.h"              // for GraphModel
#include "layout/nodepositions.h"          // for NodePositions
#include "shared/attributes/iattribute.h"  // for IAttribute
#include "shared/attributes/valuetype.h"   // for ValueType
#include "shared/graph/elementid.h"        // for NodeId, EdgeId
#include "shared/graph/elementtype.h"      // for ElementType
#include "shared/graph/igraph.h"           // for IGraph, IEdge
#include "shared/graph/igraphmodel.h"      // for IGraphModel
---


/home/runner/work/graphia/graphia/source/app/loading/jsongraphsaver.h should add these lines:
#include <QLatin1Char>       // for StringLiterals
#include <QUrl>              // for QUrl
#include "loading/isaver.h"  // for ISaver
class IGraphModel;
class Progressable;

/home/runner/work/graphia/graphia/source/app/loading/jsongraphsaver.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/jsongraphsaver.h:
#include <json_helper.h>     // for json
#include <QLatin1Char>       // for StringLiterals
#include <QString>           // for operator""_s, QString
#include <QUrl>              // for QUrl
#include "loading/isaver.h"  // for ISaver
#include "saverfactory.h"    // for SaverFactory
class IGraph;  // lines 30-30
class IGraphModel;
class Progressable;
---

/home/runner/work/graphia/graphia/source/app/loading/jsongraphsaver.cpp should add these lines:
#include <stddef.h>                        // for size_t
#include <QByteArray>                      // for QByteArray
#include <QFlags>                          // for QFlags
#include <QIODevice>                       // for QIODevice, operator|
#include <QObject>                         // for QObject
#include <json.hpp>                        // for basic_json, iter_impl
#include <string>                          // for to_string, stoi, string
#include <vector>                          // for vector
#include "shared/attributes/valuetype.h"   // for ValueType
#include "shared/graph/elementid.h"        // for NodeId, EdgeId
#include "shared/graph/elementtype.h"      // for ElementType
#include "shared/utils/progressable.h"     // for Progressable

/home/runner/work/graphia/graphia/source/app/loading/jsongraphsaver.cpp should remove these lines:
- #include <QDebug>  // lines 30-30
- #include "nativesaver.h"  // lines 21-21
- #include "shared/graph/imutablegraph.h"  // lines 25-25
- #include "ui/document.h"  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/jsongraphsaver.cpp:
#include "jsongraphsaver.h"
#include <json_helper.h>                   // for json
#include <stddef.h>                        // for size_t
#include <QByteArray>                      // for QByteArray
#include <QFile>                           // for QFile
#include <QFlags>                          // for QFlags
#include <QIODevice>                       // for QIODevice, operator|
#include <QObject>                         // for QObject
#include <json.hpp>                        // for basic_json, iter_impl
#include <string>                          // for to_string, stoi, string
#include <vector>                          // for vector
#include "shared/attributes/iattribute.h"  // for IAttribute
#include "shared/attributes/valuetype.h"   // for ValueType
#include "shared/graph/elementid.h"        // for NodeId, EdgeId
#include "shared/graph/elementtype.h"      // for ElementType
#include "shared/graph/igraph.h"           // for IGraph, IEdge
#include "shared/graph/igraphmodel.h"      // for IGraphModel
#include "shared/utils/progressable.h"     // for Progressable
---


/home/runner/work/graphia/graphia/source/app/loading/pairwisesaver.h should add these lines:
#include <QLatin1Char>             // for StringLiterals
#include "loading/isaver.h"        // for ISaver
class IGraphModel;

/home/runner/work/graphia/graphia/source/app/loading/pairwisesaver.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/pairwisesaver.h:
#include <QLatin1Char>             // for StringLiterals
#include <QString>                 // for operator""_s, QString
#include <QUrl>                    // for QUrl
#include "loading/isaver.h"        // for ISaver
#include "loading/saverfactory.h"  // for SaverFactory
class IGraphModel;
---

/home/runner/work/graphia/graphia/source/app/loading/pairwisesaver.cpp should add these lines:
#include <stddef.h>                        // for size_t
#include <QFlags>                          // for QFlags
#include <QIODevice>                       // for QIODevice, operator|
#include <QObject>                         // for QObject
#include <QtCore>                          // for CaseSensitivity, StringLit...
#include <algorithm>                       // for remove_if, sort
#include <vector>                          // for vector
#include "shared/attributes/valuetype.h"   // for operator&, ValueType
#include "shared/graph/elementid.h"        // for NodeId, EdgeId
#include "shared/graph/elementtype.h"      // for ElementType

/home/runner/work/graphia/graphia/source/app/loading/pairwisesaver.cpp should remove these lines:
- #include <QRegularExpression>  // lines 28-28
- #include "shared/graph/imutablegraph.h"  // lines 24-24
- #include "ui/document.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/pairwisesaver.cpp:
#include "pairwisesaver.h"
#include <stddef.h>                        // for size_t
#include <QFile>                           // for QFile
#include <QFlags>                          // for QFlags
#include <QIODevice>                       // for QIODevice, operator|
#include <QObject>                         // for QObject
#include <QString>                         // for QString, operator""_s, ope...
#include <QTextStream>                     // for QTextStream
#include <QtCore>                          // for CaseSensitivity, StringLit...
#include <algorithm>                       // for remove_if, sort
#include <vector>                          // for vector
#include "shared/attributes/iattribute.h"  // for IAttribute
#include "shared/attributes/valuetype.h"   // for operator&, ValueType
#include "shared/graph/elementid.h"        // for NodeId, EdgeId
#include "shared/graph/elementtype.h"      // for ElementType
#include "shared/graph/igraph.h"           // for IEdge, IGraph
#include "shared/graph/igraphmodel.h"      // for IGraphModel
---


/home/runner/work/graphia/graphia/source/app/loading/parserthread.h should add these lines:
#include <qtmetamacros.h>                  // for Q_OBJECT, signals
#include <QString>                         // for QString
#include <memory>                          // for unique_ptr
class IParser;

/home/runner/work/graphia/graphia/source/app/loading/parserthread.h should remove these lines:
- #include "shared/loading/iparser.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/parserthread.h:
#include <qtmetamacros.h>                  // for Q_OBJECT, signals
#include <QObject>                         // for QObject
#include <QString>                         // for QString
#include <QUrl>                            // for QUrl
#include <memory>                          // for unique_ptr
#include <thread>                          // for thread
#include "shared/loading/iparserthread.h"  // for IParserThread
#include "shared/utils/failurereason.h"    // for FailureReason
class GraphModel;  // lines 31-31
class IParser;
---

/home/runner/work/graphia/graphia/source/app/loading/parserthread.cpp should add these lines:
#include <QLatin1Char>                   // for StringLiterals
#include <QMessageLogger>                // for qDebug
#include <utility>                       // for move
#include "shared/graph/imutablegraph.h"  // for IMutableGraph
#include "shared/loading/iparser.h"      // for IParser

/home/runner/work/graphia/graphia/source/app/loading/parserthread.cpp should remove these lines:
- #include <atomic>  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/parserthread.cpp:
#include "parserthread.h"
#include <QDebug>                        // for QDebug
#include <QLatin1Char>                   // for StringLiterals
#include <QMessageLogger>                // for qDebug
#include <utility>                       // for move
#include "graph/graphmodel.h"            // for GraphModel
#include "graph/mutablegraph.h"          // for MutableGraph
#include "shared/graph/imutablegraph.h"  // for IMutableGraph
#include "shared/loading/iparser.h"      // for IParser
#include "shared/utils/thread.h"         // for setCurrentThreadName
---


/home/runner/work/graphia/graphia/source/app/loading/nativeloader.h should add these lines:
#include <QList>                                // for QList
#include <QVector3D>                            // for QVector3D
#include <vector>                               // for vector
class IGraphModel;
class IPluginInstance;
class QUrl;

/home/runner/work/graphia/graphia/source/app/loading/nativeloader.h should remove these lines:
- #include "shared/plugins/iplugin.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/nativeloader.h:
#include <QByteArray>                           // for QByteArray
#include <QList>                                // for QList
#include <QString>                              // for QString
#include <QStringList>                          // for QStringList
#include <QVector3D>                            // for QVector3D
#include <map>                                  // for map
#include <memory>                               // for unique_ptr
#include <vector>                               // for vector
#include "attributes/enrichmenttablemodel.h"    // for EnrichmentTableModel
#include "layout/layout.h"                      // for LayoutSettingKeyValue
#include "layout/nodepositions.h"               // for ExactNodePositions
#include "rendering/projection.h"               // for Projection
#include "rendering/shading.h"                  // for Shading
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
#include "shared/loading/iparser.h"             // for IParser
class IGraphModel;
class IPluginInstance;
class QUrl;
---

/home/runner/work/graphia/graphia/source/app/loading/nativeloader.cpp should add these lines:
#include <bits/chrono.h>                     // for operator""ms, chrono_lit...
#include <qassert.h>                         // for Q_ASSERT
#include <qtpreprocessorsupport.h>           // for Q_UNUSED
#include <stdint.h>                          // for uint64_t
#include <zconf.h>                           // for Bytef, MAX_WBITS, uInt
#include <QChar>                             // for QChar
#include <QDebug>                            // for QDebug
#include <QFile>                             // for QFile
#include <QIODevice>                         // for QIODevice
#include <QMessageLogger>                    // for qDebug
#include <QObject>                           // for QObject
#include <QUrl>                              // for QUrl
#include <QVariant>                          // for QVariant
#include <algorithm>                         // for all_of
#include <cmath>                             // for double_t
#include <json.hpp>                          // for basic_json, iter_impl
#include <set>                               // for set
#include <string>                            // for string
#include "graph/graphmodel.h"                // for GraphModel
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/graph/elementid.h"          // for NodeId, ElementId
#include "shared/graph/grapharray.h"         // for NodeArray

/home/runner/work/graphia/graphia/source/app/loading/nativeloader.cpp should remove these lines:
- #include <chrono>  // lines 44-44
- #include "shared/graph/imutablegraph.h"  // lines 25-25
- #include "shared/loading/progress_iterator.h"  // lines 35-35
- #include "shared/loading/userelementdata.h"  // lines 34-34

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/nativeloader.cpp:
#include "nativeloader.h"
#include <bits/chrono.h>                     // for operator""ms, chrono_lit...
#include <json_helper.h>                     // for json, parseJsonFrom
#include <qassert.h>                         // for Q_ASSERT
#include <qtpreprocessorsupport.h>           // for Q_UNUSED
#include <stdint.h>                          // for uint64_t
#include <zconf.h>                           // for Bytef, MAX_WBITS, uInt
#include <zlib.h>                            // for inflate, inflateEnd, z_s...
#include <QChar>                             // for QChar
#include <QDataStream>                       // for QDataStream
#include <QDebug>                            // for QDebug
#include <QFile>                             // for QFile
#include <QIODevice>                         // for QIODevice
#include <QMessageLogger>                    // for qDebug
#include <QObject>                           // for QObject
#include <QRegularExpression>                // for QRegularExpression
#include <QString>                           // for QString, operator""_s
#include <QUrl>                              // for QUrl
#include <QVariant>                          // for QVariant
#include <algorithm>                         // for all_of
#include <cmath>                             // for double_t
#include <json.hpp>                          // for basic_json, iter_impl
#include <set>                               // for set
#include <string>                            // for string
#include <thread>                            // for sleep_for
#include <vector>                            // for vector
#include "application.h"                     // for Application
#include "graph/graphmodel.h"                // for GraphModel
#include "graph/mutablegraph.h"              // for MutableGraph
#include "nativesaver.h"                     // for NativeSaver
#include "shared/graph/elementid.h"          // for NodeId, ElementId
#include "shared/graph/grapharray.h"         // for NodeArray
#include "shared/graph/grapharray_json.h"    // for forEachJsonGraphArray
#include "shared/graph/igraphmodel.h"        // for IGraphModel
#include "shared/loading/jsongraphparser.h"  // for JsonGraphParser
#include "shared/plugins/iplugin.h"          // for IPluginInstance, IPlugin
#include "shared/utils/container.h"          // for contains
#include "shared/utils/scope_exit.h"         // for make_scope_exit
#include "shared/utils/source_location.h"    // for CURRENT_SOURCE_LOCATION
---


/home/runner/work/graphia/graphia/source/app/loading/nativesaver.h should add these lines:
#include <memory>         // for unique_ptr
#include "application.h"  // for Application

/home/runner/work/graphia/graphia/source/app/loading/nativesaver.h should remove these lines:
- #include <json_helper.h>  // lines 31-31
- #include <QStringList>  // lines 35-35
- #include <utility>  // lines 22-22
- #include "graph/graphmodel.h"  // lines 27-27
- #include "graph/mutablegraph.h"  // lines 28-28
- #include "shared/utils/progressable.h"  // lines 25-25
- #include "ui/document.h"  // lines 29-29
- class IGraph;  // lines 39-39

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/nativesaver.h:
#include <QByteArray>     // for QByteArray
#include <QString>        // for QString
#include <QUrl>           // for QUrl
#include <memory>         // for unique_ptr
#include "application.h"  // for Application
#include "isaver.h"       // for ISaver, ISaverFactory
class Document;  // lines 38-38
class IPluginInstance;  // lines 40-40
---

/home/runner/work/graphia/graphia/source/app/loading/nativesaver.cpp should add these lines:
#include <json_helper.h>                      // for json
#include <qassert.h>                          // for Q_ASSERT
#include <qtpreprocessorsupport.h>            // for Q_UNUSED
#include <stddef.h>                           // for size_t
#include <stdint.h>                           // for uint64_t
#include <zconf.h>                            // for Bytef, MAX_WBITS, uInt
#include <QIODevice>                          // for QIODevice
#include <QList>                              // for QList
#include <QMetaType>                          // for QMetaType
#include <QObject>                            // for QObject
#include <QVariant>                           // for QVariant
#include <algorithm>                          // for copy
#include <iterator>                           // for back_insert_iterator
#include <json.hpp>                           // for basic_json
#include <map>                                // for operator==
#include <string>                             // for basic_string
#include "attributes/enrichmenttablemodel.h"  // for EnrichmentTableModel
#include "build_defines.h"                    // for VERSION
#include "layout/layoutsettings.h"            // for LayoutSetting
#include "layout/nodepositions.h"             // for NodePositions
#include "shared/graph/igraphmodel.h"         // for IGraphModel
#include "shared/utils/progressable.h"        // for Progressable
class ISaver;

/home/runner/work/graphia/graphia/source/app/loading/nativesaver.cpp should remove these lines:
- #include <QStringList>  // lines 37-37
- #include "shared/loading/userelementdata.h"  // lines 28-28
- #include "shared/utils/iterator_range.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/nativesaver.cpp:
#include "nativesaver.h"
#include <json_helper.h>                      // for json
#include <qassert.h>                          // for Q_ASSERT
#include <qtpreprocessorsupport.h>            // for Q_UNUSED
#include <stddef.h>                           // for size_t
#include <stdint.h>                           // for uint64_t
#include <zconf.h>                            // for Bytef, MAX_WBITS, uInt
#include <zlib.h>                             // for deflate, deflateEnd
#include <QDataStream>                        // for QDataStream
#include <QFile>                              // for QFile
#include <QIODevice>                          // for QIODevice
#include <QList>                              // for QList
#include <QMetaType>                          // for QMetaType
#include <QObject>                            // for QObject
#include <QVariant>                           // for QVariant
#include <algorithm>                          // for copy
#include <iterator>                           // for back_insert_iterator
#include <json.hpp>                           // for basic_json
#include <map>                                // for operator==
#include <string>                             // for basic_string
#include <vector>                             // for vector
#include "attributes/enrichmenttablemodel.h"  // for EnrichmentTableModel
#include "build_defines.h"                    // for VERSION
#include "graph/graphmodel.h"                 // for GraphModel
#include "graph/mutablegraph.h"               // for MutableGraph
#include "jsongraphsaver.h"                   // for JSONGraphSaver
#include "layout/layoutsettings.h"            // for LayoutSetting
#include "layout/nodepositions.h"             // for NodePositions
#include "shared/graph/grapharray_json.h"     // for graphArrayAsJson
#include "shared/graph/igraphmodel.h"         // for IGraphModel
#include "shared/plugins/iplugin.h"           // for IPluginInstance
#include "shared/utils/progressable.h"        // for Progressable
#include "shared/utils/scope_exit.h"          // for make_scope_exit
#include "shared/utils/string.h"              // for toQStringVector
#include "ui/document.h"                      // for Document, LayoutPauseState
class ISaver;
---


/home/runner/work/graphia/graphia/source/app/maths/boundingbox.h should add these lines:
#include <qvectornd.h>  // for operator*, operator+, QVector2D (ptr only)
#include <QtCore>       // for Q_REQUIRED_RESULT

/home/runner/work/graphia/graphia/source/app/maths/boundingbox.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/boundingbox.h:
#include <qvectornd.h>  // for operator*, operator+, QVector2D (ptr only)
#include <QVector2D>    // for QVector2D
#include <QVector3D>    // for QVector3D
#include <QtCore>       // for Q_REQUIRED_RESULT
#include <vector>       // for vector
#include "line.h"       // for Line2D, Line3D
class Ray;  // lines 67-67
---

/home/runner/work/graphia/graphia/source/app/maths/boundingbox.cpp should add these lines:
#include <stddef.h>      // for size_t
#include <array>         // for array
#include "maths/line.h"  // for Line2D, Line3D

/home/runner/work/graphia/graphia/source/app/maths/boundingbox.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/boundingbox.cpp:
#include "boundingbox.h"
#include <stddef.h>      // for size_t
#include <algorithm>     // for max, min
#include <array>         // for array
#include <cmath>         // for isinf, isnan
#include <limits>        // for numeric_limits
#include "maths/line.h"  // for Line2D, Line3D
#include "ray.h"         // for Ray
---


/home/runner/work/graphia/graphia/source/app/loading/saverfactory.h should add these lines:
#include <memory>    // for unique_ptr, make_unique
class IPluginInstance;
class QByteArray;
class QUrl;

/home/runner/work/graphia/graphia/source/app/loading/saverfactory.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/saverfactory.h:
#include <QString>   // for QString
#include <memory>    // for unique_ptr, make_unique
#include "isaver.h"  // for ISaverFactory
class Document;  // lines 26-26
class IGraphModel;  // lines 27-27
class IPluginInstance;
class QByteArray;
class QUrl;
---

/home/runner/work/graphia/graphia/source/app/loading/saverfactory.cpp should add these lines:

/home/runner/work/graphia/graphia/source/app/loading/saverfactory.cpp should remove these lines:
- #include "shared/graph/igraphmodel.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/loading/saverfactory.cpp:
#include "saverfactory.h"
#include "ui/document.h"  // for Document
---


/home/runner/work/graphia/graphia/source/app/maths/boundingsphere.h should add these lines:
#include <QtCore>     // for Q_REQUIRED_RESULT
class QVector3D;

/home/runner/work/graphia/graphia/source/app/maths/boundingsphere.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/boundingsphere.h:
#include <QVector3D>  // for QVector3D
#include <QtCore>     // for Q_REQUIRED_RESULT
#include <numbers>    // for pi_v
#include <vector>     // for vector
#include "line.h"     // for Line3D
class QVector3D;
class Ray;  // lines 29-29
---

/home/runner/work/graphia/graphia/source/app/maths/boundingsphere.cpp should add these lines:
#include <qvectornd.h>   // for operator-, operator+, operator*, QVector3D (...
#include <algorithm>     // for max
#include "maths/line.h"  // for Line3D

/home/runner/work/graphia/graphia/source/app/maths/boundingsphere.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/boundingsphere.cpp:
#include "boundingsphere.h"
#include <qvectornd.h>   // for operator-, operator+, operator*, QVector3D (...
#include <algorithm>     // for max
#include <cmath>         // for sqrt
#include <numeric>       // for accumulate
#include <vector>        // for vector
#include "maths/line.h"  // for Line3D
#include "ray.h"         // for Ray
---


/home/runner/work/graphia/graphia/source/app/maths/conicalfrustum.h should add these lines:
class QVector3D;

/home/runner/work/graphia/graphia/source/app/maths/conicalfrustum.h should remove these lines:
- #include <QVector3D>  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/conicalfrustum.h:
#include "frustum.h"  // for BaseFrustum
#include "line.h"     // for Line3D
#include "plane.h"    // for Plane
class QVector3D;
---

/home/runner/work/graphia/graphia/source/app/maths/conicalfrustum.cpp should add these lines:
#include <qvectornd.h>           // for operator-, QVector3D (ptr only)
#include <QVector3D>             // for QVector3D
#include "maths/line.h"          // for Line3D
#include "maths/plane.h"         // for Plane

/home/runner/work/graphia/graphia/source/app/maths/conicalfrustum.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/conicalfrustum.cpp:
#include "conicalfrustum.h"
#include <qvectornd.h>           // for operator-, QVector3D (ptr only)
#include <QVector3D>             // for QVector3D
#include "maths/line.h"          // for Line3D
#include "maths/plane.h"         // for Plane
#include "shared/utils/utils.h"  // for interpolate
---


/home/runner/work/graphia/graphia/source/app/maths/frustum.h should add these lines:
class Plane;
class QVector3D;

/home/runner/work/graphia/graphia/source/app/maths/frustum.h should remove these lines:
- #include <QVector3D>  // lines 25-25
- #include "plane.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/frustum.h:
#include <array>   // for array
#include "line.h"  // for Line3D
class Plane;
class QVector3D;
---

/home/runner/work/graphia/graphia/source/app/maths/frustum.cpp should add these lines:
#include <qvectornd.h>    // for operator*, operator+, QVector3D (ptr only)
#include <QVector3D>      // for QVector3D
#include "maths/line.h"   // for Line3D
#include "maths/plane.h"  // for Plane

/home/runner/work/graphia/graphia/source/app/maths/frustum.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/frustum.cpp:
#include "frustum.h"
#include <qvectornd.h>    // for operator*, operator+, QVector3D (ptr only)
#include <QVector3D>      // for QVector3D
#include <algorithm>      // for all_of
#include "maths/line.h"   // for Line3D
#include "maths/plane.h"  // for Plane
---


/home/runner/work/graphia/graphia/source/app/maths/plane.h should add these lines:
class QVector3D;
class Ray;

/home/runner/work/graphia/graphia/source/app/maths/plane.h should remove these lines:
- #include "maths/ray.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/plane.h:
#include <QVector3D>  // for QVector3D
class QVector3D;
class Ray;
---

/home/runner/work/graphia/graphia/source/app/maths/plane.cpp should add these lines:
#include <qvectornd.h>  // for operator-, QVector3D (ptr only), operator*
#include "maths/ray.h"  // for Ray

/home/runner/work/graphia/graphia/source/app/maths/plane.cpp should remove these lines:
- #include <utility>  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/plane.cpp:
#include "plane.h"
#include <qvectornd.h>  // for operator-, QVector3D (ptr only), operator*
#include "maths/ray.h"  // for Ray
---


/home/runner/work/graphia/graphia/source/app/maths/ray.h should add these lines:
class QVector3D;

/home/runner/work/graphia/graphia/source/app/maths/ray.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/ray.h:
#include <QVector3D>  // for QVector3D
#include <array>      // for array
#include "line.h"     // for Line3D
class QVector3D;
---

/home/runner/work/graphia/graphia/source/app/maths/ray.cpp should add these lines:
#include <qvectornd.h>  // for operator*, operator+, operator-, QVector3D (p...

/home/runner/work/graphia/graphia/source/app/maths/ray.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/maths/ray.cpp:
#include "ray.h"
#include <qvectornd.h>  // for operator*, operator+, operator-, QVector3D (p...
---


/home/runner/work/graphia/graphia/source/app/main.cpp should add these lines:
#include <bits/chrono.h>                                // for operator""s
#include <qassert.h>                                    // for Q_ASSERT
#include <qbytearrayview.h>                             // for QByteArrayView
#include <qquickstyle.h>                                // for QQuickStyle
#include <qtconfigmacros.h>                             // for QT_CONFIG
#include <qtcore-config.h>                              // for QT_FEATURE_pr...
#include <qtenvironmentvariables.h>                     // for qEnvironmentV...
#include <qtpreprocessorsupport.h>                      // for Q_UNUSED
#include <qtresource.h>                                 // for Q_INIT_RESOURCE
#include <qtwebenginequickglobal.h>                     // for initialize
#include <qtwebenginequickversion.h>                    // for QTWEBENGINEQU...
#include <qtypes.h>                                     // for quint16
#include <stdio.h>                                      // for fprintf, size_t
#include <QApplication>                                 // for QApplication
#include <QByteArray>                                   // for QByteArray
#include <QCommandLineOption>                           // for QCommandLineO...
#include <QCoreApplication>                             // for QCoreApplication
#include <QFlags>                                       // for QFlags
#include <QFont>                                        // for QFont
#include <QIODevice>                                    // for QIODevice
#include <QList>                                        // for QList
#include <QMessageLogger>                               // for qInstallMessa...
#include <QMetaObject>                                  // for QMetaObject
#include <QSGRendererInterface>                         // for QSGRendererIn...
#include <QString>                                      // for operator""_s
#include <QStringList>                                  // for QStringList
#include <QStringLiteral>                               // for qMakeStringPr...
#include <QUrl>                                         // for QUrl
#include <QVariant>                                     // for QVariant
#include <QtCore>                                       // for argument, ope...
#include <string>                                       // for operator<<
#include "rendering/projection.h"                       // for Projection

/home/runner/work/graphia/graphia/source/app/main.cpp should remove these lines:
- #include <SortFilterProxyModel/register.h>  // lines 81-81
- #include <breakpad/crashhandler.h>  // lines 80-80
- #include <QQmlComponent>  // lines 22-22
- #include <QQmlEngine>  // lines 23-23
- #include <QQuickStyle>  // lines 26-26
- #include <QScreen>  // lines 34-34
- #include <QSettings>  // lines 43-43
- #include <QWidget>  // lines 32-32
- #include <QWindow>  // lines 33-33
- #include <QtGlobal>  // lines 27-27
- #include <QtWebEngineQuick>  // lines 48-48
- #include <chrono>  // lines 53-53
- #include <fstream>  // lines 52-52
- #include <memory>  // lines 54-54

The full include-list for /home/runner/work/graphia/graphia/source/app/main.cpp:
#include <bits/chrono.h>                                // for operator""s
#include <qassert.h>                                    // for Q_ASSERT
#include <qbytearrayview.h>                             // for QByteArrayView
#include <qquickstyle.h>                                // for QQuickStyle
#include <qtconfigmacros.h>                             // for QT_CONFIG
#include <qtcore-config.h>                              // for QT_FEATURE_pr...
#include <qtenvironmentvariables.h>                     // for qEnvironmentV...
#include <qtpreprocessorsupport.h>                      // for Q_UNUSED
#include <qtresource.h>                                 // for Q_INIT_RESOURCE
#include <qtsingleapplication/qtsingleapplication.h>    // for QtSingleAppli...
#include <qtwebenginequickglobal.h>                     // for initialize
#include <qtwebenginequickversion.h>                    // for QTWEBENGINEQU...
#include <qtypes.h>                                     // for quint16
#include <stdio.h>                                      // for fprintf, size_t
#include <QApplication>                                 // for QApplication
#include <QByteArray>                                   // for QByteArray
#include <QCommandLineOption>                           // for QCommandLineO...
#include <QCommandLineParser>                           // for QCommandLineP...
#include <QCoreApplication>                             // for QCoreApplication
#include <QDir>                                         // for QDir
#include <QFile>                                        // for QFile
#include <QFileDevice>                                  // for QFileDevice
#include <QFileInfo>                                    // for QFileInfo
#include <QFlags>                                       // for QFlags
#include <QFont>                                        // for QFont
#include <QGuiApplication>                              // for QGuiApplication
#include <QIODevice>                                    // for QIODevice
#include <QIcon>                                        // for QIcon
#include <QList>                                        // for QList
#include <QMessageBox>                                  // for QMessageBox
#include <QMessageLogger>                               // for qInstallMessa...
#include <QMetaObject>                                  // for QMetaObject
#include <QNetworkProxy>                                // for QNetworkProxy
#include <QObject>                                      // for QObject
#include <QProcess>                                     // for QProcess
#include <QQmlApplicationEngine>                        // for QQmlApplicati...
#include <QQmlFileSelector>                             // for QQmlFileSelector
#include <QQuickWindow>                                 // for QQuickWindow
#include <QSGRendererInterface>                         // for QSGRendererIn...
#include <QStandardPaths>                               // for QStandardPaths
#include <QString>                                      // for operator""_s
#include <QStringList>                                  // for QStringList
#include <QStringLiteral>                               // for qMakeStringPr...
#include <QStyleHints>                                  // for QStyleHints
#include <QTimer>                                       // for QTimer
#include <QUrl>                                         // for QUrl
#include <QVariant>                                     // for QVariant
#include <QtCore>                                       // for argument, ope...
#include <iostream>                                     // for operator<<
#include <string>                                       // for operator<<
#include "application.h"                                // for Application
#include "build_defines.h"                              // for VERSION
#include "headless.h"                                   // for Headless
#include "preferences.h"                                // for definePref, pref
#include "preferenceswatcher.h"                         // for PreferencesWa...
#include "rendering/graphrenderer.h"                    // for TextState
#include "rendering/openglfunctions.h"                  // for OpenGLFunctions
#include "rendering/projection.h"                       // for Projection
#include "shared/ui/visualisations/defaultgradients.h"  // for GRADIENT, GRA...
#include "shared/ui/visualisations/defaultpalettes.h"   // for PALETTE, PALE...
#include "shared/utils/apppathname.h"                   // for appPathName
#include "shared/utils/console.h"                       // for enableConsole...
#include "shared/utils/consolecapture.h"                // for captureConsol...
#include "shared/utils/debugger.h"                      // for isDebuggerPre...
#include "shared/utils/macosfileopeneventfilter.h"      // for MacOsFileOpen...
#include "shared/utils/scopetimer.h"                    // for ScopeTimerMan...
#include "shared/utils/signalhandling.h"                // for installSignal...
#include "shared/utils/static_block.h"                  // for execute_stati...
#include "shared/utils/thread.h"                        // for currentThread...
#include "shared/utils/threadpool.h"                    // for ThreadPoolSin...
#include "updates/updater.h"                            // for Updater
#include "watchdog.h"                                   // for Watchdog
---


/home/runner/work/graphia/graphia/source/app/preferenceswatcher.h should add these lines:
#include <qtmetamacros.h>  // for Q_OBJECT, signals

/home/runner/work/graphia/graphia/source/app/preferenceswatcher.h should remove these lines:
- #include "preferences.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/preferenceswatcher.h:
#include <qtmetamacros.h>  // for Q_OBJECT, signals
#include <QObject>         // for QObject
#include <QString>         // for QString
#include <QVariant>        // for QVariant
#include <mutex>           // for recursive_mutex
#include <set>             // for set
---

(/home/runner/work/graphia/graphia/source/app/preferenceswatcher.cpp has correct #includes/fwd-decls)


/home/runner/work/graphia/graphia/source/app/rendering/camera.h should add these lines:
#include <QRectF>                  // for QRectF
class QVector3D;

/home/runner/work/graphia/graphia/source/app/rendering/camera.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/camera.h:
#include <QMatrix4x4>              // for QMatrix4x4
#include <QQuaternion>             // for QQuaternion
#include <QRectF>                  // for QRectF
#include <QSharedPointer>          // for QSharedPointer
#include <QVector3D>               // for QVector3D
#include "maths/conicalfrustum.h"  // for ConicalFrustum
#include "maths/frustum.h"         // for Frustum
#include "maths/line.h"            // for Line3D
#include "maths/ray.h"             // for Ray
class QOpenGLShaderProgram;  // lines 32-32
class QVector3D;
---

/home/runner/work/graphia/graphia/source/app/rendering/camera.cpp should add these lines:
#include <qvectornd.h>  // for operator-, operator*, operator!=, QVector3D (...
#include <QVector4D>    // for QVector4D

/home/runner/work/graphia/graphia/source/app/rendering/camera.cpp should remove these lines:
- #include <QDebug>  // lines 24-24
- #include <QOpenGLShaderProgram>  // lines 23-23
- #include "maths/interpolation.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/camera.cpp:
#include "camera.h"
#include <qvectornd.h>  // for operator-, operator*, operator!=, QVector3D (...
#include <QVector4D>    // for QVector4D
---


/home/runner/work/graphia/graphia/source/app/qmlpreferences.h should add these lines:
#include <qtclasshelpermacros.h>     // for Q_DISABLE_COPY
#include <qtmetamacros.h>            // for Q_INTERFACES, Q_OBJECT, Q_PROPERTY

/home/runner/work/graphia/graphia/source/app/qmlpreferences.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/qmlpreferences.h:
#include <qtclasshelpermacros.h>     // for Q_DISABLE_COPY
#include <qtmetamacros.h>            // for Q_INTERFACES, Q_OBJECT, Q_PROPERTY
#include <QMetaProperty>             // for QMetaProperty
#include <QObject>                   // for QObject
#include <QQmlParserStatus>          // for QQmlParserStatus
#include <QString>                   // for QString
#include <QVariant>                  // for QVariant
#include "app/preferenceswatcher.h"  // for PreferencesWatcher
---

/home/runner/work/graphia/graphia/source/app/qmlpreferences.cpp should add these lines:
#include <QByteArray>                   // for QByteArray, operator==, Strin...
#include <QList>                        // for QList
#include <QMetaMethod>                  // for QMetaMethod
#include <QMetaObject>                  // for QMetaObject
#include <QMetaType>                    // for QMetaType
#include <QTypeInfo>                    // for QTypeInfo<>::isValueInitializ...
#include <QtQml>                        // for qmlRegisterType
#include "preferenceswatcher.h"         // for PreferencesWatcher

/home/runner/work/graphia/graphia/source/app/qmlpreferences.cpp should remove these lines:
- #include <QQmlEngine>  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/app/qmlpreferences.cpp:
#include "qmlpreferences.h"
#include <QByteArray>                   // for QByteArray, operator==, Strin...
#include <QList>                        // for QList
#include <QMetaMethod>                  // for QMetaMethod
#include <QMetaObject>                  // for QMetaObject
#include <QMetaType>                    // for QMetaType
#include <QRegularExpression>           // for QRegularExpression
#include <QTypeInfo>                    // for QTypeInfo<>::isValueInitializ...
#include <QtQml>                        // for qmlRegisterType
#include "app/preferences.h"            // for pref, setPref
#include "preferenceswatcher.h"         // for PreferencesWatcher
#include "shared/utils/static_block.h"  // for static_block
---


/home/runner/work/graphia/graphia/source/app/rendering/doublebufferedtexture.h should add these lines:
#include <QtGui/qopengl.h>     // for GLuint
#include <stddef.h>            // for size_t

/home/runner/work/graphia/graphia/source/app/rendering/doublebufferedtexture.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/doublebufferedtexture.h:
#include <QtGui/qopengl.h>     // for GLuint
#include <stddef.h>            // for size_t
#include <array>               // for array
#include <condition_variable>  // for condition_variable
#include <mutex>               // for mutex
#include "openglfunctions.h"   // for OpenGLFunctions
---

(/home/runner/work/graphia/graphia/source/app/rendering/doublebufferedtexture.cpp has correct #includes/fwd-decls)


/home/runner/work/graphia/graphia/source/app/rendering/glyphmap.h should add these lines:
#include <qtypes.h>  // for quint32
#include <vector>    // for vector
class QFont;

/home/runner/work/graphia/graphia/source/app/rendering/glyphmap.h should remove these lines:
- #include <QFont>  // lines 25-25
- #include <QFontMetrics>  // lines 27-27
- #include <QGlyphRun>  // lines 26-26
- #include <QVector2D>  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/glyphmap.h:
#include <qtypes.h>  // for quint32
#include <QImage>    // for QImage
#include <QString>   // for QString
#include <map>       // for map
#include <mutex>     // for recursive_mutex
#include <vector>    // for vector
class QFont;
---

/home/runner/work/graphia/graphia/source/app/rendering/glyphmap.cpp should add these lines:
#include <qassert.h>                 // for Q_ASSERT
#include <QFont>                     // for QFont
#include <QFontMetrics>              // for QFontMetrics
#include <QGlyphRun>                 // for QGlyphRun, QTypeInfo<>::isReloca...
#include <QList>                     // for QList
#include <QMessageLogger>            // for qDebug, qWarning
#include <QPointF>                   // for QPointF
#include <QRawFont>                  // for QRawFont
#include <QRect>                     // for QRect
#include <QRectF>                    // for QRectF
#include <QTextLine>                 // for QTextLine
#include <QTextOption>               // for QTextOption
#include <QVariant>                  // for QVariant
#include <QtCore>                    // for GlobalColor, FillRule, StringLit...
#include <QtGui>                     // for QPainterPath, QBrush
#include <utility>                   // for pair, move

/home/runner/work/graphia/graphia/source/app/rendering/glyphmap.cpp should remove these lines:
- #include <QPainterPath>  // lines 29-29
- #include <memory>  // lines 31-31

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/glyphmap.cpp:
#include "glyphmap.h"
#include <qassert.h>                 // for Q_ASSERT
#include <QDebug>                    // for QDebug
#include <QDir>                      // for QDir
#include <QFont>                     // for QFont
#include <QFontMetrics>              // for QFontMetrics
#include <QGlyphRun>                 // for QGlyphRun, QTypeInfo<>::isReloca...
#include <QGuiApplication>           // for QGuiApplication
#include <QList>                     // for QList
#include <QMessageLogger>            // for qDebug, qWarning
#include <QPainter>                  // for QPainter
#include <QPointF>                   // for QPointF
#include <QRawFont>                  // for QRawFont
#include <QRect>                     // for QRect
#include <QRectF>                    // for QRectF
#include <QTextLayout>               // for QTextLayout
#include <QTextLine>                 // for QTextLine
#include <QTextOption>               // for QTextOption
#include <QVariant>                  // for QVariant
#include <QtCore>                    // for GlobalColor, FillRule, StringLit...
#include <QtGui>                     // for QPainterPath, QBrush
#include <algorithm>                 // for max, any_of
#include <utility>                   // for pair, move
#include "app/preferences.h"         // for pref
#include "shared/utils/container.h"  // for contains
---


/home/runner/work/graphia/graphia/source/app/rendering/graphcomponentrenderer.h should add these lines:
#include <QRectF>                    // for QRectF
#include <QVector4D>                 // for QVector4D
#include "shared/graph/elementid.h"  // for NodeId, ComponentId
class IEdge;
class QVector3D;

/home/runner/work/graphia/graphia/source/app/rendering/graphcomponentrenderer.h should remove these lines:
- #include <QColor>  // lines 36-36
- #include <QRect>  // lines 37-37
- #include <memory>  // lines 39-39
- #include "maths/boundingbox.h"  // lines 26-26
- #include "shared/graph/grapharray.h"  // lines 29-29
- #include "shared/graph/igraph.h"  // lines 28-28
- class Camera;  // lines 45-45
- class Octree;  // lines 46-46

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphcomponentrenderer.h:
#include <QMatrix4x4>                // for QMatrix4x4
#include <QQuaternion>               // for QQuaternion
#include <QRectF>                    // for QRectF
#include <QVector3D>                 // for QVector3D
#include <QVector4D>                 // for QVector4D
#include <vector>                    // for vector
#include "camera.h"                  // for Camera
#include "limitconstants.h"          // for LimitConstants
#include "projection.h"              // for Projection
#include "shared/graph/elementid.h"  // for NodeId, ComponentId
#include "transition.h"              // for Transition
class GraphModel;  // lines 43-43
class GraphRenderer;  // lines 42-42
class IEdge;
class QVector3D;
class SelectionManager;  // lines 44-44
---

/home/runner/work/graphia/graphia/source/app/rendering/graphcomponentrenderer.cpp should add these lines:
#include <qassert.h>                               // for Q_ASSERT
#include <qvectornd.h>                             // for operator-, operator+
#include <stddef.h>                                // for size_t
#include <QDebug>                                  // for QDebug
#include <QMessageLogger>                          // for qDebug, qWarning
#include <QPointF>                                 // for QPointF
#include <QRect>                                   // for QRect
#include <QtCore>                                  // for qFuzzyCompare, qDe...
#include <iterator>                                // for back_insert_iterator
#include <limits>                                  // for numeric_limits
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "layout/nodepositions.h"                  // for NodePositions
#include "maths/ray.h"                             // for Ray
#include "rendering/projection.h"                  // for Projection
#include "rendering/transition.h"                  // for Transition
#include "shared/graph/igraphcomponent.h"          // for IGraphComponent
#include "shared/utils/container.h"                // for contains
#include "shared/utils/utils.h"                    // for interpolate

/home/runner/work/graphia/graphia/source/app/rendering/graphcomponentrenderer.cpp should remove these lines:
- #include <QKeyEvent>  // lines 43-43
- #include <QMouseEvent>  // lines 44-44
- #include <QtMath>  // lines 45-45
- #include <mutex>  // lines 48-48
- #include "app/preferences.h"  // lines 40-40
- #include "graph/componentmanager.h"  // lines 26-26
- #include "layout/layout.h"  // lines 28-28
- #include "maths/boundingsphere.h"  // lines 31-31
- #include "maths/frustum.h"  // lines 32-32
- #include "ui/graphquickitem.h"  // lines 35-35
- #include "ui/selectionmanager.h"  // lines 36-36

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphcomponentrenderer.cpp:
#include "graphcomponentrenderer.h"
#include <qassert.h>                               // for Q_ASSERT
#include <qvectornd.h>                             // for operator-, operator+
#include <stddef.h>                                // for size_t
#include <QDebug>                                  // for QDebug
#include <QMessageLogger>                          // for qDebug, qWarning
#include <QObject>                                 // for QObject
#include <QPointF>                                 // for QPointF
#include <QRect>                                   // for QRect
#include <QtCore>                                  // for qFuzzyCompare, qDe...
#include <algorithm>                               // for max, min, clamp
#include <cmath>                                   // for sin
#include <iterator>                                // for back_insert_iterator
#include <limits>                                  // for numeric_limits
#include "camera.h"                                // for Camera
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "graph/graph.h"                           // for Graph
#include "graph/graphmodel.h"                      // for GraphModel
#include "graphrenderer.h"                         // for GraphRenderer
#include "layout/collision.h"                      // for Collision
#include "layout/nodepositions.h"                  // for NodePositions
#include "maths/plane.h"                           // for Plane
#include "maths/ray.h"                             // for Ray
#include "rendering/projection.h"                  // for Projection
#include "rendering/transition.h"                  // for Transition
#include "shared/graph/elementid_debug.h"          // for operator<<
#include "shared/graph/igraphcomponent.h"          // for IGraphComponent
#include "shared/utils/container.h"                // for contains
#include "shared/utils/utils.h"                    // for interpolate
#include "ui/visualisations/elementvisual.h"       // for ElementVisual
---


/home/runner/work/graphia/graphia/source/app/rendering/graphcomponentscene.h should add these lines:
#include <qtmetamacros.h>            // for Q_OBJECT, slots
#include <stddef.h>                  // for size_t
#include "rendering/projection.h"    // for Projection
#include "shared/graph/elementid.h"  // for NodeId, ComponentId
class ComponentMergeSet;
class ComponentSplitSet;
class QPoint;

/home/runner/work/graphia/graphia/source/app/rendering/graphcomponentscene.h should remove these lines:
- #include "graph/componentmanager.h"  // lines 24-24
- #include "shared/graph/grapharray.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphcomponentscene.h:
#include <qtmetamacros.h>            // for Q_OBJECT, slots
#include <stddef.h>                  // for size_t
#include "rendering/projection.h"    // for Projection
#include "scene.h"                   // for Scene
#include "shared/graph/elementid.h"  // for NodeId, ComponentId
#include "transition.h"              // for Transition
class ComponentMergeSet;
class ComponentSplitSet;
class Graph;  // lines 28-28
class GraphComponentRenderer;  // lines 30-30
class GraphRenderer;  // lines 29-29
class QPoint;
---

/home/runner/work/graphia/graphia/source/app/rendering/graphcomponentscene.cpp should add these lines:
#include <qassert.h>                       // for Q_ASSERT
#include <qvectornd.h>                     // for operator+, operator-
#include <QPoint>                          // for QPoint
#include <QRect>                           // for QRect
#include <QVector3D>                       // for QVector3D
#include <QtCore>                          // for operator""_s, ConnectionType
#include <compare>                         // for operator<, strong_ordering
#include <vector>                          // for vector
#include "graph/componentmanager.h"        // for ComponentMergeSet, Compone...
#include "maths/plane.h"                   // for Plane
#include "rendering/camera.h"              // for Camera
#include "rendering/scene.h"               // for Scene
#include "rendering/transition.h"          // for Transition
#include "shared/graph/grapharray.h"       // for ComponentArray
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent
#include "shared/utils/movablepointer.h"   // for MovablePointer

/home/runner/work/graphia/graphia/source/app/rendering/graphcomponentscene.cpp should remove these lines:
- #include "ui/graphquickitem.h"  // lines 31-31

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphcomponentscene.cpp:
#include "graphcomponentscene.h"
#include <qassert.h>                       // for Q_ASSERT
#include <qvectornd.h>                     // for operator+, operator-
#include <QPoint>                          // for QPoint
#include <QRect>                           // for QRect
#include <QVector3D>                       // for QVector3D
#include <QtCore>                          // for operator""_s, ConnectionType
#include <compare>                         // for operator<, strong_ordering
#include <vector>                          // for vector
#include "graph/componentmanager.h"        // for ComponentMergeSet, Compone...
#include "graph/graph.h"                   // for Graph
#include "graph/graphmodel.h"              // for GraphModel
#include "graphcomponentrenderer.h"        // for GraphComponentRenderer
#include "graphrenderer.h"                 // for GraphRenderer
#include "layout/nodepositions.h"          // for NodePositions
#include "maths/plane.h"                   // for Plane
#include "rendering/camera.h"              // for Camera
#include "rendering/scene.h"               // for Scene
#include "rendering/transition.h"          // for Transition
#include "shared/graph/grapharray.h"       // for ComponentArray
#include "shared/graph/igraphcomponent.h"  // for IGraphComponent
#include "shared/utils/movablepointer.h"   // for MovablePointer
#include "shared/utils/scope_exit.h"       // for make_scope_exit
---


/home/runner/work/graphia/graphia/source/app/rendering/graphoverviewscene.h should add these lines:
#include <qtmetamacros.h>             // for Q_OBJECT, slots
#include <QRectF>                     // for QRectF
#include <QSizeF>                     // for QSizeF
#include <QString>                    // for QString
#include <QVariant>                   // for QVariant
#include "maths/circle.h"             // for Circle
#include "rendering/projection.h"     // for Projection
#include "shared/graph/elementid.h"   // for ComponentId
enum class VisualChangeFlags;

/home/runner/work/graphia/graphia/source/app/rendering/graphoverviewscene.h should remove these lines:
- #include <QRect>  // lines 38-38
- #include <mutex>  // lines 34-34
- #include "shared/graph/igraphmodel.h"  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphoverviewscene.h:
#include <qtmetamacros.h>             // for Q_OBJECT, slots
#include <QPointF>                    // for QPointF
#include <QRectF>                     // for QRectF
#include <QSizeF>                     // for QSizeF
#include <QString>                    // for QString
#include <QVariant>                   // for QVariant
#include <atomic>                     // for atomic_bool
#include <memory>                     // for unique_ptr
#include <vector>                     // for vector
#include "app/preferenceswatcher.h"   // for PreferencesWatcher
#include "graph/componentmanager.h"   // for ComponentMergeSet, ComponentSpl...
#include "layout/componentlayout.h"   // for ComponentLayoutData, ComponentL...
#include "maths/circle.h"             // for Circle
#include "rendering/projection.h"     // for Projection
#include "scene.h"                    // for Scene
#include "shared/graph/elementid.h"   // for ComponentId
#include "shared/graph/grapharray.h"  // for ComponentArray
#include "transition.h"               // for Transition
class CommandManager;  // lines 43-43
class Graph;  // lines 41-41
class GraphModel;  // lines 42-42
class GraphRenderer;  // lines 44-44
enum class VisualChangeFlags;
---

/home/runner/work/graphia/graphia/source/app/rendering/graphoverviewscene.cpp should add these lines:
#include <qassert.h>                           // for Q_ASSERT
#include <QQuaternion>                         // for QQuaternion
#include <QtCore>                              // for ConnectionType, String...
#include <iterator>                            // for insert_iterator, inserter
#include <map>                                 // for operator==, _Rb_tree_c...
#include <type_traits>                         // for remove_reference
#include <utility>                             // for move
#include "preferenceswatcher.h"                // for PreferencesWatcher
#include "rendering/camera.h"                  // for Camera
#include "rendering/scene.h"                   // for Scene
#include "rendering/transition.h"              // for Transition
#include "shared/graph/igraphcomponent.h"      // for IGraphComponent
#include "shared/graph/igraphmodel.h"          // for VisualChangeFlags
#include "shared/utils/movablepointer.h"       // for MovablePointer
class Command;

/home/runner/work/graphia/graphia/source/app/rendering/graphoverviewscene.cpp should remove these lines:
- #include <QPoint>  // lines 40-40
- #include <functional>  // lines 44-44
- #include <stack>  // lines 42-42
- #include "layout/powerof2gridcomponentlayout.h"  // lines 27-27
- #include "ui/graphquickitem.h"  // lines 32-32

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphoverviewscene.cpp:
#include "graphoverviewscene.h"
#include <qassert.h>                           // for Q_ASSERT
#include <QQuaternion>                         // for QQuaternion
#include <QtCore>                              // for ConnectionType, String...
#include <algorithm>                           // for max, min, copy, clamp
#include <iterator>                            // for insert_iterator, inserter
#include <map>                                 // for operator==, _Rb_tree_c...
#include <type_traits>                         // for remove_reference
#include <utility>                             // for move
#include <vector>                              // for vector
#include "app/preferences.h"                   // for pref
#include "commands/commandmanager.h"           // for CommandManager
#include "graph/graph.h"                       // for Graph
#include "graph/graphmodel.h"                  // for GraphModel
#include "graphcomponentrenderer.h"            // for GraphComponentRenderer
#include "graphrenderer.h"                     // for GraphRenderer
#include "layout/circlepackcomponentlayout.h"  // for CirclePackComponentLayout
#include "layout/nodepositions.h"              // for NodePositions
#include "preferenceswatcher.h"                // for PreferencesWatcher
#include "rendering/camera.h"                  // for Camera
#include "rendering/scene.h"                   // for Scene
#include "rendering/transition.h"              // for Transition
#include "shared/graph/igraphcomponent.h"      // for IGraphComponent
#include "shared/graph/igraphmodel.h"          // for VisualChangeFlags
#include "shared/utils/container.h"            // for contains
#include "shared/utils/flags.h"                // for Flags
#include "shared/utils/movablepointer.h"       // for MovablePointer
#include "shared/utils/scope_exit.h"           // for make_scope_exit
#include "shared/utils/utils.h"                // for interpolate
class Command;
---


/home/runner/work/graphia/graphia/source/app/rendering/graphrenderer.h should add these lines:
#include <QtGui/qopengl.h>                      // for GLuint
#include <qtmetamacros.h>                       // for Q_GADGET, slots, Q_OB...
#include <qtypes.h>                             // for qreal
#include <stddef.h>                             // for size_t
#include <QColor>                               // for QColor
#include <QRect>                                // for QRect
#include <QString>                              // for QString
#include <QVariant>                             // for QVariant
#include <mutex>                                // for mutex, recursive_mutex
#include "shared/graph/elementid.h"             // for ComponentId, NodeId
class QEvent;
class QImage;
class QOpenGLFramebufferObject;
class QVector3D;
class ScreenshotRenderer;

/home/runner/work/graphia/graphia/source/app/rendering/graphrenderer.h should remove these lines:
- #include <QImage>  // lines 50-50
- #include <QOpenGLBuffer>  // lines 46-46
- #include <QOpenGLVertexArrayObject>  // lines 47-47
- #include <QPainter>  // lines 52-52
- #include <QPixmap>  // lines 51-51
- #include <array>  // lines 59-59
- #include "openglfunctions.h"  // lines 23-23
- #include "shading.h"  // lines 30-30
- class ICommand;  // lines 77-77
- class QOpenGLDebugMessage;  // lines 67-67

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphrenderer.h:
#include <QtGui/qopengl.h>                      // for GLuint
#include <qtmetamacros.h>                       // for Q_GADGET, slots, Q_OB...
#include <qtypes.h>                             // for qreal
#include <stddef.h>                             // for size_t
#include <QColor>                               // for QColor
#include <QElapsedTimer>                        // for QElapsedTimer
#include <QObject>                              // for QObject
#include <QOpenGLShaderProgram>                 // for QOpenGLShaderProgram
#include <QQuickFramebufferObject>              // for QQuickFramebufferObject
#include <QRect>                                // for QRect
#include <QSize>                                // for QSize
#include <QString>                              // for QString
#include <QVariant>                             // for QVariant
#include <atomic>                               // for atomic_bool
#include <functional>                           // for function
#include <memory>                               // for unique_ptr
#include <mutex>                                // for mutex, recursive_mutex
#include <queue>                                // for queue
#include <vector>                               // for vector
#include "app/preferenceswatcher.h"             // for PreferencesWatcher
#include "doublebufferedtexture.h"              // for DoubleBufferedTexture
#include "glyphmap.h"                           // for GlyphMap
#include "graph/qmlelementid.h"                 // for QmlNodeId
#include "graphcomponentrenderer.h"             // for GraphComponentRenderer
#include "graphrenderercore.h"                  // for GraphRendererCore
#include "opengldebuglogger.h"                  // for OpenGLDebugLogger
#include "projection.h"                         // for Projection
#include "shared/graph/elementid.h"             // for ComponentId, NodeId
#include "shared/graph/elementid_containers.h"  // for ComponentIdSet
#include "shared/graph/grapharray.h"            // for ComponentArray, Locki...
#include "shared/utils/deferredexecutor.h"      // for DeferredExecutor
#include "shared/utils/movablepointer.h"        // for MovablePointer
#include "shared/utils/performancecounter.h"    // for PerformanceCounter
#include "shared/utils/qmlenum.h"               // for DEFINE_QML_ENUM
#include "transition.h"                         // for Transition
class CommandManager;  // lines 65-65
class Graph;  // lines 62-62
class GraphComponentInteractor;  // lines 75-75
class GraphComponentScene;  // lines 71-71
class GraphModel;  // lines 64-64
class GraphOverviewInteractor;  // lines 74-74
class GraphOverviewScene;  // lines 70-70
class GraphQuickItem;  // lines 63-63
class Interactor;  // lines 73-73
class QEvent;
class QImage;
class QOpenGLFramebufferObject;
class QVector3D;
class Scene;  // lines 69-69
class ScreenshotRenderer;
class SelectionManager;  // lines 66-66
---

/home/runner/work/graphia/graphia/source/app/rendering/graphrenderer.cpp should add these lines:
#include <bits/chrono.h>                              // for seconds
#include <qassert.h>                                  // for Q_ASSERT
#include <qinputdevice.h>                             // for QInputDevice
#include <qquickopenglutils.h>                        // for resetOpenGLState
#include <qvectornd.h>                                // for operator-, QVec...
#include <QDebug>                                     // for QDebug
#include <QMessageLogger>                             // for qWarning
#include <QMouseEvent>                                // for QMouseEvent
#include <QOpenGLFramebufferObject>                   // for QOpenGLFramebuf...
#include <QPoint>                                     // for QPoint
#include <QPointF>                                    // for operator*, QPointF
#include <QVector3D>                                  // for QVector3D
#include <QWheelEvent>                                // for QWheelEvent
#include <QtCore>                                     // for ConnectionType
#include <algorithm>                                  // for remove_if, copy
#include <array>                                      // for array
#include <limits>                                     // for numeric_limits
#include <map>                                        // for operator==, map
#include "graph/elementiddistinctsetcollection.h"     // for MultiElementType
#include "maths/boundingsphere.h"                     // for BoundingSphere
#include "preferenceswatcher.h"                       // for PreferencesWatcher
#include "rendering/camera.h"                         // for Camera
#include "rendering/doublebufferedtexture.h"          // for DoubleBufferedT...
#include "rendering/graphcomponentrenderer.h"         // for GraphComponentR...
#include "rendering/graphrenderercore.h"              // for GPUGraphData
#include "rendering/projection.h"                     // for Projection
#include "rendering/scene.h"                          // for Scene
#include "rendering/transition.h"                     // for Transition
#include "shared/graph/igraph.h"                      // for IEdge
#include "shared/graph/igraphcomponent.h"             // for IGraphComponent
#include "shared/ui/visualisations/ielementvisual.h"  // for VisualFlags
#include "shared/utils/flags.h"                       // for Flags
#include "ui/interactor.h"                            // for Interactor

/home/runner/work/graphia/graphia/source/app/rendering/graphrenderer.cpp should remove these lines:
- #include <QBuffer>  // lines 54-54
- #include <QFutureWatcher>  // lines 55-55
- #include <QOpenGLDebugLogger>  // lines 48-48
- #include <QOpenGLFramebufferObjectFormat>  // lines 46-46
- #include <QQuickOpenGLUtils>  // lines 47-47
- #include <QTextLayout>  // lines 53-53
- #include "ui/selectionmanager.h"  // lines 37-37

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphrenderer.cpp:
#include "graphrenderer.h"
#include <bits/chrono.h>                              // for seconds
#include <qassert.h>                                  // for Q_ASSERT
#include <qinputdevice.h>                             // for QInputDevice
#include <qquickopenglutils.h>                        // for resetOpenGLState
#include <qvectornd.h>                                // for operator-, QVec...
#include <QColor>                                     // for QColor
#include <QCoreApplication>                           // for QCoreApplication
#include <QDebug>                                     // for QDebug
#include <QEvent>                                     // for QEvent
#include <QMessageLogger>                             // for qWarning
#include <QMouseEvent>                                // for QMouseEvent
#include <QNativeGestureEvent>                        // for QNativeGestureE...
#include <QObject>                                    // for qobject_cast
#include <QOpenGLFramebufferObject>                   // for QOpenGLFramebuf...
#include <QPoint>                                     // for QPoint
#include <QPointF>                                    // for operator*, QPointF
#include <QQuickWindow>                               // for QQuickWindow
#include <QVector3D>                                  // for QVector3D
#include <QWheelEvent>                                // for QWheelEvent
#include <QtCore>                                     // for ConnectionType
#include <algorithm>                                  // for remove_if, copy
#include <array>                                      // for array
#include <limits>                                     // for numeric_limits
#include <map>                                        // for operator==, map
#include <utility>                                    // for move
#include "app/layout/nodepositions.h"                 // for NodePositions
#include "app/preferences.h"                          // for pref
#include "glyphmap.h"                                 // for GlyphMap
#include "graph/elementiddistinctsetcollection.h"     // for MultiElementType
#include "graph/graph.h"                              // for Graph
#include "graph/graphmodel.h"                         // for GraphModel
#include "graphcomponentscene.h"                      // for GraphComponentS...
#include "graphoverviewscene.h"                       // for GraphOverviewScene
#include "maths/boundingsphere.h"                     // for BoundingSphere
#include "preferenceswatcher.h"                       // for PreferencesWatcher
#include "rendering/camera.h"                         // for Camera
#include "rendering/doublebufferedtexture.h"          // for DoubleBufferedT...
#include "rendering/graphcomponentrenderer.h"         // for GraphComponentR...
#include "rendering/graphrenderercore.h"              // for GPUGraphData
#include "rendering/projection.h"                     // for Projection
#include "rendering/scene.h"                          // for Scene
#include "rendering/transition.h"                     // for Transition
#include "screenshotrenderer.h"                       // for ScreenshotRenderer
#include "shadertools.h"                              // for loadShaderProgram
#include "shared/graph/igraph.h"                      // for IEdge
#include "shared/graph/igraphcomponent.h"             // for IGraphComponent
#include "shared/ui/visualisations/ielementvisual.h"  // for VisualFlags
#include "shared/utils/container.h"                   // for vectorFrom
#include "shared/utils/doasyncthen.h"                 // for doAsync, _Then
#include "shared/utils/flags.h"                       // for Flags
#include "ui/graphcomponentinteractor.h"              // for GraphComponentI...
#include "ui/graphoverviewinteractor.h"               // for GraphOverviewIn...
#include "ui/graphquickitem.h"                        // for GraphQuickItem
#include "ui/interactor.h"                            // for Interactor
#include "ui/visualisations/elementvisual.h"          // for ElementVisual
#include "ui/visualisations/textvisual.h"             // for TextVisual
---


/home/runner/work/graphia/graphia/source/app/rendering/opengldebuglogger.h should add these lines:
#include <qtmetamacros.h>  // for Q_OBJECT, slots

/home/runner/work/graphia/graphia/source/app/rendering/opengldebuglogger.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/opengldebuglogger.h:
#include <qtmetamacros.h>  // for Q_OBJECT, slots
#include <QObject>         // for QObject
class QOpenGLDebugLogger;  // lines 24-24
class QOpenGLDebugMessage;  // lines 25-25
---

/home/runner/work/graphia/graphia/source/app/rendering/opengldebuglogger.cpp should add these lines:
#include <qassert.h>                 // for Q_ASSERT
#include <qtenvironmentvariables.h>  // for qEnvironmentVariableIntValue
#include <QList>                     // for QList
#include <QMessageLogger>            // for qDebug
#include <QOpenGLDebugMessage>       // for QOpenGLDebugMessage
#include <QtCore>                    // for ConnectionType, QByteArrayLiteral

/home/runner/work/graphia/graphia/source/app/rendering/opengldebuglogger.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/opengldebuglogger.cpp:
#include "opengldebuglogger.h"
#include <qassert.h>                 // for Q_ASSERT
#include <qtenvironmentvariables.h>  // for qEnvironmentVariableIntValue
#include <QDebug>                    // for QDebug
#include <QList>                     // for QList
#include <QMessageLogger>            // for qDebug
#include <QOpenGLContext>            // for QOpenGLContext
#include <QOpenGLDebugLogger>        // for QOpenGLDebugLogger
#include <QOpenGLDebugMessage>       // for QOpenGLDebugMessage
#include <QtCore>                    // for ConnectionType, QByteArrayLiteral
---


/home/runner/work/graphia/graphia/source/app/rendering/graphrenderercore.h should add these lines:
#include <QtGui/qopengl.h>           // for GLuint, GLint, GL_COLOR_BUFFER_BIT
#include <stddef.h>                  // for size_t
#include <QSize>                     // for QSize
class QRect;

/home/runner/work/graphia/graphia/source/app/rendering/graphrenderercore.h should remove these lines:
- #include <QRect>  // lines 34-34
- class ScreenshotRenderer;  // lines 40-40

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphrenderercore.h:
#include <QtGui/qopengl.h>           // for GLuint, GLint, GL_COLOR_BUFFER_BIT
#include <stddef.h>                  // for size_t
#include <QMatrix4x4>                // for QMatrix4x4
#include <QOpenGLBuffer>             // for QOpenGLBuffer
#include <QOpenGLShaderProgram>      // for QOpenGLShaderProgram
#include <QOpenGLVertexArrayObject>  // for QOpenGLVertexArrayObject
#include <QSize>                     // for QSize
#include <array>                     // for array
#include <vector>                    // for vector
#include "openglfunctions.h"         // for OpenGLFunctions
#include "primitives/arrow.h"        // for Arrow
#include "primitives/rectangle.h"    // for Rectangle
#include "primitives/sphere.h"       // for Sphere
#include "shading.h"                 // for Shading
#include "shared/utils/flags.h"      // for Flags
class GlyphMap;  // lines 41-41
class QOpenGLContext;  // lines 42-42
class QRect;
---

/home/runner/work/graphia/graphia/source/app/rendering/graphrenderercore.cpp should add these lines:
#include <qassert.h>                         // for Q_ASSERT
#include <qtypes.h>                          // for uchar
#include <QByteArray>                        // for QByteArray
#include <QDebug>                            // for QDebug
#include <QImage>                            // for QImage
#include <QMessageLogger>                    // for qWarning
#include <QPoint>                            // for QPoint
#include <QRect>                             // for QRect
#include <QString>                           // for operator""_s, QString
#include <QVariant>                          // for QVariant
#include <QVector3D>                         // for QVector3D
#include <QtCore>                            // for qFuzzyCompare, GlobalColor
#include <algorithm>                         // for min, remove_if, sort
#include <initializer_list>                  // for initializer_list
#include "rendering/openglfunctions.h"       // for OpenGLFunctions
#include "rendering/primitives/arrow.h"      // for Arrow
#include "rendering/primitives/rectangle.h"  // for Rectangle
#include "rendering/primitives/sphere.h"     // for Sphere
#include "rendering/shading.h"               // for Shading
class QVector3D;

/home/runner/work/graphia/graphia/source/app/rendering/graphrenderercore.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/graphrenderercore.cpp:
#include "graphrenderercore.h"
#include <qassert.h>                         // for Q_ASSERT
#include <qtypes.h>                          // for uchar
#include <QByteArray>                        // for QByteArray
#include <QColor>                            // for QColor, operator<<, oper...
#include <QDebug>                            // for QDebug
#include <QDir>                              // for QDir
#include <QImage>                            // for QImage
#include <QMessageLogger>                    // for qWarning
#include <QOpenGLContext>                    // for QOpenGLContext
#include <QPoint>                            // for QPoint
#include <QRect>                             // for QRect
#include <QString>                           // for operator""_s, QString
#include <QVariant>                          // for QVariant
#include <QVector3D>                         // for QVector3D
#include <QtCore>                            // for qFuzzyCompare, GlobalColor
#include <algorithm>                         // for min, remove_if, sort
#include <initializer_list>                  // for initializer_list
#include "app/preferences.h"                 // for pref
#include "glyphmap.h"                        // for GlyphMap
#include "rendering/openglfunctions.h"       // for OpenGLFunctions
#include "rendering/primitives/arrow.h"      // for Arrow
#include "rendering/primitives/rectangle.h"  // for Rectangle
#include "rendering/primitives/sphere.h"     // for Sphere
#include "rendering/shading.h"               // for Shading
#include "shadertools.h"                     // for loadShaderProgram
#include "shared/rendering/multisamples.h"   // for multisamples
#include "ui/document.h"                     // for Document
class QVector3D;
---


/home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.h should add these lines:
#include <QtGui/qopengl.h>            // for APIENTRY, APIENTRYP, GL_ARB_sam...
#include <QSurfaceFormat>             // for QSurfaceFormat

/home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.h should remove these lines:
- #include <memory>  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.h:
#include <QtGui/qopengl.h>            // for APIENTRY, APIENTRYP, GL_ARB_sam...
#include <QOpenGLFunctions_3_3_Core>  // for QOpenGLFunctions_3_3_Core
#include <QString>                    // for QString
#include <QSurfaceFormat>             // for QSurfaceFormat
---

/home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.cpp should add these lines:
#include <qassert.h>              // for Q_ASSERT
#include <QDebug>                 // for QDebug
#include <QMessageLogger>         // for qDebug, qFatal
#include <QtCore>                 // for QByteArrayLiteral, StringLiterals
#include <compare>                // for operator<
#include <utility>                // for operator<=>, pair

/home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/openglfunctions.cpp:
#include "openglfunctions.h"
#include <qassert.h>              // for Q_ASSERT
#include <QDebug>                 // for QDebug
#include <QMessageLogger>         // for qDebug, qFatal
#include <QOffscreenSurface>      // for QOffscreenSurface
#include <QOpenGLContext>         // for QOpenGLContext
#include <QOpenGLExtraFunctions>  // for QOpenGLExtraFunctions
#include <QSurfaceFormat>         // for QSurfaceFormat
#include <QtCore>                 // for QByteArrayLiteral, StringLiterals
#include <compare>                // for operator<
#include <utility>                // for operator<=>, pair
---


/home/runner/work/graphia/graphia/source/app/rendering/primitives/arrow.h should add these lines:
#include <QtGui/qopengl.h>           // for GLsizei
#include <qtmetamacros.h>            // for slots
#include <stddef.h>                  // for size_t
class QOpenGLShaderProgram;

/home/runner/work/graphia/graphia/source/app/rendering/primitives/arrow.h should remove these lines:
- #include <QOpenGLShaderProgram>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/primitives/arrow.h:
#include <QtGui/qopengl.h>           // for GLsizei
#include <qtmetamacros.h>            // for slots
#include <stddef.h>                  // for size_t
#include <QOpenGLBuffer>             // for QOpenGLBuffer
#include <QOpenGLVertexArrayObject>  // for QOpenGLVertexArrayObject
#include <vector>                    // for vector
class QOpenGLShaderProgram;
---

/home/runner/work/graphia/graphia/source/app/rendering/primitives/arrow.cpp should add these lines:
#include <qvectornd.h>           // for operator-
#include <QVector3D>             // for QVector3D

/home/runner/work/graphia/graphia/source/app/rendering/primitives/arrow.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/primitives/arrow.cpp:
#include "arrow.h"
#include <qvectornd.h>           // for operator-
#include <QOpenGLShaderProgram>  // for QOpenGLShaderProgram
#include <QVector3D>             // for QVector3D
#include <cmath>                 // for cos, sin
#include <numbers>               // for pi_v
---


/home/runner/work/graphia/graphia/source/app/rendering/primitives/rectangle.h should add these lines:
#include <QtGui/qopengl.h>           // for GLsizei
class QOpenGLShaderProgram;

/home/runner/work/graphia/graphia/source/app/rendering/primitives/rectangle.h should remove these lines:
- #include <QOpenGLShaderProgram>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/primitives/rectangle.h:
#include <QtGui/qopengl.h>           // for GLsizei
#include <QOpenGLBuffer>             // for QOpenGLBuffer
#include <QOpenGLVertexArrayObject>  // for QOpenGLVertexArrayObject
class QOpenGLShaderProgram;
---

/home/runner/work/graphia/graphia/source/app/rendering/primitives/rectangle.cpp should add these lines:
#include <stddef.h>              // for size_t
#include <QOpenGLShaderProgram>  // for QOpenGLShaderProgram
#include <iterator>              // for begin, end
#include <vector>                // for vector

/home/runner/work/graphia/graphia/source/app/rendering/primitives/rectangle.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/primitives/rectangle.cpp:
#include "rectangle.h"
#include <stddef.h>              // for size_t
#include <QOpenGLShaderProgram>  // for QOpenGLShaderProgram
#include <array>                 // for array
#include <iterator>              // for begin, end
#include <vector>                // for vector
---


/home/runner/work/graphia/graphia/source/app/rendering/primitives/sphere.h should add these lines:
#include <QtGui/qopengl.h>           // for GLsizei
#include <qtmetamacros.h>            // for slots
#include <stddef.h>                  // for size_t
class QOpenGLShaderProgram;

/home/runner/work/graphia/graphia/source/app/rendering/primitives/sphere.h should remove these lines:
- #include <QOpenGLShaderProgram>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/primitives/sphere.h:
#include <QtGui/qopengl.h>           // for GLsizei
#include <qtmetamacros.h>            // for slots
#include <stddef.h>                  // for size_t
#include <QOpenGLBuffer>             // for QOpenGLBuffer
#include <QOpenGLVertexArrayObject>  // for QOpenGLVertexArrayObject
#include <vector>                    // for vector
class QOpenGLShaderProgram;
---

(/home/runner/work/graphia/graphia/source/app/rendering/primitives/sphere.cpp has correct #includes/fwd-decls)


/home/runner/work/graphia/graphia/source/app/rendering/transition.h should add these lines:
#include <qassert.h>       // for Q_ASSERT
#include <qtmetamacros.h>  // for Q_OBJECT, emit, signals
#include <utility>         // for forward
#include <vector>          // for vector

/home/runner/work/graphia/graphia/source/app/rendering/transition.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/transition.h:
#include <qassert.h>       // for Q_ASSERT
#include <qtmetamacros.h>  // for Q_OBJECT, emit, signals
#include <QObject>         // for QObject
#include <functional>      // for function
#include <limits>          // for numeric_limits
#include <utility>         // for forward
#include <vector>          // for vector
---

/home/runner/work/graphia/graphia/source/app/rendering/transition.cpp should add these lines:

/home/runner/work/graphia/graphia/source/app/rendering/transition.cpp should remove these lines:
- #include <QDebug>  // lines 24-24
- #include "shared/utils/utils.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/transition.cpp:
#include "transition.h"
#include <algorithm>              // for clamp
#include "maths/interpolation.h"  // for Interpolation
---


(/home/runner/work/graphia/graphia/source/app/rendering/shadertools.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/app/rendering/shadertools.cpp should add these lines:
#include <QByteArray>                 // for QByteArray
#include <QLatin1Char>                // for StringLiterals
#include <QMessageLogger>             // for qInstallMessageHandler, QtMsgType
#include <QOpenGLShader>              // for QOpenGLShader
#include <string>                     // for allocator, operator<<, string

/home/runner/work/graphia/graphia/source/app/rendering/shadertools.cpp should remove these lines:
- #include <QObject>  // lines 28-28
- #include <QtGlobal>  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/shadertools.cpp:
#include "shadertools.h"
#include <QByteArray>                 // for QByteArray
#include <QFile>                      // for QFile
#include <QLatin1Char>                // for StringLiterals
#include <QMessageLogger>             // for qInstallMessageHandler, QtMsgType
#include <QOpenGLContext>             // for QOpenGLContext
#include <QOpenGLShader>              // for QOpenGLShader
#include <QOpenGLShaderProgram>       // for QOpenGLShaderProgram
#include <QString>                    // for QString, operator""_s, operator+
#include <QSurfaceFormat>             // for QSurfaceFormat
#include <iostream>                   // for char_traits, basic_ostream, ope...
#include <string>                     // for allocator, operator<<, string
#include "openglfunctions.h"          // for OpenGLFunctions
#include "shared/utils/scope_exit.h"  // for make_scope_exit
---


/home/runner/work/graphia/graphia/source/app/preferences.h should add these lines:
#include <QString>   // for QString

/home/runner/work/graphia/graphia/source/app/preferences.h should remove these lines:
- class QString;  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/preferences.h:
#include <QString>   // for QString
#include <QVariant>  // for QVariant
---

/home/runner/work/graphia/graphia/source/app/preferences.cpp should add these lines:
#include <QByteArrayDataPtr>         // for StringLiterals

/home/runner/work/graphia/graphia/source/app/preferences.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/preferences.cpp:
#include "preferences.h"
#include <QByteArrayDataPtr>         // for StringLiterals
#include <QCoreApplication>          // for QCoreApplication
#include <QSettings>                 // for QSettings
#include "app/limitconstants.h"      // for LimitConstants
#include "app/preferenceswatcher.h"  // for PreferencesWatcher, setPref
#include "shared/utils/utils.h"      // for normalise
---


/home/runner/work/graphia/graphia/source/app/rendering/screenshotrenderer.h should add these lines:
#include <QtGui/qopengl.h>           // for GLuint
#include <qtmetamacros.h>            // for Q_OBJECT, signals
#include <QString>                   // for QString
#include <vector>                    // for vector
class GraphModel;
class GraphRenderer;
class QImage;
class QPoint;
class QSize;

/home/runner/work/graphia/graphia/source/app/rendering/screenshotrenderer.h should remove these lines:
- #include "graph/graphmodel.h"  // lines 22-22
- #include "graphrenderer.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/screenshotrenderer.h:
#include <QtGui/qopengl.h>           // for GLuint
#include <qtmetamacros.h>            // for Q_OBJECT, signals
#include <QObject>                   // for QObject
#include <QString>                   // for QString
#include <vector>                    // for vector
#include "graphcomponentrenderer.h"  // for GraphComponentRenderer
#include "graphrenderercore.h"       // for GraphRendererCore
class GraphModel;
class GraphRenderer;
class QImage;
class QPoint;
class QSize;
---

/home/runner/work/graphia/graphia/source/app/rendering/screenshotrenderer.cpp should add these lines:
#include <qquickopenglutils.h>                 // for resetOpenGLState
#include <stddef.h>                            // for size_t
#include <QByteArray>                          // for QByteArray, StringLite...
#include <QColor>                              // for QColor, operator<<
#include <QDebug>                              // for QDebug
#include <QImage>                              // for QImage
#include <QMatrix4x4>                          // for operator*, QMatrix4x4
#include <QMessageLogger>                      // for qWarning
#include <QPainter>                            // for QPainter
#include <QPixmap>                             // for QPixmap
#include <QPoint>                              // for QPoint
#include <QPointF>                             // for operator*, QPointF
#include <QRect>                               // for QRect
#include <QRectF>                              // for QRectF
#include <QSize>                               // for QSize, operator*
#include <QSizeF>                              // for QSizeF
#include <QVariant>                            // for QVariant
#include <array>                               // for array
#include <cmath>                               // for ceil
#include <memory>                              // for unique_ptr
#include "rendering/camera.h"                  // for Camera
#include "rendering/glyphmap.h"                // for GlyphMap
#include "rendering/graphcomponentrenderer.h"  // for GraphComponentRenderer
#include "rendering/graphrenderer.h"           // for GraphRenderer
#include "rendering/graphrenderercore.h"       // for GPUGraphData, GraphRen...
#include "shared/graph/grapharray.h"           // for ComponentArray
#include "shared/utils/movablepointer.h"       // for MovablePointer

/home/runner/work/graphia/graphia/source/app/rendering/screenshotrenderer.cpp should remove these lines:
- #include <QDir>  // lines 32-32
- #include <QQuickOpenGLUtils>  // lines 33-33
- #include "graph/graph.h"  // lines 21-21
- #include "graphcomponentscene.h"  // lines 23-23
- #include "graphoverviewscene.h"  // lines 24-24
- #include "ui/document.h"  // lines 28-28
- #include "ui/visualisations/elementvisual.h"  // lines 29-29

The full include-list for /home/runner/work/graphia/graphia/source/app/rendering/screenshotrenderer.cpp:
#include "screenshotrenderer.h"
#include <qquickopenglutils.h>                 // for resetOpenGLState
#include <stddef.h>                            // for size_t
#include <QBuffer>                             // for QBuffer
#include <QByteArray>                          // for QByteArray, StringLite...
#include <QColor>                              // for QColor, operator<<
#include <QDebug>                              // for QDebug
#include <QImage>                              // for QImage
#include <QMatrix4x4>                          // for operator*, QMatrix4x4
#include <QMessageLogger>                      // for qWarning
#include <QPainter>                            // for QPainter
#include <QPixmap>                             // for QPixmap
#include <QPoint>                              // for QPoint
#include <QPointF>                             // for operator*, QPointF
#include <QRect>                               // for QRect
#include <QRectF>                              // for QRectF
#include <QSize>                               // for QSize, operator*
#include <QSizeF>                              // for QSizeF
#include <QVariant>                            // for QVariant
#include <array>                               // for array
#include <cmath>                               // for ceil
#include <memory>                              // for unique_ptr
#include "app/preferences.h"                   // for pref
#include "rendering/camera.h"                  // for Camera
#include "rendering/glyphmap.h"                // for GlyphMap
#include "rendering/graphcomponentrenderer.h"  // for GraphComponentRenderer
#include "rendering/graphrenderer.h"           // for GraphRenderer
#include "rendering/graphrenderercore.h"       // for GPUGraphData, GraphRen...
#include "shared/graph/grapharray.h"           // for ComponentArray
#include "shared/utils/movablepointer.h"       // for MovablePointer
---


(/home/runner/work/graphia/graphia/source/app/tracking.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/app/tracking.cpp should add these lines:
#include <bits/chrono.h>             // for operator""s, chrono_literals
#include <QByteArray>                // for QByteArray, StringLiterals
#include <QList>                     // for QList
#include <QMessageLogger>            // for qDebug
#include <QVariant>                  // for QVariant
#include <QtCore>                    // for QCryptographicHash
#include <json.hpp>                  // for basic_json, json_ref

/home/runner/work/graphia/graphia/source/app/tracking.cpp should remove these lines:
- #include <QCryptographicHash>  // lines 34-34
- #include <QStringList>  // lines 41-41
- #include <chrono>  // lines 47-47

The full include-list for /home/runner/work/graphia/graphia/source/app/tracking.cpp:
#include "tracking.h"
#include <bits/chrono.h>             // for operator""s, chrono_literals
#include <json_helper.h>             // for json
#include <QByteArray>                // for QByteArray, StringLiterals
#include <QDebug>                    // for QDebug
#include <QEventLoop>                // for QEventLoop
#include <QHostInfo>                 // for QHostInfo
#include <QHttpMultiPart>            // for QHttpMultiPart
#include <QHttpPart>                 // for QHttpPart
#include <QList>                     // for QList
#include <QLocale>                   // for QLocale
#include <QMessageLogger>            // for qDebug
#include <QNetworkAccessManager>     // for QNetworkAccessManager
#include <QNetworkReply>             // for QNetworkReply
#include <QNetworkRequest>           // for QNetworkRequest
#include <QObject>                   // for QObject
#include <QRegularExpression>        // for QRegularExpression
#include <QStandardPaths>            // for QStandardPaths
#include <QString>                   // for QString, operator""_s, operator==
#include <QSysInfo>                  // for QSysInfo
#include <QTimer>                    // for QTimer
#include <QVariant>                  // for QVariant
#include <QtCore>                    // for QCryptographicHash
#include <json.hpp>                  // for basic_json, json_ref
#include <thread>                    // for thread
#include "app/preferences.h"         // for pref, prefExists, setPref
#include "build_defines.h"           // for VERSION
#include "shared/utils/container.h"  // for contains
---


/home/runner/work/graphia/graphia/source/app/transform/graphtransformconfig.h should add these lines:
#include <boost/variant/variant.hpp>   // for variant
namespace boost { template <typename T> class recursive_wrapper; }

/home/runner/work/graphia/graphia/source/app/transform/graphtransformconfig.h should remove these lines:
- #include <boost/variant.hpp>  // lines 31-31
- #include <boost/variant/recursive_wrapper.hpp>  // lines 32-32
- #include "shared/attributes/valuetype.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/graphtransformconfig.h:
#include <QString>                     // for QString
#include <QVariantMap>                 // for QVariantMap
#include <boost/variant/variant.hpp>   // for variant
#include <variant>                     // for variant
#include <vector>                      // for vector
#include "attributes/condtionfnops.h"  // for Equality, Logical, Numerical (...
namespace boost { template <typename T> class recursive_wrapper; }
struct GraphTransformConfig::CompoundCondition;  // lines 59-59
---

/home/runner/work/graphia/graphia/source/app/transform/graphtransformconfig.cpp should add these lines:
#include <QByteArrayDataPtr>                             // for StringLiterals
#include <QChar>                                         // for operator!=
#include <QList>                                         // for QList
#include <QMap>                                          // for QMap
#include <QMessageLogger>                                // for qFatal
#include <QStringList>                                   // for QStringList
#include <QVariant>                                      // for QVariant
#include <algorithm>                                     // for find_if, max
#include <boost/variant/detail/apply_visitor_unary.hpp>  // for apply_visitor
#include <map>                                           // for map, operator==

/home/runner/work/graphia/graphia/source/app/transform/graphtransformconfig.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/graphtransformconfig.cpp:
#include "graphtransformconfig.h"
#include <QByteArrayDataPtr>                             // for StringLiterals
#include <QChar>                                         // for operator!=
#include <QList>                                         // for QList
#include <QMap>                                          // for QMap
#include <QMessageLogger>                                // for qFatal
#include <QObject>                                       // for QObject
#include <QStringList>                                   // for QStringList
#include <QVariant>                                      // for QVariant
#include <QVariantList>                                  // for QVariantList
#include <algorithm>                                     // for find_if, max
#include <boost/variant/detail/apply_visitor_unary.hpp>  // for apply_visitor
#include <map>                                           // for map, operator==
#include "attributes/attribute.h"                        // for Attribute
#include "graphtransformconfigparser.h"                  // for GraphTransfo...
#include "shared/utils/container.h"                      // for contains
---


/home/runner/work/graphia/graphia/source/app/transform/availabletransformsmodel.h should add these lines:
#include <qtmetamacros.h>            // for Q_INVOKABLE, Q_OBJECT
#include <QAbstractListModel>        // for QAbstractListModel
#include <QModelIndex>               // for QModelIndex
#include <QString>                   // for QString
#include <QtCore>                    // for QHash, ItemDataRole

/home/runner/work/graphia/graphia/source/app/transform/availabletransformsmodel.h should remove these lines:
- #include <QAbstractItemModel>  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/availabletransformsmodel.h:
#include <qtmetamacros.h>            // for Q_INVOKABLE, Q_OBJECT
#include <QAbstractListModel>        // for QAbstractListModel
#include <QList>                     // for QList
#include <QModelIndex>               // for QModelIndex
#include <QString>                   // for QString
#include <QStringList>               // for QStringList
#include <QVariant>                  // for QVariant
#include <QtCore>                    // for QHash, ItemDataRole
#include "app/preferenceswatcher.h"  // for PreferencesWatcher
class GraphModel;  // lines 29-29
---

/home/runner/work/graphia/graphia/source/app/transform/availabletransformsmodel.cpp should add these lines:
#include <QAbstractItemModel>           // for QAbstractItemModel
#include <QByteArray>                   // for QByteArray, QTypeInfo<>::isRe...
#include <QtQml>                        // for qmlRegisterInterface
#include <json.hpp>                     // for basic_json, iter_impl
#include "preferenceswatcher.h"         // for PreferencesWatcher
#include "shared/utils/container.h"     // for contains

/home/runner/work/graphia/graphia/source/app/transform/availabletransformsmodel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/availabletransformsmodel.cpp:
#include "availabletransformsmodel.h"
#include <json_helper.h>                // for parseJsonFrom
#include <QAbstractItemModel>           // for QAbstractItemModel
#include <QByteArray>                   // for QByteArray, QTypeInfo<>::isRe...
#include <QtQml>                        // for qmlRegisterInterface
#include <json.hpp>                     // for basic_json, iter_impl
#include "app/preferences.h"            // for pref
#include "application.h"                // for Application
#include "graph/graphmodel.h"           // for GraphModel
#include "preferenceswatcher.h"         // for PreferencesWatcher
#include "shared/utils/container.h"     // for contains
#include "shared/utils/static_block.h"  // for static_block
#include "transform/graphtransform.h"   // for GraphTransformFactory
---


/home/runner/work/graphia/graphia/source/app/transform/graphtransform.h should add these lines:
#include <utility>                             // for forward
#include "shared/attributes/valuetype.h"       // for ValueType
class TransformInfo;

/home/runner/work/graphia/graphia/source/app/transform/graphtransform.h should remove these lines:
- #include "shared/graph/elementid.h"  // lines 22-22
- #include "transforminfo.h"  // lines 31-31

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/graphtransform.h:
#include <QString>                             // for QString
#include <memory>                              // for unique_ptr
#include <utility>                             // for forward
#include <vector>                              // for vector
#include "graphtransformattributeparameter.h"  // for GraphTransformAttribut...
#include "graphtransformconfig.h"              // for GraphTransformConfig
#include "graphtransformparameter.h"           // for GraphTransformParameter
#include "shared/attributes/iattribute.h"      // for AttributeFlag
#include "shared/attributes/valuetype.h"       // for ValueType
#include "shared/graph/elementtype.h"          // for ElementType
#include "shared/utils/cancellable.h"          // for Cancellable
#include "shared/utils/flags.h"                // for Flags
#include "shared/utils/progressable.h"         // for Progressable
class GraphModel;  // lines 41-41
class TransformInfo;
class TransformedGraph;  // lines 42-42
---

/home/runner/work/graphia/graphia/source/app/transform/graphtransform.cpp should add these lines:
#include <QByteArrayDataPtr>                             // for StringLiterals
#include <QList>                                         // for QList
#include <QMetaType>                                     // for QMetaType
#include <QObject>                                       // for QObject
#include <QVariant>                                      // for QVariant
#include <algorithm>                                     // for find_if, any_of
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
#include "transform/graphtransformconfig.h"              // for GraphTransfo...
#include "transform/graphtransformparameter.h"           // for GraphTransfo...
#include "ui/alert.h"                                    // for AlertType

/home/runner/work/graphia/graphia/source/app/transform/graphtransform.cpp should remove these lines:
- #include "graph/graph.h"  // lines 22-22
- #include "shared/commands/icommand.h"  // lines 25-25
- #include "shared/utils/container.h"  // lines 27-27

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/graphtransform.cpp:
#include "graphtransform.h"
#include <QByteArrayDataPtr>                             // for StringLiterals
#include <QList>                                         // for QList
#include <QMetaType>                                     // for QMetaType
#include <QObject>                                       // for QObject
#include <QVariant>                                      // for QVariant
#include <algorithm>                                     // for find_if, any_of
#include "graph/graphmodel.h"                            // for GraphModel
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
#include "transform/graphtransformconfig.h"              // for GraphTransfo...
#include "transform/graphtransformparameter.h"           // for GraphTransfo...
#include "transformedgraph.h"                            // for TransformedG...
#include "ui/alert.h"                                    // for AlertType
---


/home/runner/work/graphia/graphia/source/app/transform/transformcache.h should add these lines:
#include <QString>                 // for QString
#include <algorithm>               // for max
#include <map>                     // for map
#include <memory>                  // for unique_ptr, make_unique, operator==
#include <utility>                 // for move

/home/runner/work/graphia/graphia/source/app/transform/transformcache.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transformcache.h:
#include <QString>                 // for QString
#include <algorithm>               // for max
#include <map>                     // for map
#include <memory>                  // for unique_ptr, make_unique, operator==
#include <utility>                 // for move
#include <vector>                  // for vector
#include "attributes/attribute.h"  // for Attribute
#include "graph/mutablegraph.h"    // for MutableGraph
#include "graphtransformconfig.h"  // for GraphTransformConfig
class GraphModel;  // lines 29-29
class TransformedGraph;  // lines 28-28
---

/home/runner/work/graphia/graphia/source/app/transform/transformcache.cpp should add these lines:
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig

/home/runner/work/graphia/graphia/source/app/transform/transformcache.cpp should remove these lines:
- #include "shared/utils/container_combine.h"  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transformcache.cpp:
#include "transformcache.h"
#include <algorithm>                         // for max, copy, find_if, any_of
#include "graph/graphmodel.h"                // for GraphModel
#include "shared/utils/container.h"          // for contains, keysFor, setIn...
#include "shared/utils/iterator_range.h"     // for iterator_range, make_ite...
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "transform/transformedgraph.h"      // for TransformedGraph
---


/home/runner/work/graphia/graphia/source/app/transform/transformedgraph.h should add these lines:
#include <qtmetamacros.h>                          // for Q_OBJECT, signals
#include <stddef.h>                                // for size_t
#include <algorithm>                               // for max
#include <map>                                     // for map
#include <memory>                                  // for unique_ptr
#include <utility>                                 // for move
#include <vector>                                  // for vector
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType (...
#include "shared/graph/elementid.h"                // for NodeId, EdgeId
class IEdge;
class INode;
template <typename T> class PassKey;

/home/runner/work/graphia/graphia/source/app/transform/transformedgraph.h should remove these lines:
- #include <QObject>  // lines 33-33
- #include <functional>  // lines 37-37
- #include "attributes/attribute.h"  // lines 31-31
- #include "shared/utils/passkey.h"  // lines 29-29
- class ICommand;  // lines 42-42

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transformedgraph.h:
#include <qtmetamacros.h>                          // for Q_OBJECT, signals
#include <stddef.h>                                // for size_t
#include <QString>                                 // for QString
#include <QStringList>                             // for QStringList
#include <algorithm>                               // for max
#include <atomic>                                  // for atomic_bool
#include <map>                                     // for map
#include <memory>                                  // for unique_ptr
#include <mutex>                                   // for mutex
#include <utility>                                 // for move
#include <vector>                                  // for vector
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType (...
#include "graph/graph.h"                           // for Edge, Graph, Node
#include "graph/mutablegraph.h"                    // for MutableGraph
#include "graphtransform.h"                        // for GraphTransform
#include "shared/graph/elementid.h"                // for NodeId, EdgeId
#include "shared/graph/grapharray.h"               // for EdgeArray, NodeArray
#include "transformcache.h"                        // for TransformCache
class GraphModel;  // lines 41-41
class IEdge;
class INode;
template <typename T> class PassKey;
---

/home/runner/work/graphia/graphia/source/app/transform/transformedgraph.cpp should add these lines:
#include <QList>                             // for QList
#include <Qt>                                // for ConnectionType
#include <compare>                           // for operator<, strong_ordering
#include "attributes/attribute.h"            // for Attribute
#include "transform/graphtransform.h"        // for GraphTransform, Identity...
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "transform/transformcache.h"        // for TransformCache
class IMutableGraph;

/home/runner/work/graphia/graphia/source/app/transform/transformedgraph.cpp should remove these lines:
- #include <functional>  // lines 29-29
- #include "graph/componentmanager.h"  // lines 21-21
- #include "shared/commands/icommand.h"  // lines 24-24
- #include "shared/utils/container_combine.h"  // lines 26-26

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transformedgraph.cpp:
#include "transformedgraph.h"
#include <QList>                             // for QList
#include <Qt>                                // for ConnectionType
#include <compare>                           // for operator<, strong_ordering
#include "attributes/attribute.h"            // for Attribute
#include "graph/graphmodel.h"                // for GraphModel, AttributeCha...
#include "shared/utils/container.h"          // for contains, keysFor, remov...
#include "shared/utils/string.h"             // for toQStringVector
#include "transform/graphtransform.h"        // for GraphTransform, Identity...
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "transform/transformcache.h"        // for TransformCache
class IMutableGraph;
---


/home/runner/work/graphia/graphia/source/app/transform/graphtransformconfigparser.h should add these lines:
namespace ConditionFnOp { enum class Equality; }
namespace ConditionFnOp { enum class Logical; }
namespace ConditionFnOp { enum class Numerical; }
namespace ConditionFnOp { enum class String; }
namespace ConditionFnOp { enum class Unary; }

/home/runner/work/graphia/graphia/source/app/transform/graphtransformconfigparser.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/graphtransformconfigparser.h:
#include <QString>                        // for QString
#include <QStringList>                    // for QStringList
#include "graphtransformconfig.h"         // for GraphTransformConfig
#include "shared/attributes/valuetype.h"  // for ValueType
namespace ConditionFnOp { enum class Equality; }
namespace ConditionFnOp { enum class Logical; }
namespace ConditionFnOp { enum class Numerical; }
namespace ConditionFnOp { enum class String; }
namespace ConditionFnOp { enum class Unary; }
---

/home/runner/work/graphia/graphia/source/app/transform/graphtransformconfigparser.cpp should add these lines:
#include <QChar>
#include <QList>
#include <QMessageLogger>
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/adapted/struct/detail/adapt_auto.hpp>
#include <boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/mpl/aux_/preprocessor/is_seq.hpp>
#include <boost/preprocessor/arithmetic/dec.hpp>
#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/comparison/not_equal.hpp>
#include <boost/preprocessor/control/detail/while.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/control/while.hpp>
#include <boost/preprocessor/detail/auto_rec.hpp>
#include <boost/preprocessor/detail/is_binary.hpp>
#include <boost/preprocessor/facilities/detail/is_empty.hpp>
#include <boost/preprocessor/list/fold_left.hpp>
#include <boost/preprocessor/logical/bitand.hpp>
#include <boost/preprocessor/logical/bool.hpp>
#include <boost/preprocessor/logical/compl.hpp>
#include <boost/preprocessor/punctuation/detail/is_begin_parens.hpp>
#include <boost/preprocessor/repetition/detail/for.hpp>
#include <boost/preprocessor/repetition/for.hpp>
#include <boost/preprocessor/seq/elem.hpp>
#include <boost/preprocessor/seq/size.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/tuple/to_seq.hpp>
#include <boost/preprocessor/variadic/elem.hpp>
#include <boost/spirit/home/support/char_encoding/standard.hpp>
#include <boost/spirit/home/support/char_encoding/unicode.hpp>
#include <boost/spirit/home/x3/char/char.hpp>
#include <boost/spirit/home/x3/char/char_class_tags.hpp>
#include <boost/spirit/home/x3/char/char_parser.hpp>
#include <boost/spirit/home/x3/char/char_set.hpp>
#include <boost/spirit/home/x3/char/literal_char.hpp>
#include <boost/spirit/home/x3/char/negated_char_parser.hpp>
#include <boost/spirit/home/x3/char/unicode.hpp>
#include <boost/spirit/home/x3/core/parse.hpp>
#include <boost/spirit/home/x3/directive/lexeme.hpp>
#include <boost/spirit/home/x3/nonterminal/rule.hpp>
#include <boost/spirit/home/x3/numeric/int.hpp>
#include <boost/spirit/home/x3/numeric/real.hpp>
#include <boost/spirit/home/x3/numeric/real_policies.hpp>
#include <boost/spirit/home/x3/operator/alternative.hpp>
#include <boost/spirit/home/x3/operator/kleene.hpp>
#include <boost/spirit/home/x3/operator/list.hpp>
#include <boost/spirit/home/x3/operator/optional.hpp>
#include <boost/spirit/home/x3/operator/plus.hpp>
#include <boost/spirit/home/x3/operator/sequence.hpp>
#include <boost/spirit/home/x3/string/literal_string.hpp>
#include <boost/spirit/home/x3/string/symbols.hpp>
#include <boost/spirit/home/x3/support/unused.hpp>
#include <string>
#include "attributes/condtionfnops.h"
#include "transform/graphtransformconfig.h"

/home/runner/work/graphia/graphia/source/app/transform/graphtransformconfigparser.cpp should remove these lines:
- #include <QRegularExpression>  // lines 27-27
- #include <boost/fusion/include/adapt_struct.hpp>  // lines 24-24
- #include <boost/spirit/home/x3.hpp>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/graphtransformconfigparser.cpp:
#include "graphtransformconfigparser.h"
#include <boost/boost_spirit_qstring_adapter.h>
#include <QChar>
#include <QDebug>
#include <QList>
#include <QMessageLogger>
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/adapted/struct/detail/adapt_auto.hpp>
#include <boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/mpl/aux_/preprocessor/is_seq.hpp>
#include <boost/preprocessor/arithmetic/dec.hpp>
#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/comparison/not_equal.hpp>
#include <boost/preprocessor/control/detail/while.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/control/while.hpp>
#include <boost/preprocessor/detail/auto_rec.hpp>
#include <boost/preprocessor/detail/is_binary.hpp>
#include <boost/preprocessor/facilities/detail/is_empty.hpp>
#include <boost/preprocessor/list/fold_left.hpp>
#include <boost/preprocessor/logical/bitand.hpp>
#include <boost/preprocessor/logical/bool.hpp>
#include <boost/preprocessor/logical/compl.hpp>
#include <boost/preprocessor/punctuation/detail/is_begin_parens.hpp>
#include <boost/preprocessor/repetition/detail/for.hpp>
#include <boost/preprocessor/repetition/for.hpp>
#include <boost/preprocessor/seq/elem.hpp>
#include <boost/preprocessor/seq/size.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/tuple/to_seq.hpp>
#include <boost/preprocessor/variadic/elem.hpp>
#include <boost/spirit/home/support/char_encoding/standard.hpp>
#include <boost/spirit/home/support/char_encoding/unicode.hpp>
#include <boost/spirit/home/x3/char/char.hpp>
#include <boost/spirit/home/x3/char/char_class_tags.hpp>
#include <boost/spirit/home/x3/char/char_parser.hpp>
#include <boost/spirit/home/x3/char/char_set.hpp>
#include <boost/spirit/home/x3/char/literal_char.hpp>
#include <boost/spirit/home/x3/char/negated_char_parser.hpp>
#include <boost/spirit/home/x3/char/unicode.hpp>
#include <boost/spirit/home/x3/core/parse.hpp>
#include <boost/spirit/home/x3/directive/lexeme.hpp>
#include <boost/spirit/home/x3/nonterminal/rule.hpp>
#include <boost/spirit/home/x3/numeric/int.hpp>
#include <boost/spirit/home/x3/numeric/real.hpp>
#include <boost/spirit/home/x3/numeric/real_policies.hpp>
#include <boost/spirit/home/x3/operator/alternative.hpp>
#include <boost/spirit/home/x3/operator/kleene.hpp>
#include <boost/spirit/home/x3/operator/list.hpp>
#include <boost/spirit/home/x3/operator/optional.hpp>
#include <boost/spirit/home/x3/operator/plus.hpp>
#include <boost/spirit/home/x3/operator/sequence.hpp>
#include <boost/spirit/home/x3/string/literal_string.hpp>
#include <boost/spirit/home/x3/string/symbols.hpp>
#include <boost/spirit/home/x3/support/unused.hpp>
#include <string>
#include "attributes/condtionfnops.h"
#include "transform/graphtransformconfig.h"
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/attributesynthesistransform.h should add these lines:
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <memory>                                        // for unique_ptr
#include "shared/attributes/iattribute.h"                // for IAttribute
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
#include "transform/graphtransformparameter.h"           // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/attributesynthesistransform.h should remove these lines:
- #include "attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/attributesynthesistransform.h:
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <memory>                                        // for unique_ptr
#include "shared/attributes/iattribute.h"                // for IAttribute
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "shared/utils/redirects.h"                      // for redirectLink
#include "transform/graphtransform.h"                    // for GraphTransfo...
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
#include "transform/graphtransformparameter.h"           // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/attributesynthesistransform.cpp should add these lines:
#include <QByteArrayDataPtr>                 // for StringLiterals
#include <type_traits>                       // for remove_reference
#include <vector>                            // for vector
#include "attributes/attribute.h"            // for Attribute
#include "shared/graph/grapharray.h"         // for ElementIdArray
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "ui/alert.h"                        // for AlertType, Alert

/home/runner/work/graphia/graphia/source/app/transform/transforms/attributesynthesistransform.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/attributesynthesistransform.cpp:
#include "attributesynthesistransform.h"
#include <QByteArrayDataPtr>                 // for StringLiterals
#include <QObject>                           // for QObject
#include <QRegularExpression>                // for QRegularExpression, QReg...
#include <memory>                            // for make_unique, unique_ptr
#include <type_traits>                       // for remove_reference
#include <vector>                            // for vector
#include "attributes/attribute.h"            // for Attribute
#include "graph/graphmodel.h"                // for GraphModel
#include "shared/graph/grapharray.h"         // for ElementIdArray
#include "shared/utils/typeidentity.h"       // for TypeIdentity
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "transform/transformedgraph.h"      // for TransformedGraph
#include "ui/alert.h"                        // for AlertType, Alert
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/averageattributetransform.h should add these lines:
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <memory>                                        // for unique_ptr
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/averageattributetransform.h should remove these lines:
- #include "attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/averageattributetransform.h:
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <memory>                                        // for unique_ptr
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "transform/graphtransform.h"                    // for GraphTransfo...
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/averageattributetransform.cpp should add these lines:
#include <stddef.h>                          // for size_t
#include <QMessageLogger>                    // for qFatal
#include <map>                               // for map
#include <vector>                            // for vector
#include "attributes/attribute.h"            // for Attribute
#include "shared/attributes/iattribute.h"    // for AttributeFlag
#include "shared/graph/grapharray.h"         // for ElementIdArray
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "ui/alert.h"                        // for AlertType, Alert

/home/runner/work/graphia/graphia/source/app/transform/transforms/averageattributetransform.cpp should remove these lines:
- #include <QRegularExpression>  // lines 29-29

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/averageattributetransform.cpp:
#include "averageattributetransform.h"
#include <stddef.h>                          // for size_t
#include <QMessageLogger>                    // for qFatal
#include <QObject>                           // for QObject
#include <map>                               // for map
#include <memory>                            // for make_unique, unique_ptr
#include <type_traits>                       // for remove_reference
#include <vector>                            // for vector
#include "attributes/attribute.h"            // for Attribute
#include "graph/graphmodel.h"                // for GraphModel
#include "shared/attributes/iattribute.h"    // for AttributeFlag
#include "shared/graph/grapharray.h"         // for ElementIdArray
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "transform/transformedgraph.h"      // for TransformedGraph
#include "ui/alert.h"                        // for AlertType, Alert
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/betweennesstransform.h should add these lines:
#include <QObject>                         // for QObject
#include <QString>                         // for QString
#include <memory>                          // for unique_ptr
#include "shared/attributes/iattribute.h"  // for AttributeFlag
#include "shared/attributes/valuetype.h"   // for ValueType
#include "shared/graph/elementtype.h"      // for ElementType
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/betweennesstransform.h should remove these lines:
- #include "shared/utils/flags.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/betweennesstransform.h:
#include <QObject>                         // for QObject
#include <QString>                         // for QString
#include <memory>                          // for unique_ptr
#include "shared/attributes/iattribute.h"  // for AttributeFlag
#include "shared/attributes/valuetype.h"   // for ValueType
#include "shared/graph/elementtype.h"      // for ElementType
#include "shared/utils/redirects.h"        // for redirectLink
#include "transform/graphtransform.h"      // for GraphTransformFactory, Def...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/betweennesstransform.cpp should add these lines:
#include <stddef.h>                      // for size_t
#include <QtCore>                        // for operator""_s, StringLiterals
#include <algorithm>                     // for copy, max
#include <atomic>                        // for atomic_int, __atomic_base
#include <vector>                        // for vector
#include "attributes/attribute.h"        // for Attribute
#include "shared/graph/elementid.h"      // for NodeId, EdgeId, ElementId
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/betweennesstransform.cpp should remove these lines:
- #include <map>  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/betweennesstransform.cpp:
#include "betweennesstransform.h"
#include <stddef.h>                      // for size_t
#include <QtCore>                        // for operator""_s, StringLiterals
#include <algorithm>                     // for copy, max
#include <atomic>                        // for atomic_int, __atomic_base
#include <cstdint>                       // for int64_t
#include <queue>                         // for queue
#include <stack>                         // for stack
#include <thread>                        // for thread
#include <vector>                        // for vector
#include "attributes/attribute.h"        // for Attribute
#include "graph/graphmodel.h"            // for GraphModel
#include "shared/graph/elementid.h"      // for NodeId, EdgeId, ElementId
#include "shared/graph/grapharray.h"     // for NodeArray, GenericGraphArray
#include "shared/utils/threadpool.h"     // for parallel_for
#include "transform/transformedgraph.h"  // for TransformedGraph
struct GraphTransformConfig;
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/conditionalattributetransform.h should add these lines:
#include <QObject>                              // for QObject
#include <QString>                              // for QString
#include <memory>                               // for unique_ptr
#include "shared/attributes/iattribute.h"       // for IAttribute
#include "shared/attributes/valuetype.h"        // for ValueType
#include "shared/graph/elementtype.h"           // for ElementType
#include "transform/graphtransformparameter.h"  // for GraphTransformParameter
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/conditionalattributetransform.h should remove these lines:
- #include <vector>  // lines 25-25
- #include "attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/conditionalattributetransform.h:
#include <QObject>                              // for QObject
#include <QString>                              // for QString
#include <memory>                               // for unique_ptr
#include "shared/attributes/iattribute.h"       // for IAttribute
#include "shared/attributes/valuetype.h"        // for ValueType
#include "shared/graph/elementtype.h"           // for ElementType
#include "transform/graphtransform.h"           // for GraphTransformFactory
#include "transform/graphtransformparameter.h"  // for GraphTransformParameter
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/conditionalattributetransform.cpp should add these lines:
#include <QByteArrayDataPtr>                 // for StringLiterals
#include <functional>                        // for operator==
#include <type_traits>                       // for remove_reference
#include <vector>                            // for vector
#include "attributes/attribute.h"            // for Attribute
#include "shared/graph/grapharray.h"         // for ElementIdArray
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "ui/alert.h"                        // for AlertType, Alert

/home/runner/work/graphia/graphia/source/app/transform/transforms/conditionalattributetransform.cpp should remove these lines:
- #include <algorithm>  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/conditionalattributetransform.cpp:
#include "conditionalattributetransform.h"
#include <QByteArrayDataPtr>                 // for StringLiterals
#include <QObject>                           // for QObject
#include <functional>                        // for operator==
#include <type_traits>                       // for remove_reference
#include <vector>                            // for vector
#include "attributes/attribute.h"            // for Attribute
#include "attributes/conditionfncreator.h"   // for CreateConditionFnFor
#include "graph/graphmodel.h"                // for GraphModel
#include "shared/graph/grapharray.h"         // for ElementIdArray
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "transform/transformedgraph.h"      // for TransformedGraph
#include "ui/alert.h"                        // for AlertType, Alert
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/combineattributestransform.h should add these lines:
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <memory>                                        // for unique_ptr
#include "shared/attributes/iattribute.h"                // for IAttribute
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
#include "transform/graphtransformparameter.h"           // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/combineattributestransform.h should remove these lines:
- #include "attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/combineattributestransform.h:
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <memory>                                        // for unique_ptr
#include "shared/attributes/iattribute.h"                // for IAttribute
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "transform/graphtransform.h"                    // for GraphTransfo...
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
#include "transform/graphtransformparameter.h"           // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/combineattributestransform.cpp should add these lines:
#include <QByteArrayDataPtr>                 // for StringLiterals
#include <type_traits>                       // for remove_reference
#include <vector>                            // for vector
#include "attributes/attribute.h"            // for Attribute
#include "shared/graph/grapharray.h"         // for ElementIdArray
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "ui/alert.h"                        // for AlertType, Alert

/home/runner/work/graphia/graphia/source/app/transform/transforms/combineattributestransform.cpp should remove these lines:
- #include <QRegularExpression>  // lines 29-29

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/combineattributestransform.cpp:
#include "combineattributestransform.h"
#include <QByteArrayDataPtr>                 // for StringLiterals
#include <QObject>                           // for QObject
#include <memory>                            // for make_unique, unique_ptr
#include <type_traits>                       // for remove_reference
#include <vector>                            // for vector
#include "attributes/attribute.h"            // for Attribute
#include "graph/graphmodel.h"                // for GraphModel
#include "shared/graph/grapharray.h"         // for ElementIdArray
#include "shared/utils/typeidentity.h"       // for TypeIdentity
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "transform/transformedgraph.h"      // for TransformedGraph
#include "ui/alert.h"                        // for AlertType, Alert
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/contractbyattributetransform.h should add these lines:
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <memory>                                        // for unique_ptr
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/contractbyattributetransform.h should remove these lines:
- #include <vector>  // lines 27-27
- #include "attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/contractbyattributetransform.h:
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <memory>                                        // for unique_ptr
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "shared/utils/redirects.h"                      // for redirectLink
#include "transform/graphtransform.h"                    // for GraphTransfo...
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/contractbyattributetransform.cpp should add these lines:
#include <QByteArrayDataPtr>                    // for StringLiterals
#include <functional>                           // for operator==, function
#include <vector>                               // for vector
#include "attributes/condtionfnops.h"           // for Equality
#include "graph/mutablegraph.h"                 // for MutableGraph
#include "shared/graph/elementid.h"             // for EdgeId
#include "shared/graph/elementid_containers.h"  // for EdgeIdSet
#include "transform/graphtransformconfig.h"     // for GraphTransformConfig
#include "ui/alert.h"                           // for AlertType

/home/runner/work/graphia/graphia/source/app/transform/transforms/contractbyattributetransform.cpp should remove these lines:
- #include "graph/graphmodel.h"  // lines 22-22
- #include "shared/utils/string.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/contractbyattributetransform.cpp:
#include "contractbyattributetransform.h"
#include <QByteArrayDataPtr>                    // for StringLiterals
#include <QObject>                              // for QObject
#include <functional>                           // for operator==, function
#include <vector>                               // for vector
#include "attributes/conditionfncreator.h"      // for CreateConditionFnFor
#include "attributes/condtionfnops.h"           // for Equality
#include "graph/mutablegraph.h"                 // for MutableGraph
#include "shared/graph/elementid.h"             // for EdgeId
#include "shared/graph/elementid_containers.h"  // for EdgeIdSet
#include "transform/graphtransformconfig.h"     // for GraphTransformConfig
#include "transform/transformedgraph.h"         // for TransformedGraph
#include "ui/alert.h"                           // for AlertType
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/eccentricitytransform.h should add these lines:
#include <QObject>                         // for QObject
#include <QString>                         // for QString
#include <memory>                          // for unique_ptr
#include "shared/attributes/iattribute.h"  // for AttributeFlag
#include "shared/attributes/valuetype.h"   // for ValueType
#include "shared/graph/elementtype.h"      // for ElementType
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/eccentricitytransform.h should remove these lines:
- #include "shared/utils/flags.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/eccentricitytransform.h:
#include <QObject>                         // for QObject
#include <QString>                         // for QString
#include <memory>                          // for unique_ptr
#include "shared/attributes/iattribute.h"  // for AttributeFlag
#include "shared/attributes/valuetype.h"   // for ValueType
#include "shared/graph/elementtype.h"      // for ElementType
#include "transform/graphtransform.h"      // for GraphTransformFactory, Def...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/eccentricitytransform.cpp should add these lines:
#include <QtCore>                               // for operator""_s, StringL...
#include <algorithm>                            // for max
#include <atomic>                               // for atomic_int, __atomic_...
#include <limits>                               // for numeric_limits
#include <vector>                               // for vector
#include "attributes/attribute.h"               // for Attribute
#include "shared/graph/elementid.h"             // for NodeId, EdgeId
#include "shared/graph/elementid_containers.h"  // for NodeIdMap
#include "shared/graph/grapharray.h"            // for NodeArray, GenericGra...
#include "shared/graph/igraph.h"                // for IEdge
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/eccentricitytransform.cpp should remove these lines:
- #include <map>  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/eccentricitytransform.cpp:
#include "eccentricitytransform.h"
#include <QtCore>                               // for operator""_s, StringL...
#include <algorithm>                            // for max
#include <atomic>                               // for atomic_int, __atomic_...
#include <limits>                               // for numeric_limits
#include <queue>                                // for priority_queue
#include <vector>                               // for vector
#include "attributes/attribute.h"               // for Attribute
#include "graph/graphmodel.h"                   // for GraphModel
#include "shared/graph/elementid.h"             // for NodeId, EdgeId
#include "shared/graph/elementid_containers.h"  // for NodeIdMap
#include "shared/graph/grapharray.h"            // for NodeArray, GenericGra...
#include "shared/graph/igraph.h"                // for IEdge
#include "shared/utils/threadpool.h"            // for parallel_for
#include "transform/transformedgraph.h"         // for TransformedGraph
struct GraphTransformConfig;
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/edgereductiontransform.h should add these lines:
#include <QObject>                              // for QObject
#include <QString>                              // for QString
#include <memory>                               // for unique_ptr
#include "shared/attributes/valuetype.h"        // for ValueType
#include "transform/graphtransformparameter.h"  // for GraphTransformParameter
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/edgereductiontransform.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/edgereductiontransform.h:
#include <QObject>                              // for QObject
#include <QString>                              // for QString
#include <memory>                               // for unique_ptr
#include "shared/attributes/valuetype.h"        // for ValueType
#include "transform/graphtransform.h"           // for GraphTransformFactory
#include "transform/graphtransformparameter.h"  // for GraphTransformParameter
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/edgereductiontransform.cpp should add these lines:
#include <stddef.h>                          // for size_t
#include <stdint.h>                          // for uint64_t
#include <QtCore>                            // for operator""_s, StringLite...
#include <algorithm>                         // for max
#include <variant>                           // for get
#include <vector>                            // for vector
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/graph/elementid.h"          // for EdgeId, NodeId
#include "shared/graph/grapharray.h"         // for EdgeArray
#include "shared/graph/igraph.h"             // for INode
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig

/home/runner/work/graphia/graphia/source/app/transform/transforms/edgereductiontransform.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/edgereductiontransform.cpp:
#include "edgereductiontransform.h"
#include <stddef.h>                          // for size_t
#include <stdint.h>                          // for uint64_t
#include <QObject>                           // for QObject
#include <QtCore>                            // for operator""_s, StringLite...
#include <algorithm>                         // for max
#include <memory>                            // for make_unique, unique_ptr
#include <random>                            // for mt19937, uniform_int_dis...
#include <variant>                           // for get
#include <vector>                            // for vector
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/graph/elementid.h"          // for EdgeId, NodeId
#include "shared/graph/grapharray.h"         // for EdgeArray
#include "shared/graph/igraph.h"             // for INode
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "transform/transformedgraph.h"      // for TransformedGraph
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/edgecontractiontransform.h should add these lines:
#include <QObject>                     // for QObject
#include <QString>                     // for QString
#include <memory>                      // for unique_ptr
#include "shared/graph/elementtype.h"  // for ElementType
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/edgecontractiontransform.h should remove these lines:
- #include <vector>  // lines 27-27
- #include "attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/edgecontractiontransform.h:
#include <QObject>                     // for QObject
#include <QString>                     // for QString
#include <memory>                      // for unique_ptr
#include "shared/graph/elementtype.h"  // for ElementType
#include "shared/utils/redirects.h"    // for redirectLink
#include "transform/graphtransform.h"  // for GraphTransformFactory, GraphTr...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/edgecontractiontransform.cpp should add these lines:
#include <functional>                           // for operator==, function
#include <vector>                               // for vector
#include "graph/mutablegraph.h"                 // for MutableGraph
#include "shared/graph/elementid.h"             // for EdgeId
#include "shared/graph/elementid_containers.h"  // for EdgeIdSet
#include "transform/graphtransformconfig.h"     // for GraphTransformConfig
#include "ui/alert.h"                           // for AlertType

/home/runner/work/graphia/graphia/source/app/transform/transforms/edgecontractiontransform.cpp should remove these lines:
- #include "graph/graphmodel.h"  // lines 22-22
- #include "shared/utils/string.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/edgecontractiontransform.cpp:
#include "edgecontractiontransform.h"
#include <QObject>                              // for QObject
#include <functional>                           // for operator==, function
#include <vector>                               // for vector
#include "attributes/conditionfncreator.h"      // for CreateConditionFnFor
#include "graph/mutablegraph.h"                 // for MutableGraph
#include "shared/graph/elementid.h"             // for EdgeId
#include "shared/graph/elementid_containers.h"  // for EdgeIdSet
#include "transform/graphtransformconfig.h"     // for GraphTransformConfig
#include "transform/transformedgraph.h"         // for TransformedGraph
#include "ui/alert.h"                           // for AlertType
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/forwardmultielementattributetransform.h should add these lines:
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <memory>                                        // for unique_ptr
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/forwardmultielementattributetransform.h should remove these lines:
- #include "attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/forwardmultielementattributetransform.h:
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <memory>                                        // for unique_ptr
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "transform/graphtransform.h"                    // for GraphTransfo...
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/forwardmultielementattributetransform.cpp should add these lines:
#include <qassert.h>                               // for Q_ASSERT
#include <QMessageLogger>                          // for qFatal
#include <algorithm>                               // for fill, max
#include <type_traits>                             // for remove_reference
#include <vector>                                  // for vector
#include "attributes/attribute.h"                  // for Attribute
#include "graph/elementiddistinctsetcollection.h"  // for ElementIdDistinctS...
#include "graph/graph.h"                           // for Graph
#include "shared/graph/elementid.h"                // for EdgeId, NodeId
#include "shared/graph/grapharray.h"               // for ElementIdArray
#include "transform/graphtransformconfig.h"        // for GraphTransformConfig
#include "ui/alert.h"                              // for AlertType, Alert

/home/runner/work/graphia/graphia/source/app/transform/transforms/forwardmultielementattributetransform.cpp should remove these lines:
- #include "shared/utils/typeidentity.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/forwardmultielementattributetransform.cpp:
#include "forwardmultielementattributetransform.h"
#include <qassert.h>                               // for Q_ASSERT
#include <QMessageLogger>                          // for qFatal
#include <QObject>                                 // for QObject
#include <algorithm>                               // for fill, max
#include <memory>                                  // for make_unique, uniqu...
#include <type_traits>                             // for remove_reference
#include <vector>                                  // for vector
#include "attributes/attribute.h"                  // for Attribute
#include "graph/elementiddistinctsetcollection.h"  // for ElementIdDistinctS...
#include "graph/graph.h"                           // for Graph
#include "graph/graphmodel.h"                      // for GraphModel
#include "shared/graph/elementid.h"                // for EdgeId, NodeId
#include "shared/graph/grapharray.h"               // for ElementIdArray
#include "shared/utils/msvcwarningsuppress.h"      // for MSVC_WARNING_SUPPR...
#include "transform/graphtransformconfig.h"        // for GraphTransformConfig
#include "transform/transformedgraph.h"            // for TransformedGraph
#include "ui/alert.h"                              // for AlertType, Alert
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/separatebyattributetransform.h should add these lines:
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <memory>                                        // for unique_ptr
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/separatebyattributetransform.h should remove these lines:
- #include <vector>  // lines 25-25
- #include "attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/separatebyattributetransform.h:
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <memory>                                        // for unique_ptr
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "transform/graphtransform.h"                    // for GraphTransfo...
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/separatebyattributetransform.cpp should add these lines:
#include <QByteArrayDataPtr>                    // for StringLiterals
#include <functional>                           // for operator==, function
#include <map>                                  // for operator==
#include <vector>                               // for vector
#include "attributes/condtionfnops.h"           // for Equality
#include "graph/mutablegraph.h"                 // for MutableGraph
#include "shared/graph/elementid.h"             // for EdgeId
#include "shared/graph/elementid_containers.h"  // for EdgeIdSet
#include "transform/graphtransformconfig.h"     // for GraphTransformConfig
#include "ui/alert.h"                           // for AlertType

/home/runner/work/graphia/graphia/source/app/transform/transforms/separatebyattributetransform.cpp should remove these lines:
- #include "graph/graphmodel.h"  // lines 22-22
- #include "shared/utils/string.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/separatebyattributetransform.cpp:
#include "separatebyattributetransform.h"
#include <QByteArrayDataPtr>                    // for StringLiterals
#include <QObject>                              // for QObject
#include <functional>                           // for operator==, function
#include <map>                                  // for operator==
#include <vector>                               // for vector
#include "attributes/conditionfncreator.h"      // for CreateConditionFnFor
#include "attributes/condtionfnops.h"           // for Equality
#include "graph/mutablegraph.h"                 // for MutableGraph
#include "shared/graph/elementid.h"             // for EdgeId
#include "shared/graph/elementid_containers.h"  // for EdgeIdSet
#include "transform/graphtransformconfig.h"     // for GraphTransformConfig
#include "transform/transformedgraph.h"         // for TransformedGraph
#include "ui/alert.h"                           // for AlertType
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/knntransform.h should add these lines:
#include <QList>                                         // for QList
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <QStringList>                                   // for QStringList
#include <memory>                                        // for unique_ptr
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
#include "transform/graphtransformparameter.h"           // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/knntransform.h should remove these lines:
- #include <vector>  // lines 27-27
- #include "attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/knntransform.h:
#include <QList>                                         // for QList
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <QStringList>                                   // for QStringList
#include <memory>                                        // for unique_ptr
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "shared/utils/redirects.h"                      // for redirectLink
#include "transform/graphtransform.h"                    // for GraphTransfo...
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
#include "transform/graphtransformparameter.h"           // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/knntransform.cpp should add these lines:
#include <stdint.h>                          // for uint64_t
#include <QByteArrayDataPtr>                 // for StringLiterals
#include <cstddef>                           // for size_t, ptrdiff_t
#include <iterator>                          // for distance
#include <variant>                           // for get
#include <vector>                            // for vector
#include "attributes/attribute.h"            // for Attribute
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/attributes/iattribute.h"    // for AttributeFlag
#include "shared/graph/elementid.h"          // for EdgeId, NodeId, ElementId
#include "shared/graph/grapharray.h"         // for EdgeArray, GenericGraphA...
#include "shared/graph/igraph.h"             // for IEdge, INode
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "ui/alert.h"                        // for AlertType

/home/runner/work/graphia/graphia/source/app/transform/transforms/knntransform.cpp should remove these lines:
- #include <functional>  // lines 26-26
- #include "shared/utils/container.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/knntransform.cpp:
#include "knntransform.h"
#include <stdint.h>                          // for uint64_t
#include <QByteArrayDataPtr>                 // for StringLiterals
#include <QObject>                           // for QObject
#include <algorithm>                         // for partial_sort, min
#include <cstddef>                           // for size_t, ptrdiff_t
#include <iterator>                          // for distance
#include <memory>                            // for make_unique, unique_ptr
#include <variant>                           // for get
#include <vector>                            // for vector
#include "attributes/attribute.h"            // for Attribute
#include "graph/graphmodel.h"                // for GraphModel
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/attributes/iattribute.h"    // for AttributeFlag
#include "shared/graph/elementid.h"          // for EdgeId, NodeId, ElementId
#include "shared/graph/grapharray.h"         // for EdgeArray, GenericGraphA...
#include "shared/graph/igraph.h"             // for IEdge, INode
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "transform/transformedgraph.h"      // for TransformedGraph
#include "ui/alert.h"                        // for AlertType
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/louvaintransform.h should add these lines:
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <memory>                                        // for make_unique
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
#include "transform/graphtransformparameter.h"           // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/louvaintransform.h should remove these lines:
- #include "shared/utils/flags.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/louvaintransform.h:
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <memory>                                        // for make_unique
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "shared/utils/redirects.h"                      // for redirectLink
#include "transform/graphtransform.h"                    // for GraphTransform
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
#include "transform/graphtransformparameter.h"           // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/louvaintransform.cpp should add these lines:
#include <qassert.h>                               // for Q_ASSERT
#include <stddef.h>                                // for size_t
#include <stdint.h>                                // for uint64_t
#include <QByteArrayDataPtr>                       // for StringLiterals
#include <compare>                                 // for operator>
#include <iterator>                                // for back_insert_iterator
#include <numeric>                                 // for accumulate
#include <utility>                                 // for pair
#include <variant>                                 // for get
#include "attributes/attribute.h"                  // for Attribute
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "graph/graph.h"                           // for Edge, Node
#include "graph/mutablegraph.h"                    // for MutableGraph
#include "shared/attributes/iattribute.h"          // for AttributeFlag
#include "shared/graph/elementid.h"                // for NodeId, EdgeId
#include "transform/graphtransformconfig.h"        // for GraphTransformConfig
#include "ui/alert.h"                              // for AlertType
class IMutableGraph;

/home/runner/work/graphia/graphia/source/app/transform/transforms/louvaintransform.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/louvaintransform.cpp:
#include "louvaintransform.h"
#include <qassert.h>                               // for Q_ASSERT
#include <stddef.h>                                // for size_t
#include <stdint.h>                                // for uint64_t
#include <QByteArrayDataPtr>                       // for StringLiterals
#include <algorithm>                               // for copy, sort, max
#include <cmath>                                   // for log10, pow
#include <compare>                                 // for operator>
#include <iterator>                                // for back_insert_iterator
#include <map>                                     // for map, operator==
#include <numeric>                                 // for accumulate
#include <utility>                                 // for pair
#include <variant>                                 // for get
#include <vector>                                  // for vector
#include "attributes/attribute.h"                  // for Attribute
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "graph/graph.h"                           // for Edge, Node
#include "graph/graphmodel.h"                      // for GraphModel
#include "graph/mutablegraph.h"                    // for MutableGraph
#include "shared/attributes/iattribute.h"          // for AttributeFlag
#include "shared/graph/elementid.h"                // for NodeId, EdgeId
#include "shared/graph/grapharray.h"               // for NodeArray, Generic...
#include "shared/utils/container.h"                // for contains
#include "transform/graphtransformconfig.h"        // for GraphTransformConfig
#include "transform/transformedgraph.h"            // for TransformedGraph
#include "ui/alert.h"                              // for AlertType
class IMutableGraph;
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/percentnntransform.h should add these lines:
#include <QList>                                         // for QList
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <QStringList>                                   // for QStringList
#include <memory>                                        // for unique_ptr
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
#include "transform/graphtransformparameter.h"           // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/percentnntransform.h should remove these lines:
- #include <vector>  // lines 27-27
- #include "attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/percentnntransform.h:
#include <QList>                                         // for QList
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <QStringList>                                   // for QStringList
#include <memory>                                        // for unique_ptr
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "shared/utils/redirects.h"                      // for redirectLink
#include "transform/graphtransform.h"                    // for GraphTransfo...
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
#include "transform/graphtransformparameter.h"           // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/percentnntransform.cpp should add these lines:
#include <stdint.h>                          // for uint64_t
#include <QByteArrayDataPtr>                 // for StringLiterals
#include <cstddef>                           // for size_t, ptrdiff_t
#include <iterator>                          // for distance
#include <variant>                           // for get
#include <vector>                            // for vector
#include "attributes/attribute.h"            // for Attribute
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/attributes/iattribute.h"    // for AttributeFlag
#include "shared/graph/elementid.h"          // for EdgeId, NodeId, ElementId
#include "shared/graph/grapharray.h"         // for EdgeArray, GenericGraphA...
#include "shared/graph/igraph.h"             // for IEdge, INode
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "ui/alert.h"                        // for AlertType

/home/runner/work/graphia/graphia/source/app/transform/transforms/percentnntransform.cpp should remove these lines:
- #include <functional>  // lines 26-26
- #include "shared/utils/container.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/percentnntransform.cpp:
#include "percentnntransform.h"
#include <stdint.h>                          // for uint64_t
#include <QByteArrayDataPtr>                 // for StringLiterals
#include <QObject>                           // for QObject
#include <algorithm>                         // for partial_sort, max, min
#include <cstddef>                           // for size_t, ptrdiff_t
#include <iterator>                          // for distance
#include <memory>                            // for make_unique, unique_ptr
#include <variant>                           // for get
#include <vector>                            // for vector
#include "attributes/attribute.h"            // for Attribute
#include "graph/graphmodel.h"                // for GraphModel
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/attributes/iattribute.h"    // for AttributeFlag
#include "shared/graph/elementid.h"          // for EdgeId, NodeId, ElementId
#include "shared/graph/grapharray.h"         // for EdgeArray, GenericGraphA...
#include "shared/graph/igraph.h"             // for IEdge, INode
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "transform/transformedgraph.h"      // for TransformedGraph
#include "ui/alert.h"                        // for AlertType
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/filtertransform.h should add these lines:
#include <QObject>                     // for QObject
#include <QString>                     // for QString
#include <memory>                      // for unique_ptr
#include "shared/graph/elementtype.h"  // for ElementType, elementTypeAsString
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/filtertransform.h should remove these lines:
- #include <vector>  // lines 25-25
- #include "attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/filtertransform.h:
#include <QObject>                     // for QObject
#include <QString>                     // for QString
#include <memory>                      // for unique_ptr
#include "shared/graph/elementtype.h"  // for ElementType, elementTypeAsString
#include "transform/graphtransform.h"  // for GraphTransformFactory, GraphTr...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/filtertransform.cpp should add these lines:
#include <stdint.h>                          // for uint64_t
#include <functional>                        // for operator==, function
#include <map>                               // for operator==
#include <vector>                            // for vector
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/graph/elementid.h"          // for NodeId, EdgeId, ComponentId
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "ui/alert.h"                        // for AlertType

/home/runner/work/graphia/graphia/source/app/transform/transforms/filtertransform.cpp should remove these lines:
- #include "graph/graphmodel.h"  // lines 23-23
- #include "shared/utils/string.h"  // lines 28-28

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/filtertransform.cpp:
#include "filtertransform.h"
#include <stdint.h>                          // for uint64_t
#include <QObject>                           // for QObject
#include <algorithm>                         // for max, copy
#include <functional>                        // for operator==, function
#include <map>                               // for operator==
#include <vector>                            // for vector
#include "attributes/conditionfncreator.h"   // for CreateConditionFnFor
#include "graph/componentmanager.h"          // for ComponentManager
#include "graph/graphcomponent.h"            // for GraphComponent
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/graph/elementid.h"          // for NodeId, EdgeId, ComponentId
#include "shared/utils/utils.h"              // for exclusiveOr
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "transform/transformedgraph.h"      // for TransformedGraph
#include "ui/alert.h"                        // for AlertType
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/spanningtreetransform.h should add these lines:
#include <QList>                                // for QList
#include <QObject>                              // for QObject
#include <QString>                              // for QString
#include <QStringList>                          // for QStringList
#include <memory>                               // for unique_ptr
#include "shared/attributes/valuetype.h"        // for ValueType
#include "transform/graphtransformparameter.h"  // for GraphTransformParameter
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/spanningtreetransform.h should remove these lines:
- #include <vector>  // lines 27-27
- #include "attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/spanningtreetransform.h:
#include <QList>                                // for QList
#include <QObject>                              // for QObject
#include <QString>                              // for QString
#include <QStringList>                          // for QStringList
#include <memory>                               // for unique_ptr
#include "shared/attributes/valuetype.h"        // for ValueType
#include "shared/utils/redirects.h"             // for redirectLink
#include "transform/graphtransform.h"           // for GraphTransformFactory
#include "transform/graphtransformparameter.h"  // for GraphTransformParameter
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/spanningtreetransform.cpp should add these lines:
#include <stdint.h>                          // for uint64_t
#include <QtCore>                            // for operator""_s, StringLite...
#include <algorithm>                         // for copy, max
#include <vector>                            // for vector
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/graph/elementid.h"          // for EdgeId, NodeId, ComponentId
#include "shared/graph/grapharray.h"         // for NodeArray, EdgeArray
#include "shared/graph/igraph.h"             // for IEdge, INode
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig

/home/runner/work/graphia/graphia/source/app/transform/transforms/spanningtreetransform.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/spanningtreetransform.cpp:
#include "spanningtreetransform.h"
#include <stdint.h>                          // for uint64_t
#include <QObject>                           // for QObject
#include <QtCore>                            // for operator""_s, StringLite...
#include <algorithm>                         // for copy, max
#include <deque>                             // for deque
#include <memory>                            // for make_unique, unique_ptr
#include <vector>                            // for vector
#include "graph/componentmanager.h"          // for ComponentManager
#include "graph/graphcomponent.h"            // for GraphComponent
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/graph/elementid.h"          // for EdgeId, NodeId, ComponentId
#include "shared/graph/grapharray.h"         // for NodeArray, EdgeArray
#include "shared/graph/igraph.h"             // for IEdge, INode
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "transform/transformedgraph.h"      // for TransformedGraph
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/typecasttransform.h should add these lines:
#include <QList>                                         // for QList
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <QStringList>                                   // for QStringList
#include <memory>                                        // for unique_ptr
#include "shared/attributes/iattribute.h"                // for IAttribute
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
#include "transform/graphtransformparameter.h"           // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/typecasttransform.h should remove these lines:
- #include "attributes/attribute.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/typecasttransform.h:
#include <QList>                                         // for QList
#include <QObject>                                       // for QObject
#include <QString>                                       // for QString
#include <QStringList>                                   // for QStringList
#include <memory>                                        // for unique_ptr
#include "shared/attributes/iattribute.h"                // for IAttribute
#include "shared/attributes/valuetype.h"                 // for ValueType
#include "shared/graph/elementtype.h"                    // for ElementType
#include "transform/graphtransform.h"                    // for GraphTransfo...
#include "transform/graphtransformattributeparameter.h"  // for GraphTransfo...
#include "transform/graphtransformparameter.h"           // for GraphTransfo...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/typecasttransform.cpp should add these lines:
#include <QByteArrayDataPtr>                 // for StringLiterals
#include <vector>                            // for vector
#include "attributes/attribute.h"            // for Attribute
#include "shared/graph/elementid.h"          // for EdgeId, NodeId
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "ui/alert.h"                        // for AlertType, Alert

/home/runner/work/graphia/graphia/source/app/transform/transforms/typecasttransform.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/typecasttransform.cpp:
#include "typecasttransform.h"
#include <QByteArrayDataPtr>                 // for StringLiterals
#include <QObject>                           // for QObject
#include <memory>                            // for make_unique, unique_ptr
#include <vector>                            // for vector
#include "attributes/attribute.h"            // for Attribute
#include "graph/graphmodel.h"                // for GraphModel
#include "shared/graph/elementid.h"          // for EdgeId, NodeId
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "ui/alert.h"                        // for AlertType, Alert
class TransformedGraph;  // lines 27-27
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/removeleavestransform.h should add these lines:
#include <QObject>                              // for QObject
#include <QString>                              // for QString
#include <memory>                               // for unique_ptr
#include "shared/attributes/valuetype.h"        // for ValueType
#include "transform/graphtransformparameter.h"  // for GraphTransformParameter
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/removeleavestransform.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/removeleavestransform.h:
#include <QObject>                              // for QObject
#include <QString>                              // for QString
#include <memory>                               // for unique_ptr
#include "shared/attributes/valuetype.h"        // for ValueType
#include "transform/graphtransform.h"           // for GraphTransformFactory
#include "transform/graphtransformparameter.h"  // for GraphTransformParameter
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/removeleavestransform.cpp should add these lines:
#include <stddef.h>                          // for size_t
#include <stdint.h>                          // for uint64_t
#include <QtCore>                            // for operator""_s, StringLite...
#include <algorithm>                         // for max
#include <variant>                           // for get
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/graph/elementid.h"          // for NodeId
#include "shared/graph/igraph.h"             // for INode
#include "shared/utils/progressable.h"       // for Progressable
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig

/home/runner/work/graphia/graphia/source/app/transform/transforms/removeleavestransform.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/removeleavestransform.cpp:
#include "removeleavestransform.h"
#include <stddef.h>                          // for size_t
#include <stdint.h>                          // for uint64_t
#include <QObject>                           // for QObject
#include <QtCore>                            // for operator""_s, StringLite...
#include <algorithm>                         // for max
#include <memory>                            // for make_unique, unique_ptr
#include <variant>                           // for get
#include <vector>                            // for vector
#include "graph/mutablegraph.h"              // for MutableGraph
#include "shared/graph/elementid.h"          // for NodeId
#include "shared/graph/igraph.h"             // for INode
#include "shared/utils/progressable.h"       // for Progressable
#include "transform/graphtransformconfig.h"  // for GraphTransformConfig
#include "transform/transformedgraph.h"      // for TransformedGraph
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/mcltransform.h should add these lines:
#include <QObject>                              // for QObject
#include <QString>                              // for QString
#include <memory>                               // for unique_ptr
#include "shared/attributes/valuetype.h"        // for ValueType
#include "shared/graph/elementtype.h"           // for ElementType
#include "transform/graphtransformparameter.h"  // for GraphTransformParameter
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/mcltransform.h should remove these lines:
- #include "shared/utils/flags.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/mcltransform.h:
#include <QObject>                              // for QObject
#include <QString>                              // for QString
#include <memory>                               // for unique_ptr
#include "shared/attributes/valuetype.h"        // for ValueType
#include "shared/graph/elementtype.h"           // for ElementType
#include "shared/utils/redirects.h"             // for redirectLink
#include "transform/graphtransform.h"           // for GraphTransformFactory
#include "transform/graphtransformparameter.h"  // for GraphTransformParameter
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/mcltransform.cpp should add these lines:
#include <bits/std_abs.h>                            // for abs
#include <blaze/math/Matrix.h>                       // for operator<<
#include <blaze/math/StorageOrder.h>                 // for columnMajor
#include <blaze/math/TransposeFlag.h>                // for columnVector
#include <blaze/math/dense/DynamicVector.h>          // for DynamicVector
#include <blaze/math/expressions/SMatForEachExpr.h>  // for SMatForEachExpr
#include <blaze/math/functors/Pow.h>                 // for Pow
#include <blaze/math/simd/SIMDTrait.h>               // for SIMDTraitBase<>:...
#include <blaze/math/smp/default/Functions.h>        // for setNumThreads
#include <blaze/math/sparse/CompressedMatrix.h>      // for CompressedMatrix
#include <blaze/util/Types.h>                        // for size_t
#include <qassert.h>                                 // for Q_ASSERT
#include <stdint.h>                                  // for uint64_t
#include <QByteArrayDataPtr>                         // for StringLiterals
#include <QMessageLogger>                            // for qDebug
#include <atomic>                                    // for atomic, __atomic...
#include <cmath>                                     // for pow
#include <cstddef>                                   // for size_t, ptrdiff_t
#include <iterator>                                  // for input_iterator_tag
#include <limits>                                    // for numeric_limits
#include <ostream>                                   // for operator<<, basi...
#include <string>                                    // for char_traits, string
#include <utility>                                   // for move
#include <variant>                                   // for get
#include <vector>                                    // for vector
#include "attributes/attribute.h"                    // for Attribute
#include "shared/attributes/iattribute.h"            // for AttributeFlag
#include "shared/graph/elementid.h"                  // for NodeId
#include "shared/graph/elementid_containers.h"       // for NodeIdMap
#include "shared/graph/grapharray.h"                 // for NodeArray, Gener...
#include "shared/graph/igraph.h"                     // for IEdge
#include "transform/graphtransformconfig.h"          // for GraphTransformCo...

/home/runner/work/graphia/graphia/source/app/transform/transforms/mcltransform.cpp should remove these lines:
- #include <blaze/Blaze.h>  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/mcltransform.cpp:
#include "mcltransform.h"
#include <bits/std_abs.h>                            // for abs
#include <blaze/math/Matrix.h>                       // for operator<<
#include <blaze/math/StorageOrder.h>                 // for columnMajor
#include <blaze/math/TransposeFlag.h>                // for columnVector
#include <blaze/math/dense/DynamicVector.h>          // for DynamicVector
#include <blaze/math/expressions/SMatForEachExpr.h>  // for SMatForEachExpr
#include <blaze/math/functors/Pow.h>                 // for Pow
#include <blaze/math/simd/SIMDTrait.h>               // for SIMDTraitBase<>:...
#include <blaze/math/smp/default/Functions.h>        // for setNumThreads
#include <blaze/math/sparse/CompressedMatrix.h>      // for CompressedMatrix
#include <blaze/util/Types.h>                        // for size_t
#include <qassert.h>                                 // for Q_ASSERT
#include <stdint.h>                                  // for uint64_t
#include <QByteArrayDataPtr>                         // for StringLiterals
#include <QDebug>                                    // for QDebug, operator<<
#include <QElapsedTimer>                             // for QElapsedTimer
#include <QMessageLogger>                            // for qDebug
#include <algorithm>                                 // for nth_element, max
#include <atomic>                                    // for atomic, __atomic...
#include <cmath>                                     // for pow
#include <cstddef>                                   // for size_t, ptrdiff_t
#include <iterator>                                  // for input_iterator_tag
#include <limits>                                    // for numeric_limits
#include <map>                                       // for operator==, map
#include <ostream>                                   // for operator<<, basi...
#include <set>                                       // for set, swap
#include <string>                                    // for char_traits, string
#include <thread>                                    // for thread
#include <utility>                                   // for move
#include <variant>                                   // for get
#include <vector>                                    // for vector
#include "attributes/attribute.h"                    // for Attribute
#include "graph/graphmodel.h"                        // for GraphModel
#include "shared/attributes/iattribute.h"            // for AttributeFlag
#include "shared/graph/elementid.h"                  // for NodeId
#include "shared/graph/elementid_containers.h"       // for NodeIdMap
#include "shared/graph/grapharray.h"                 // for NodeArray, Gener...
#include "shared/graph/igraph.h"                     // for IEdge
#include "shared/utils/threadpool.h"                 // for parallel_for
#include "transform/graphtransformconfig.h"          // for GraphTransformCo...
#include "transform/transformedgraph.h"              // for TransformedGraph
---


/home/runner/work/graphia/graphia/source/app/transform/transforms/pageranktransform.h should add these lines:
#include <QObject>                         // for QObject
#include <QString>                         // for QString
#include <memory>                          // for unique_ptr
#include "shared/attributes/iattribute.h"  // for AttributeFlag
#include "shared/attributes/valuetype.h"   // for ValueType
#include "shared/graph/elementtype.h"      // for ElementType
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/pageranktransform.h should remove these lines:
- #include "shared/utils/flags.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/pageranktransform.h:
#include <QObject>                         // for QObject
#include <QString>                         // for QString
#include <memory>                          // for unique_ptr
#include "shared/attributes/iattribute.h"  // for AttributeFlag
#include "shared/attributes/valuetype.h"   // for ValueType
#include "shared/graph/elementtype.h"      // for ElementType
#include "shared/utils/redirects.h"        // for redirectLink
#include "transform/graphtransform.h"      // for GraphTransformFactory, Def...
class GraphModel;
class TransformedGraph;
struct GraphTransformConfig;
---

/home/runner/work/graphia/graphia/source/app/transform/transforms/pageranktransform.cpp should add these lines:
#include <bits/std_abs.h>                               // for abs
#include <blaze/math/Vector.h>                          // for operator<<
#include <blaze/math/dense/DenseIterator.h>             // for operator!=
#include <blaze/math/dense/DenseVector.h>               // for max
#include <blaze/math/dense/DynamicVector.h>             // for DynamicVector
#include <blaze/math/expressions/DVecDVecSubExpr.h>     // for DVecDVecSubExpr
#include <blaze/math/expressions/DVecForEachExpr.h>     // for DVecForEachExpr
#include <blaze/math/expressions/DVecScalarDivExpr.h>   // for operator/
#include <blaze/math/expressions/DVecScalarMultExpr.h>  // for DVecScalarMul...
#include <blaze/math/expressions/DenseVector.h>         // for DenseVector
#include <blaze/math/functors/Abs.h>                    // for Abs
#include <blaze/math/simd/Multiplication.h>             // for operator*
#include <blaze/math/simd/SIMDTrait.h>                  // for SIMDTraitBase...
#include <blaze/math/smp/default/DenseVector.h>         // for smpAssign
#include <stddef.h>                                     // for size_t
#include <QByteArrayDataPtr>                            // for StringLiterals
#include <QMessageLogger>                               // for qDebug
#include <algorithm>                                    // for copy, max
#include <deque>                                        // for deque, operat...
#include <iosfwd>                                       // for stringstream
#include <limits>                                       // for numeric_limits
#include <vector>                                       // for vector
#include "attributes/attribute.h"                       // for Attribute
#include "shared/attributes/iattributerange.h"          // for IAttributeRange
#include "shared/graph/elementid.h"                     // for NodeId, Compo...
#include "shared/graph/elementid_containers.h"          // for NodeIdMap
#include "shared/graph/grapharray.h"                    // for NodeArray
#include "shared/graph/igraph.h"                        // for IEdge, INode
#include "shared/graph/igraphcomponent.h"               // for IGraphComponent
struct GraphTransformConfig;

/home/runner/work/graphia/graphia/source/app/transform/transforms/pageranktransform.cpp should remove these lines:
- #include <blaze/Blaze.h>  // lines 27-27
- #include <map>  // lines 32-32

The full include-list for /home/runner/work/graphia/graphia/source/app/transform/transforms/pageranktransform.cpp:
#include "pageranktransform.h"
#include <bits/std_abs.h>                               // for abs
#include <blaze/math/Vector.h>                          // for operator<<
#include <blaze/math/dense/DenseIterator.h>             // for operator!=
#include <blaze/math/dense/DenseVector.h>               // for max
#include <blaze/math/dense/DynamicVector.h>             // for DynamicVector
#include <blaze/math/expressions/DVecDVecSubExpr.h>     // for DVecDVecSubExpr
#include <blaze/math/expressions/DVecForEachExpr.h>     // for DVecForEachExpr
#include <blaze/math/expressions/DVecScalarDivExpr.h>   // for operator/
#include <blaze/math/expressions/DVecScalarMultExpr.h>  // for DVecScalarMul...
#include <blaze/math/expressions/DenseVector.h>         // for DenseVector
#include <blaze/math/functors/Abs.h>                    // for Abs
#include <blaze/math/simd/Multiplication.h>             // for operator*
#include <blaze/math/simd/SIMDTrait.h>                  // for SIMDTraitBase...
#include <blaze/math/smp/default/DenseVector.h>         // for smpAssign
#include <stddef.h>                                     // for size_t
#include <QByteArrayDataPtr>                            // for StringLiterals
#include <QDebug>                                       // for QDebug
#include <QElapsedTimer>                                // for QElapsedTimer
#include <QMessageLogger>                               // for qDebug
#include <algorithm>                                    // for copy, max
#include <deque>                                        // for deque, operat...
#include <iosfwd>                                       // for stringstream
#include <limits>                                       // for numeric_limits
#include <vector>                                       // for vector
#include "attributes/attribute.h"                       // for Attribute
#include "graph/componentmanager.h"                     // for ComponentManager
#include "graph/graphcomponent.h"                       // for GraphComponent
#include "graph/graphmodel.h"                           // for GraphModel
#include "shared/attributes/iattributerange.h"          // for IAttributeRange
#include "shared/graph/elementid.h"                     // for NodeId, Compo...
#include "shared/graph/elementid_containers.h"          // for NodeIdMap
#include "shared/graph/grapharray.h"                    // for NodeArray
#include "shared/graph/igraph.h"                        // for IEdge, INode
#include "shared/graph/igraphcomponent.h"               // for IGraphComponent
#include "transform/transformedgraph.h"                 // for TransformedGraph
struct GraphTransformConfig;
---


/home/runner/work/graphia/graphia/source/app/ui/graphcommoninteractor.h should add these lines:
#include <qtmetamacros.h>                       // for Q_OBJECT
#include <QRectF>                               // for QRectF
#include <Qt>                                   // for KeyboardModifiers
#include "shared/graph/elementid.h"             // for NodeId, ComponentId (...

/home/runner/work/graphia/graphia/source/app/ui/graphcommoninteractor.h should remove these lines:
- #include <QNativeGestureEvent>  // lines 27-27

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/graphcommoninteractor.h:
#include <qtmetamacros.h>                       // for Q_OBJECT
#include <QPoint>                               // for QPoint
#include <QRectF>                               // for QRectF
#include <Qt>                                   // for KeyboardModifiers
#include "interactor.h"                         // for Interactor
#include "shared/graph/elementid.h"             // for NodeId, ComponentId (...
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
class BaseFrustum;  // lines 34-34
class CommandManager;  // lines 30-30
class GraphComponentRenderer;  // lines 33-33
class GraphModel;  // lines 29-29
class GraphRenderer;  // lines 32-32
class SelectionManager;  // lines 31-31
---

/home/runner/work/graphia/graphia/source/app/ui/graphcommoninteractor.cpp should add these lines:
#include <qassert.h>                                  // for Q_ASSERT
#include <QFlags>                                     // for QFlags
#include <QMatrix4x4>                                 // for operator*, QMat...
#include <QQuaternion>                                // for QQuaternion
#include <QRect>                                      // for QRect
#include <QVector2D>                                  // for QVector2D
#include <QVector3D>                                  // for QVector3D
#include <QVector4D>                                  // for QVector4D
#include <QtCore>                                     // for MouseButton
#include <limits>                                     // for numeric_limits
#include <map>                                        // for operator==, _Rb...
#include <vector>                                     // for vector
#include "layout/nodepositions.h"                     // for NodePositions
#include "maths/conicalfrustum.h"                     // for ConicalFrustum
#include "maths/ray.h"                                // for Ray
#include "rendering/projection.h"                     // for Projection
#include "rendering/transition.h"                     // for Transition
#include "shared/commands/icommandmanager.h"          // for ExecutePolicy
#include "shared/graph/igraphcomponent.h"             // for IGraphComponent
#include "shared/ui/visualisations/ielementvisual.h"  // for VisualFlags
#include "shared/utils/flags.h"                       // for Flags
#include "ui/interactor.h"                            // for Interactor
class Command;
class QVector3D;

/home/runner/work/graphia/graphia/source/app/ui/graphcommoninteractor.cpp should remove these lines:
- #include <QKeyEvent>  // lines 43-43
- #include <QMouseEvent>  // lines 42-42
- #include <QtMath>  // lines 44-44
- #include "graphquickitem.h"  // lines 20-20
- #include "rendering/graphcomponentscene.h"  // lines 27-27

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/graphcommoninteractor.cpp:
#include "graphcommoninteractor.h"
#include <qassert.h>                                  // for Q_ASSERT
#include <QFlags>                                     // for QFlags
#include <QMatrix4x4>                                 // for operator*, QMat...
#include <QQuaternion>                                // for QQuaternion
#include <QRect>                                      // for QRect
#include <QVector2D>                                  // for QVector2D
#include <QVector3D>                                  // for QVector3D
#include <QVector4D>                                  // for QVector4D
#include <QtCore>                                     // for MouseButton
#include <algorithm>                                  // for clamp, min
#include <cmath>                                      // for sqrt, atan2, acos
#include <limits>                                     // for numeric_limits
#include <map>                                        // for operator==, _Rb...
#include <vector>                                     // for vector
#include "commands/commandmanager.h"                  // for CommandManager
#include "commands/selectnodescommand.h"              // for SelectNodesCommand
#include "graph/graph.h"                              // for Graph
#include "graph/graphmodel.h"                         // for GraphModel
#include "layout/collision.h"                         // for Collision
#include "layout/nodepositions.h"                     // for NodePositions
#include "maths/conicalfrustum.h"                     // for ConicalFrustum
#include "maths/frustum.h"                            // for BaseFrustum
#include "maths/ray.h"                                // for Ray
#include "rendering/camera.h"                         // for Camera
#include "rendering/graphcomponentrenderer.h"         // for GraphComponentR...
#include "rendering/graphrenderer.h"                  // for GraphRenderer
#include "rendering/projection.h"                     // for Projection
#include "rendering/transition.h"                     // for Transition
#include "selectionmanager.h"                         // for SelectionManager
#include "shared/commands/icommandmanager.h"          // for ExecutePolicy
#include "shared/graph/igraphcomponent.h"             // for IGraphComponent
#include "shared/ui/visualisations/ielementvisual.h"  // for VisualFlags
#include "shared/utils/flags.h"                       // for Flags
#include "shared/utils/utils.h"                       // for normaliseAngle
#include "ui/interactor.h"                            // for Interactor
#include "ui/visualisations/elementvisual.h"          // for ElementVisual
class Command;
class QVector3D;
---


/home/runner/work/graphia/graphia/source/app/ui/graphcomponentinteractor.h should add these lines:
#include <qtmetamacros.h>                       // for Q_OBJECT
#include <QRectF>                               // for QRectF
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
class ComponentId;
class GraphComponentRenderer;
class GraphComponentScene;
class GraphRenderer;

/home/runner/work/graphia/graphia/source/app/ui/graphcomponentinteractor.h should remove these lines:
- #include <memory>  // lines 27-27
- #include "rendering/graphcomponentscene.h"  // lines 23-23
- class GraphQuickItem;  // lines 32-32

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/graphcomponentinteractor.h:
#include <qtmetamacros.h>                       // for Q_OBJECT
#include <QPoint>                               // for QPoint
#include <QRectF>                               // for QRectF
#include "graphcommoninteractor.h"              // for GraphCommonInteractor
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
class CommandManager;  // lines 30-30
class ComponentId;
class GraphComponentRenderer;
class GraphComponentScene;
class GraphModel;  // lines 29-29
class GraphRenderer;
class SelectionManager;  // lines 31-31
---

/home/runner/work/graphia/graphia/source/app/ui/graphcomponentinteractor.cpp should add these lines:
#include <QPointF>                             // for QPointF
#include "rendering/transition.h"              // for Transition
#include "shared/graph/elementid.h"            // for NodeId, ComponentId (p...
#include "ui/graphcommoninteractor.h"          // for GraphCommonInteractor

/home/runner/work/graphia/graphia/source/app/ui/graphcomponentinteractor.cpp should remove these lines:
- #include <QKeyEvent>  // lines 40-40
- #include <QMouseEvent>  // lines 39-39
- #include <QtMath>  // lines 41-41
- #include <cmath>  // lines 42-42
- #include "commands/commandmanager.h"  // lines 23-23
- #include "graph/graph.h"  // lines 30-30
- #include "graph/graphmodel.h"  // lines 31-31
- #include "graphquickitem.h"  // lines 21-21
- #include "layout/collision.h"  // lines 37-37
- #include "maths/boundingsphere.h"  // lines 33-33
- #include "maths/plane.h"  // lines 35-35
- #include "selectionmanager.h"  // lines 20-20

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/graphcomponentinteractor.cpp:
#include "graphcomponentinteractor.h"
#include <QPointF>                             // for QPointF
#include "maths/frustum.h"                     // for Frustum
#include "rendering/camera.h"                  // for Camera
#include "rendering/graphcomponentrenderer.h"  // for GraphComponentRenderer
#include "rendering/graphcomponentscene.h"     // for GraphComponentScene
#include "rendering/graphrenderer.h"           // for GraphRenderer
#include "rendering/transition.h"              // for Transition
#include "shared/graph/elementid.h"            // for NodeId, ComponentId (p...
#include "ui/graphcommoninteractor.h"          // for GraphCommonInteractor
---


/home/runner/work/graphia/graphia/source/app/ui/document.h should add these lines:
#include <qtmetamacros.h>                       // for Q_INVOKABLE, Q_PROPERTY
#include <stddef.h>                             // for size_t
#include <QColor>                               // for QColor
#include <QList>                                // for QList
#include <QObject>                              // for QObject
#include <QVariant>                             // for QVariant
#include <QVariantList>                         // for QVariantList
#include <map>                                  // for map
#include "layout/nodepositions.h"               // for ExactNodePositions
#include "shared/attributes/iattribute.h"       // for AttributeFlag
#include "shared/attributes/valuetype.h"        // for ValueType
#include "shared/graph/elementid.h"             // for NodeId
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
#include "shared/graph/elementtype.h"           // for ElementType
#include "shared/utils/flags.h"                 // for Flags
class AvailableAttributesModel;
class AvailableTransformsModel;
class GraphQuickItem;
class ICommandManager;
class IGraphModel;
class IPluginInstance;
class ISelectionManager;
class LayoutSetting;
class ParserThread;
class QAbstractItemModel;
class QUrl;

/home/runner/work/graphia/graphia/source/app/ui/document.h should remove these lines:
- #include <QQuickItem>  // lines 42-42
- #include <QUrl>  // lines 45-45
- #include <mutex>  // lines 51-51
- #include "attributes/availableattributesmodel.h"  // lines 24-24
- #include "attributes/enrichmenttablemodel.h"  // lines 40-40
- #include "loading/parserthread.h"  // lines 28-28
- #include "rendering/projection.h"  // lines 29-29
- #include "rendering/shading.h"  // lines 30-30
- #include "shared/plugins/iplugin.h"  // lines 31-31
- #include "transform/availabletransformsmodel.h"  // lines 36-36
- #include "ui/findoptions.h"  // lines 37-37
- #include "ui/graphquickitem.h"  // lines 38-38

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/document.h:
#include <qtmetamacros.h>                       // for Q_INVOKABLE, Q_PROPERTY
#include <stddef.h>                             // for size_t
#include <QByteArray>                           // for QByteArray, StringLit...
#include <QColor>                               // for QColor
#include <QList>                                // for QList
#include <QObject>                              // for QObject
#include <QString>                              // for QString, operator""_s
#include <QStringList>                          // for QStringList
#include <QVariant>                             // for QVariant
#include <QVariantList>                         // for QVariantList
#include <QVariantMap>                          // for QVariantMap
#include <atomic>                               // for atomic_bool
#include <map>                                  // for map
#include <memory>                               // for unique_ptr, shared_ptr
#include <vector>                               // for vector
#include "app/preferenceswatcher.h"             // for PreferencesWatcher
#include "commands/commandmanager.h"            // for CommandManager
#include "graph/qmlelementid.h"                 // for QmlNodeId
#include "layout/layout.h"                      // for LayoutSettingKeyValue
#include "layout/nodepositions.h"               // for ExactNodePositions
#include "shared/attributes/iattribute.h"       // for AttributeFlag
#include "shared/attributes/valuetype.h"        // for ValueType
#include "shared/graph/elementid.h"             // for NodeId
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
#include "shared/graph/elementtype.h"           // for ElementType
#include "shared/ui/idocument.h"                // for MessageBoxButton, IDo...
#include "shared/utils/deferredexecutor.h"      // for DeferredExecutor
#include "shared/utils/failurereason.h"         // for FailureReason
#include "shared/utils/flags.h"                 // for Flags
#include "shared/utils/qmlenum.h"               // for DEFINE_QML_ENUM, QML_...
class Application;  // lines 57-57
class AttributeEdits;  // lines 62-62
class AvailableAttributesModel;
class AvailableTransformsModel;
class Graph;  // lines 56-56
class GraphModel;  // lines 58-58
class GraphQuickItem;
class ICommandManager;
class IGraphModel;
class IPluginInstance;
class ISelectionManager;
class LayoutSetting;
class ParserThread;
class QAbstractItemModel;
class QUrl;
class SearchManager;  // lines 59-59
class SelectionManager;  // lines 60-60
class TabularData;  // lines 61-61
---

/home/runner/work/graphia/graphia/source/app/ui/document.cpp should add these lines:
#include <bits/chrono.h>                                  // for operator""ms
#include <qassert.h>                                      // for Q_ASSERT
#include <qtenvironmentvariables.h>                       // for qEnvironmen...
#include <stdint.h>                                       // for uint64_t
#include <QCoreApplication>                               // for QCoreApplic...
#include <QDataStream>                                    // for QDataStream
#include <QDebug>                                         // for QDebug
#include <QIODevice>                                      // for QIODevice
#include <QMap>                                           // for QMap
#include <QMessageLogger>                                 // for qDebug
#include <QMetaType>                                      // for QMetaType
#include <QRegularExpression>                             // for QRegularExp...
#include <QTextStream>                                    // for QTextStream
#include <QUrl>                                           // for QUrl
#include <QVector3D>                                      // for QVector3D
#include <Qt>                                             // for ConnectionType
#include <QtQml>                                          // for qmlRegister...
#include <algorithm>                                      // for sort, all_of
#include <compare>                                        // for operator<
#include <functional>                                     // for function
#include <iterator>                                       // for next, prev
#include <json.hpp>                                       // for basic_json
#include <set>                                            // for set, swap
#include <utility>                                        // for move, as_const
#include "attributes/attribute.h"                         // for Attribute
#include "attributes/availableattributesmodel.h"          // for AvailableAt...
#include "attributes/condtionfnops.h"                     // for String
#include "attributes/enrichmenttablemodel.h"              // for EnrichmentT...
#include "graph/elementiddistinctsetcollection.h"         // for MultiElemen...
#include "graph/graph.h"                                  // for Graph
#include "layout/layoutsettings.h"                        // for LayoutSetting
#include "preferenceswatcher.h"                           // for Preferences...
#include "rendering/projection.h"                         // for Projection
#include "rendering/shading.h"                            // for Shading
#include "shared/attributes/iattributerange.h"            // for IAttributeR...
#include "shared/commands/command.h"                      // for Command
#include "shared/commands/icommand.h"                     // for ICommand
#include "shared/commands/icommandmanager.h"              // for ExecutePolicy
#include "shared/graph/grapharray.h"                      // for NodeArray
#include "shared/graph/igraphcomponent.h"                 // for IGraphCompo...
#include "shared/graph/igraphmodel.h"                     // for IGraphModel
#include "shared/graph/imutablegraph.h"                   // for IMutableGraph
#include "shared/loading/iparser.h"                       // for IParser
#include "shared/utils/container.h"                       // for contains
#include "shared/utils/statistics.h"                      // for Statistics
#include "transform/availabletransformsmodel.h"           // for AvailableTr...
#include "transform/graphtransformattributeparameter.h"   // for GraphTransf...
#include "transform/graphtransformconfig.h"               // for GraphTransf...
#include "transform/graphtransformparameter.h"            // for GraphTransf...
#include "transform/transforminfo.h"                      // for TransformInfo
#include "ui/alert.h"                                     // for Alert, Aler...
#include "ui/findoptions.h"                               // for FindOptions
#include "ui/visualisations/visualisationconfig.h"        // for Visualisati...
class ISelectionManager;

/home/runner/work/graphia/graphia/source/app/ui/document.cpp should remove these lines:
- #include <QQmlEngine>  // lines 85-85
- #include <QQmlProperty>  // lines 74-74
- #include <chrono>  // lines 72-72
- #include <numeric>  // lines 70-70
- #include "attributes/attributeedits.h"  // lines 61-61
- #include "layout/collision.h"  // lines 44-44
- #include "loading/nativesaver.h"  // lines 39-39
- #include "shared/loading/userelementdata.h"  // lines 31-31

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/document.cpp:
#include "document.h"
#include <bits/chrono.h>                                  // for operator""ms
#include <json_helper.h>                                  // for parseJsonFrom
#include <qassert.h>                                      // for Q_ASSERT
#include <qtenvironmentvariables.h>                       // for qEnvironmen...
#include <stdint.h>                                       // for uint64_t
#include <QAbstractItemModel>                             // for QAbstractIt...
#include <QApplication>                                   // for QApplication
#include <QClipboard>                                     // for QClipboard
#include <QCollator>                                      // for QCollator
#include <QCoreApplication>                               // for QCoreApplic...
#include <QDataStream>                                    // for QDataStream
#include <QDebug>                                         // for QDebug
#include <QElapsedTimer>                                  // for QElapsedTimer
#include <QFile>                                          // for QFile
#include <QIODevice>                                      // for QIODevice
#include <QMap>                                           // for QMap
#include <QMessageBox>                                    // for QMessageBox
#include <QMessageLogger>                                 // for qDebug
#include <QMetaObject>                                    // for QMetaObject
#include <QMetaType>                                      // for QMetaType
#include <QRegularExpression>                             // for QRegularExp...
#include <QTextStream>                                    // for QTextStream
#include <QThread>                                        // for QThread
#include <QUrl>                                           // for QUrl
#include <QVariantList>                                   // for QVariantList
#include <QVector3D>                                      // for QVector3D
#include <QVector>                                        // for QVector
#include <Qt>                                             // for ConnectionType
#include <QtQml>                                          // for qmlRegister...
#include <algorithm>                                      // for sort, all_of
#include <compare>                                        // for operator<
#include <functional>                                     // for function
#include <iterator>                                       // for next, prev
#include <json.hpp>                                       // for basic_json
#include <set>                                            // for set, swap
#include <thread>                                         // for sleep_for
#include <utility>                                        // for move, as_const
#include "../crashhandler.h"                              // for CrashHandler
#include "application.h"                                  // for Application
#include "attributes/attribute.h"                         // for Attribute
#include "attributes/availableattributesmodel.h"          // for AvailableAt...
#include "attributes/conditionfncreator.h"                // for CreateCondi...
#include "attributes/condtionfnops.h"                     // for String
#include "attributes/enrichmentcalculator.h"              // for EnrichmentC...
#include "attributes/enrichmenttablemodel.h"              // for EnrichmentT...
#include "commands/applytransformscommand.h"              // for ApplyTransf...
#include "commands/applyvisualisationscommand.h"          // for ApplyVisual...
#include "commands/cloneattributecommand.h"               // for CloneAttrib...
#include "commands/deletenodescommand.h"                  // for DeleteNodes...
#include "commands/editattributecommand.h"                // for EditAttribu...
#include "commands/importattributescommand.h"             // for ImportAttri...
#include "commands/removeattributescommand.h"             // for RemoveAttri...
#include "commands/selectnodescommand.h"                  // for SelectNodes...
#include "graph/elementiddistinctsetcollection.h"         // for MultiElemen...
#include "graph/graph.h"                                  // for Graph
#include "graph/graphmodel.h"                             // for GraphModel
#include "graph/mutablegraph.h"                           // for MutableGraph
#include "graphquickitem.h"                               // for GraphQuickItem
#include "layout/forcedirectedlayout.h"                   // for ForceDirect...
#include "layout/layout.h"                                // for LayoutThread
#include "layout/layoutsettings.h"                        // for LayoutSetting
#include "limitconstants.h"                               // for LimitConstants
#include "loading/isaver.h"                               // for ISaver, ISa...
#include "loading/nativeloader.h"                         // for Loader
#include "loading/parserthread.h"                         // for ParserThread
#include "preferences.h"                                  // for pref
#include "preferenceswatcher.h"                           // for Preferences...
#include "rendering/projection.h"                         // for Projection
#include "rendering/shading.h"                            // for Shading
#include "searchmanager.h"                                // for SearchManager
#include "selectionmanager.h"                             // for SelectionMa...
#include "shared/attributes/iattributerange.h"            // for IAttributeR...
#include "shared/commands/command.h"                      // for Command
#include "shared/commands/icommand.h"                     // for ICommand
#include "shared/commands/icommandmanager.h"              // for ExecutePolicy
#include "shared/graph/grapharray.h"                      // for NodeArray
#include "shared/graph/igraphcomponent.h"                 // for IGraphCompo...
#include "shared/graph/igraphmodel.h"                     // for IGraphModel
#include "shared/graph/imutablegraph.h"                   // for IMutableGraph
#include "shared/loading/iparser.h"                       // for IParser
#include "shared/plugins/iplugin.h"                       // for IPluginInst...
#include "shared/utils/color.h"                           // for contrasting...
#include "shared/utils/container.h"                       // for contains
#include "shared/utils/flags.h"                           // for Flags
#include "shared/utils/static_block.h"                    // for static_block
#include "shared/utils/statistics.h"                      // for Statistics
#include "shared/utils/string.h"                          // for escapeQuotes
#include "transform/availabletransformsmodel.h"           // for AvailableTr...
#include "transform/graphtransform.h"                     // for GraphTransf...
#include "transform/graphtransformattributeparameter.h"   // for GraphTransf...
#include "transform/graphtransformconfig.h"               // for GraphTransf...
#include "transform/graphtransformconfigparser.h"         // for GraphTransf...
#include "transform/graphtransformparameter.h"            // for GraphTransf...
#include "transform/transforminfo.h"                      // for TransformInfo
#include "ui/alert.h"                                     // for Alert, Aler...
#include "ui/findoptions.h"                               // for FindOptions
#include "ui/visualisations/visualisationconfig.h"        // for Visualisati...
#include "ui/visualisations/visualisationconfigparser.h"  // for Visualisati...
#include "ui/visualisations/visualisationinfo.h"          // for Visualisati...
class ISelectionManager;
---


/home/runner/work/graphia/graphia/source/app/ui/graphoverviewinteractor.h should add these lines:
#include <qtmetamacros.h>                       // for Q_OBJECT
#include <QRectF>                               // for QRectF
#include "shared/graph/elementid.h"             // for ComponentId
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
class GraphComponentRenderer;
class GraphRenderer;

/home/runner/work/graphia/graphia/source/app/ui/graphoverviewinteractor.h should remove these lines:
- #include <memory>  // lines 26-26
- class GraphQuickItem;  // lines 32-32

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/graphoverviewinteractor.h:
#include <qtmetamacros.h>                       // for Q_OBJECT
#include <QPoint>                               // for QPoint
#include <QRectF>                               // for QRectF
#include "graphcommoninteractor.h"              // for GraphCommonInteractor
#include "shared/graph/elementid.h"             // for ComponentId
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
class CommandManager;  // lines 30-30
class GraphComponentRenderer;
class GraphModel;  // lines 28-28
class GraphOverviewScene;  // lines 29-29
class GraphRenderer;
class SelectionManager;  // lines 31-31
---

/home/runner/work/graphia/graphia/source/app/ui/graphoverviewinteractor.cpp should add these lines:
#include <QPointF>                             // for QPointF
#include <vector>                              // for vector
#include "maths/circle.h"                      // for Circle
#include "maths/frustum.h"                     // for Frustum
#include "rendering/camera.h"                  // for Camera
#include "rendering/graphcomponentrenderer.h"  // for GraphComponentRenderer
#include "shared/graph/grapharray.h"           // for GenericGraphArray
#include "ui/graphcommoninteractor.h"          // for GraphCommonInteractor

/home/runner/work/graphia/graphia/source/app/ui/graphoverviewinteractor.cpp should remove these lines:
- #include <QMouseEvent>  // lines 31-31
- #include <QWheelEvent>  // lines 32-32
- #include "commands/commandmanager.h"  // lines 23-23
- #include "graphquickitem.h"  // lines 20-20
- #include "selectionmanager.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/graphoverviewinteractor.cpp:
#include "graphoverviewinteractor.h"
#include <QPointF>                             // for QPointF
#include <vector>                              // for vector
#include "graph/graph.h"                       // for Graph
#include "graph/graphmodel.h"                  // for GraphModel
#include "maths/circle.h"                      // for Circle
#include "maths/frustum.h"                     // for Frustum
#include "rendering/camera.h"                  // for Camera
#include "rendering/graphcomponentrenderer.h"  // for GraphComponentRenderer
#include "rendering/graphoverviewscene.h"      // for GraphOverviewScene
#include "rendering/graphrenderer.h"           // for GraphRenderer
#include "shared/graph/grapharray.h"           // for GenericGraphArray
#include "ui/graphcommoninteractor.h"          // for GraphCommonInteractor
---


/home/runner/work/graphia/graphia/source/app/ui/selectionmanager.h should add these lines:
#include <qtmetamacros.h>                       // for emit, Q_OBJECT, signals
#include <stddef.h>                             // for size_t
#include <QString>                              // for QString
#include <vector>                               // for vector
#include "shared/graph/elementid.h"             // for NodeId
#include "shared/graph/elementid_containers.h"  // for NodeIdSet

/home/runner/work/graphia/graphia/source/app/ui/selectionmanager.h should remove these lines:
- #include <memory>  // lines 27-27
- #include "shared/utils/container.h"  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/selectionmanager.h:
#include <qtmetamacros.h>                       // for emit, Q_OBJECT, signals
#include <stddef.h>                             // for size_t
#include <QObject>                              // for QObject
#include <QString>                              // for QString
#include <mutex>                                // for recursive_mutex, uniq...
#include <vector>                               // for vector
#include "shared/graph/elementid.h"             // for NodeId
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
#include "shared/ui/iselectionmanager.h"        // for ISelectionManager
class GraphModel;  // lines 30-30
---

/home/runner/work/graphia/graphia/source/app/ui/selectionmanager.cpp should add these lines:
#include <map>                                     // for operator==, _Rb_tr...
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "shared/graph/grapharray.h"               // for GenericGraphArray
#include "shared/utils/container.h"                // for contains

/home/runner/work/graphia/graphia/source/app/ui/selectionmanager.cpp should remove these lines:
- #include <algorithm>  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/selectionmanager.cpp:
#include "selectionmanager.h"
#include <array>                                   // for array
#include <map>                                     // for operator==, _Rb_tr...
#include <utility>                                 // for move
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "graph/graph.h"                           // for Graph
#include "graph/graphmodel.h"                      // for GraphModel
#include "shared/graph/grapharray.h"               // for GenericGraphArray
#include "shared/utils/container.h"                // for contains
---


/home/runner/work/graphia/graphia/source/app/ui/graphquickitem.h should add these lines:
#include <qtmetamacros.h>            // for Q_PROPERTY, Q_INVOKABLE, slots
#include <stddef.h>                  // for size_t
#include "shared/graph/elementid.h"  // for NodeId, ComponentId
class QImage;
class QMouseEvent;
class QQuickItem;
class QWheelEvent;

/home/runner/work/graphia/graphia/source/app/ui/graphquickitem.h should remove these lines:
- #include <QDesktopServices>  // lines 31-31
- #include <QImage>  // lines 30-30
- #include <QTimer>  // lines 27-27
- class ICommand;  // lines 38-38

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/graphquickitem.h:
#include <qtmetamacros.h>            // for Q_PROPERTY, Q_INVOKABLE, slots
#include <stddef.h>                  // for size_t
#include <QEvent>                    // for QEvent
#include <QQuickFramebufferObject>   // for QQuickFramebufferObject
#include <QString>                   // for QString
#include <memory>                    // for unique_ptr
#include <queue>                     // for queue
#include <vector>                    // for vector
#include "graph/qmlelementid.h"      // for QmlNodeId
#include "rendering/projection.h"    // for Projection
#include "rendering/shading.h"       // for Shading
#include "shared/graph/elementid.h"  // for NodeId, ComponentId
class CommandManager;  // lines 39-39
class GraphModel;  // lines 37-37
class IGraphComponent;  // lines 41-41
class QImage;
class QMouseEvent;
class QQuickItem;
class QWheelEvent;
class SelectionManager;  // lines 40-40
---

/home/runner/work/graphia/graphia/source/app/ui/graphquickitem.cpp should add these lines:
#include <QDesktopServices>                        // for QDesktopServices
#include <QImage>                                  // for QImage
#include <QMouseEvent>                             // for QMouseEvent
#include <QNativeGestureEvent>                     // for QNativeGestureEvent
#include <QQuickItem>                              // for QQuickItem
#include <QUrl>                                    // for QUrl
#include <QWheelEvent>                             // for QWheelEvent
#include <Qt>                                      // for ConnectionType
#include <QtQml>                                   // for qmlRegisterType
#include <algorithm>                               // for copy, count_if, find
#include <iterator>                                // for distance
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "shared/graph/igraphcomponent.h"          // for IGraphComponent
class Command;

/home/runner/work/graphia/graphia/source/app/ui/graphquickitem.cpp should remove these lines:
- #include <QQmlEngine>  // lines 30-30

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/graphquickitem.cpp:
#include "graphquickitem.h"
#include <QDesktopServices>                        // for QDesktopServices
#include <QImage>                                  // for QImage
#include <QMouseEvent>                             // for QMouseEvent
#include <QNativeGestureEvent>                     // for QNativeGestureEvent
#include <QQuickItem>                              // for QQuickItem
#include <QUrl>                                    // for QUrl
#include <QWheelEvent>                             // for QWheelEvent
#include <Qt>                                      // for ConnectionType
#include <QtQml>                                   // for qmlRegisterType
#include <algorithm>                               // for copy, count_if, find
#include <iterator>                                // for distance
#include "commands/commandmanager.h"               // for CommandManager
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "graph/graph.h"                           // for Graph
#include "graph/graphmodel.h"                      // for GraphModel
#include "rendering/graphrenderer.h"               // for GraphRenderer
#include "shared/graph/igraphcomponent.h"          // for IGraphComponent
#include "shared/utils/static_block.h"             // for static_block
class Command;
---


/home/runner/work/graphia/graphia/source/app/ui/searchmanager.h should add these lines:
#include <qtmetamacros.h>                       // for Q_GADGET, Q_OBJECT
#include <QList>                                // for QList
#include "shared/utils/qmlenum.h"               // for DEFINE_QML_ENUM

/home/runner/work/graphia/graphia/source/app/ui/searchmanager.h should remove these lines:
- #include "shared/graph/elementid.h"  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/searchmanager.h:
#include <qtmetamacros.h>                       // for Q_GADGET, Q_OBJECT
#include <QList>                                // for QList
#include <QObject>                              // for QObject
#include <QString>                              // for QString
#include <QStringList>                          // for QStringList
#include <mutex>                                // for recursive_mutex
#include "findoptions.h"                        // for FindOptions
#include "shared/graph/elementid_containers.h"  // for NodeIdSet
#include "shared/utils/flags.h"                 // for Flags
#include "shared/utils/qmlenum.h"               // for DEFINE_QML_ENUM
class GraphModel;  // lines 34-34
---

/home/runner/work/graphia/graphia/source/app/ui/searchmanager.cpp should add these lines:
#include <QByteArrayDataPtr>                       // for StringLiterals
#include <functional>                              // for operator==, function
#include <map>                                     // for operator==
#include <utility>                                 // for move
#include <vector>                                  // for vector
#include "attributes/attribute.h"                  // for Attribute
#include "attributes/condtionfnops.h"              // for String
#include "graph/elementiddistinctsetcollection.h"  // for ConstNodeIdDistinc...
#include "shared/attributes/iattribute.h"          // for AttributeFlag
#include "shared/graph/elementid.h"                // for NodeId
#include "shared/graph/elementtype.h"              // for ElementType
#include "shared/graph/grapharray.h"               // for NodeArray
#include "ui/findoptions.h"                        // for FindOptions

/home/runner/work/graphia/graphia/source/app/ui/searchmanager.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/searchmanager.cpp:
#include "searchmanager.h"
#include <QByteArrayDataPtr>                       // for StringLiterals
#include <QRegularExpression>                      // for QRegularExpression
#include <algorithm>                               // for any_of, max
#include <functional>                              // for operator==, function
#include <map>                                     // for operator==
#include <utility>                                 // for move
#include <vector>                                  // for vector
#include "attributes/attribute.h"                  // for Attribute
#include "attributes/conditionfncreator.h"         // for CreateConditionFnFor
#include "attributes/condtionfnops.h"              // for String
#include "graph/elementiddistinctsetcollection.h"  // for ConstNodeIdDistinc...
#include "graph/graph.h"                           // for Graph
#include "graph/graphmodel.h"                      // for GraphModel
#include "shared/attributes/iattribute.h"          // for AttributeFlag
#include "shared/graph/elementid.h"                // for NodeId
#include "shared/graph/elementtype.h"              // for ElementType
#include "shared/graph/grapharray.h"               // for NodeArray
#include "shared/utils/container.h"                // for setsDiffer
#include "ui/findoptions.h"                        // for FindOptions
---


/home/runner/work/graphia/graphia/source/app/ui/enrichmentheatmapitem.h should add these lines:
#include <qtmetamacros.h>          // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
#include <QFont>                   // for QFont
#include <QPointF>                 // for QPointF
#include <QString>                 // for QString
#include <QStringList>             // for QStringList
#include <map>                     // for map
#include <utility>                 // for pair
class EnrichmentTableModel;
class QCPAbstractPlottable;
class QCPColorMap;
class QCPColorScale;
class QCPItemText;
class QCPLayer;
class QHoverEvent;
class QMouseEvent;
class QQuickItem;
class QUrl;

/home/runner/work/graphia/graphia/source/app/ui/enrichmentheatmapitem.h should remove these lines:
- #include "attributes/enrichmentcalculator.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/enrichmentheatmapitem.h:
#include <qcustomplotquickitem.h>  // for QCustomPlotQuickItem
#include <qtmetamacros.h>          // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
#include <QFont>                   // for QFont
#include <QPointF>                 // for QPointF
#include <QString>                 // for QString
#include <QStringList>             // for QStringList
#include <map>                     // for map
#include <utility>                 // for pair
class EnrichmentTableModel;
class QCPAbstractPlottable;
class QCPColorMap;
class QCPColorScale;
class QCPItemText;
class QCPLayer;
class QHoverEvent;
class QMouseEvent;
class QQuickItem;
class QUrl;
---

/home/runner/work/graphia/graphia/source/app/ui/enrichmentheatmapitem.cpp should add these lines:
#include <qcustomplot.h>                      // for QCustomPlot, QCPAxis
#include <qtpreprocessorsupport.h>            // for Q_UNUSED
#include <QCollator>                          // for QCollator
#include <QColor>                             // for QColor
#include <QDesktopServices>                   // for QDesktopServices
#include <QFontMetrics>                       // for QFontMetrics
#include <QHoverEvent>                        // for QHoverEvent
#include <QList>                              // for QList
#include <QMargins>                           // for QMargins
#include <QMouseEvent>                        // for QMouseEvent
#include <QPen>                               // for QPen
#include <QPoint>                             // for QPoint
#include <QQuickPaintedItem>                  // for QQuickPaintedItem
#include <QRectF>                             // for QRectF
#include <QSharedPointer>                     // for QSharedPointer
#include <QUrl>                               // for QUrl
#include <QVariant>                           // for QVariant
#include <QtCore>                             // for QTypeInfo<>::isRelocatable
#include <QtGui>                              // for QBrush
#include <QtQml>                              // for qmlRegisterType
#include <algorithm>                          // for sort
#include <cmath>                              // for round
#include <vector>                             // for vector
#include "attributes/enrichmenttablemodel.h"  // for EnrichmentTableModel
class QQuickItem;

/home/runner/work/graphia/graphia/source/app/ui/enrichmentheatmapitem.cpp should remove these lines:
- #include <QQmlEngine>  // lines 27-27
- #include <iterator>  // lines 30-30
- #include "shared/utils/utils.h"  // lines 21-21

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/enrichmentheatmapitem.cpp:
#include "enrichmentheatmapitem.h"
#include <qcustomplot.h>                      // for QCustomPlot, QCPAxis
#include <qtpreprocessorsupport.h>            // for Q_UNUSED
#include <QCollator>                          // for QCollator
#include <QColor>                             // for QColor
#include <QDesktopServices>                   // for QDesktopServices
#include <QFontMetrics>                       // for QFontMetrics
#include <QHoverEvent>                        // for QHoverEvent
#include <QList>                              // for QList
#include <QMargins>                           // for QMargins
#include <QMouseEvent>                        // for QMouseEvent
#include <QPen>                               // for QPen
#include <QPoint>                             // for QPoint
#include <QQuickPaintedItem>                  // for QQuickPaintedItem
#include <QRectF>                             // for QRectF
#include <QSharedPointer>                     // for QSharedPointer
#include <QUrl>                               // for QUrl
#include <QVariant>                           // for QVariant
#include <QtCore>                             // for QTypeInfo<>::isRelocatable
#include <QtGui>                              // for QBrush
#include <QtQml>                              // for qmlRegisterType
#include <algorithm>                          // for sort
#include <cmath>                              // for round
#include <set>                                // for set, operator==
#include <vector>                             // for vector
#include "attributes/enrichmenttablemodel.h"  // for EnrichmentTableModel
#include "shared/rendering/multisamples.h"    // for multisamples
#include "shared/utils/container.h"           // for containsKey
#include "shared/utils/static_block.h"        // for static_block
#include "shared/utils/string.h"              // for formatNumberScientific
class QQuickItem;
---


/home/runner/work/graphia/graphia/source/app/ui/visualisations/colorvisualisationchannel.h should add these lines:
#include <QVariantMap>                               // for QVariantMap
#include "shared/attributes/valuetype.h"             // for ValueType
#include "shared/graph/elementtype.h"                // for ElementType
struct ElementVisual;

/home/runner/work/graphia/graphia/source/app/ui/visualisations/colorvisualisationchannel.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/colorvisualisationchannel.h:
#include <QString>                                   // for QString
#include <QVariantMap>                               // for QVariantMap
#include <vector>                                    // for vector
#include "shared/attributes/valuetype.h"             // for ValueType
#include "shared/graph/elementtype.h"                // for ElementType
#include "shared/ui/visualisations/colorgradient.h"  // for ColorGradient
#include "shared/ui/visualisations/colorpalette.h"   // for ColorPalette
#include "visualisationchannel.h"                    // for VisualisationCha...
struct ElementVisual;
---

/home/runner/work/graphia/graphia/source/app/ui/visualisations/colorvisualisationchannel.cpp should add these lines:
#include <QColor>                                    // for QColor
#include <QLatin1Char>                               // for StringLiterals
#include <QMap>                                      // for QMap
#include <QVariant>                                  // for QVariant
#include "ui/visualisations/elementvisual.h"         // for ElementVisual
#include "ui/visualisations/visualisationchannel.h"  // for VisualisationCha...

/home/runner/work/graphia/graphia/source/app/ui/visualisations/colorvisualisationchannel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/colorvisualisationchannel.cpp:
#include "colorvisualisationchannel.h"
#include <QColor>                                    // for QColor
#include <QLatin1Char>                               // for StringLiterals
#include <QMap>                                      // for QMap
#include <QObject>                                   // for QObject
#include <QVariant>                                  // for QVariant
#include "app/preferences.h"                         // for pref
#include "ui/visualisations/elementvisual.h"         // for ElementVisual
#include "ui/visualisations/visualisationchannel.h"  // for VisualisationCha...
---


/home/runner/work/graphia/graphia/source/app/ui/visualisations/sizevisualisationchannel.h should add these lines:
#include <QString>                        // for QString
#include "shared/attributes/valuetype.h"  // for ValueType
#include "shared/graph/elementtype.h"     // for ElementType
struct ElementVisual;

/home/runner/work/graphia/graphia/source/app/ui/visualisations/sizevisualisationchannel.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/sizevisualisationchannel.h:
#include <QString>                        // for QString
#include "shared/attributes/valuetype.h"  // for ValueType
#include "shared/graph/elementtype.h"     // for ElementType
#include "visualisationchannel.h"         // for VisualisationChannel
struct ElementVisual;
---

/home/runner/work/graphia/graphia/source/app/ui/visualisations/sizevisualisationchannel.cpp should add these lines:
#include "ui/visualisations/elementvisual.h"  // for ElementVisual

/home/runner/work/graphia/graphia/source/app/ui/visualisations/sizevisualisationchannel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/sizevisualisationchannel.cpp:
#include "sizevisualisationchannel.h"
#include <QObject>                            // for QObject
#include "ui/visualisations/elementvisual.h"  // for ElementVisual
---


(/home/runner/work/graphia/graphia/source/app/ui/visualisations/textvisual.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textvisual.cpp should add these lines:
class QVector3D;

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textvisual.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/textvisual.cpp:
#include "textvisual.h"
#include "layout/nodepositions.h"  // for NodePositions
#include "maths/boundingsphere.h"  // for BoundingSphere
class QVector3D;
---


/home/runner/work/graphia/graphia/source/app/ui/visualisations/textcolorvisualisationchannel.h should add these lines:
#include <QString>                        // for QString
#include "shared/attributes/valuetype.h"  // for ValueType
#include "shared/graph/elementtype.h"     // for ElementType
struct ElementVisual;

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textcolorvisualisationchannel.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/textcolorvisualisationchannel.h:
#include <QString>                        // for QString
#include "colorvisualisationchannel.h"    // for ColorVisualisationChannel
#include "shared/attributes/valuetype.h"  // for ValueType
#include "shared/graph/elementtype.h"     // for ElementType
struct ElementVisual;
---

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textcolorvisualisationchannel.cpp should add these lines:
#include <QColor>                                    // for QColor
#include <QLatin1Char>                               // for StringLiterals
#include "shared/ui/visualisations/colorgradient.h"  // for ColorGradient
#include "shared/ui/visualisations/colorpalette.h"   // for ColorPalette
#include "ui/visualisations/elementvisual.h"         // for ElementVisual

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textcolorvisualisationchannel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/textcolorvisualisationchannel.cpp:
#include "textcolorvisualisationchannel.h"
#include <QColor>                                    // for QColor
#include <QLatin1Char>                               // for StringLiterals
#include <QObject>                                   // for QObject
#include "shared/ui/visualisations/colorgradient.h"  // for ColorGradient
#include "shared/ui/visualisations/colorpalette.h"   // for ColorPalette
#include "ui/visualisations/elementvisual.h"         // for ElementVisual
---


/home/runner/work/graphia/graphia/source/app/ui/visualisations/textsizevisualisationchannel.h should add these lines:
#include <QString>                        // for QString
#include "shared/attributes/valuetype.h"  // for ValueType
#include "shared/graph/elementtype.h"     // for ElementType
struct ElementVisual;

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textsizevisualisationchannel.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/textsizevisualisationchannel.h:
#include <QString>                        // for QString
#include "shared/attributes/valuetype.h"  // for ValueType
#include "shared/graph/elementtype.h"     // for ElementType
#include "visualisationchannel.h"         // for VisualisationChannel
struct ElementVisual;
---

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textsizevisualisationchannel.cpp should add these lines:
#include "ui/visualisations/elementvisual.h"  // for ElementVisual

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textsizevisualisationchannel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/textsizevisualisationchannel.cpp:
#include "textsizevisualisationchannel.h"
#include <QObject>                            // for QObject
#include "ui/visualisations/elementvisual.h"  // for ElementVisual
---


/home/runner/work/graphia/graphia/source/app/ui/visualisations/textvisualisationchannel.h should add these lines:
#include <QString>                        // for QString
#include "shared/attributes/valuetype.h"  // for ValueType
#include "shared/graph/elementtype.h"     // for ElementType
class VisualisationInfo;
struct ElementVisual;

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textvisualisationchannel.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/textvisualisationchannel.h:
#include <QString>                        // for QString
#include "shared/attributes/valuetype.h"  // for ValueType
#include "shared/graph/elementtype.h"     // for ElementType
#include "visualisationchannel.h"         // for VisualisationChannel
class VisualisationInfo;
struct ElementVisual;
---

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textvisualisationchannel.cpp should add these lines:
#include <QLatin1Char>                        // for StringLiterals
#include <QVariant>                           // for QVariant
#include "ui/alert.h"                         // for AlertType
#include "ui/visualisations/elementvisual.h"  // for ElementVisual

/home/runner/work/graphia/graphia/source/app/ui/visualisations/textvisualisationchannel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/textvisualisationchannel.cpp:
#include "textvisualisationchannel.h"
#include <QLatin1Char>                        // for StringLiterals
#include <QObject>                            // for QObject
#include <QVariant>                           // for QVariant
#include "app/preferences.h"                  // for pref
#include "rendering/graphrenderer.h"          // for TextState
#include "shared/utils/string.h"              // for formatNumberScientific
#include "ui/alert.h"                         // for AlertType
#include "ui/visualisations/elementvisual.h"  // for ElementVisual
#include "visualisationinfo.h"                // for VisualisationInfo
---


/home/runner/work/graphia/graphia/source/app/ui/visualisations/sharedtextvisualisationchannel.h should add these lines:
#include <QString>                         // for QString
#include "shared/attributes/valuetype.h"   // for ValueType
#include "shared/graph/elementtype.h"      // for ElementType, operator&
#include "ui/visualisations/textvisual.h"  // for TextVisuals
class GraphModel;
class TransformedGraph;
struct ElementVisual;

/home/runner/work/graphia/graphia/source/app/ui/visualisations/sharedtextvisualisationchannel.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/sharedtextvisualisationchannel.h:
#include <QString>                         // for QString
#include "shared/attributes/valuetype.h"   // for ValueType
#include "shared/graph/elementtype.h"      // for ElementType, operator&
#include "ui/visualisations/textvisual.h"  // for TextVisuals
#include "visualisationchannel.h"          // for VisualisationChannel
class GraphModel;
class TransformedGraph;
struct ElementVisual;
---

/home/runner/work/graphia/graphia/source/app/ui/visualisations/sharedtextvisualisationchannel.cpp should add these lines:
#include <qassert.h>                               // for Q_ASSERT
#include <stddef.h>                                // for size_t
#include <algorithm>                               // for copy, max
#include <functional>                              // for operator==, function
#include <vector>                                  // for vector
#include "attributes/attribute.h"                  // for Attribute
#include "attributes/condtionfnops.h"              // for Equality
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "graph/graph.h"                           // for Graph

/home/runner/work/graphia/graphia/source/app/ui/visualisations/sharedtextvisualisationchannel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/sharedtextvisualisationchannel.cpp:
#include "sharedtextvisualisationchannel.h"
#include <qassert.h>                               // for Q_ASSERT
#include <stddef.h>                                // for size_t
#include <QObject>                                 // for QObject
#include <algorithm>                               // for copy, max
#include <functional>                              // for operator==, function
#include <vector>                                  // for vector
#include "attributes/attribute.h"                  // for Attribute
#include "attributes/conditionfncreator.h"         // for CreateConditionFnFor
#include "attributes/condtionfnops.h"              // for Equality
#include "graph/elementiddistinctsetcollection.h"  // for MultiElementType
#include "graph/graph.h"                           // for Graph
#include "graph/graphmodel.h"                      // for GraphModel, TextVi...
#include "graph/mutablegraph.h"                    // for MutableGraph
#include "shared/graph/elementid.h"                // for NodeId, EdgeId
#include "shared/graph/elementid_containers.h"     // for EdgeIdSet
#include "transform/graphtransformconfig.h"        // for GraphTransformConfig
#include "transform/transformedgraph.h"            // for TransformedGraph
---


/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationchannel.h should add these lines:
#include <stddef.h>                        // for size_t
#include <QMap>                            // for QMap
#include <QMessageLogger>                  // for qFatal
#include <QVariant>                        // for QVariant
struct ElementVisual;

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationchannel.h should remove these lines:
- #include "ui/visualisations/elementvisual.h"  // lines 22-22

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationchannel.h:
#include <stddef.h>                        // for size_t
#include <QMap>                            // for QMap
#include <QMessageLogger>                  // for qFatal
#include <QString>                         // for QString
#include <QVariant>                        // for QVariant
#include <QVariantMap>                     // for QVariantMap
#include <map>                             // for map
#include <vector>                          // for vector
#include "shared/attributes/valuetype.h"   // for ValueType
#include "shared/graph/elementtype.h"      // for ElementType
#include "ui/visualisations/textvisual.h"  // for TextVisuals
class GraphModel;  // lines 34-34
class TransformedGraph;  // lines 35-35
class VisualisationInfo;  // lines 33-33
struct ElementVisual;
---

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationchannel.cpp should add these lines:
#include <algorithm>                 // for max

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationchannel.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationchannel.cpp:
#include "visualisationchannel.h"
#include <algorithm>                 // for max
#include "shared/utils/container.h"  // for contains
---


(/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationconfig.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationconfig.cpp should add these lines:
#include <QChar>                     // for operator!=, QChar, StringLiterals
#include <QList>                     // for QList
#include <QMap>                      // for QMap
#include <QVariant>                  // for QVariant
#include <QVariantList>              // for QVariantList
#include <map>                       // for map, operator==

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationconfig.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationconfig.cpp:
#include "visualisationconfig.h"
#include <QChar>                     // for operator!=, QChar, StringLiterals
#include <QList>                     // for QList
#include <QMap>                      // for QMap
#include <QObject>                   // for QObject
#include <QVariant>                  // for QVariant
#include <QVariantList>              // for QVariantList
#include <map>                       // for map, operator==
#include "shared/utils/container.h"  // for contains, setsDiffer
---


(/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationmapping.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationmapping.cpp should add these lines:
#include <QMessageLogger>             // for qDebug
#include <QString>                    // for QString, operator""_s
#include <QtCore>                     // for CaseSensitivity, StringLiterals

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationmapping.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationmapping.cpp:
#include "visualisationmapping.h"
#include <json_helper.h>              // for parseJsonFrom
#include <QDebug>                     // for QDebug
#include <QMessageLogger>             // for qDebug
#include <QString>                    // for QString, operator""_s
#include <QtCore>                     // for CaseSensitivity, StringLiterals
#include <algorithm>                  // for clamp
#include <cmath>                      // for pow
#include "shared/utils/container.h"   // for contains
#include "shared/utils/statistics.h"  // for Statistics
#include "shared/utils/utils.h"       // for normalise
---


/home/runner/work/graphia/graphia/source/app/updates/changelog.h should add these lines:
#include <qtmetamacros.h>  // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT, signals

/home/runner/work/graphia/graphia/source/app/updates/changelog.h should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/updates/changelog.h:
#include <qtmetamacros.h>  // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT, signals
#include <QObject>         // for QObject
#include <QString>         // for QString
#include <QTemporaryDir>   // for QTemporaryDir
---

/home/runner/work/graphia/graphia/source/app/updates/changelog.cpp should add these lines:
#include <QIODevice>                    // for QIODevice
#include <QtCore>                       // for QTypeInfo<>::isValueInitializ...
#include <QtQml>                        // for qmlRegisterType
#include <json.hpp>                     // for basic_json, iter_impl

/home/runner/work/graphia/graphia/source/app/updates/changelog.cpp should remove these lines:
- #include <QQmlEngine>  // lines 30-30
- #include "application.h"  // lines 25-25

The full include-list for /home/runner/work/graphia/graphia/source/app/updates/changelog.cpp:
#include "changelog.h"
#include <json_helper.h>                // for json
#include <QByteArray>                   // for QByteArray
#include <QFile>                        // for QFile
#include <QIODevice>                    // for QIODevice
#include <QRegularExpression>           // for QRegularExpression
#include <QtCore>                       // for QTypeInfo<>::isValueInitializ...
#include <QtQml>                        // for qmlRegisterType
#include <json.hpp>                     // for basic_json, iter_impl
#include "shared/updates/updates.h"     // for changeLogJson
#include "shared/utils/container.h"     // for contains
#include "shared/utils/static_block.h"  // for static_block
---


(/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationconfigparser.h has correct #includes/fwd-decls)

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationconfigparser.cpp should add these lines:
#include <QChar>
#include <QMessageLogger>
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/adapted/struct/detail/adapt_auto.hpp>
#include <boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/mpl/aux_/preprocessor/is_seq.hpp>
#include <boost/preprocessor/arithmetic/dec.hpp>
#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/comparison/not_equal.hpp>
#include <boost/preprocessor/control/detail/while.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/control/while.hpp>
#include <boost/preprocessor/detail/auto_rec.hpp>
#include <boost/preprocessor/detail/is_binary.hpp>
#include <boost/preprocessor/facilities/detail/is_empty.hpp>
#include <boost/preprocessor/list/fold_left.hpp>
#include <boost/preprocessor/logical/bitand.hpp>
#include <boost/preprocessor/logical/bool.hpp>
#include <boost/preprocessor/logical/compl.hpp>
#include <boost/preprocessor/punctuation/detail/is_begin_parens.hpp>
#include <boost/preprocessor/repetition/detail/for.hpp>
#include <boost/preprocessor/repetition/for.hpp>
#include <boost/preprocessor/seq/elem.hpp>
#include <boost/preprocessor/seq/size.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/tuple/to_seq.hpp>
#include <boost/preprocessor/variadic/elem.hpp>
#include <boost/spirit/home/support/char_encoding/standard.hpp>
#include <boost/spirit/home/support/char_encoding/unicode.hpp>
#include <boost/spirit/home/x3/char/char.hpp>
#include <boost/spirit/home/x3/char/char_class_tags.hpp>
#include <boost/spirit/home/x3/char/char_parser.hpp>
#include <boost/spirit/home/x3/char/char_set.hpp>
#include <boost/spirit/home/x3/char/literal_char.hpp>
#include <boost/spirit/home/x3/char/negated_char_parser.hpp>
#include <boost/spirit/home/x3/char/unicode.hpp>
#include <boost/spirit/home/x3/core/parse.hpp>
#include <boost/spirit/home/x3/directive/lexeme.hpp>
#include <boost/spirit/home/x3/nonterminal/rule.hpp>
#include <boost/spirit/home/x3/numeric/real.hpp>
#include <boost/spirit/home/x3/numeric/real_policies.hpp>
#include <boost/spirit/home/x3/operator/alternative.hpp>
#include <boost/spirit/home/x3/operator/kleene.hpp>
#include <boost/spirit/home/x3/operator/list.hpp>
#include <boost/spirit/home/x3/operator/optional.hpp>
#include <boost/spirit/home/x3/operator/plus.hpp>
#include <boost/spirit/home/x3/operator/sequence.hpp>
#include <boost/spirit/home/x3/string/literal_string.hpp>
#include <boost/spirit/home/x3/support/unused.hpp>
#include <string>
#include "ui/visualisations/visualisationconfig.h"

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationconfigparser.cpp should remove these lines:
- #include <boost/fusion/include/adapt_struct.hpp>  // lines 24-24
- #include <boost/spirit/home/x3.hpp>  // lines 23-23

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationconfigparser.cpp:
#include "visualisationconfigparser.h"
#include <boost/boost_spirit_qstring_adapter.h>
#include <QChar>
#include <QDebug>
#include <QMessageLogger>
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/adapted/struct/detail/adapt_auto.hpp>
#include <boost/fusion/adapted/struct/detail/preprocessor/is_seq.hpp>
#include <boost/iterator/iterator_facade.hpp>
#include <boost/mpl/aux_/preprocessor/is_seq.hpp>
#include <boost/preprocessor/arithmetic/dec.hpp>
#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/comparison/not_equal.hpp>
#include <boost/preprocessor/control/detail/while.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/control/while.hpp>
#include <boost/preprocessor/detail/auto_rec.hpp>
#include <boost/preprocessor/detail/is_binary.hpp>
#include <boost/preprocessor/facilities/detail/is_empty.hpp>
#include <boost/preprocessor/list/fold_left.hpp>
#include <boost/preprocessor/logical/bitand.hpp>
#include <boost/preprocessor/logical/bool.hpp>
#include <boost/preprocessor/logical/compl.hpp>
#include <boost/preprocessor/punctuation/detail/is_begin_parens.hpp>
#include <boost/preprocessor/repetition/detail/for.hpp>
#include <boost/preprocessor/repetition/for.hpp>
#include <boost/preprocessor/seq/elem.hpp>
#include <boost/preprocessor/seq/size.hpp>
#include <boost/preprocessor/tuple/elem.hpp>
#include <boost/preprocessor/tuple/to_seq.hpp>
#include <boost/preprocessor/variadic/elem.hpp>
#include <boost/spirit/home/support/char_encoding/standard.hpp>
#include <boost/spirit/home/support/char_encoding/unicode.hpp>
#include <boost/spirit/home/x3/char/char.hpp>
#include <boost/spirit/home/x3/char/char_class_tags.hpp>
#include <boost/spirit/home/x3/char/char_parser.hpp>
#include <boost/spirit/home/x3/char/char_set.hpp>
#include <boost/spirit/home/x3/char/literal_char.hpp>
#include <boost/spirit/home/x3/char/negated_char_parser.hpp>
#include <boost/spirit/home/x3/char/unicode.hpp>
#include <boost/spirit/home/x3/core/parse.hpp>
#include <boost/spirit/home/x3/directive/lexeme.hpp>
#include <boost/spirit/home/x3/nonterminal/rule.hpp>
#include <boost/spirit/home/x3/numeric/real.hpp>
#include <boost/spirit/home/x3/numeric/real_policies.hpp>
#include <boost/spirit/home/x3/operator/alternative.hpp>
#include <boost/spirit/home/x3/operator/kleene.hpp>
#include <boost/spirit/home/x3/operator/list.hpp>
#include <boost/spirit/home/x3/operator/optional.hpp>
#include <boost/spirit/home/x3/operator/plus.hpp>
#include <boost/spirit/home/x3/operator/sequence.hpp>
#include <boost/spirit/home/x3/string/literal_string.hpp>
#include <boost/spirit/home/x3/support/unused.hpp>
#include <string>
#include "ui/visualisations/visualisationconfig.h"
---


/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationmappingplotitem.h should add these lines:
#include <bits/std_abs.h>             // for abs
#include <qcustomplot.h>              // for QCPAxis, QCustomPlot
#include <qtmetamacros.h>             // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
class QQuickItem;

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationmappingplotitem.h should remove these lines:
- #include <QObject>  // lines 26-26
- #include <QQuickPaintedItem>  // lines 27-27

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationmappingplotitem.h:
#include <bits/std_abs.h>             // for abs
#include <qcustomplot.h>              // for QCPAxis, QCustomPlot
#include <qcustomplotquickitem.h>     // for QCustomPlotQuickItem
#include <qtmetamacros.h>             // for Q_PROPERTY, Q_INVOKABLE, Q_OBJECT
#include <QList>                      // for QList
#include "shared/utils/statistics.h"  // for Statistics
class QQuickItem;
---

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationmappingplotitem.cpp should add these lines:
#include <QColor>                           // for QColor
#include <QCursor>                          // for QCursor
#include <QHoverEvent>                      // for QHoverEvent
#include <QMouseEvent>                      // for QMouseEvent
#include <QPen>                             // for QPen
#include <QPoint>                           // for QPoint
#include <QVector>                          // for QVector
#include <QtCore>                           // for QTypeInfo<>::isValueIniti...
#include <QtGui>                            // for QBrush
#include <QtQml>                            // for qmlRegisterType
#include <algorithm>                        // for clamp, max, min
#include <initializer_list>                 // for initializer_list
#include <limits>                           // for numeric_limits
#include <utility>                          // for as_const
#include <vector>                           // for vector
class QQuickItem;

/home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationmappingplotitem.cpp should remove these lines:
- #include <QQmlEngine>  // lines 24-24

The full include-list for /home/runner/work/graphia/graphia/source/app/ui/visualisations/visualisationmappingplotitem.cpp:
#include "visualisationmappingplotitem.h"
#include <QColor>                           // for QColor
#include <QCursor>                          // for QCursor
#include <QHoverEvent>                      // for QHoverEvent
#include <QMouseEvent>                      // for QMouseEvent
#include <QPen>                             // for QPen
#include <QPoint>                           // for QPoint
#include <QVector>                          // for QVector
#include <QtCore>                           // for QTypeInfo<>::isValueIniti...
#include <QtGui>                            // for QBrush
#include <QtQml>                            // for qmlRegisterType
#include <algorithm>                        // for clamp, max, min
#include <cmath>                            // for pow
#include <initializer_list>                 // for initializer_list
#include <limits>                           // for numeric_limits
#include <utility>                          // for as_const
#include <vector>                           // for vector
#include "shared/rendering/multisamples.h"  // for multisamples
#include "shared/utils/static_block.h"      // for static_block
class QQuickItem;
---


/home/runner/work/graphia/graphia/source/app/updates/updater.h should add these lines:
#include <qtmetamacros.h>            // for slots, Q_OBJECT, signals
#include <QVariant>                  // for QVariant

/home/runner/work/graphia/graphia/source/app/updates/updater.h should remove these lines:
- #include <atomic>  // lines 30-30
- class QByteArray;  // lines 32-32

The full include-list for /home/runner/work/graphia/graphia/source/app/updates/updater.h:
#include <qtmetamacros.h>            // for slots, Q_OBJECT, signals
#include <QNetworkAccessManager>     // for QNetworkAccessManager
#include <QObject>                   // for QObject
#include <QString>                   // for QString
#include <QStringList>               // for QStringList
#include <QTimer>                    // for QTimer
#include <QVariant>                  // for QVariant
#include "app/preferenceswatcher.h"  // for PreferencesWatcher
class QNetworkReply;  // lines 33-33
---

/home/runner/work/graphia/graphia/source/app/updates/updater.cpp should add these lines:
#include <qassert.h>                   // for Q_ASSERT
#include <qtconfigmacros.h>            // for QT_CONFIG
#include <qtcore-config.h>             // for QT_FEATURE_process
#include <qtypes.h>                    // for qint64
#include <QByteArray>                  // for QByteArray, operator+, StringL...
#include <QFileInfo>                   // for QFileInfo
#include <QFlags>                      // for QFlags
#include <QList>                       // for QList
#include <QRegularExpression>          // for QRegularExpression
#include <json.hpp>                    // for basic_json, operator<<
#include <string>                      // for operator<<
#include "preferenceswatcher.h"        // for PreferencesWatcher

/home/runner/work/graphia/graphia/source/app/updates/updater.cpp should remove these lines:
- #include <QFutureWatcher>  // lines 40-40
- #include <QHttpMultiPart>  // lines 45-45
- #include <QHttpPart>  // lines 46-46
- #include <utility>  // lines 50-50
- #include <vector>  // lines 49-49
- #include "shared/utils/string.h"  // lines 29-29

The full include-list for /home/runner/work/graphia/graphia/source/app/updates/updater.cpp:
#include "updater.h"
#include <json_helper.h>               // for json
#include <qassert.h>                   // for Q_ASSERT
#include <qtconfigmacros.h>            // for QT_CONFIG
#include <qtcore-config.h>             // for QT_FEATURE_process
#include <qtypes.h>                    // for qint64
#include <QByteArray>                  // for QByteArray, operator+, StringL...
#include <QDir>                        // for QDir, operator|
#include <QFile>                       // for QFile
#include <QFileInfo>                   // for QFileInfo
#include <QFlags>                      // for QFlags
#include <QList>                       // for QList
#include <QNetworkReply>               // for QNetworkReply
#include <QNetworkRequest>             // for QNetworkRequest
#include <QProcess>                    // for QProcess
#include <QRegularExpression>          // for QRegularExpression
#include <QStandardPaths>              // for QStandardPaths
#include <QStringList>                 // for QStringList
#include <QTemporaryFile>              // for QTemporaryFile
#include <QTimer>                      // for QTimer
#include <QUrl>                        // for QUrl
#include <iostream>                    // for char_traits, operator<<, basic...
#include <json.hpp>                    // for basic_json, operator<<
#include <string>                      // for operator<<
#include "application.h"               // for Application
#include "build_defines.h"             // for VERSION
#include "preferences.h"               // for pref
#include "preferenceswatcher.h"        // for PreferencesWatcher
#include "shared/updates/updates.h"    // for latestUpdateJson, clearUpdateS...
#include "shared/utils/checksum.h"     // for sha256ChecksumMatchesFile
#include "shared/utils/container.h"    // for contains
#include "shared/utils/doasyncthen.h"  // for doAsync, _Then
---


/home/runner/work/graphia/graphia/source/app/watchdog.h should add these lines:
#include <bits/chrono.h>     // for seconds, steady_clock
#include <qtconfigmacros.h>  // for QT_CONFIG
#include <qtcore-config.h>   // for QT_FEATURE_process
#include <qtmetamacros.h>    // for Q_OBJECT, signals, slots
class QTimer;

/home/runner/work/graphia/graphia/source/app/watchdog.h should remove these lines:
- #include <QTimer>  // lines 24-24
- #include <chrono>  // lines 27-27

The full include-list for /home/runner/work/graphia/graphia/source/app/watchdog.h:
#include <bits/chrono.h>     // for seconds, steady_clock
#include <qtconfigmacros.h>  // for QT_CONFIG
#include <qtcore-config.h>   // for QT_FEATURE_process
#include <qtmetamacros.h>    // for Q_OBJECT, signals, slots
#include <QObject>           // for QObject
#include <QProcess>          // for QProcess
#include <QThread>           // for QThread
class QTimer;
---

/home/runner/work/graphia/graphia/source/app/watchdog.cpp should add these lines:
#include <qoverload.h>                // for QOverload
#include <QLatin1Char>                // for StringLiterals
#include <QList>                      // for QList
#include <QMessageLogger>             // for qWarning
#include <QString>                    // for QString, operator""_s, QTypeInf...
#include <QStringList>                // for QStringList
#include <QTimer>                     // for QTimer
#include <compare>                    // for operator>, partial_ordering
#include <ratio>                      // for ratio
#include <string>                     // for operator<<

/home/runner/work/graphia/graphia/source/app/watchdog.cpp should remove these lines:

The full include-list for /home/runner/work/graphia/graphia/source/app/watchdog.cpp:
#include "watchdog.h"
#include <qoverload.h>                // for QOverload
#include <valgrind/valgrind.h>        // for RUNNING_ON_VALGRIND
#include <QCoreApplication>           // for QCoreApplication
#include <QDebug>                     // for operator<<, QDebug
#include <QLatin1Char>                // for StringLiterals
#include <QList>                      // for QList
#include <QMessageBox>                // for QMessageBox
#include <QMessageLogger>             // for qWarning
#include <QProcess>                   // for QProcess
#include <QString>                    // for QString, operator""_s, QTypeInf...
#include <QStringList>                // for QStringList
#include <QTimer>                     // for QTimer
#include <compare>                    // for operator>, partial_ordering
#include <iostream>                   // for char_traits, operator<<, basic_...
#include <ratio>                      // for ratio
#include <string>                     // for operator<<
#include "application.h"              // for Application
#include "shared/utils/fatalerror.h"  // for FATAL_ERROR
#include "shared/utils/thread.h"      // for setCurrentThreadName
---