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