Tue, 26 Jul 2022 19:46:44 +0200
Version 0.2.21. Updated translations.
316
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
1 | /*************************************************************************** |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
2 | * Copyright (C) 2006-2008 by Tomasz Ziobrowski * |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
3 | * http://www.3electrons.com * |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
4 | * e-mail: t.ziobrowski@3electrons.com * |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
5 | * * |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
6 | * * |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
7 | * This program is free software; you can redistribute it and/or modify * |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
8 | * it under the terms of the GNU General Public License as published by * |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
9 | * the Free Software Foundation; either version 2 of the License, or * |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
10 | * (at your option) any later version. * |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
11 | * * |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
12 | * This program is distributed in the hope that it will be useful, * |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
15 | * GNU General Public License for more details. * |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
16 | * * |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
17 | * You should have received a copy of the GNU General Public License * |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
18 | * along with this program; if not, write to the * |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
19 | * Free Software Foundation, Inc., * |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
20 | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
21 | ***************************************************************************/ |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
22 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
23 | #include <QtGui> |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
24 | #include <cmath> |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
25 | #include <assert.h> |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
26 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
27 | #include "manometer.h" |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
28 | #define PI 3.141592653589793238512808959406186204433 |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
29 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
30 | using namespace Qt; |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
31 | ManoMeter::ManoMeter(QWidget *parent) |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
32 | : AbstractMeter(parent) |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
33 | { |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
34 | m_max=300.0; |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
35 | m_min=0.0; |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
36 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
37 | m_maximum=300.0; // First we set manualy to call calcMaxMin |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
38 | setMinimum(0.0); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
39 | calcMaxMin(); // Extend max and min to have nice step values |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
40 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
41 | setValue(0.0); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
42 | setNominal(80.0); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
43 | setCritical(220.0); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
44 | setValueOffset(-100.0); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
45 | setDigitOffset(105.0); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
46 | setSuffix(QString(" [bar]")); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
47 | m_digitFont.setPointSize(20); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
48 | m_valueFont.setPointSize(25); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
49 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
50 | // QWidget |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
51 | setSizePolicy (QSizePolicy::Expanding, QSizePolicy::Expanding); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
52 | setWindowTitle(tr("Analog Barmeter")); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
53 | resize(311, 311); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
54 | assert(m_max-m_min != 0); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
55 | } |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
56 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
57 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
58 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
59 | void ManoMeter::initCoordinateSystem(QPainter & painter) |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
60 | { |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
61 | int side = qMin(width(), height()); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
62 | // painter initialization |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
63 | painter.setRenderHint(QPainter::Antialiasing); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
64 | painter.translate(width() / 2, height() / 2); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
65 | painter.scale(side / 335.0, side / 335.0); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
66 | } |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
67 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
68 | void ManoMeter::paintBackground(QPainter & painter) |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
69 | { |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
70 | static const int scaleTriangle[6] = { -6,141,6,141,0,129 }; |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
71 | initCoordinateSystem(painter); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
72 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
73 | // Painting Malowanie obwiedni tarczy. Biała tarcza z czarną skalą |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
74 | QPen Pen(QColor(0,0,0)); Pen.setWidth(4); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
75 | painter.setPen(Pen); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
76 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
77 | QRadialGradient back1(QPointF(0.0,0.0),180.0,QPointF(-35.0,145.0)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
78 | back1.setColorAt(0.0,QColor(250,250,250)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
79 | back1.setColorAt(1.0,QColor(20,20,20)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
80 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
81 | QRadialGradient back2(QPointF(0.0,0.0),225.0,QPointF(76.5,135.0)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
82 | back2.setColorAt(0.0,QColor(10,10,10)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
83 | back2.setColorAt(1.0,QColor(250,250,250)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
84 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
85 | painter.setBrush(QBrush(back1)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
86 | painter.drawEllipse(-162,-162,324,324); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
87 | painter.setPen(Qt::NoPen); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
88 | painter.setBrush(QBrush(back2)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
89 | painter.drawEllipse(-152,-152,304,304); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
90 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
91 | QRadialGradient shield(QPointF(0,0),182,QPointF(-12.0,-15.0)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
92 | shield.setColorAt(0.0,Qt::white); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
93 | shield.setColorAt(0.5,QColor(240,240,240)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
94 | shield.setColorAt(1.0,QColor(215,215,215)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
95 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
96 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
97 | // internal scale circle |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
98 | painter.setBrush(QBrush(shield)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
99 | painter.setPen(Pen); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
100 | painter.drawEllipse(-142,-142,284,284); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
101 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
102 | painter.setPen(Qt::NoPen); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
103 | // nominal |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
104 | painter.setBrush(QColor(0,200,0)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
105 | assert(m_max-m_min != 0); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
106 | int angle = static_cast<int>( (3840 * ( m_nominal - m_min ))/(m_max-m_min) ); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
107 | if (m_min <= m_nominal && m_nominal < m_max ) |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
108 | painter.drawPie(QRect(-141,-141,282,282),-480,3840 - angle % 5760 ); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
109 | // Critical |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
110 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
111 | painter.setBrush(QBrush(Qt::red)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
112 | angle = static_cast<int>( (3840 * ( m_critical - m_min ))/(m_max-m_min) ); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
113 | if ( m_min <= m_critical && m_critical < m_max ) |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
114 | painter.drawPie(QRect(-141,-141,282,282),-480, 3840 - angle % 5760 ); //-480, 3840*( m_max-m_min - critical()-abs(m_min) )/static_cast<double>(m_max-m_min)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
115 | // biała obwiednia |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
116 | painter.setBrush(QBrush(shield)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
117 | painter.drawEllipse(-129,-129,258,258); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
118 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
119 | // Ustawienie się na początku skali |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
120 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
121 | painter.rotate(60.0); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
122 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
123 | // Rysowanie skali kreski |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
124 | painter.save(); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
125 | painter.setBrush(QBrush(Qt::black)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
126 | int line_length=10; |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
127 | for (int i=0;i<33;i++) |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
128 | { |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
129 | painter.setPen(Pen); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
130 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
131 | if (i % 4) painter.drawLine(0,140,0,140-line_length); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
132 | else { |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
133 | painter.setPen(Qt::NoPen); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
134 | painter.drawConvexPolygon(QPolygon(3, scaleTriangle)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
135 | } |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
136 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
137 | painter.rotate(7.5); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
138 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
139 | Pen.setWidth(3); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
140 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
141 | if (i % 2) line_length=10; |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
142 | else line_length=5; |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
143 | } |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
144 | painter.restore(); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
145 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
146 | // Rysowanie skali liczby . |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
147 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
148 | if (true || digitOffset()) |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
149 | { |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
150 | painter.setPen(Qt::black); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
151 | painter.rotate(-60.0); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
152 | painter.setFont(digitFont()); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
153 | for (int i=0;i<9;i++) |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
154 | { |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
155 | double v = m_min + i*(m_max - m_min)/8.0; |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
156 | if (fabs(v) < 0.000001 ) v = 0.0; |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
157 | QString val = QString("%1").arg(v); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
158 | QSize Size = painter.fontMetrics().size(Qt::TextSingleLine, val); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
159 | painter.save(); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
160 | painter.translate( digitOffset() * cos((5+i)*PI/6.0), digitOffset() * sin((5+i)*PI/6.0)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
161 | painter.drawText( QPointF( Size.width()/ -2.0, Size.height() / 4.0), val); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
162 | painter.restore(); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
163 | } |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
164 | } |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
165 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
166 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
167 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
168 | }// paintBackground |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
169 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
170 | void ManoMeter::paintEvent(QPaintEvent * ) |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
171 | { |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
172 | drawBackground(); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
173 | QPainter painter(this); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
174 | initCoordinateSystem(painter); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
175 | // --------------------------------------------- /// |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
176 | static const int hand[12] = {-4, 0, -1, 129, 1, 129, 4, 0, 8,-50, -8,-50}; |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
177 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
178 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
179 | QPainterPath hand_path; |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
180 | hand_path.moveTo(QPointF(hand[0],hand[1])); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
181 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
182 | for (int i=2;i<10;i+=2) |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
183 | hand_path.lineTo(hand[i],hand[i+1]); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
184 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
185 | hand_path.cubicTo ( 8.1,-51.0, 5.0,-48.0, 0.0,-48.0); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
186 | hand_path.cubicTo( -5.0,-48.0, -8.1,-51.0, -8.0,-50.0); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
187 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
188 | // Rysowanie wskazówki |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
189 | painter.save(); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
190 | painter.rotate(60.0); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
191 | painter.setPen(Qt::NoPen); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
192 | painter.setBrush(QBrush(Qt::black)); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
193 | painter.rotate( (( value()-m_min) * 240.0) / static_cast<double> (m_max - m_min) ); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
194 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
195 | painter.drawPath(hand_path); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
196 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
197 | painter.drawEllipse(-10,-10,20,20); |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
198 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
199 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
200 | painter.restore();// Przywrocenie do wychylenia o 60 stopni |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
201 | |
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
202 | // Rysowanie wyświetlanej wartości |
321
430d4cd2edd6
Force red or black pen color
Michiel Broek <mbroek@mbse.eu>
parents:
316
diff
changeset
|
203 | if (valueOffset()) |
430d4cd2edd6
Force red or black pen color
Michiel Broek <mbroek@mbse.eu>
parents:
316
diff
changeset
|
204 | { |
430d4cd2edd6
Force red or black pen color
Michiel Broek <mbroek@mbse.eu>
parents:
316
diff
changeset
|
205 | if (value() >= critical()) |
430d4cd2edd6
Force red or black pen color
Michiel Broek <mbroek@mbse.eu>
parents:
316
diff
changeset
|
206 | painter.setPen(Qt::red); |
430d4cd2edd6
Force red or black pen color
Michiel Broek <mbroek@mbse.eu>
parents:
316
diff
changeset
|
207 | else |
430d4cd2edd6
Force red or black pen color
Michiel Broek <mbroek@mbse.eu>
parents:
316
diff
changeset
|
208 | painter.setPen(Qt::black); |
430d4cd2edd6
Force red or black pen color
Michiel Broek <mbroek@mbse.eu>
parents:
316
diff
changeset
|
209 | painter.setFont(valueFont()); |
430d4cd2edd6
Force red or black pen color
Michiel Broek <mbroek@mbse.eu>
parents:
316
diff
changeset
|
210 | QString Str = prefix() + QString("%1").arg(value()) + suffix(); |
430d4cd2edd6
Force red or black pen color
Michiel Broek <mbroek@mbse.eu>
parents:
316
diff
changeset
|
211 | QSize Size = painter.fontMetrics().size(Qt::TextSingleLine, Str); |
430d4cd2edd6
Force red or black pen color
Michiel Broek <mbroek@mbse.eu>
parents:
316
diff
changeset
|
212 | painter.drawText( QPointF( Size.width() / -2.0,static_cast<int>( 0 - valueOffset())) , Str); |
430d4cd2edd6
Force red or black pen color
Michiel Broek <mbroek@mbse.eu>
parents:
316
diff
changeset
|
213 | } |
316
dcd472be9ae8
Added led, manometer, thermometer and wallclock from the abandoned AnalogWidgets project as plugins. There is some work to do but it's already usable for the monitor screens.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
214 | }// paintEvent |