From de909d57365a4acc050517d8351f0332df8e5ac8 Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Sun, 20 Jun 2021 22:26:05 +0200
Subject: [PATCH] MISC: Make the classes final as they won't be inherited, make
 static member instead of defines and get ride of a goto

---
 src/AudioVisualizer.h |  2 +-
 src/MainWindow.h      |  2 +-
 src/Timer.cc          | 19 ++++++-------------
 src/TimingBar.cc      |  5 +----
 src/TimingBar.h       |  6 +++++-
 5 files changed, 14 insertions(+), 20 deletions(-)

diff --git a/src/AudioVisualizer.h b/src/AudioVisualizer.h
index 7929fe42..d62c46b0 100644
--- a/src/AudioVisualizer.h
+++ b/src/AudioVisualizer.h
@@ -4,7 +4,7 @@
 #include "Timer.h"
 #include <QWidget>
 
-class AudioVisualizer : public QWidget {
+class AudioVisualizer final : public QWidget {
     Q_OBJECT
 
 public:
diff --git a/src/MainWindow.h b/src/MainWindow.h
index e2166b04..1f95be88 100644
--- a/src/MainWindow.h
+++ b/src/MainWindow.h
@@ -7,7 +7,7 @@
 class QMenu;
 class QAction;
 
-class MainWindow : public QMainWindow {
+class MainWindow final : public QMainWindow {
     Q_OBJECT
 
 public:
diff --git a/src/Timer.cc b/src/Timer.cc
index de7dadf3..a66eae87 100644
--- a/src/Timer.cc
+++ b/src/Timer.cc
@@ -18,8 +18,7 @@ Timer::Timer(QImage img, QWidget *parent)
     , img(img)
 {
     QPixmap pixmap(QPixmap::fromImage(img));
-    bg = scene->addPixmap(pixmap) /*->setAcceptedMouseButtons(Qt::NoButton)*/;
-    //scene->setBackgroundBrush(img);
+    bg = scene->addPixmap(pixmap);
     setFixedHeight(pixmap.height());
     setMaximumHeight(img.height() + horizontalScrollBar()->height() - TO_ADD_TO_IMAGE_HEIGHT);
     setScene(scene);
@@ -30,19 +29,13 @@ Timer::mousePressEvent(QMouseEvent *event)
 {
     QPoint pos = event->pos();
     pos.rx() += horizontalScrollBar()->value();
-    QGraphicsItem *got;
-    TimingBar *bar;
     int x = event->pos().x() + horizontalScrollBar()->value();
-    fprintf(stderr, "BEFORE IF\n");
-    if ((got = scene->itemAt(pos, QTransform())) != nullptr && got != bg) {
-        //got->hide();
-        goto pass;
+
+    QGraphicsItem *got;
+    if ((got = scene->itemAt(pos, QTransform())) == nullptr || got == bg) {
+        scene->addItem(new TimingBar(QLine(x, 0, x, img.height() - TO_ADD_TO_IMAGE_HEIGHT),
+                                     event->button() == Qt::LeftButton ? startColour : endColour));
     }
-    fprintf(stderr, "AFTER IF\n");
-    bar = new TimingBar(QLine(x, 0, x, img.height() - TO_ADD_TO_IMAGE_HEIGHT),
-                        event->button() == Qt::LeftButton ? startColour : endColour);
-    scene->addItem(bar);
 
-pass:
     QGraphicsView::mousePressEvent(event);
 }
diff --git a/src/TimingBar.cc b/src/TimingBar.cc
index 3c98a0b4..60e83d10 100644
--- a/src/TimingBar.cc
+++ b/src/TimingBar.cc
@@ -10,13 +10,10 @@
 #include <QVBoxLayout>
 #include <QScrollBar>
 
-#define BAR_WIDTH      4
-#define BAR_DEMI_WIDTH ((int)(BAR_WIDTH / 2))
-
 TimingBar::TimingBar(QLine line, QColor color, QWidget *parent)
     : QGraphicsLineItem(line)
 {
-    setPen(QPen(QBrush(color), BAR_WIDTH, Qt::SolidLine, Qt::FlatCap));
+    setPen(QPen(QBrush(color), bar_width, Qt::SolidLine, Qt::FlatCap));
     setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemSendsGeometryChanges);
     setAcceptHoverEvents(true);
     setCursor(Qt::PointingHandCursor);
diff --git a/src/TimingBar.h b/src/TimingBar.h
index d43fddad..3db22255 100644
--- a/src/TimingBar.h
+++ b/src/TimingBar.h
@@ -5,11 +5,15 @@
 #include <QGraphicsItem>
 #include <QGraphicsLineItem>
 
-class TimingBar : public QGraphicsLineItem {
+class TimingBar final : public QGraphicsLineItem {
 public:
     TimingBar(QLine, QColor, QWidget *parent = nullptr);
     ~TimingBar() = default;
 
+private:
+    static inline constexpr int bar_demi_width = 2;
+    static inline constexpr int bar_width      = 2 * bar_demi_width;
+
 protected:
     //void mousePressEvent(QGraphicsSceneMouseEvent*);
     QVariant itemChange(GraphicsItemChange, const QVariant &) override;
-- 
GitLab