|
|
|
@ -2,75 +2,17 @@ |
|
|
|
|
|
|
|
|
|
#include <QDateTime> |
|
|
|
|
#include <QLayout> |
|
|
|
|
#include <QLayoutItem> |
|
|
|
|
#include <QMouseEvent> |
|
|
|
|
#include <QPainter> |
|
|
|
|
#include <QSurfaceFormat> |
|
|
|
|
#include <QWidget> |
|
|
|
|
|
|
|
|
|
#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 |
|
|
|
|
{ |
|
|
|
|