From d53eaf8869eb9c43908c873d85ad169371123a86 Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Fri, 25 Jun 2021 16:54:03 +0200
Subject: [PATCH] MISC: Fix some warnings and apply style

---
 src/Ass/Line.cc              | 16 +++++++++++
 src/Ass/Line.hh              | 12 ++------
 src/Ass/Style.hh             |  2 +-
 src/AudioVisualizer.cc       | 10 +++----
 src/AudioVisualizer.hh       |  2 +-
 src/Document/VivyDocument.cc | 44 ++++++++++++++---------------
 src/Main.cc                  |  4 +--
 src/TimingScene.cc           | 55 +++++++++++++++++++++++-------------
 src/TimingScene.hh           | 23 ++++++---------
 src/TimingView.cc            |  2 +-
 src/TimingView.hh            |  5 ++--
 src/VivyApplication.hh       |  2 +-
 utils/scripts/style.bash     |  2 +-
 13 files changed, 99 insertions(+), 80 deletions(-)

diff --git a/src/Ass/Line.cc b/src/Ass/Line.cc
index 31a39891..c4135c3e 100644
--- a/src/Ass/Line.cc
+++ b/src/Ass/Line.cc
@@ -3,3 +3,19 @@
 Line::Line(const QString & /*unused*/)
 {
 }
+
+void
+Line::setStart(quint64 s) noexcept
+{
+    start = s;
+    if (s > end)
+        end = s;
+};
+
+void
+Line::setEnd(quint64 s) noexcept
+{
+    end = s;
+    if (start > s)
+        start = s;
+};
diff --git a/src/Ass/Line.hh b/src/Ass/Line.hh
index e2aa48c5..3f447ec8 100644
--- a/src/Ass/Line.hh
+++ b/src/Ass/Line.hh
@@ -20,16 +20,8 @@ public:
 
     ~Line() noexcept = default;
 
-    inline void setStart(quint64 s){
-        start = s;
-        if (s > end)
-            end = s;
-    };
-    inline void setEnd(quint64 s){
-        end = s;
-        if (start > s)
-            start = s;
-    };
+    void setStart(quint64 s) noexcept;
+    void setEnd(quint64 s) noexcept;
 };
 
 #endif // VIVY_ASS_LINE_H
diff --git a/src/Ass/Style.hh b/src/Ass/Style.hh
index 8a8907e6..818e1a71 100644
--- a/src/Ass/Style.hh
+++ b/src/Ass/Style.hh
@@ -9,7 +9,7 @@
 struct Color {
     union {
         quint8 a, r, g, b;
-        quint32 argb;
+        quint32 argb{ 0 };
     };
 
     static Color fromString(const QString);
diff --git a/src/AudioVisualizer.cc b/src/AudioVisualizer.cc
index 6407db7b..f557a9b0 100644
--- a/src/AudioVisualizer.cc
+++ b/src/AudioVisualizer.cc
@@ -16,15 +16,15 @@ AudioVisualizer::AudioVisualizer(QWidget *parent) noexcept
 void
 AudioVisualizer::printSpectrum(QImage pixmap) noexcept
 {
-    TimingView *timer   = new TimingView(pixmap, 0);
+    TimingView *timer   = new TimingView(pixmap, 0, this);
     QVBoxLayout *layout = new QVBoxLayout;
 
     layout->addWidget(timer);
     setLayout(layout);
 }
 
-auto
-AudioVisualizer::fromFile(const QString &filename) -> AudioVisualizer *
+AudioVisualizer *
+AudioVisualizer::fromFile(const QString &filename)
 {
     if (filename.isEmpty())
         return nullptr;
@@ -53,8 +53,8 @@ AudioVisualizer::fromFile(const QString &filename) -> AudioVisualizer *
     const int width   = RawImageDataGetWidth(raw_image);
     const int height  = RawImageDataGetHeight(raw_image);
     uchar *pixs       = RawImageDataDuplicatePixels(raw_image);
-    QImage img(pixs, width, height / 2, width, QImage::Format_Grayscale8, pixs_deleter, pixs);
-    img = img.mirrored(false, true);
+    QImage img =
+        QImage(pixs, width, height / 2, width, QImage::Format_Grayscale8, pixs_deleter, pixs).mirrored(false, true);
 
     auto *audioVisualizer = new AudioVisualizer;
     audioVisualizer->printSpectrum(img);
diff --git a/src/AudioVisualizer.hh b/src/AudioVisualizer.hh
index 7f4f4a8b..41163786 100644
--- a/src/AudioVisualizer.hh
+++ b/src/AudioVisualizer.hh
@@ -16,7 +16,7 @@ public:
     explicit AudioVisualizer(QWidget *parent = nullptr) noexcept;
     ~AudioVisualizer() noexcept = default;
 
-    static AudioVisualizer *fromFile(const QString &);
+    [[nodiscard("allocated")]] static AudioVisualizer *fromFile(const QString &);
 
 public slots:
     void printSpectrum(QImage) noexcept;
diff --git a/src/Document/VivyDocument.cc b/src/Document/VivyDocument.cc
index 6a2455ea..60df47cb 100644
--- a/src/Document/VivyDocument.cc
+++ b/src/Document/VivyDocument.cc
@@ -11,8 +11,8 @@ VivyDocument::VivyDocument(const QString &name)
     qDebug() << "CONSTRUCTOR: VivyDocument(" << name << ")";
 }
 
-auto
-VivyDocument::loadSubDocument(const QString &name) noexcept -> bool
+bool
+VivyDocument::loadSubDocument(const QString &name) noexcept
 {
     QFileInfo file(name);
     SubDocument type;
@@ -39,8 +39,8 @@ VivyDocument::loadSubDocument(const QString &name) noexcept -> bool
     return false;
 }
 
-auto
-VivyDocument::loadSubDocument(const QString &name, VivyDocument::SubDocument asType) noexcept -> bool
+bool
+VivyDocument::loadSubDocument(const QString &name, VivyDocument::SubDocument asType) noexcept
 {
     QFileInfo file(name);
     SubDocument type;
@@ -68,8 +68,8 @@ VivyDocument::loadSubDocument(const QString &name, VivyDocument::SubDocument asT
     return true;
 }
 
-auto
-VivyDocument::detectDocumentType(const QFileInfo &file, SubDocument *type) -> bool
+bool
+VivyDocument::detectDocumentType(const QFileInfo &file, SubDocument *type)
 {
     Vivy::Utils::DocumentType docType;
     bool rc = Vivy::Utils::detectDocumentType(file, &docType);
@@ -91,8 +91,8 @@ VivyDocument::detectDocumentType(const QFileInfo &file, SubDocument *type) -> bo
     return rc;
 }
 
-auto
-VivyDocument::rename(const QString &name) noexcept -> bool
+bool
+VivyDocument::rename(const QString &name) noexcept
 {
     /* Compute new paths */
     const QString newNameWithExtension = name.right(filePrefix.size()) == filePrefix ? name : name + "." + filePrefix;
@@ -118,26 +118,26 @@ VivyDocument::rename(const QString &name) noexcept -> bool
     return false;
 }
 
-auto
-VivyDocument::getAudioSubDocument() const noexcept -> AudioDocument *
+AudioDocument *
+VivyDocument::getAudioSubDocument() const noexcept
 {
     return audioDocument.get();
 }
 
-auto
-VivyDocument::getVideoSubDocument() const noexcept -> VideoDocument *
+VideoDocument *
+VivyDocument::getVideoSubDocument() const noexcept
 {
     return videoDocument.get();
 }
 
-auto
-VivyDocument::getAssSubDocument() const noexcept -> AssDocument *
+AssDocument *
+VivyDocument::getAssSubDocument() const noexcept
 {
     return assDocument.get();
 }
 
-auto
-VivyDocument::fromPath(const QString &path) noexcept -> VivyDocument *
+VivyDocument *
+VivyDocument::fromPath(const QString &path) noexcept
 {
     QFileInfo file(path);
     VivyDocument *ret = new VivyDocument(file.baseName());
@@ -149,20 +149,20 @@ VivyDocument::fromPath(const QString &path) noexcept -> VivyDocument *
     return ret;
 }
 
-auto
-VivyDocument::newEmpty([[maybe_unused]] const QString &name) noexcept -> VivyDocument *
+VivyDocument *
+VivyDocument::newEmpty([[maybe_unused]] const QString &name) noexcept
 {
     return nullptr;
 }
 
-auto
-VivyDocument::getName() const noexcept -> QString
+QString
+VivyDocument::getName() const noexcept
 {
     return documentName;
 }
 
-auto
-VivyDocument::getDocumentCapabilities() const noexcept -> int
+int
+VivyDocument::getDocumentCapabilities() const noexcept
 {
     return documentType;
 }
diff --git a/src/Main.cc b/src/Main.cc
index a3a0f381..f38c9179 100644
--- a/src/Main.cc
+++ b/src/Main.cc
@@ -1,8 +1,8 @@
 #include "MainWindow.hh"
 #include "VivyApplication.hh"
 
-auto
-main(int argc, char **argv) noexcept -> int
+int
+main(int argc, char **argv) noexcept
 {
     return VivyApplication(argc, argv).exec();
 }
diff --git a/src/TimingScene.cc b/src/TimingScene.cc
index 6ca373a0..bbea8b69 100644
--- a/src/TimingScene.cc
+++ b/src/TimingScene.cc
@@ -1,4 +1,5 @@
 #include "TimingScene.hh"
+#include "Utils.hh"
 
 #include <QGraphicsLineItem>
 #include <QGraphicsPixmapItem>
@@ -18,15 +19,14 @@ TimingScene::TimingScene(QWidget *parent) noexcept
 }
 
 TimingScene::TimingScene(QImage img, quint64 soundLength, QWidget *parent) noexcept
-    : QGraphicsScene(parent),
-    img(img),
-    soundLength(soundLength)
+    : QGraphicsScene(parent)
+    , img(img)
+    , soundLength(soundLength)
 {
     QPixmap pixmap(QPixmap::fromImage(img));
     backgroundImg = addPixmap(pixmap);
 }
 
-
 void
 TimingScene::mousePressEvent(QGraphicsSceneMouseEvent *event) noexcept
 {
@@ -35,29 +35,46 @@ TimingScene::mousePressEvent(QGraphicsSceneMouseEvent *event) noexcept
 
     QGraphicsItem *got;
     if ((got = itemAt(pos, QTransform())) == nullptr || got == backgroundImg) {
-        if (auto p = currentLine.lock()){
+        if (auto p = currentLine.lock()) {
             quint64 time = timeFromPos(pos.x());
-            switch (timingMode){
-                case TimingMode::Line:
-                    switch (event->button()){
-                        case Qt::LeftButton:
-                            p->setStart(time);
-                            break;
-
-                        case Qt::RightButton:
-                            p->setEnd(time);
-                            break;
-
-                        default:
-                            break;
-                    }
+            switch (timingMode) {
+            case TimingMode::Line:
+                switch (event->button()) {
+                case Qt::LeftButton:
+                    p->setStart(time);
+                    break;
+
+                case Qt::RightButton:
+                    p->setEnd(time);
                     break;
 
                 default:
                     break;
+                }
+                break;
+
+            default:
+                break;
             }
         }
     }
 
     QGraphicsScene::mousePressEvent(event);
 }
+
+quint64
+TimingScene::timeFromPos(qreal x)
+{
+    if (const qreal w = width(); x <= 0 || w <= 0) {
+        qCritical() << "Try avoid possible divide by zero in the time from position";
+        return 0;
+    } else {
+        return static_cast<quint64>(x) * soundLength / static_cast<quint64>(w);
+    }
+}
+
+QGraphicsPixmapItem *
+TimingScene::bg() noexcept
+{
+    return backgroundImg;
+};
diff --git a/src/TimingScene.hh b/src/TimingScene.hh
index 144a76cb..b14b33eb 100644
--- a/src/TimingScene.hh
+++ b/src/TimingScene.hh
@@ -17,11 +17,7 @@ class TimingScene final : public QGraphicsScene {
     Q_OBJECT
 
 public:
-    enum class TimingMode {
-        Line = 0x0,
-        Syl = 0x1,
-        Char = 0x2
-    };
+    enum class TimingMode { Line = 0x0, Syl = 0x1, Char = 0x2 };
     Q_DECLARE_FLAGS(TimingModes, TimingMode)
 
 public:
@@ -29,26 +25,23 @@ public:
     static inline constexpr QColor endColour   = QColor(0, 127, 0);
 
     explicit TimingScene(QWidget *parent = nullptr) noexcept;
-    TimingScene(QImage, quint64, QWidget* = nullptr) noexcept;
+    explicit TimingScene(QImage, quint64, QWidget * = nullptr) noexcept;
     ~TimingScene() noexcept = default;
 
 private:
-    QGraphicsPixmapItem *backgroundImg = nullptr;
+    QGraphicsPixmapItem *backgroundImg{ nullptr };
     QImage img;
-    quint64 soundLength;
-    std::weak_ptr<Line> currentLine;
-    TimingMode timingMode;
+    quint64 soundLength{ 0 };
+    std::weak_ptr<Line> currentLine{};
+    TimingMode timingMode{ TimingMode::Line };
 
 public:
-    inline QGraphicsPixmapItem *bg()
-    {
-        return backgroundImg;
-    };
+    QGraphicsPixmapItem *bg() noexcept;
 
     void mousePressEvent(QGraphicsSceneMouseEvent *event) noexcept override;
 
 private:
-    inline quint64 timeFromPos(qreal x) { return x * soundLength / width(); };
+    quint64 timeFromPos(qreal x);
 
 public slots:
 };
diff --git a/src/TimingView.cc b/src/TimingView.cc
index 86a067de..b17b6eda 100644
--- a/src/TimingView.cc
+++ b/src/TimingView.cc
@@ -18,7 +18,7 @@
 TimingView::TimingView(QImage img, quint64 soundLength, QWidget *parent) noexcept
     : QGraphicsView(parent)
 {
-    scene = new TimingScene(img, soundLength);
+    scene = new TimingScene(img, soundLength, this);
     setFixedHeight(img.height());
     setMaximumHeight(img.height() + horizontalScrollBar()->height() - TO_ADD_TO_IMAGE_HEIGHT);
     setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
diff --git a/src/TimingView.hh b/src/TimingView.hh
index 675ac0d2..6aa50a63 100644
--- a/src/TimingView.hh
+++ b/src/TimingView.hh
@@ -22,13 +22,14 @@ public:
     static inline constexpr QColor startColour = QColor(127, 0, 127);
     static inline constexpr QColor endColour   = QColor(0, 127, 0);
 
-    explicit TimingView(QImage, quint64, QWidget* = nullptr) noexcept;
+    explicit TimingView(QImage, quint64, QWidget * = nullptr) noexcept;
     ~TimingView() noexcept = default;
 
 private:
-    TimingScene *scene;
+    TimingScene *scene{ nullptr };
 
 public slots:
+    void mousePressEvent(QMouseEvent *event) noexcept;
 };
 
 #endif // VIVY_TIMING_VIEW_H
diff --git a/src/VivyApplication.hh b/src/VivyApplication.hh
index 35cdce2b..077c5871 100644
--- a/src/VivyApplication.hh
+++ b/src/VivyApplication.hh
@@ -15,7 +15,7 @@ class VivyApplication : public QApplication {
     Q_OBJECT
 
 private:
-    std::unique_ptr<MainWindow> mainWindow;
+    std::unique_ptr<MainWindow> mainWindow{ nullptr };
     const QPixmap applicationIcon;
 
     static inline VivyApplication *singletonInstance = nullptr;
diff --git a/utils/scripts/style.bash b/utils/scripts/style.bash
index 9522361d..d9815a3f 100755
--- a/utils/scripts/style.bash
+++ b/utils/scripts/style.bash
@@ -2,4 +2,4 @@
 set -e
 _ROOT="$(git rev-parse --show-toplevel)"
 cd "$_ROOT"
-find ./src \( -name '*.cpp' -o -name '*.cc' -o -name '*.c' -o -name '*.h' -o -name '*.hpp' \) -exec clang-format -i {} \;
+find ./src \( -name '*.cpp' -o -name '*.cc' -o -name '*.c' -o -name '*.h' -o -name '*.hpp' -o -name '*.hh' \) -exec clang-format -i {} \;
-- 
GitLab