From fc8b3988619da4aeafc02aea40ea570978e1260b Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Fri, 27 Aug 2021 13:35:08 +0200 Subject: [PATCH] BUILD: Only place external headers in the precompiled header to avoid recompiling it every time a local header is changed Also fix all the warnings present with clang and get ride of most of the forward definitions when possible. --- CMakeLists.txt | 40 ++++++++++++++++++++++++- src/Lib/AbstractMediaContext.hh | 11 ++----- src/Lib/Ass/Ass.hh | 1 - src/Lib/Ass/AssFactory.cc | 3 -- src/Lib/Ass/AssFactory.hh | 12 +------- src/Lib/Ass/AssPrivate.hh | 2 -- src/Lib/Ass/Line.cc | 2 -- src/Lib/Ass/Line.hh | 8 +---- src/Lib/Ass/Style.cc | 5 +--- src/Lib/Ass/Style.hh | 26 +++++++--------- src/Lib/Ass/StyleProperties.hh | 9 +----- src/Lib/Ass/Syl.hh | 4 +-- src/Lib/Audio.hh | 24 +-------------- src/Lib/Script/CRTPLuaScriptObject.hh | 4 +-- src/Lib/Script/LuaContext.cc | 2 +- src/Lib/Script/LuaContext.hh | 16 +++++----- src/Lib/Script/ScriptStore.hh | 3 +- src/Lib/Video.cc | 3 -- src/Lib/Video.hh | 15 +--------- src/UI/AboutWindow.cc | 14 +++------ src/UI/AboutWindow.hh | 4 ++- src/UI/DocumentViews/AssLinesModel.hh | 6 ++-- src/UI/DocumentViews/AssLinesView.hh | 4 +-- src/UI/DocumentViews/AudioVisualizer.hh | 2 +- src/UI/DocumentViews/TimingBar.hh | 2 +- src/UI/DocumentViews/TimingView.hh | 2 +- src/UI/FakeVim/FakeVimActions.cc | 5 ++++ src/UI/FakeVim/FakeVimActions.hh | 6 +++- src/UI/MainWindow.hh | 5 +--- src/UI/ScriptDocumentView.hh | 23 ++++---------- src/UI/VivyDocumentView.hh | 13 ++++---- src/VivyApplication.hh | 5 ++-- 32 files changed, 111 insertions(+), 170 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 472ec5de..8ecf5472 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,20 +70,57 @@ target_link_libraries(Vivy PRIVATE lua) target_include_directories(Vivy PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/inc) target_precompile_headers(Vivy PRIVATE # Private Vivy headers - ${Vivy_INC} + # ${Vivy_INC} # STL headers <memory> <vector> <atomic> + <algorithm> + <stdexcept> + <sstream> + <map> + # Qt headers + <QtGlobal> + <QObject> + <QRegularExpression> + <QRegExp> <QString> + <QVariant> + <QFile> + <QList> <QVector> <QMap> + + <QJsonObject> + <QJsonArray> + <QJsonDocument> + + <QTextDocument> + <QColor> <QWidget> <QIcon> + <QFont> + <QPixmap> + <QApplication> + <QCloseEvent> + <QLabel> + <QPushButton> + <QVBoxLayout> + <QHBoxLayout> + <QEvent> + <QMouseEvent> + <QTextEdit> + <QDockWidget> + <QMenu> + <QFileDialog> + <QMutex> + <QMainWindow> + <QPainter> + <QPlainTextEdit> ) # Set Vivy's needed C++ features @@ -133,6 +170,7 @@ if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") # Disable some things because we want C++20 and don't constrol some Qt # generated files... Also permit VLA -Wno-c++98-compat -Wno-c++98-c++11-c++14-c++17-compat-pedantic + -Wno-c++98-compat-pedantic -Wno-old-style-cast -Wno-extra-semi-stmt -Wno-redundant-parens -Wno-padded diff --git a/src/Lib/AbstractMediaContext.hh b/src/Lib/AbstractMediaContext.hh index a2611c1d..35ada2ed 100644 --- a/src/Lib/AbstractMediaContext.hh +++ b/src/Lib/AbstractMediaContext.hh @@ -14,13 +14,6 @@ extern "C" { } #include "Utils.hh" -#include <QtGlobal> -#include <QMap> -#include <QVector> -#include <QString> -#include <QJsonObject> -#include <QJsonDocument> -#include <QJsonArray> namespace Vivy { @@ -61,8 +54,8 @@ protected: : codecId(streamArg->codecpar->codec_id) , codec(streamCodec) , codecParams(streamArg->codecpar) - , stream(streamArg) , dataFormat(formatArg) + , stream(streamArg) , streamIndexInContext(index) { if (codec == nullptr) @@ -166,6 +159,8 @@ public: << "and default stream index" << defaultStreamIndex; } + virtual ~AbstractMediaContext() {} + StreamWeakPtr getStream(int index) const noexcept { if (index < 0) diff --git a/src/Lib/Ass/Ass.hh b/src/Lib/Ass/Ass.hh index acb14ff2..d7081d6a 100644 --- a/src/Lib/Ass/Ass.hh +++ b/src/Lib/Ass/Ass.hh @@ -7,6 +7,5 @@ #include "AssPrivate.hh" #include "AssFactory.hh" #include "StyleProperties.hh" -#include <memory.h> #endif // VIVY_ASS_ASS_H diff --git a/src/Lib/Ass/AssFactory.cc b/src/Lib/Ass/AssFactory.cc index a8768767..08ca4b7e 100644 --- a/src/Lib/Ass/AssFactory.cc +++ b/src/Lib/Ass/AssFactory.cc @@ -1,8 +1,5 @@ #include "AssFactory.hh" -#include <algorithm> -#include <stdexcept> - using namespace Vivy::Ass; bool diff --git a/src/Lib/Ass/AssFactory.hh b/src/Lib/Ass/AssFactory.hh index f21fddb1..b220c0f1 100644 --- a/src/Lib/Ass/AssFactory.hh +++ b/src/Lib/Ass/AssFactory.hh @@ -6,12 +6,6 @@ #include "Line.hh" #include "AssPrivate.hh" -#include <memory> -#include <QFile> -#include <QMap> -#include <QVariant> -#include <QString> - // An ASS file is basically an INI file, but some keys are present multiple // times (V4+ Styles/Style, Events/Dialogue, Events/Comment). @@ -21,11 +15,7 @@ class AssFactory final { VIVY_UNMOVABLE_OBJECT(AssFactory) public: - enum class Section { - ScriptInfo = 1, - Styles = 2, - Events = 3, - }; + enum class Section { ScriptInfo = 1, Styles = 2, Events = 3 }; using SectionContent = QMap<QString, QVariant>; diff --git a/src/Lib/Ass/AssPrivate.hh b/src/Lib/Ass/AssPrivate.hh index 71f9c7ee..39d931a9 100644 --- a/src/Lib/Ass/AssPrivate.hh +++ b/src/Lib/Ass/AssPrivate.hh @@ -1,7 +1,5 @@ #pragma once -#include <memory> - namespace Vivy::Ass { class Style; diff --git a/src/Lib/Ass/Line.cc b/src/Lib/Ass/Line.cc index c509af74..fe0b257a 100644 --- a/src/Lib/Ass/Line.cc +++ b/src/Lib/Ass/Line.cc @@ -1,8 +1,6 @@ #include "Line.hh" #include "AssFactory.hh" -#include <QRegularExpression> - using namespace Vivy::Ass; Line::Line(AssFactory *const factory, const QString &lineString) diff --git a/src/Lib/Ass/Line.hh b/src/Lib/Ass/Line.hh index 7463dad6..15984da1 100644 --- a/src/Lib/Ass/Line.hh +++ b/src/Lib/Ass/Line.hh @@ -1,8 +1,5 @@ -#ifndef VIVY_ASS_LINE_H -#define VIVY_ASS_LINE_H +#pragma once -#include <QString> -#include <QtGlobal> #include "Syl.hh" #include "StyleProperties.hh" #include "Style.hh" @@ -47,7 +44,4 @@ public: private: void initSylFromString(const QString &) noexcept; }; - } - -#endif // VIVY_ASS_LINE_H diff --git a/src/Lib/Ass/Style.cc b/src/Lib/Ass/Style.cc index 4c2fd133..73afcbb1 100644 --- a/src/Lib/Ass/Style.cc +++ b/src/Lib/Ass/Style.cc @@ -1,8 +1,5 @@ #include "Style.hh" - -#include <stdexcept> -#include <QJsonDocument> -#include <QJsonObject> +#include "../Utils.hh" using namespace Vivy::Ass; diff --git a/src/Lib/Ass/Style.hh b/src/Lib/Ass/Style.hh index 9b9bba68..696cfc79 100644 --- a/src/Lib/Ass/Style.hh +++ b/src/Lib/Ass/Style.hh @@ -1,20 +1,17 @@ -#ifndef VIVY_STYLE_H -#define VIVY_STYLE_H - -#include <QString> -#include <QVector> -#include <QtGlobal> -#include <QColor> -#include <QObject> +#pragma once + #include "AssPrivate.hh" namespace Vivy::Ass { -namespace Color -{ -QColor fromString(const QString &) noexcept; -QString toString(const QColor &) noexcept; -static inline const QColor defaultValue = QColor(0, 0, 0, 0); +struct Color { + static QColor fromString(const QString &) noexcept; + static QString toString(const QColor &) noexcept; + + static inline const QColor defaultValue = QColor(0, 0, 0, 0); + +private: + Color() = default; }; class Style final { @@ -47,7 +44,4 @@ public: QString getElementName() const noexcept; QJsonDocument getProperties() const noexcept; }; - } - -#endif diff --git a/src/Lib/Ass/StyleProperties.hh b/src/Lib/Ass/StyleProperties.hh index 374d9e2a..a72acf98 100644 --- a/src/Lib/Ass/StyleProperties.hh +++ b/src/Lib/Ass/StyleProperties.hh @@ -1,8 +1,4 @@ -#ifndef VIVY_ASS_STYLE_PROPERTIES_H -#define VIVY_ASS_STYLE_PROPERTIES_H - -#include <QColor> -#include <QString> +#pragma once #include "Style.hh" namespace Vivy::Ass @@ -31,7 +27,4 @@ struct StyleProperties final { // Alignement is bottom center int alignment{ 2 }; }; - } - -#endif // VIVY_ASS_STYLE_PROPERTIES_H diff --git a/src/Lib/Ass/Syl.hh b/src/Lib/Ass/Syl.hh index 79c7a9bc..084e14e5 100644 --- a/src/Lib/Ass/Syl.hh +++ b/src/Lib/Ass/Syl.hh @@ -21,8 +21,8 @@ public: public: enum class ConstructMode { - Raw, // Don't read ASS tags - ReadAssTags, // Read ass tags + Raw, // Don't read ASS tags + ReadAssTags // Read ass tags }; explicit Syl(const Syl &) noexcept = default; diff --git a/src/Lib/Audio.hh b/src/Lib/Audio.hh index 1e34c494..a87e3dc2 100644 --- a/src/Lib/Audio.hh +++ b/src/Lib/Audio.hh @@ -4,20 +4,7 @@ #error "This is a C++ header" #endif -extern "C" { -#include <libavutil/opt.h> -#include <libavcodec/avcodec.h> -#include <libavformat/avformat.h> -#include <libswresample/swresample.h> -#include <libavcodec/avfft.h> -#include <memory.h> -} - -#include "Utils.hh" -#include <QtGlobal> -#include <QMap> -#include <QVector> -#include <QString> +#include "AbstractMediaContext.hh" namespace Vivy { @@ -86,14 +73,5 @@ private: using AVFormatContextPtr = std::unique_ptr<AVFormatContext, decltype(avFormatContextDeleter)>; AVFormatContextPtr format{ avformat_alloc_context(), avFormatContextDeleter }; - - const QString filePath; // Usefull information - QMap<uint, StreamPtr> audioStreams{}; // THe audio streams of the file - - int defaultStreamIndex{ -1 }; - - // Spare always null shared pointer, to be used when the audioStream[i] was - // not found. - StreamPtr spareNullSreamPtr{ nullptr }; }; } diff --git a/src/Lib/Script/CRTPLuaScriptObject.hh b/src/Lib/Script/CRTPLuaScriptObject.hh index 8e9920da..671cd3ac 100644 --- a/src/Lib/Script/CRTPLuaScriptObject.hh +++ b/src/Lib/Script/CRTPLuaScriptObject.hh @@ -48,12 +48,12 @@ getJobIteratorTypeFromString(const std::string_view it) noexcept // CRTP to expose objects to Lua template <class Object> class CRTPLuaScriptObject { protected: - static void __attribute__((__noreturn__)) - luaGlobalError(lua_State *const L, const std::string &str) noexcept + [[noreturn]] static void luaGlobalError(lua_State *const L, const std::string &str) noexcept { const auto *const context = LuaContext::getContext(L); lua_pushfstring(L, "%s:0:%s", context->getCurrentLuaFile().c_str(), str.c_str()); lua_error(L); + exit(EXIT_FAILURE); // lua_error should not return anything } static bool PushFunctionFromRegistry(lua_State *const L, const int key) noexcept diff --git a/src/Lib/Script/LuaContext.cc b/src/Lib/Script/LuaContext.cc index f5b4d341..99c42e9c 100644 --- a/src/Lib/Script/LuaContext.cc +++ b/src/Lib/Script/LuaContext.cc @@ -10,7 +10,7 @@ // LuaContext implementation using namespace Vivy::Script; -LuaContext::LuaContext(ScriptStore::LoggerType &out, ScriptStore::LoggerType &err) noexcept +LuaContext::LuaContext(LoggerType &out, LoggerType &err) noexcept : L(luaL_newstate()) , streamOut(out) , streamErr(err) diff --git a/src/Lib/Script/LuaContext.hh b/src/Lib/Script/LuaContext.hh index a852aac6..161b01e7 100644 --- a/src/Lib/Script/LuaContext.hh +++ b/src/Lib/Script/LuaContext.hh @@ -1,9 +1,6 @@ #pragma once -#include "ScriptStore.hh" -#include <sstream> -#include <vector> -#include <map> +#include "../Utils.hh" struct lua_State; class QString; @@ -15,6 +12,7 @@ class ScriptDocument; namespace Vivy::Script { +class ScriptStore; class ModuleDeclaration; class FunctionDeclaration; class JobDeclaration; @@ -26,6 +24,10 @@ namespace Vivy::Script class LuaContext final { VIVY_UNMOVABLE_OBJECT(LuaContext) +public: + using LoggerType = std::stringstream; + +private: using string_view = const std::string_view; lua_State *L{ nullptr }; @@ -40,15 +42,15 @@ class LuaContext final { static inline std::map<const lua_State *const, LuaContext *const> contextList = {}; - ScriptStore::LoggerType &streamOut; - ScriptStore::LoggerType &streamErr; + LoggerType &streamOut; + LoggerType &streamErr; public: enum class Code { Success, Error }; static constexpr inline Code Success = Code::Success; static constexpr inline Code Error = Code::Error; - LuaContext(ScriptStore::LoggerType &out, ScriptStore::LoggerType &err) noexcept; + LuaContext(LoggerType &out, LoggerType &err) noexcept; ~LuaContext() noexcept; Code loadDocument(std::shared_ptr<ScriptDocument>) noexcept; diff --git a/src/Lib/Script/ScriptStore.hh b/src/Lib/Script/ScriptStore.hh index dd4266a9..cbfe85d9 100644 --- a/src/Lib/Script/ScriptStore.hh +++ b/src/Lib/Script/ScriptStore.hh @@ -2,6 +2,7 @@ #include "../CRTPStore.hh" #include "ScriptDocument.hh" +#include "LuaContext.hh" #include <sstream> #include <optional> @@ -20,7 +21,7 @@ class ScriptStore final : public CRTPStore<ScriptStore, ScriptDocument> { public: using Item = std::tuple<Uuid, QString>; - using LoggerType = std::stringstream; + using LoggerType = Script::LuaContext::LoggerType; explicit ScriptStore() noexcept; diff --git a/src/Lib/Video.cc b/src/Lib/Video.cc index 390b82a7..467d562c 100644 --- a/src/Lib/Video.cc +++ b/src/Lib/Video.cc @@ -1,9 +1,6 @@ #include "Video.hh" #include "Utils.hh" -#include <QJsonObject> -#include <QJsonArray> - using namespace Vivy; VideoStream::VideoStream(AVCodec *streamCodec, AVFormatContext *formatArg, AVStream *streamArg, diff --git a/src/Lib/Video.hh b/src/Lib/Video.hh index 42032b88..3f52495f 100644 --- a/src/Lib/Video.hh +++ b/src/Lib/Video.hh @@ -4,20 +4,7 @@ #error "This is a C++ header" #endif -extern "C" { -#include <libavutil/opt.h> -#include <libavcodec/avcodec.h> -#include <libavformat/avformat.h> -#include <libswresample/swresample.h> -#include <libavcodec/avfft.h> -#include <memory.h> -} - -#include "Utils.hh" -#include <QtGlobal> -#include <QMap> -#include <QVector> -#include <QString> +#include "AbstractMediaContext.hh" namespace Vivy { diff --git a/src/UI/AboutWindow.cc b/src/UI/AboutWindow.cc index 85cb2e01..420dae7b 100644 --- a/src/UI/AboutWindow.cc +++ b/src/UI/AboutWindow.cc @@ -1,14 +1,5 @@ #include "AboutWindow.hh" - -#include <QCloseEvent> -#include <QLabel> -#include <QPushButton> -#include <QVBoxLayout> -#include <QHBoxLayout> -#include <QEvent> -#include <QMouseEvent> -#include <QApplication> -#include <QTextEdit> +#include "../VivyApplication.hh" using namespace Vivy; @@ -46,6 +37,9 @@ static const char *libContent = " </ul>" "</body>"; +AboutWindow::SimpleLabel::~SimpleLabel() noexcept {} +AboutWindow::LicenceLabel::~LicenceLabel() noexcept {} + AboutWindow::SimpleLabel::SimpleLabel(QWidget *parent, const char *text) : QLabel(parent) { diff --git a/src/UI/AboutWindow.hh b/src/UI/AboutWindow.hh index acbd437c..4d4aae15 100644 --- a/src/UI/AboutWindow.hh +++ b/src/UI/AboutWindow.hh @@ -20,17 +20,19 @@ class AboutWindow final : public QMainWindow { class SimpleLabel final : public QLabel { public: explicit SimpleLabel(QWidget *parent, const char *text); + ~SimpleLabel() noexcept override; }; // Simple QLabel for licences class LicenceLabel final : public QTextEdit { public: explicit LicenceLabel(QWidget *parent, const QString &url, const Qt::TextFormat format); + ~LicenceLabel() noexcept override; }; public: explicit AboutWindow(QWidget *parent) noexcept; - ~AboutWindow() noexcept = default; + ~AboutWindow() noexcept override = default; signals: void closed(); diff --git a/src/UI/DocumentViews/AssLinesModel.hh b/src/UI/DocumentViews/AssLinesModel.hh index 2dfdbcd1..e797c3bf 100644 --- a/src/UI/DocumentViews/AssLinesModel.hh +++ b/src/UI/DocumentViews/AssLinesModel.hh @@ -21,9 +21,7 @@ private: enum class Field : int { Text, - - // Last, the count - TotalFieldCount, + TotalFieldCount // Last, the count }; bool getIsComment() const noexcept; @@ -39,7 +37,7 @@ private: public: explicit AssLinesModel(const QVector<Ass::LinePtr> &) noexcept; - ~AssLinesModel() noexcept; + ~AssLinesModel() noexcept override; QVariant data(const QModelIndex &, int role) const noexcept override; bool setData(const QModelIndex &, const QVariant &v, int r = Qt::EditRole) noexcept override; diff --git a/src/UI/DocumentViews/AssLinesView.hh b/src/UI/DocumentViews/AssLinesView.hh index 54c58c66..549cc532 100644 --- a/src/UI/DocumentViews/AssLinesView.hh +++ b/src/UI/DocumentViews/AssLinesView.hh @@ -23,7 +23,7 @@ private: public: Delegate(AssLinesView *, QWidget *parent = nullptr) noexcept; - ~Delegate() noexcept = default; + ~Delegate() noexcept override = default; void initStyleOption(QStyleOptionViewItem *option, const QModelIndex &index) const noexcept override; @@ -38,7 +38,7 @@ private: public: AssLinesView(QAbstractItemModel *, QWidget *parent = nullptr) noexcept; - ~AssLinesView() noexcept = default; + ~AssLinesView() noexcept override = default; void paintEvent(QPaintEvent *) noexcept override; diff --git a/src/UI/DocumentViews/AudioVisualizer.hh b/src/UI/DocumentViews/AudioVisualizer.hh index 451d5080..695f6209 100644 --- a/src/UI/DocumentViews/AudioVisualizer.hh +++ b/src/UI/DocumentViews/AudioVisualizer.hh @@ -33,7 +33,7 @@ private: public: explicit AudioVisualizer(AudioContext::StreamPtr, QWidget *parent = nullptr); - ~AudioVisualizer() noexcept = default; + ~AudioVisualizer() noexcept override = default; public slots: void printSpectrum(QImage) noexcept; diff --git a/src/UI/DocumentViews/TimingBar.hh b/src/UI/DocumentViews/TimingBar.hh index 6edf64ee..f6fb18c6 100644 --- a/src/UI/DocumentViews/TimingBar.hh +++ b/src/UI/DocumentViews/TimingBar.hh @@ -13,7 +13,7 @@ namespace Vivy class TimingBar final : public QGraphicsLineItem { public: explicit TimingBar(QLine, QColor) noexcept; - ~TimingBar() noexcept = default; + ~TimingBar() noexcept override = default; private: static inline constexpr int bar_demi_width = 2; diff --git a/src/UI/DocumentViews/TimingView.hh b/src/UI/DocumentViews/TimingView.hh index 5b0fc0e0..b1ef4895 100644 --- a/src/UI/DocumentViews/TimingView.hh +++ b/src/UI/DocumentViews/TimingView.hh @@ -26,7 +26,7 @@ public: static inline constexpr QColor endColour = QColor(0, 127, 0); explicit TimingView(QImage, quint64, QWidget * = nullptr) noexcept; - ~TimingView() noexcept = default; + ~TimingView() noexcept override = default; void wheelEvent(QWheelEvent *) noexcept override; diff --git a/src/UI/FakeVim/FakeVimActions.cc b/src/UI/FakeVim/FakeVimActions.cc index 1c36b444..2f3f7670 100644 --- a/src/UI/FakeVim/FakeVimActions.cc +++ b/src/UI/FakeVim/FakeVimActions.cc @@ -8,6 +8,11 @@ namespace FakeVim::Internal { #ifdef FAKEVIM_STANDALONE FvBaseAspect::FvBaseAspect() {} +FvBaseAspect::~FvBaseAspect() {} +FvBoolAspect::~FvBoolAspect() {} +FvIntegerAspect::~FvIntegerAspect() {} +FvStringAspect::~FvStringAspect() {} +FvAspectContainer::~FvAspectContainer() {} void FvBaseAspect::setValue(const QVariant &value) diff --git a/src/UI/FakeVim/FakeVimActions.hh b/src/UI/FakeVim/FakeVimActions.hh index b1cea03d..ae872e4a 100644 --- a/src/UI/FakeVim/FakeVimActions.hh +++ b/src/UI/FakeVim/FakeVimActions.hh @@ -13,7 +13,7 @@ namespace FakeVim::Internal class FvBaseAspect { public: FvBaseAspect(); - virtual ~FvBaseAspect() {} + virtual ~FvBaseAspect(); void setValue(const QVariant &value); QVariant value() const; @@ -34,21 +34,25 @@ private: class FvBoolAspect : public FvBaseAspect { public: + ~FvBoolAspect() override; bool value() const { return FvBaseAspect::value().toBool(); } }; class FvIntegerAspect : public FvBaseAspect { public: + ~FvIntegerAspect() override; qint64 value() const { return FvBaseAspect::value().toLongLong(); } }; class FvStringAspect : public FvBaseAspect { public: + ~FvStringAspect() override; QString value() const { return FvBaseAspect::value().toString(); } }; class FvAspectContainer : public FvBaseAspect { public: + ~FvAspectContainer() override; }; class FakeVimSettings final : public FvAspectContainer { diff --git a/src/UI/MainWindow.hh b/src/UI/MainWindow.hh index 1ce71fc2..16b379e8 100644 --- a/src/UI/MainWindow.hh +++ b/src/UI/MainWindow.hh @@ -9,11 +9,8 @@ #include "../Lib/Document/VivyDocumentStore.hh" #include "DocumentViews/AudioVisualizer.hh" #include "VivyDocumentView.hh" +#include "ScriptDocumentView.hh" #include "AboutWindow.hh" -#include <QMenu> -#include <QFileDialog> -#include <QMutex> -#include <QMainWindow> namespace Vivy { diff --git a/src/UI/ScriptDocumentView.hh b/src/UI/ScriptDocumentView.hh index 7f2c333b..c1acc9c3 100644 --- a/src/UI/ScriptDocumentView.hh +++ b/src/UI/ScriptDocumentView.hh @@ -6,25 +6,12 @@ #endif #include "../Lib/Utils.hh" +#include "../Lib/Script/ScriptDocument.hh" #include "AbstractDocumentView.hh" -#include <QWidget> -#include <QString> -#include <memory> - -class QPlainTextEdit; - -namespace FakeVim::Internal -{ -class FakeVimHandler; -} - -namespace Vivy -{ -class ScriptEditor; -class ScriptHighlighter; -class ScriptDocument; -class EditorProxy; -} +#include "FakeVim/FakeVimHandler.hh" +#include "ScriptViews/EditorProxy.hh" +#include "ScriptViews/ScriptHighlighter.hh" +#include "ScriptViews/ScriptEditor.hh" namespace Vivy { diff --git a/src/UI/VivyDocumentView.hh b/src/UI/VivyDocumentView.hh index 4cdcc8ef..b38bd6c0 100644 --- a/src/UI/VivyDocumentView.hh +++ b/src/UI/VivyDocumentView.hh @@ -6,17 +6,14 @@ #endif #include "AbstractDocumentView.hh" - -class QDockWidget; -class QWidget; +#include "../Lib/Document/VivyDocument.hh" +#include "DocumentViews/VideoView.hh" +#include "DocumentViews/AssLinesView.hh" +#include "DocumentViews/AssLinesModel.hh" +#include "PropertyModel.hh" namespace Vivy { -class PropertyModel; -class AssLinesModel; -class VivyDocument; -class VideoView; - class VivyDocumentView final : public AbstractDocumentView { Q_OBJECT VIVY_UNMOVABLE_OBJECT(VivyDocumentView) diff --git a/src/VivyApplication.hh b/src/VivyApplication.hh index 4c98c7b3..2f37a5d5 100644 --- a/src/VivyApplication.hh +++ b/src/VivyApplication.hh @@ -24,9 +24,7 @@ #define VIVY_ICON_PAUSE ":icons/dark/media-pause.svg" #define VIVY_ICON_STOP ":icons/dark/media-stop.svg" -#include <QApplication> -#include <QPixmap> -#include <QFont> +#include "Lib/Script/ScriptStore.hh" // Detect MacOS #if defined(Q_OS_DARWIN) || defined(Q_OS_MACOS) @@ -34,6 +32,7 @@ #endif #include "Lib/Document/VivyDocumentStore.hh" +#include "UI/MainWindow.hh" namespace Vivy { -- GitLab