diff --git a/selfdrive/ui/SConscript b/selfdrive/ui/SConscript index 48e51de575..8233144b19 100644 --- a/selfdrive/ui/SConscript +++ b/selfdrive/ui/SConscript @@ -39,7 +39,7 @@ qt_libs = [widgets] + base_libs # spinner and text window qt_env.Program("qt/text", ["qt/text.cc"], LIBS=qt_libs) -qt_env.Program("qt/spinner", ["qt/spinner.cc"], LIBS=base_libs) +qt_env.Program("qt/spinner", ["qt/spinner.cc"], LIBS=qt_libs) # build main UI qt_src = ["main.cc", "ui.cc", "paint.cc", "qt/sidebar.cc", "qt/onroad.cc", diff --git a/selfdrive/ui/qt/util.cc b/selfdrive/ui/qt/util.cc index ce2529c02e..b26ae371f4 100644 --- a/selfdrive/ui/qt/util.cc +++ b/selfdrive/ui/qt/util.cc @@ -1,6 +1,70 @@ #include "selfdrive/ui/qt/util.h" + +#include #include -#include + +#include "selfdrive/common/params.h" + +QString getBrand() { + return Params().getBool("Passive") ? "dashcam" : "openpilot"; +} + +QString getBrandVersion() { + return getBrand() + " v" + QString::fromStdString(Params().get("Version")).left(14).trimmed(); +} + +void configFont(QPainter &p, const QString &family, int size, const QString &style) { + QFont f(family); + f.setPixelSize(size); + f.setStyleName(style); + p.setFont(f); +} + +void clearLayout(QLayout* layout) { + while (QLayoutItem* item = layout->takeAt(0)) { + if (QWidget* widget = item->widget()) { + widget->deleteLater(); + } + if (QLayout* childLayout = item->layout()) { + clearLayout(childLayout); + } + delete item; + } +} + +QString timeAgo(const QDateTime &date) { + int diff = date.secsTo(QDateTime::currentDateTimeUtc()); + + QString s; + if (diff < 60) { + s = "now"; + } else if (diff < 60 * 60) { + int minutes = diff / 60; + s = QString("%1 minute%2 ago").arg(minutes).arg(minutes > 1 ? "s" : ""); + } else if (diff < 60 * 60 * 24) { + int hours = diff / (60 * 60); + s = QString("%1 hour%2 ago").arg(hours).arg(hours > 1 ? "s" : ""); + } else if (diff < 3600 * 24 * 7) { + int days = diff / (60 * 60 * 24); + s = QString("%1 day%2 ago").arg(days).arg(days > 1 ? "s" : ""); + } else { + s = date.date().toString(); + } + + return s; +} + +void setQtSurfaceFormat() { + QSurfaceFormat fmt; +#ifdef __APPLE__ + fmt.setVersion(3, 2); + fmt.setProfile(QSurfaceFormat::OpenGLContextProfile::CoreProfile); + fmt.setRenderableType(QSurfaceFormat::OpenGL); +#else + fmt.setRenderableType(QSurfaceFormat::OpenGLES); +#endif + QSurfaceFormat::setDefaultFormat(fmt); +} ClickableWidget::ClickableWidget(QWidget *parent) : QWidget(parent) { } @@ -8,11 +72,10 @@ void ClickableWidget::mouseReleaseEvent(QMouseEvent *event) { emit clicked(); } - // Fix stylesheets -void ClickableWidget::paintEvent(QPaintEvent *) { - QStyleOption opt; - opt.init(this); - QPainter p(this); - style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); +void ClickableWidget::paintEvent(QPaintEvent *) { + QStyleOption opt; + opt.init(this); + QPainter p(this); + style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); } diff --git a/selfdrive/ui/qt/util.h b/selfdrive/ui/qt/util.h index 9da0397706..f56f640a3e 100644 --- a/selfdrive/ui/qt/util.h +++ b/selfdrive/ui/qt/util.h @@ -2,75 +2,17 @@ #include #include -#include #include #include #include #include -#include "selfdrive/common/params.h" - - -inline QString getBrand() { - return Params().getBool("Passive") ? "dashcam" : "openpilot"; -} - -inline QString getBrandVersion() { - return getBrand() + " v" + QString::fromStdString(Params().get("Version")).left(14).trimmed(); -} - -inline void configFont(QPainter &p, const QString &family, int size, const QString &style) { - QFont f(family); - f.setPixelSize(size); - f.setStyleName(style); - p.setFont(f); -} - -inline void clearLayout(QLayout* layout) { - while (QLayoutItem* item = layout->takeAt(0)) { - if (QWidget* widget = item->widget()) { - widget->deleteLater(); - } - if (QLayout* childLayout = item->layout()) { - clearLayout(childLayout); - } - delete item; - } -} - -inline QString timeAgo(const QDateTime &date) { - int diff = date.secsTo(QDateTime::currentDateTimeUtc()); - - QString s; - if (diff < 60) { - s = "now"; - } else if (diff < 60 * 60) { - int minutes = diff / 60; - s = QString("%1 minute%2 ago").arg(minutes).arg(minutes > 1 ? "s" : ""); - } else if (diff < 60 * 60 * 24) { - int hours = diff / (60 * 60); - s = QString("%1 hour%2 ago").arg(hours).arg(hours > 1 ? "s" : ""); - } else if (diff < 3600 * 24 * 7) { - int days = diff / (60 * 60 * 24); - s = QString("%1 day%2 ago").arg(days).arg(days > 1 ? "s" : ""); - } else { - s = date.date().toString(); - } - - return s; -} - -inline void setQtSurfaceFormat() { - QSurfaceFormat fmt; -#ifdef __APPLE__ - fmt.setVersion(3, 2); - fmt.setProfile(QSurfaceFormat::OpenGLContextProfile::CoreProfile); - fmt.setRenderableType(QSurfaceFormat::OpenGL); -#else - fmt.setRenderableType(QSurfaceFormat::OpenGLES); -#endif - QSurfaceFormat::setDefaultFormat(fmt); -} +QString getBrand(); +QString getBrandVersion(); +void configFont(QPainter &p, const QString &family, int size, const QString &style); +void clearLayout(QLayout* layout); +void setQtSurfaceFormat(); +QString timeAgo(const QDateTime &date); class ClickableWidget : public QWidget {