mirror of
https://github.com/MoreTore/openpilot.git
synced 2026-08-05 00:05:59 +08:00
cabana: fix thumbnail position issue (#27852)
* fix thumbnail position issue on WSL * continue * remove Qt::tool * set parent
This commit is contained in:
@@ -153,7 +153,7 @@ void VideoWidget::updatePlayBtnState() {
|
||||
}
|
||||
|
||||
// Slider
|
||||
Slider::Slider(QWidget *parent) : timer(this), thumbnail_label(this), QSlider(Qt::Horizontal, parent) {
|
||||
Slider::Slider(QWidget *parent) : timer(this), thumbnail_label(parent), QSlider(Qt::Horizontal, parent) {
|
||||
timer.callOnTimeout([this]() {
|
||||
timeline = can->getTimeline();
|
||||
std::sort(timeline.begin(), timeline.end(), sortTimelineBasedOnEventPriority);
|
||||
@@ -265,19 +265,29 @@ void Slider::mouseMoveEvent(QMouseEvent *e) {
|
||||
}
|
||||
}
|
||||
int x = std::clamp(e->pos().x() - thumb.width() / 2, THUMBNAIL_MARGIN, rect().right() - thumb.width() - THUMBNAIL_MARGIN);
|
||||
int y = -thumb.height() - THUMBNAIL_MARGIN - style()->pixelMetric(QStyle::PM_LayoutVerticalSpacing);
|
||||
thumbnail_label.showPixmap(mapToGlobal({x, y}), utils::formatSeconds(seconds), thumb, alert);
|
||||
int y = -thumb.height();
|
||||
thumbnail_label.showPixmap(mapToParent({x, y}), utils::formatSeconds(seconds), thumb, alert);
|
||||
QSlider::mouseMoveEvent(e);
|
||||
}
|
||||
|
||||
void Slider::leaveEvent(QEvent *event) {
|
||||
thumbnail_label.hide();
|
||||
QSlider::leaveEvent(event);
|
||||
bool Slider::event(QEvent *event) {
|
||||
switch (event->type()) {
|
||||
case QEvent::WindowActivate:
|
||||
case QEvent::WindowDeactivate:
|
||||
case QEvent::FocusIn:
|
||||
case QEvent::FocusOut:
|
||||
case QEvent::Leave:
|
||||
thumbnail_label.hide();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return QSlider::event(event);
|
||||
}
|
||||
|
||||
// InfoLabel
|
||||
|
||||
InfoLabel::InfoLabel(QWidget *parent) : QWidget(parent, Qt::Tool | Qt::FramelessWindowHint) {
|
||||
InfoLabel::InfoLabel(QWidget *parent) : QWidget(parent, Qt::WindowStaysOnTopHint) {
|
||||
setAttribute(Qt::WA_ShowWithoutActivating);
|
||||
setVisible(false);
|
||||
}
|
||||
@@ -288,7 +298,8 @@ void InfoLabel::showPixmap(const QPoint &pt, const QString &sec, const QPixmap &
|
||||
alert_info = alert;
|
||||
setVisible(!pm.isNull());
|
||||
if (isVisible()) {
|
||||
setGeometry({pt, pm.size()});
|
||||
resize(pm.size());
|
||||
move(pt);
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ public:
|
||||
private:
|
||||
void mousePressEvent(QMouseEvent *e) override;
|
||||
void mouseMoveEvent(QMouseEvent *e) override;
|
||||
void leaveEvent(QEvent *event) override;
|
||||
bool event(QEvent *event) override;
|
||||
void sliderChange(QAbstractSlider::SliderChange change) override;
|
||||
void paintEvent(QPaintEvent *ev) override;
|
||||
void streamStarted();
|
||||
|
||||
Reference in New Issue
Block a user