From af777881b2c0e0b16de7832b7b2b0c1d2e51668d Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Thu, 26 Aug 2021 16:04:58 +0200
Subject: [PATCH] BUILD: Separate the different sub-document's implementations
 into distinct C++ files

---
 .../CRTPSubDocument/AssSubDocument.cc         | 51 +++++++++++++
 .../AudioSubDocument.cc}                      | 74 +------------------
 .../CRTPSubDocument/VideoSubDocument.cc       | 27 +++++++
 3 files changed, 79 insertions(+), 73 deletions(-)
 create mode 100644 src/Lib/Document/CRTPSubDocument/AssSubDocument.cc
 rename src/Lib/Document/{CRTPSubDocument.cc => CRTPSubDocument/AudioSubDocument.cc} (53%)
 create mode 100644 src/Lib/Document/CRTPSubDocument/VideoSubDocument.cc

diff --git a/src/Lib/Document/CRTPSubDocument/AssSubDocument.cc b/src/Lib/Document/CRTPSubDocument/AssSubDocument.cc
new file mode 100644
index 00000000..de627f85
--- /dev/null
+++ b/src/Lib/Document/CRTPSubDocument/AssSubDocument.cc
@@ -0,0 +1,51 @@
+#include "../CRTPSubDocument.hh"
+
+#include <QJsonObject>
+#include <QJsonDocument>
+
+using namespace Vivy;
+
+// Init a ASS sub-document from a file
+void
+AssSubDocument::initFromPath(const QString &path)
+{
+    Ass::AssFactory factory(path);
+    factory.getStyles(styles);
+    factory.getLines(lines);
+}
+
+QString
+AssSubDocument::getElementName() const noexcept
+{
+    return "AssSubDocument";
+}
+
+const QVector<Ass::LinePtr> &
+AssSubDocument::getLines() const noexcept
+{
+    return lines;
+}
+
+const QVector<Ass::StylePtr> &
+AssSubDocument::getStyles() const noexcept
+{
+    return styles;
+}
+
+QJsonDocument
+AssSubDocument::getProperties() const noexcept
+{
+    QJsonDocument ret;
+
+    QJsonObject styleObject;
+    for (const Ass::StylePtr &style : styles) {
+        styleObject.insert(style->getElementName(), style->getProperties().object());
+    }
+
+    QJsonObject object{
+        { "Styles", styleObject },
+        { "File", filePath },
+    };
+    ret.setObject(object);
+    return ret;
+}
diff --git a/src/Lib/Document/CRTPSubDocument.cc b/src/Lib/Document/CRTPSubDocument/AudioSubDocument.cc
similarity index 53%
rename from src/Lib/Document/CRTPSubDocument.cc
rename to src/Lib/Document/CRTPSubDocument/AudioSubDocument.cc
index ed788183..5a205fa7 100644
--- a/src/Lib/Document/CRTPSubDocument.cc
+++ b/src/Lib/Document/CRTPSubDocument/AudioSubDocument.cc
@@ -1,12 +1,10 @@
-#include "CRTPSubDocument.hh"
+#include "../CRTPSubDocument.hh"
 
 #include <QJsonObject>
 #include <QJsonDocument>
 
 using namespace Vivy;
 
-// AudioSubDocument implementation
-
 // Get the default stream index or -1 if not possible
 int
 AudioSubDocument::getDefaultStreamIndex() const noexcept
@@ -69,73 +67,3 @@ AudioSubDocument::getProperties() const noexcept
     ret.setObject(object);
     return ret;
 }
-
-// VideoSubDocument implementation
-
-// Init a video sub-document from a file
-void
-VideoSubDocument::initFromPath(const QString &)
-{
-}
-
-QString
-VideoSubDocument::getElementName() const noexcept
-{
-    return "VideoSubDocument";
-}
-
-QJsonDocument
-VideoSubDocument::getProperties() const noexcept
-{
-    QJsonDocument ret;
-    QJsonObject object;
-    ret.setObject(object);
-    return ret;
-}
-
-// AssSubDocument implementation
-
-// Init a ASS sub-document from a file
-void
-AssSubDocument::initFromPath(const QString &path)
-{
-    Ass::AssFactory factory(path);
-    factory.getStyles(styles);
-    factory.getLines(lines);
-}
-
-QString
-AssSubDocument::getElementName() const noexcept
-{
-    return "AssSubDocument";
-}
-
-const QVector<Ass::LinePtr> &
-AssSubDocument::getLines() const noexcept
-{
-    return lines;
-}
-
-const QVector<Ass::StylePtr> &
-AssSubDocument::getStyles() const noexcept
-{
-    return styles;
-}
-
-QJsonDocument
-AssSubDocument::getProperties() const noexcept
-{
-    QJsonDocument ret;
-
-    QJsonObject styleObject;
-    for (const Ass::StylePtr &style : styles) {
-        styleObject.insert(style->getElementName(), style->getProperties().object());
-    }
-
-    QJsonObject object{
-        { "Styles", styleObject },
-        { "File", filePath },
-    };
-    ret.setObject(object);
-    return ret;
-}
diff --git a/src/Lib/Document/CRTPSubDocument/VideoSubDocument.cc b/src/Lib/Document/CRTPSubDocument/VideoSubDocument.cc
new file mode 100644
index 00000000..87b70c0c
--- /dev/null
+++ b/src/Lib/Document/CRTPSubDocument/VideoSubDocument.cc
@@ -0,0 +1,27 @@
+#include "../CRTPSubDocument.hh"
+
+#include <QJsonObject>
+#include <QJsonDocument>
+
+using namespace Vivy;
+
+// Init a video sub-document from a file
+void
+VideoSubDocument::initFromPath(const QString &)
+{
+}
+
+QString
+VideoSubDocument::getElementName() const noexcept
+{
+    return "VideoSubDocument";
+}
+
+QJsonDocument
+VideoSubDocument::getProperties() const noexcept
+{
+    QJsonDocument ret;
+    QJsonObject object;
+    ret.setObject(object);
+    return ret;
+}
-- 
GitLab