diff options
Diffstat (limited to 'pose-widget')
| -rw-r--r-- | pose-widget/images/grid-dark.png | bin | 0 -> 26862 bytes | |||
| -rw-r--r-- | pose-widget/images/grid-light.png | bin | 0 -> 29026 bytes | |||
| -rw-r--r-- | pose-widget/images/side1.png | bin | 35513 -> 172818 bytes | |||
| -rw-r--r-- | pose-widget/images/side6.png | bin | 35720 -> 172693 bytes | |||
| -rw-r--r-- | pose-widget/pose-widget.cpp | 20 | ||||
| -rw-r--r-- | pose-widget/pose-widget.hpp | 3 | ||||
| -rw-r--r-- | pose-widget/posewidget.qrc | 2 | 
7 files changed, 23 insertions, 2 deletions
| diff --git a/pose-widget/images/grid-dark.png b/pose-widget/images/grid-dark.pngBinary files differ new file mode 100644 index 00000000..8665fc30 --- /dev/null +++ b/pose-widget/images/grid-dark.png diff --git a/pose-widget/images/grid-light.png b/pose-widget/images/grid-light.pngBinary files differ new file mode 100644 index 00000000..83b844c0 --- /dev/null +++ b/pose-widget/images/grid-light.png diff --git a/pose-widget/images/side1.png b/pose-widget/images/side1.pngBinary files differ index 2955bc01..f8e5f26a 100644 --- a/pose-widget/images/side1.png +++ b/pose-widget/images/side1.png diff --git a/pose-widget/images/side6.png b/pose-widget/images/side6.pngBinary files differ index 3bae0e50..d60c4acd 100644 --- a/pose-widget/images/side6.png +++ b/pose-widget/images/side6.png diff --git a/pose-widget/pose-widget.cpp b/pose-widget/pose-widget.cpp index ac3aa74a..51d86609 100644 --- a/pose-widget/pose-widget.cpp +++ b/pose-widget/pose-widget.cpp @@ -8,6 +8,7 @@  #include "pose-widget.hpp"  #include "compat/check-visible.hpp"  #include "compat/math.hpp" +#include "opentrack/defs.hpp"  #include <QPainter>  #include <QtEvents> @@ -21,6 +22,7 @@ namespace pose_widget_impl {  pose_widget::pose_widget(QWidget* parent) : QWidget(parent)  {      QPainter p; +    p.setRenderHint(QPainter::SmoothPixmapTransform);  #ifdef TEST      //draw rectangle frame around of Octopus, only if TEST defined      p.begin(&front); @@ -38,17 +40,29 @@ pose_widget::pose_widget(QWidget* parent) : QWidget(parent)      shine.fill(QColor(255,255,255));      p.begin(&shine);      p.setCompositionMode(QPainter::CompositionMode_DestinationIn); -    p.drawImage(QPointF(0,0), front);		 +    p.drawImage(QPointF(0,0), front);      p.end();      //draw Octopus shadow      shadow.fill(QColor(0,0,0));      p.begin(&shadow);      p.setCompositionMode(QPainter::CompositionMode_DestinationIn); -    p.drawImage(QPointF(0,0), front);		 +    p.drawImage(QPointF(0,0), front);      p.end();      mirror.setFocusPolicy(Qt::NoFocus); + +#ifdef UI_COMPACT_VIDEO_FEED +    mirror.setVisible(false); +#endif +} + +void pose_widget::set_grid_background(bool dark_theme) +{ +    if (dark_theme) +        background = QImage(":/images/grid-dark.png"); +    else +        background = QImage(":/images/grid-light.png");  }  void pose_widget::present(double yaw, double pitch, double roll, double x, double y, double z) @@ -89,6 +103,8 @@ void pose_widget::paintEvent(QPaintEvent*)      {          p.fillRect(rect(), palette().brush(backgroundRole())); +        if (!background.isNull()) +            p.drawImage(rect(), background);          // draw axes          p.save();          p.setPen(QPen(Qt::gray, 1, Qt::SolidLine)); diff --git a/pose-widget/pose-widget.hpp b/pose-widget/pose-widget.hpp index 9152e960..53ecc644 100644 --- a/pose-widget/pose-widget.hpp +++ b/pose-widget/pose-widget.hpp @@ -27,6 +27,7 @@ public:      explicit pose_widget(QWidget *parent = nullptr);      void present(double xAngle, double yAngle, double zAngle, double x, double y, double z);      QCheckBox mirror{"Mirror", this}; +    void set_grid_background(bool dark_theme);  private:      void resizeEvent(QResizeEvent *event) override;      void paintEvent(QPaintEvent*) override; @@ -35,6 +36,8 @@ private:      QImage front{QImage{":/images/side1.png"}.convertToFormat(QImage::Format_ARGB32)};      QImage back {QImage{":/images/side6.png"}.convertToFormat(QImage::Format_ARGB32)                                               .mirrored(true,false)}; +    QImage background; +      QImage shine {QImage{front.width(), front.height(), QImage::Format_ARGB32}};      QImage shadow{QImage{front.width(), front.height(), QImage::Format_ARGB32}};  }; diff --git a/pose-widget/posewidget.qrc b/pose-widget/posewidget.qrc index e799432f..636151e0 100644 --- a/pose-widget/posewidget.qrc +++ b/pose-widget/posewidget.qrc @@ -2,5 +2,7 @@      <qresource prefix="/">          <file>images/side1.png</file>          <file>images/side6.png</file> +        <file>images/grid-light.png</file> +        <file>images/grid-dark.png</file>      </qresource>  </RCC> | 
