From 29f29773af72abefd114f119a6632837263e1896 Mon Sep 17 00:00:00 2001 From: Jared Van Bortel Date: Tue, 18 Feb 2025 13:59:50 -0500 Subject: [PATCH] chat: require Qt 6.8 and fix #includes (#3498) Signed-off-by: Jared Van Bortel --- gpt4all-chat/CMakeLists.txt | 2 +- gpt4all-chat/src/chat.cpp | 12 +++++--- gpt4all-chat/src/chat.h | 15 ++++++--- gpt4all-chat/src/chatapi.cpp | 10 ++++-- gpt4all-chat/src/chatapi.h | 7 +++-- gpt4all-chat/src/chatlistmodel.cpp | 9 +++--- gpt4all-chat/src/chatlistmodel.h | 7 +++-- gpt4all-chat/src/chatllm.cpp | 16 +++++++--- gpt4all-chat/src/chatllm.h | 16 +++++----- gpt4all-chat/src/chatmodel.cpp | 4 ++- gpt4all-chat/src/chatmodel.h | 21 +++++++++---- gpt4all-chat/src/chatviewtextprocessor.cpp | 25 ++++++++------- gpt4all-chat/src/chatviewtextprocessor.h | 15 ++++----- gpt4all-chat/src/codeinterpreter.cpp | 6 +++- gpt4all-chat/src/codeinterpreter.h | 6 ++-- gpt4all-chat/src/database.cpp | 10 ++++-- gpt4all-chat/src/database.h | 11 ++++--- gpt4all-chat/src/download.cpp | 15 ++++++--- gpt4all-chat/src/download.h | 6 +++- gpt4all-chat/src/embllm.cpp | 10 +++--- gpt4all-chat/src/embllm.h | 5 +-- gpt4all-chat/src/jinja_helpers.cpp | 9 ++---- gpt4all-chat/src/jinja_helpers.h | 6 +++- gpt4all-chat/src/jinja_replacements.cpp | 3 ++ gpt4all-chat/src/llm.cpp | 4 +++ gpt4all-chat/src/llm.h | 3 +- gpt4all-chat/src/localdocs.cpp | 4 +++ gpt4all-chat/src/localdocs.h | 7 +++-- gpt4all-chat/src/localdocsmodel.cpp | 4 +-- gpt4all-chat/src/localdocsmodel.h | 10 +++--- gpt4all-chat/src/logger.cpp | 4 ++- gpt4all-chat/src/logger.h | 1 + gpt4all-chat/src/macosdock.mm | 1 + gpt4all-chat/src/main.cpp | 6 ++++ gpt4all-chat/src/modellist.cpp | 7 +++-- gpt4all-chat/src/modellist.h | 14 ++++++--- gpt4all-chat/src/mysettings.cpp | 9 ++++-- gpt4all-chat/src/mysettings.h | 10 ++++-- gpt4all-chat/src/network.cpp | 3 +- gpt4all-chat/src/network.h | 9 +++++- gpt4all-chat/src/server.cpp | 36 +++++++++------------- gpt4all-chat/src/server.h | 2 +- gpt4all-chat/src/tool.cpp | 3 ++ gpt4all-chat/src/tool.h | 2 ++ gpt4all-chat/src/toolcallparser.cpp | 4 ++- gpt4all-chat/src/toolcallparser.h | 2 +- gpt4all-chat/src/toolmodel.cpp | 1 + gpt4all-chat/src/toolmodel.h | 3 +- gpt4all-chat/src/utils.h | 7 +++-- gpt4all-chat/src/utils.inl | 1 + gpt4all-chat/src/xlsxtomd.cpp | 5 +-- gpt4all-chat/src/xlsxtomd.h | 1 + 52 files changed, 261 insertions(+), 148 deletions(-) diff --git a/gpt4all-chat/CMakeLists.txt b/gpt4all-chat/CMakeLists.txt index 5f602b68..91ce25fd 100644 --- a/gpt4all-chat/CMakeLists.txt +++ b/gpt4all-chat/CMakeLists.txt @@ -104,7 +104,7 @@ elseif (GPT4ALL_USE_QTPDF MATCHES "^(ON|AUTO)$") set(GPT4ALL_USING_QTPDF ON) list(APPEND GPT4ALL_QT_COMPONENTS Pdf) endif() -find_package(Qt6 6.5 COMPONENTS ${GPT4ALL_QT_COMPONENTS} REQUIRED) +find_package(Qt6 6.8 COMPONENTS ${GPT4ALL_QT_COMPONENTS} REQUIRED) if (QT_KNOWN_POLICY_QTP0004) qt_policy(SET QTP0004 NEW) # generate extra qmldir files on Qt 6.8+ diff --git a/gpt4all-chat/src/chat.cpp b/gpt4all-chat/src/chat.cpp index ec0ecf99..52e8e629 100644 --- a/gpt4all-chat/src/chat.cpp +++ b/gpt4all-chat/src/chat.cpp @@ -7,24 +7,26 @@ #include "toolcallparser.h" #include "toolmodel.h" -#include +#include #include #include -#include -#include -#include +#include +#include +#include #include #include #include #include -#include #include +#include #include +#include #include using namespace ToolEnums; + Chat::Chat(QObject *parent) : QObject(parent) , m_id(Network::globalInstance()->generateUniqueId()) diff --git a/gpt4all-chat/src/chat.h b/gpt4all-chat/src/chat.h index 7ac2c65d..f4ac654f 100644 --- a/gpt4all-chat/src/chat.h +++ b/gpt4all-chat/src/chat.h @@ -3,21 +3,26 @@ #include "chatllm.h" #include "chatmodel.h" -#include "database.h" // IWYU pragma: keep -#include "localdocsmodel.h" // IWYU pragma: keep +#include "database.h" +#include "localdocsmodel.h" #include "modellist.h" +#include "tool.h" #include #include #include -#include +#include // IWYU pragma: keep #include #include // IWYU pragma: keep -#include -#include +#include +#include +#include +// IWYU pragma: no_forward_declare LocalDocsCollectionsModel +// IWYU pragma: no_forward_declare ToolCallInfo class QDataStream; + class Chat : public QObject { Q_OBJECT diff --git a/gpt4all-chat/src/chatapi.cpp b/gpt4all-chat/src/chatapi.cpp index 5164cac3..aa2a7f6f 100644 --- a/gpt4all-chat/src/chatapi.cpp +++ b/gpt4all-chat/src/chatapi.cpp @@ -2,6 +2,9 @@ #include "utils.h" +#include + +#include #include #include #include @@ -9,15 +12,17 @@ #include #include #include +#include #include #include +#include #include #include -#include +#include // IWYU pragma: keep #include #include #include -#include +#include #include #include @@ -29,6 +34,7 @@ using namespace Qt::Literals::StringLiterals; //#define DEBUG + ChatAPI::ChatAPI() : QObject(nullptr) , m_modelName("gpt-3.5-turbo") diff --git a/gpt4all-chat/src/chatapi.h b/gpt4all-chat/src/chatapi.h index b763c325..f937a20d 100644 --- a/gpt4all-chat/src/chatapi.h +++ b/gpt4all-chat/src/chatapi.h @@ -3,10 +3,11 @@ #include -#include // IWYU pragma: keep +#include #include #include #include +#include #include #include @@ -17,9 +18,11 @@ #include #include +// IWYU pragma: no_forward_declare QByteArray +class ChatAPI; class QNetworkAccessManager; -class ChatAPI; + class ChatAPIWorker : public QObject { Q_OBJECT public: diff --git a/gpt4all-chat/src/chatlistmodel.cpp b/gpt4all-chat/src/chatlistmodel.cpp index 85cb44d5..eac89b83 100644 --- a/gpt4all-chat/src/chatlistmodel.cpp +++ b/gpt4all-chat/src/chatlistmodel.cpp @@ -1,23 +1,24 @@ #include "chatlistmodel.h" -#include "database.h" // IWYU pragma: keep #include "mysettings.h" +#include #include #include #include +#include #include #include #include #include #include #include -#include -#include +#include // IWYU pragma: keep #include +#include #include -#include + static constexpr quint32 CHAT_FORMAT_MAGIC = 0xF5D553CC; static constexpr qint32 CHAT_FORMAT_VERSION = 12; diff --git a/gpt4all-chat/src/chatlistmodel.h b/gpt4all-chat/src/chatlistmodel.h index 0c405b15..02d71a72 100644 --- a/gpt4all-chat/src/chatlistmodel.h +++ b/gpt4all-chat/src/chatlistmodel.h @@ -7,17 +7,20 @@ #include #include +#include #include #include #include #include #include +#include #include #include -#include +#include // IWYU pragma: keep #include -#include +#include #include +#include #include diff --git a/gpt4all-chat/src/chatllm.cpp b/gpt4all-chat/src/chatllm.cpp index c962fcd2..1fbcce8c 100644 --- a/gpt4all-chat/src/chatllm.cpp +++ b/gpt4all-chat/src/chatllm.cpp @@ -15,32 +15,40 @@ #include #include +#include #include #include #include #include -#include +#include // IWYU pragma: keep #include #include #include #include -#include +#include // IWYU pragma: keep #include // IWYU pragma: keep -#include -#include +#include // IWYU pragma: keep +#include // IWYU pragma: keep #include +#include #include #include +#include #include #include +#include #include +#include // IWYU pragma: keep #include #include #include +#include #include +#include #include #include +#include #include #include #include diff --git a/gpt4all-chat/src/chatllm.h b/gpt4all-chat/src/chatllm.h index f071c0ac..c9ec4c21 100644 --- a/gpt4all-chat/src/chatllm.h +++ b/gpt4all-chat/src/chatllm.h @@ -2,7 +2,7 @@ #define CHATLLM_H #include "chatmodel.h" -#include "database.h" // IWYU pragma: keep +#include "database.h" #include "modellist.h" #include @@ -10,29 +10,30 @@ #include #include #include -#include // IWYU pragma: keep +#include #include #include #include #include // IWYU pragma: keep -#include #include #include // IWYU pragma: keep -#include +#include #include -#include #include #include #include #include +#include #include +#include using namespace Qt::Literals::StringLiterals; -class ChatViewResponseHandler; +class ChatLLM; class QDataStream; + // NOTE: values serialized to disk, do not change or reuse enum class LLModelTypeV0 { // chat versions 2-5 MPT = 0, @@ -89,9 +90,6 @@ inline LLModelTypeV1 parseLLModelTypeV0(int v0) } } -class ChatLLM; -class ChatModel; - struct LLModelInfo { std::unique_ptr model; QFileInfo fileInfo; diff --git a/gpt4all-chat/src/chatmodel.cpp b/gpt4all-chat/src/chatmodel.cpp index f18bd1e1..db01df27 100644 --- a/gpt4all-chat/src/chatmodel.cpp +++ b/gpt4all-chat/src/chatmodel.cpp @@ -2,9 +2,11 @@ #include #include -#include +#include #include +#include + QList ChatItem::consolidateSources(const QList &sources) { diff --git a/gpt4all-chat/src/chatmodel.h b/gpt4all-chat/src/chatmodel.h index 27e6063a..21adefcb 100644 --- a/gpt4all-chat/src/chatmodel.h +++ b/gpt4all-chat/src/chatmodel.h @@ -4,32 +4,41 @@ #include "database.h" #include "tool.h" #include "toolcallparser.h" -#include "utils.h" +#include "utils.h" // IWYU pragma: keep #include "xlsxtomd.h" #include -#include #include #include #include #include #include -#include +#include +#include +#include #include #include +#include +#include // IWYU pragma: keep #include -#include +#include // IWYU pragma: keep #include +#include // IWYU pragma: keep +#include #include -#include #include -#include +#include +#include +#include #include #include +#include +#include #include #include +#include #include #include diff --git a/gpt4all-chat/src/chatviewtextprocessor.cpp b/gpt4all-chat/src/chatviewtextprocessor.cpp index c7c221a3..b3aabe75 100644 --- a/gpt4all-chat/src/chatviewtextprocessor.cpp +++ b/gpt4all-chat/src/chatviewtextprocessor.cpp @@ -1,29 +1,32 @@ #include "chatviewtextprocessor.h" +#include #include #include #include +#include +#include #include -#include #include -#include -#include +#include // IWYU pragma: keep +#include #include #include -#include -#include -#include +#include // IWYU pragma: keep +#include // IWYU pragma: keep +#include // IWYU pragma: keep #include #include #include -#include -#include +#include // IWYU pragma: keep +#include // IWYU pragma: keep #include -#include -#include -#include +#include +#include #include +#include + enum Language { None, diff --git a/gpt4all-chat/src/chatviewtextprocessor.h b/gpt4all-chat/src/chatviewtextprocessor.h index c99411bd..a897c403 100644 --- a/gpt4all-chat/src/chatviewtextprocessor.h +++ b/gpt4all-chat/src/chatviewtextprocessor.h @@ -3,18 +3,15 @@ #include #include -#include -#include // IWYU pragma: keep -#include -#include +#include // IWYU pragma: keep +#include #include #include -#include -#include +#include // IWYU pragma: keep +#include + +// IWYU pragma: no_forward_declare QQuickTextDocument -class QPainter; -class QTextDocument; -class QTextFormat; struct CodeColors { Q_GADGET diff --git a/gpt4all-chat/src/codeinterpreter.cpp b/gpt4all-chat/src/codeinterpreter.cpp index 09d95b37..6143437a 100644 --- a/gpt4all-chat/src/codeinterpreter.cpp +++ b/gpt4all-chat/src/codeinterpreter.cpp @@ -1,12 +1,16 @@ #include "codeinterpreter.h" +#include #include -#include +#include +#include // IWYU pragma: keep #include #include +#include using namespace Qt::Literals::StringLiterals; + CodeInterpreter::CodeInterpreter() : Tool() , m_error(ToolEnums::Error::NoError) diff --git a/gpt4all-chat/src/codeinterpreter.h b/gpt4all-chat/src/codeinterpreter.h index f28439d0..aa6db892 100644 --- a/gpt4all-chat/src/codeinterpreter.h +++ b/gpt4all-chat/src/codeinterpreter.h @@ -4,11 +4,13 @@ #include "tool.h" #include "toolcallparser.h" -#include #include #include -#include #include +#include + +class QJSEngine; + class JavaScriptConsoleCapture : public QObject { diff --git a/gpt4all-chat/src/database.cpp b/gpt4all-chat/src/database.cpp index 6f9fa5e7..51bc705f 100644 --- a/gpt4all-chat/src/database.cpp +++ b/gpt4all-chat/src/database.cpp @@ -1,19 +1,21 @@ #include "database.h" #include "mysettings.h" -#include "utils.h" +#include "utils.h" // IWYU pragma: keep #include #include +#include #include -#include #include #include #include #include #include +#include #include +#include #include #include #include @@ -22,8 +24,9 @@ #include #include #include -#include #include +#include +#include #include #include @@ -46,6 +49,7 @@ namespace us = unum::usearch; //#define DEBUG //#define DEBUG_EXAMPLE + namespace { /* QFile that checks input for binary data. If seen, it fails the read and returns true diff --git a/gpt4all-chat/src/database.h b/gpt4all-chat/src/database.h index 45924b36..ef98e977 100644 --- a/gpt4all-chat/src/database.h +++ b/gpt4all-chat/src/database.h @@ -1,7 +1,7 @@ #ifndef DATABASE_H #define DATABASE_H -#include "embllm.h" // IWYU pragma: keep +#include "embllm.h" #include #include @@ -15,11 +15,11 @@ #include #include #include -#include +#include // IWYU pragma: keep #include #include -#include -#include +#include // IWYU pragma: keep +#include #include #include @@ -28,7 +28,7 @@ #include #include #include -#include +#include // IWYU pragma: keep using namespace Qt::Literals::StringLiterals; @@ -39,6 +39,7 @@ class QSqlQuery; class QTextStream; class QTimer; + /* Version 0: GPT4All v2.4.3, full-text search * Version 1: GPT4All v2.5.3, embeddings in hsnwlib * Version 2: GPT4All v3.0.0, embeddings in sqlite diff --git a/gpt4all-chat/src/download.cpp b/gpt4all-chat/src/download.cpp index 0f5b7b5d..6891feeb 100644 --- a/gpt4all-chat/src/download.cpp +++ b/gpt4all-chat/src/download.cpp @@ -10,32 +10,37 @@ #include #include #include -#include +#include // IWYU pragma: keep #include #include #include #include +#include #include #include -#include +#include // IWYU pragma: keep +#include +#include #include #include #include -#include +#include // IWYU pragma: keep #include #include #include -#include +#include // IWYU pragma: keep #include +#include #include +#include -#include #include #include #include using namespace Qt::Literals::StringLiterals; + class MyDownload: public Download { }; Q_GLOBAL_STATIC(MyDownload, downloadInstance) Download *Download::globalInstance() diff --git a/gpt4all-chat/src/download.h b/gpt4all-chat/src/download.h index 9cb46a9e..6db0c6ce 100644 --- a/gpt4all-chat/src/download.h +++ b/gpt4all-chat/src/download.h @@ -13,10 +13,14 @@ #include #include #include -#include +#include +// IWYU pragma: no_forward_declare QFile +// IWYU pragma: no_forward_declare QList +// IWYU pragma: no_forward_declare QSslError class QByteArray; + struct ReleaseInfo { Q_GADGET Q_PROPERTY(QString version MEMBER version) diff --git a/gpt4all-chat/src/embllm.cpp b/gpt4all-chat/src/embllm.cpp index 7906a56f..964ab7b7 100644 --- a/gpt4all-chat/src/embllm.cpp +++ b/gpt4all-chat/src/embllm.cpp @@ -1,35 +1,35 @@ #include "embllm.h" -#include "modellist.h" #include "mysettings.h" #include #include #include -#include #include #include -#include #include #include #include +#include #include -#include +#include // IWYU pragma: keep #include #include #include #include #include -#include +#include #include #include +#include #include #include using namespace Qt::Literals::StringLiterals; + static const QString EMBEDDING_MODEL_NAME = u"nomic-embed-text-v1.5"_s; static const QString LOCAL_EMBEDDING_MODEL = u"nomic-embed-text-v1.5.f16.gguf"_s; diff --git a/gpt4all-chat/src/embllm.h b/gpt4all-chat/src/embllm.h index 91376650..2a55a4e0 100644 --- a/gpt4all-chat/src/embllm.h +++ b/gpt4all-chat/src/embllm.h @@ -5,10 +5,10 @@ #include #include #include -#include +#include // IWYU pragma: keep #include #include -#include +#include // IWYU pragma: keep #include #include @@ -16,6 +16,7 @@ class LLModel; class QNetworkAccessManager; + struct EmbeddingChunk { QString model; // TODO(jared): use to select model int folder_id; diff --git a/gpt4all-chat/src/jinja_helpers.cpp b/gpt4all-chat/src/jinja_helpers.cpp index 9ae11f7d..c3033d78 100644 --- a/gpt4all-chat/src/jinja_helpers.cpp +++ b/gpt4all-chat/src/jinja_helpers.cpp @@ -1,16 +1,11 @@ #include "jinja_helpers.h" -#include "utils.h" - -#include - #include #include -#include -#include #include -#include +#include +#include namespace views = std::views; using json = nlohmann::ordered_json; diff --git a/gpt4all-chat/src/jinja_helpers.h b/gpt4all-chat/src/jinja_helpers.h index 75dc1776..fb27b75b 100644 --- a/gpt4all-chat/src/jinja_helpers.h +++ b/gpt4all-chat/src/jinja_helpers.h @@ -5,7 +5,11 @@ #include -#include +#include // IWYU pragma: keep + +// IWYU pragma: no_forward_declare MessageItem +// IWYU pragma: no_forward_declare PromptAttachment +// IWYU pragma: no_forward_declare ResultInfo using json = nlohmann::ordered_json; diff --git a/gpt4all-chat/src/jinja_replacements.cpp b/gpt4all-chat/src/jinja_replacements.cpp index c82da7ef..5817dd3a 100644 --- a/gpt4all-chat/src/jinja_replacements.cpp +++ b/gpt4all-chat/src/jinja_replacements.cpp @@ -2,6 +2,9 @@ #include "jinja_replacements.h" +#include + + // This is a list of prompt templates known to GPT4All and their associated replacements which are automatically used // instead when loading the chat template from GGUF. These exist for two primary reasons: // - HuggingFace model authors make ugly chat templates because they do not expect the end user to see them; diff --git a/gpt4all-chat/src/llm.cpp b/gpt4all-chat/src/llm.cpp index 02aa1499..bcddcae3 100644 --- a/gpt4all-chat/src/llm.cpp +++ b/gpt4all-chat/src/llm.cpp @@ -12,6 +12,9 @@ #include #include #include +#include + +#include #ifdef GPT4ALL_OFFLINE_INSTALLER # include @@ -25,6 +28,7 @@ using namespace Qt::Literals::StringLiterals; + class MyLLM: public LLM { }; Q_GLOBAL_STATIC(MyLLM, llmInstance) LLM *LLM::globalInstance() diff --git a/gpt4all-chat/src/llm.h b/gpt4all-chat/src/llm.h index 7247b89c..797a47e8 100644 --- a/gpt4all-chat/src/llm.h +++ b/gpt4all-chat/src/llm.h @@ -3,7 +3,8 @@ #include #include -#include +#include + class LLM : public QObject { diff --git a/gpt4all-chat/src/localdocs.cpp b/gpt4all-chat/src/localdocs.cpp index 0b69e834..1e37b36c 100644 --- a/gpt4all-chat/src/localdocs.cpp +++ b/gpt4all-chat/src/localdocs.cpp @@ -5,10 +5,14 @@ #include "mysettings.h" #include +#include #include #include +#include #include #include +#include + class MyLocalDocs: public LocalDocs { }; Q_GLOBAL_STATIC(MyLocalDocs, localDocsInstance) diff --git a/gpt4all-chat/src/localdocs.h b/gpt4all-chat/src/localdocs.h index 4a017fe2..eb669d3e 100644 --- a/gpt4all-chat/src/localdocs.h +++ b/gpt4all-chat/src/localdocs.h @@ -2,11 +2,14 @@ #define LOCALDOCS_H #include "database.h" -#include "localdocsmodel.h" // IWYU pragma: keep +#include "localdocsmodel.h" #include #include -#include +#include // IWYU pragma: keep + +// IWYU pragma: no_forward_declare LocalDocsModel + class LocalDocs : public QObject { diff --git a/gpt4all-chat/src/localdocsmodel.cpp b/gpt4all-chat/src/localdocsmodel.cpp index a1077362..b1552299 100644 --- a/gpt4all-chat/src/localdocsmodel.cpp +++ b/gpt4all-chat/src/localdocsmodel.cpp @@ -5,11 +5,11 @@ #include #include -#include -#include +#include // IWYU pragma: keep #include + LocalDocsCollectionsModel::LocalDocsCollectionsModel(QObject *parent) : QSortFilterProxyModel(parent) { diff --git a/gpt4all-chat/src/localdocsmodel.h b/gpt4all-chat/src/localdocsmodel.h index ddce8963..c79c0fb7 100644 --- a/gpt4all-chat/src/localdocsmodel.h +++ b/gpt4all-chat/src/localdocsmodel.h @@ -4,17 +4,19 @@ #include "database.h" #include -#include -#include #include -#include +#include // IWYU pragma: keep #include #include -#include #include #include +class QByteArray; +class QVariant; +template class QHash; + + class LocalDocsCollectionsModel : public QSortFilterProxyModel { Q_OBJECT diff --git a/gpt4all-chat/src/logger.cpp b/gpt4all-chat/src/logger.cpp index ab85d508..4819adea 100644 --- a/gpt4all-chat/src/logger.cpp +++ b/gpt4all-chat/src/logger.cpp @@ -2,9 +2,10 @@ #include #include +#include #include #include -#include +#include // IWYU pragma: keep #include #include @@ -13,6 +14,7 @@ using namespace Qt::Literals::StringLiterals; + class MyLogger: public Logger { }; Q_GLOBAL_STATIC(MyLogger, loggerInstance) Logger *Logger::globalInstance() diff --git a/gpt4all-chat/src/logger.h b/gpt4all-chat/src/logger.h index 09d35417..071680b0 100644 --- a/gpt4all-chat/src/logger.h +++ b/gpt4all-chat/src/logger.h @@ -6,6 +6,7 @@ #include #include + class Logger { public: explicit Logger(); diff --git a/gpt4all-chat/src/macosdock.mm b/gpt4all-chat/src/macosdock.mm index aba35069..20f15143 100644 --- a/gpt4all-chat/src/macosdock.mm +++ b/gpt4all-chat/src/macosdock.mm @@ -2,6 +2,7 @@ #include + void MacOSDock::showIcon() { [[NSApplication sharedApplication] setActivationPolicy:NSApplicationActivationPolicyRegular]; diff --git a/gpt4all-chat/src/main.cpp b/gpt4all-chat/src/main.cpp index 9e865c81..cf782ead 100644 --- a/gpt4all-chat/src/main.cpp +++ b/gpt4all-chat/src/main.cpp @@ -12,18 +12,24 @@ #include #include +#include #include #include #include +#include #include #include #include #include #include #include +#include #include #include +#include #include +#include +#include #if G4A_CONFIG(force_d3d12) # include diff --git a/gpt4all-chat/src/modellist.cpp b/gpt4all-chat/src/modellist.cpp index d075b770..6311e7e7 100644 --- a/gpt4all-chat/src/modellist.cpp +++ b/gpt4all-chat/src/modellist.cpp @@ -9,9 +9,11 @@ #include #include +#include #include #include #include +#include #include #include #include @@ -29,14 +31,15 @@ #include #include #include -#include +#include // IWYU pragma: keep #include #include #include +#include #include +#include #include -#include #include #include #include diff --git a/gpt4all-chat/src/modellist.h b/gpt4all-chat/src/modellist.h index f9b1713b..49eee8c4 100644 --- a/gpt4all-chat/src/modellist.h +++ b/gpt4all-chat/src/modellist.h @@ -5,25 +5,29 @@ #include #include #include -#include +#include // IWYU pragma: keep #include #include #include #include #include -#include -#include +#include // IWYU pragma: keep +#include // IWYU pragma: keep #include #include #include #include -#include +#include // IWYU pragma: keep #include -#include +#include #include #include +// IWYU pragma: no_forward_declare QObject +// IWYU pragma: no_forward_declare QSslError +class QUrl; + using namespace Qt::Literals::StringLiterals; diff --git a/gpt4all-chat/src/mysettings.cpp b/gpt4all-chat/src/mysettings.cpp index ffccc912..4bc1595f 100644 --- a/gpt4all-chat/src/mysettings.cpp +++ b/gpt4all-chat/src/mysettings.cpp @@ -11,22 +11,27 @@ #include #include #include -#include +#include // IWYU pragma: keep #include #include #include #include #include -#include #include +#include #include #include #include #include +#if !(defined(Q_OS_MAC) && defined(__aarch64__)) + #include +#endif + using namespace Qt::Literals::StringLiterals; + // used only for settings serialization, do not translate static const QStringList suggestionModeNames { "LocalDocsOnly", "On", "Off" }; static const QStringList chatThemeNames { "Light", "Dark", "LegacyDark" }; diff --git a/gpt4all-chat/src/mysettings.h b/gpt4all-chat/src/mysettings.h index a1a61e06..59cf1fa0 100644 --- a/gpt4all-chat/src/mysettings.h +++ b/gpt4all-chat/src/mysettings.h @@ -4,20 +4,24 @@ #include "modellist.h" // IWYU pragma: keep #include -#include +#include // IWYU pragma: keep #include #include #include #include #include -#include +#include // IWYU pragma: keep #include -#include +#include #include #include #include +// IWYU pragma: no_forward_declare QModelIndex +class QLocale; + + namespace MySettingsEnums { Q_NAMESPACE diff --git a/gpt4all-chat/src/network.cpp b/gpt4all-chat/src/network.cpp index 70495fbe..e0c04f1d 100644 --- a/gpt4all-chat/src/network.cpp +++ b/gpt4all-chat/src/network.cpp @@ -8,7 +8,6 @@ #include "localdocsmodel.h" #include "modellist.h" #include "mysettings.h" -#include "utils.h" #include @@ -29,7 +28,6 @@ #include #include #include -#include #include #include #include @@ -49,6 +47,7 @@ using namespace Qt::Literals::StringLiterals; #define STR_(x) #x #define STR(x) STR_(x) + static const char MIXPANEL_TOKEN[] = "ce362e568ddaee16ed243eaffb5860a2"; #ifdef __clang__ diff --git a/gpt4all-chat/src/network.h b/gpt4all-chat/src/network.h index 7f4ae566..8f0a8bb4 100644 --- a/gpt4all-chat/src/network.h +++ b/gpt4all-chat/src/network.h @@ -11,7 +11,14 @@ #include #include #include -#include +#include // IWYU pragma: keep +#include // IWYU pragma: keep + +// IWYU pragma: no_forward_declare QByteArray +// IWYU pragma: no_forward_declare QNetworkReply +// IWYU pragma: no_forward_declare QSslError +class QUrl; + struct KeyValue { QString key; diff --git a/gpt4all-chat/src/server.cpp b/gpt4all-chat/src/server.cpp index 20a3fa7a..5f04b6f7 100644 --- a/gpt4all-chat/src/server.cpp +++ b/gpt4all-chat/src/server.cpp @@ -4,9 +4,10 @@ #include "chatmodel.h" #include "modellist.h" #include "mysettings.h" -#include "utils.h" +#include "utils.h" // IWYU pragma: keep #include +#include #include #include @@ -15,32 +16,38 @@ #include #include #include +#include #include +#include #include #include #include #include #include #include -#include +#include // IWYU pragma: keep +#include #include #include +#include #include -#include #include +#include +#include +#include #include +#include #include #include +#include #include #include -#include +#include #include #include - -#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) -# include -#endif +#include +#include using namespace std::string_literals; using namespace Qt::Literals::StringLiterals; @@ -451,23 +458,17 @@ static QJsonObject requestFromJson(const QByteArray &request) void Server::start() { m_server = std::make_unique(this); -#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) auto *tcpServer = new QTcpServer(m_server.get()); -#else - auto *tcpServer = m_server.get(); -#endif auto port = MySettings::globalInstance()->networkPort(); if (!tcpServer->listen(QHostAddress::LocalHost, port)) { qWarning() << "Server ERROR: Failed to listen on port" << port; return; } -#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) if (!m_server->bind(tcpServer)) { qWarning() << "Server ERROR: Failed to HTTP server to socket" << port; return; } -#endif m_server->route("/v1/models", QHttpServerRequest::Method::Get, [](const QHttpServerRequest &) { @@ -607,19 +608,12 @@ void Server::start() } ); -#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) m_server->addAfterRequestHandler(this, [](const QHttpServerRequest &req, QHttpServerResponse &resp) { Q_UNUSED(req); auto headers = resp.headers(); headers.append("Access-Control-Allow-Origin"_L1, "*"_L1); resp.setHeaders(std::move(headers)); }); -#else - m_server->afterRequest([](QHttpServerResponse &&resp) { - resp.addHeader("Access-Control-Allow-Origin", "*"); - return std::move(resp); - }); -#endif connect(this, &Server::requestResetResponseState, m_chat, &Chat::resetResponseState, Qt::BlockingQueuedConnection); } diff --git a/gpt4all-chat/src/server.h b/gpt4all-chat/src/server.h index 092624e9..465bf524 100644 --- a/gpt4all-chat/src/server.h +++ b/gpt4all-chat/src/server.h @@ -8,7 +8,7 @@ #include #include #include -#include +#include // IWYU pragma: keep #include #include diff --git a/gpt4all-chat/src/tool.cpp b/gpt4all-chat/src/tool.cpp index 4aa877f2..ca3eb0e3 100644 --- a/gpt4all-chat/src/tool.cpp +++ b/gpt4all-chat/src/tool.cpp @@ -1,5 +1,8 @@ #include "tool.h" +#include +#include + #include using json = nlohmann::ordered_json; diff --git a/gpt4all-chat/src/tool.h b/gpt4all-chat/src/tool.h index 0af645f5..d9667740 100644 --- a/gpt4all-chat/src/tool.h +++ b/gpt4all-chat/src/tool.h @@ -9,6 +9,8 @@ #include #include +class QDataStream; + using json = nlohmann::ordered_json; diff --git a/gpt4all-chat/src/toolcallparser.cpp b/gpt4all-chat/src/toolcallparser.cpp index 2d53401a..91cc3e33 100644 --- a/gpt4all-chat/src/toolcallparser.cpp +++ b/gpt4all-chat/src/toolcallparser.cpp @@ -2,8 +2,10 @@ #include "tool.h" +#include #include -#include +#include +#include #include diff --git a/gpt4all-chat/src/toolcallparser.h b/gpt4all-chat/src/toolcallparser.h index 4676fa4a..9e50ca51 100644 --- a/gpt4all-chat/src/toolcallparser.h +++ b/gpt4all-chat/src/toolcallparser.h @@ -4,7 +4,7 @@ #include #include #include -#include +#include // IWYU pragma: keep namespace ToolEnums { enum class ParseState; } diff --git a/gpt4all-chat/src/toolmodel.cpp b/gpt4all-chat/src/toolmodel.cpp index aade79f8..551708ef 100644 --- a/gpt4all-chat/src/toolmodel.cpp +++ b/gpt4all-chat/src/toolmodel.cpp @@ -6,6 +6,7 @@ #include #include + class MyToolModel: public ToolModel { }; Q_GLOBAL_STATIC(MyToolModel, toolModelInstance) ToolModel *ToolModel::globalInstance() diff --git a/gpt4all-chat/src/toolmodel.h b/gpt4all-chat/src/toolmodel.h index b20e39cc..531c9af2 100644 --- a/gpt4all-chat/src/toolmodel.h +++ b/gpt4all-chat/src/toolmodel.h @@ -9,7 +9,8 @@ #include #include #include -#include +#include + class ToolModel : public QAbstractListModel { diff --git a/gpt4all-chat/src/utils.h b/gpt4all-chat/src/utils.h index ac67e892..4d2b8ecd 100644 --- a/gpt4all-chat/src/utils.h +++ b/gpt4all-chat/src/utils.h @@ -5,7 +5,7 @@ #include #include -#include +#include // IWYU pragma: keep #include #include #include @@ -13,8 +13,9 @@ #include #include -#include +#include // IWYU pragma: keep +// IWYU pragma: no_forward_declare QJsonValue class QJsonObject; @@ -40,4 +41,4 @@ MAKE_FORMATTER(QVariant, value.toString().toUtf8()); // alternative to QJsonObject's initializer_list constructor that accepts Latin-1 strings QJsonObject makeJsonObject(std::initializer_list> args); -#include "utils.inl" +#include "utils.inl" // IWYU pragma: export diff --git a/gpt4all-chat/src/utils.inl b/gpt4all-chat/src/utils.inl index 8aeb1f88..3b2a21a4 100644 --- a/gpt4all-chat/src/utils.inl +++ b/gpt4all-chat/src/utils.inl @@ -1,5 +1,6 @@ #include + inline QJsonObject makeJsonObject(std::initializer_list> args) { QJsonObject obj; diff --git a/gpt4all-chat/src/xlsxtomd.cpp b/gpt4all-chat/src/xlsxtomd.cpp index 4f25e2e7..84121261 100644 --- a/gpt4all-chat/src/xlsxtomd.cpp +++ b/gpt4all-chat/src/xlsxtomd.cpp @@ -7,15 +7,16 @@ #include #include +#include #include #include +#include #include #include #include -#include +#include // IWYU pragma: keep #include #include -#include #include #include diff --git a/gpt4all-chat/src/xlsxtomd.h b/gpt4all-chat/src/xlsxtomd.h index 466903c4..a99b2079 100644 --- a/gpt4all-chat/src/xlsxtomd.h +++ b/gpt4all-chat/src/xlsxtomd.h @@ -4,6 +4,7 @@ class QIODevice; class QString; + class XLSXToMD { public: