Skip to content
This repository was archived by the owner on Dec 26, 2020. It is now read-only.

Commit 5c45ea1

Browse files
committed
Version 0.2.0
1 parent 8db1ece commit 5c45ea1

File tree

10 files changed

+104
-32
lines changed

10 files changed

+104
-32
lines changed

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Changelog
2+
3+
## Beta versions
4+
5+
### v0.2.0
6+
7+
- Add Umbrel logo to the QR code
8+
- Remove movable cursor
9+
- Switch to CMake build system
10+
11+
## Alpha versions
12+
13+
### v0.1.1
14+
15+
- Add Umbrel logo in the bottom right corner
16+
- Add "Thank you for using Umbrel" text
17+
18+
### v0.1.0
19+
20+
- Fix missing "http://" in QR Code link
21+
- Optimize text align
22+
- Remove unsused wayland compositor
23+
- Code cleanups
24+
25+
### v0.0.1
26+
27+
- First release

CMakeLists.txt

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
project(umbrel-details)
2+
cmake_minimum_required(VERSION 3.16)
3+
set(CMAKE_AUTOMOC ON)
4+
set(CMAKE_AUTORCC ON)
5+
set(CMAKE_AUTOUIC ON)
6+
set(CMAKE_BUILD_TYPE Release)
7+
set(CMAKE_INCLUDE_CURRENT_DIR ON)
8+
add_definitions(-Wall)
9+
set(CMAKE_AUTOMOC ON)
10+
set(CMAKE_AUTORCC ON)
11+
12+
find_package(Qt5Core REQUIRED)
13+
find_package(Qt5Gui REQUIRED)
14+
find_package(Qt5LinguistTools REQUIRED)
15+
find_package(Qt5Svg REQUIRED)
16+
find_package(Qt5Network REQUIRED)
17+
18+
INCLUDE_DIRECTORIES(
19+
qrcode/
20+
)
21+
22+
set(SRCS
23+
main.cpp
24+
window.cpp
25+
qrcode/QrCode.cpp
26+
)
27+
28+
QT5_ADD_RESOURCES(RSCS umbrel-details.qrc)
29+
30+
add_executable(umbrel-details ${SRCS} ${RSCS})
31+
qt5_use_modules(umbrel-details Core)
32+
qt5_use_modules(umbrel-details Gui)
33+
qt5_use_modules(umbrel-details Svg)
34+
qt5_use_modules(umbrel-details Network)

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,16 @@ sudo apt install libqt5gui5 libqt5svg5 libqt5network5 -y
1515
```
1616
mkdir build
1717
cd build
18-
qmake ..
18+
cmake ..
1919
make -j$(nproc)
2020
```
2121

2222
## Running
2323

2424
To run this on an Raspberry Pi with Umbrel OS, run
2525
```
26-
./umbrel-details -platform linuxfb
26+
export QT_QPA_LINUXFB_HIDECURSOR=1
27+
./umbrel-details -platform eglfs
2728
```
2829

2930
## License

example.png

3.44 KB
Loading

umbrel-details.pro

Lines changed: 0 additions & 14 deletions
This file was deleted.

umbrel-details.qrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<RCC>
22
<qresource>
33
<file alias="umbrel.svg">umbrel.svg</file>
4+
<file alias="umbrel2.svg">umbrel2.svg</file>
45
</qresource>
56
</RCC>

umbrel.svg

Lines changed: 3 additions & 3 deletions
Loading

umbrel2.svg

Lines changed: 5 additions & 0 deletions
Loading

window.cpp

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,17 @@
5050

5151
#include "window.h"
5252

53-
#include <QMouseEvent>
53+
#include <QFile>
54+
#include <QExposeEvent>
55+
#include <QResizeEvent>
5456
#include <QWindow>
5557
#include <QBackingStore>
56-
#include <QMatrix4x4>
5758
#include <QPainter>
5859
#include <QXmlStreamReader>
5960
#include <QSvgRenderer>
6061
#include <QHostAddress>
6162
#include <QNetworkInterface>
6263

63-
#include <QtWaylandCompositor/qwaylandseat.h>
64-
6564
#include "QrCode.hpp"
6665

6766
Window::Window()
@@ -82,6 +81,10 @@ void Window::drawBackground()
8281
file2.open(QIODevice::ReadOnly);
8382
QTextStream s2(&file2);
8483
QString logoString = s2.readAll();
84+
QFile file3(":/umbrel2.svg");
85+
file3.open(QIODevice::ReadOnly);
86+
QTextStream s3(&file3);
87+
QString logoString2 = s3.readAll();
8588

8689
// Get tor host name
8790
QFile file("/home/umbrel/umbrel/tor/data/web/hostname");
@@ -110,9 +113,19 @@ void Window::drawBackground()
110113
QPainter painter2(device);
111114
int deltaX = this->geometry().width() - backgroundImage.width();
112115
int deltaY = this->geometry().height() - backgroundImage.height() + 260;
116+
int deltaX2 = backgroundImage.width() - 136;
117+
int deltaY2 = backgroundImage.height() - 153;
113118
painter2.drawImage(this->geometry(), backgroundColorImage);
114119
painter2.translate(deltaX / 2, deltaY / 2);
115120
painter2.drawImage(backgroundImage.rect(), backgroundImage);
121+
QImage logoImage2(136, 153, QImage::Format_ARGB32);
122+
logoImage2.fill(Qt::white);
123+
QPainter painter6(&logoImage2);
124+
QXmlStreamReader *reader2 = new QXmlStreamReader(logoString2);
125+
QSvgRenderer *renderer3 = new QSvgRenderer(reader2);
126+
renderer3->render(&painter6);
127+
painter2.translate(deltaX2 / 2, deltaY2 / 2);
128+
painter2.drawImage(logoImage2.rect(), logoImage2);
116129
painter2.end();
117130

118131
// Add text
@@ -141,25 +154,29 @@ void Window::drawBackground()
141154
QXmlStreamReader *reader = new QXmlStreamReader(logoString);
142155
QSvgRenderer *renderer2 = new QSvgRenderer(reader);
143156
renderer2->render(&painter4);
144-
QPaintDevice *device2 = m_backingStore->paintDevice();
145-
QPainter painter5(device2);
146-
int delta2X = this->geometry().width() - logoImage.width() - 15;
147-
int delta2Y = this->geometry().height() - logoImage.height() - 15;
148-
painter5.translate(delta2X, delta2Y);
157+
QPainter painter5(device);
158+
int deltaX3 = this->geometry().width() - logoImage.width() - 15;
159+
int deltaY3 = this->geometry().height() - logoImage.height() - 15;
160+
painter5.translate(deltaX3, deltaY3);
149161
painter5.drawImage(logoImage.rect(), logoImage);
150162
painter5.end();
151163
}
164+
152165
void Window::update()
153166
{
154167
if (!isExposed())
155168
return;
169+
// Remove this for screenshots using linuxfb, but having it otherwise results in glitches
170+
if(updated)
171+
return;
156172

157173
QRect rect(0, 0, width(), height());
158174
m_backingStore->beginPaint(rect);
159175

160176
drawBackground();
161177
m_backingStore->endPaint();
162178
m_backingStore->flush(rect);
179+
updated = true;
163180
}
164181

165182
bool Window::event(QEvent *event)
@@ -183,7 +200,7 @@ void Window::resizeEvent(QResizeEvent *resizeEvent)
183200
}
184201

185202
QSvgRenderer *Window::getQrCode(QString *address) {
186-
qrcodegen::QrCode qr0 = qrcodegen::QrCode::encodeText(address->toStdString().c_str(), qrcodegen::QrCode::Ecc::MEDIUM);
203+
qrcodegen::QrCode qr0 = qrcodegen::QrCode::encodeText(address->toStdString().c_str(), qrcodegen::QrCode::Ecc::HIGH);
187204
QString svg = QString::fromStdString(qr0.toSvgString(4));
188205
QXmlStreamReader *reader = new QXmlStreamReader(svg);
189206
QSvgRenderer *renderer = new QSvgRenderer(reader);

window.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@
4848
**
4949
****************************************************************************/
5050

51-
#ifndef COMPOSITORWINDOW_H
52-
#define COMPOSITORWINDOW_H
51+
#ifndef WINDOW_H
52+
#define WINDOW_H
5353

5454
#include <QWindow>
5555
#include <QPointer>
@@ -93,8 +93,9 @@ public slots:
9393
QPointF m_initialMousePos;
9494
View *m_dragIconView = nullptr;
9595
QBackingStore *m_backingStore = nullptr;
96+
bool updated = false;
9697
};
9798

9899
QT_END_NAMESPACE
99100

100-
#endif // COMPOSITORWINDOW_H
101+
#endif // WINDOW_H

0 commit comments

Comments
 (0)