diff --git a/src/Ass/Line.cc b/src/Ass/Line.cc index 31a398912856fef2c9969507fd45aecb04d12d1a..c4135c3e8a56c5d0a74a8b6d9cde20c7cb570aaa 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 e2aa48c5dfaf56f1760845b29df273159e0274b8..3f447ec8c29a476eba4d4f787c466ab720f81921 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 8a8907e64fd388f477f84843d809d0045b77f054..818e1a71c3a1cc88c5d7162d22fd8bdd3f04cb08 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 6407db7bb5b076919a90d7a05336bef18bc570b9..f557a9b0056ab63ca5941aba5b4ffb034f595a8f 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 7f4f4a8b9a6d305018722b8010d9a20e0bfe6fd0..41163786a54a36fbd213fee9e56581cb7a894a71 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 6a2455eab30db80a9d65899e2aa4c3df287d7e36..60df47cba9a1ed7fe506db88f7589856078a60cf 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 a3a0f3814ad3e3d5af24f1a0204c3abdbd684dce..f38c9179a6f428972484bb6315f968a6417e8285 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 6ca373a0ff140a36c705b89db875d51265465851..bbea8b69801b984e3e2e97206b95f06688dfdb16 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 144a76cb466c0abb32e7b54ae41e1b94f39294be..b14b33eb5ef39c5fe3d5c64c717e5c35e37693a2 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 86a067de03140a3aca9903aa2f9be7c2aed2e73e..b17b6eda6569b51be6fb2919c3daafe8260665d5 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 675ac0d2c4a597f7ea412b4cc0bf2f65a1370578..6aa50a6357ffdb73bbd607650b98aef02ebe904a 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 35cdce2b8e95abf99dbecb929d052dd9c67b672c..077c58718465adb00a7db6055a703fcb597c801c 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 9522361d59be8a9cc6957c384bc33261ca21afb8..d9815a3f7460e03ccd95b7a47e22b587e4ade37c 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 {} \;