quick toggles cleanup

pull/2643/head
Adeeb Shihadeh 4 years ago
parent 61884d2c50
commit f66fac1a0b
  1. 28
      selfdrive/ui/qt/offroad/toggle.cc
  2. 39
      selfdrive/ui/qt/offroad/toggle.hpp

@ -1,11 +1,5 @@
#include "toggle.hpp" #include "toggle.hpp"
#include <QAbstractButton>
#include <QPropertyAnimation>
#include <QWidget>
#include <QDebug>
#include "common/params.h"
Toggle::Toggle(QWidget *parent) : QAbstractButton(parent), Toggle::Toggle(QWidget *parent) : QAbstractButton(parent),
_height(60), _height(60),
_height_rect(45), _height_rect(45),
@ -18,7 +12,6 @@ _anim(new QPropertyAnimation(this, "offset_circle", this))
_y_rect = (_height - _height_rect)/2; _y_rect = (_height - _height_rect)/2;
} }
void Toggle::paintEvent(QPaintEvent *e) { void Toggle::paintEvent(QPaintEvent *e) {
this->setFixedHeight(_height); this->setFixedHeight(_height);
QPainter p(this); QPainter p(this);
@ -42,25 +35,18 @@ void Toggle::mouseReleaseEvent(QMouseEvent *e) {
togglePosition(); togglePosition();
emit stateChanged(_on); emit stateChanged(_on);
} }
} }
void Toggle::togglePosition(){ void Toggle::togglePosition() {
_on = !_on; _on = !_on;
if (_on) { const int left = _radius;
_anim->setStartValue(_radius); const int right = width() - _radius;
_anim->setEndValue(width() - _radius); _anim->setStartValue(_on ? left : right);
_anim->setDuration(120); _anim->setEndValue(_on ? right : left);
_anim->start(); _anim->setDuration(120);
} else { _anim->start();
_anim->setStartValue(width() - _radius);
_anim->setEndValue(_radius);
_anim->setDuration(120);
_anim->start();
}
} }
void Toggle::enterEvent(QEvent *e) { void Toggle::enterEvent(QEvent *e) {
setCursor(Qt::PointingHandCursor);
QAbstractButton::enterEvent(e); QAbstractButton::enterEvent(e);
} }

@ -2,32 +2,33 @@
#include <QtWidgets> #include <QtWidgets>
class Toggle : public QAbstractButton { class Toggle : public QAbstractButton {
Q_OBJECT Q_OBJECT
Q_PROPERTY(int offset_circle READ offset_circle WRITE set_offset_circle) Q_PROPERTY(int offset_circle READ offset_circle WRITE set_offset_circle)
public: public:
Toggle(QWidget* parent = nullptr); Toggle(QWidget* parent = nullptr);
void togglePosition();//Toggles the toggle void togglePosition();
int offset_circle() const { int offset_circle() const {
return _x_circle; return _x_circle;
} }
void set_offset_circle(int o) {
_x_circle = o; void set_offset_circle(int o) {
update(); _x_circle = o;
} update();
}
protected: protected:
void paintEvent(QPaintEvent*) override; void paintEvent(QPaintEvent*) override;
void mouseReleaseEvent(QMouseEvent*) override; void mouseReleaseEvent(QMouseEvent*) override;
void enterEvent(QEvent*) override; void enterEvent(QEvent*) override;
private: private:
bool _on; bool _on;
int _x_circle, _y_circle; int _x_circle, _y_circle;
int _height, _radius; int _height, _radius;
int _height_rect, _y_rect; int _height_rect, _y_rect;
QPropertyAnimation *_anim = nullptr; QPropertyAnimation *_anim = nullptr;
signals: signals:
void stateChanged(int new_state); void stateChanged(int new_state);

Loading…
Cancel
Save