diff --git a/CMakeLists.txt b/CMakeLists.txt index 472ec5debc78272fe08faae94a9a7c3a7a9aef43..8ecf5472474cab549a6d5d2c56645bbaf48bb66c 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 a2611c1d92e8f0f16c52c2ce7f332fea8ba70881..35ada2ed4bf2193d0083d4ffe166f4f4b76ee720 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 acb14ff2f5c568a0db4277cb455a278526f210d0..d7081d6a3d9afc747c36a78539c847d1a274ecd0 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 a8768767f6b4e9e3cb5b0a68e354be62ffdc0131..08ca4b7e08e93d57f0ca273adb463fb27b2032cf 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 f21fddb15a6b33a60917b0eb0371b4cd33592599..b220c0f1995a4c633664cb42554505080b494452 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 71f9c7ee1b3fcfddb33e7961a01d7a96ab39bc1d..39d931a99d8c92c1d0d83d0d44de97cdaed20e38 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 c509af7449227b27421f446ed348c3c23121474d..fe0b257ab4585b7d0d962f2577177238cd328db9 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 7463dad6692230fe9627ff83f21d4f32290f1862..15984da129990d512c3cdc388b67143a4d808d08 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 4c2fd133bbfbb691d292047865a68dd0d9044eb4..73afcbb1e27b470e2ecbaf8028b2319d8e064a16 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 9b9bba686f6e61e10b8227a791c73ef288f6e2fc..696cfc79e4b082a14e8b3ad295e31455611f283c 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 374d9e2afb3a42f4c5d195c33fafe5a1494f09c8..a72acf98782c66af25a4c8f960e81e1fd6022b05 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 79c7a9bc376c028ff9b283d7d12aca3ece0414c0..084e14e5f93ea11e001260bae8543aeef48c96d9 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 1e34c4943c87d6062d1fdd09b5f76aeb48bec50a..a87e3dc2547e0bb3d38e0650ee09a7ac4f7e3e0e 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 8e9920da1f8c51f0a158168bd9ebcda2c73d5e7c..671cd3acb0923bf290ec0619c3e7e1d182aeee97 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 f5b4d341dbcd1e32686904ea1b27b5c05bb405d6..99c42e9c910df420e7d74b40d591b8dd77316035 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 a852aac6ab4528084e026251bbc6906ccef2b541..161b01e7414a0208652054316a88838cff5fb9ba 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 dd4266a998dc370119156b000c1444d8dbc9ad09..cbfe85d93ac7a44c5ba64f4138ea973953fc9b34 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 390b82a7b44626c218d7875c34bd9b103f874d26..467d562cdd252a3ed3f2c8807084c9d36eb3ddd1 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 42032b885b991982eb21a0a020e148807250f8be..3f52495f6546043f08fce389a8db244f2c94dde1 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 85cb2e01da8f31408f9b938b93569c6bca65e511..420dae7bfbd3ef45a4273245400656a912d64962 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 acbd437c0a2b3513f3f1bdcdf356771d8dc8c705..4d4aae15e27db41c606c901557790f3a2a645f71 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 2dfdbcd1c709a55ce9c02e902f628358109dc2ed..e797c3bf395980bbc16f2a91151cc34c6925fef6 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 54c58c660067f55270af7fa92d3ede42074823ae..549cc5321bdac68e78a9944a6012bd2e7374dd0f 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 451d50800979bca9f137b3fd2dfcd3842715629b..695f62098fcd5c3ce65bbd47b7030dd61482d341 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 6edf64eede549c9284a1a332d05aaca6b8bfdc6a..f6fb18c60f965111de7ccda9924b23868b0b81f7 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 5b0fc0e03971d36de6aa48a578997d330a8d563e..b1ef4895db082604d1052f4f6a1d7cf5b1f58edd 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 1c36b444d5647feb830b9a31ad0ce16468ba748c..2f3f7670daea1b3debb31f6ffac50cb977ed3f76 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 b1cea03d6697830e2637ca2efbbca89ff8ecdf0e..ae872e4afb5a314c77ea19c2d008faa02809f1b6 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 1ce71fc256f8a702bdcf161cc10ba73676fc6eac..16b379e87bcb15288b8ab739fae0f70607560e5e 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 7f2c333bae28c31c6be079cf0faa5839ed40850e..c1acc9c31524571e2b7eedf0703991a12296b8fe 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 4cdcc8efc8d9cd6d1a68be9c0627b68f410f82ab..b38bd6c04a87e5551c336e443c84b886e1b519cd 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 4c98c7b36f39795c86a06b664fe4a646a7d4e7c3..2f37a5d52570be4bfe09b7f07175cd6a59d71cc4 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 {