ui: clickable ElidedLabel (#21773)

* ElidedButton

* rename to ClickableLabel

* move to ElidedLabel
old-commit-hash: 1786416e3c
commatwo_master
Dean Lee 4 years ago committed by GitHub
parent e6f91750cd
commit bdc758e769
  1. 4
      selfdrive/ui/qt/offroad/networking.cc
  2. 9
      selfdrive/ui/qt/widgets/controls.h

@ -249,12 +249,12 @@ void WifiUI::refresh() {
hlayout->setSpacing(50); hlayout->setSpacing(50);
// Clickable SSID label // Clickable SSID label
QPushButton *ssidLabel = new QPushButton(network.ssid); ElidedLabel *ssidLabel = new ElidedLabel(network.ssid);
ssidLabel->setObjectName("ssidLabel"); ssidLabel->setObjectName("ssidLabel");
ssidLabel->setEnabled(network.security_type != SecurityType::UNSUPPORTED); ssidLabel->setEnabled(network.security_type != SecurityType::UNSUPPORTED);
ssidLabel->setProperty("disconnected", network.connected == ConnectedType::DISCONNECTED); ssidLabel->setProperty("disconnected", network.connected == ConnectedType::DISCONNECTED);
if (network.connected == ConnectedType::DISCONNECTED) { if (network.connected == ConnectedType::DISCONNECTED) {
QObject::connect(ssidLabel, &QPushButton::clicked, this, [=]() { emit connectToNetwork(network); }); QObject::connect(ssidLabel, &ElidedLabel::clicked, this, [=]() { emit connectToNetwork(network); });
} }
hlayout->addWidget(ssidLabel, network.connected == ConnectedType::CONNECTING ? 0 : 1); hlayout->addWidget(ssidLabel, network.connected == ConnectedType::CONNECTING ? 0 : 1);

@ -13,16 +13,21 @@ QFrame *horizontal_line(QWidget *parent = nullptr);
class ElidedLabel : public QLabel { class ElidedLabel : public QLabel {
Q_OBJECT Q_OBJECT
public: public:
explicit ElidedLabel(QWidget *parent = 0); explicit ElidedLabel(QWidget *parent = 0);
explicit ElidedLabel(const QString &text, QWidget *parent = 0); explicit ElidedLabel(const QString &text, QWidget *parent = 0);
protected: signals:
void clicked();
protected:
void paintEvent(QPaintEvent *event) override; void paintEvent(QPaintEvent *event) override;
void resizeEvent(QResizeEvent* event) override; void resizeEvent(QResizeEvent* event) override;
void mouseReleaseEvent(QMouseEvent *event) override { emit clicked(); }
QString lastText_, elidedText_; QString lastText_, elidedText_;
}; };
class AbstractControl : public QFrame { class AbstractControl : public QFrame {
Q_OBJECT Q_OBJECT

Loading…
Cancel
Save