QGIS API Documentation
2.10.1-Pisa
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
src
gui
qgsdial.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsdial.cpp
3
-------------------
4
begin : July 2013
5
copyright : (C) 2013 by Daniel Vaz
6
email : danielvaz at gmail dot com
7
***************************************************************************/
8
9
/***************************************************************************
10
* *
11
* This program is free software; you can redistribute it and/or modify *
12
* it under the terms of the GNU General Public License as published by *
13
* the Free Software Foundation; either version 2 of the License, or *
14
* (at your option) any later version. *
15
* *
16
***************************************************************************/
17
18
#include "
qgsdial.h
"
19
#include "
qgslogger.h
"
20
21
#include <QPaintEvent>
22
#include <QPainter>
23
#include <QRect>
24
#include <qmath.h>
25
26
QgsDial::QgsDial
(
QWidget
*parent ) :
QDial
( parent )
27
{
28
setMinimumSize
(
QSize
( 50, 50 ) );
29
}
30
31
void
QgsDial::paintEvent
(
QPaintEvent
*event )
32
{
33
QDial::paintEvent
( event );
34
QPainter
painter(
this
);
35
QRect
rect
=
geometry
();
36
painter.
setPen
(
QPen
(
palette
().color( QPalette::WindowText ) ) );
37
painter.
drawText
(
QRectF
( 0, rect.
height
() * 0.65, rect.
width
(), rect.
height
() ),
38
Qt::AlignHCenter,
variantValue
().
toString
(), 0 );
39
painter.
end
();
40
}
41
42
void
QgsDial::setMinimum
(
const
QVariant
&
min
)
43
{
44
mMin =
min
;
45
update();
46
}
47
48
void
QgsDial::setMaximum
(
const
QVariant
&
max
)
49
{
50
mMax =
max
;
51
update();
52
}
53
54
void
QgsDial::setSingleStep
(
const
QVariant
&step )
55
{
56
mStep = step;
57
update();
58
}
59
60
void
QgsDial::setValue
(
const
QVariant
&value )
61
{
62
mValue =
value
;
63
update();
64
}
65
66
void
QgsDial::update()
67
{
68
if
( mMin.
isNull
() || mMax.
isNull
() || mStep.
isNull
() )
69
return
;
70
71
if
( mValue.
isNull
() )
72
mValue = mMin;
73
74
if
( mMin.
type
() == QVariant::Int &&
75
mMax.
type
() == QVariant::Int &&
76
mStep.
type
() == QVariant::Int &&
77
mValue.
type
() == QVariant::Int )
78
{
79
QDial::setMinimum
( mMin.
toInt
() );
80
QDial::setMaximum
( mMax.
toInt
() );
81
QDial::setSingleStep
( mStep.
toInt
() );
82
QDial::setValue
( mValue.
toInt
() );
83
}
84
85
if
( mMin.
type
() == QVariant::Double &&
86
mMax.
type
() == QVariant::Double &&
87
mStep.
type
() == QVariant::Double &&
88
mValue.
type
() == QVariant::Double )
89
{
90
if
(
minimum
() != 0 )
91
QDial::setMinimum
( 0 );
92
93
int
max
= qCeil(( mMax.
toDouble
() - mMin.
toDouble
() ) / mStep.
toDouble
() );
94
if
(
maximum
() !=
max
)
95
QDial::setMaximum
( max );
96
97
if
(
singleStep
() != 1 )
98
QDial::setSingleStep
( 1 );
99
100
QDial::setValue
( qCeil(( mValue.
toDouble
() - mMin.
toDouble
() ) / mStep.
toDouble
() ) );
101
}
102
103
connect
(
this
, SIGNAL(
valueChanged
(
int
) ),
this
, SLOT(
valueChanged
(
int
) ) );
104
}
105
106
QVariant
QgsDial::variantValue
()
const
107
{
108
return
mValue;
109
}
110
111
void
QgsDial::valueChanged
(
int
value )
112
{
113
if
( mMin.
isNull
() || mMax.
isNull
() || mStep.
isNull
() )
114
{
115
mValue =
QVariant
();
116
return
;
117
}
118
119
if
( mMin.
type
() == QVariant::Int &&
120
mMax.
type
() == QVariant::Int &&
121
mStep.
type
() == QVariant::Int &&
122
mValue.
type
() == QVariant::Int )
123
{
124
mValue =
value
;
125
return
;
126
}
127
128
if
( mMin.
type
() == QVariant::Double &&
129
mMax.
type
() == QVariant::Double &&
130
mStep.
type
() == QVariant::Double &&
131
mValue.
type
() == QVariant::Double )
132
{
133
mValue =
QVariant
( mMin.
toDouble
() + value * mStep.
toDouble
() );
134
return
;
135
}
136
}
QgsDial::setMaximum
void setMaximum(const QVariant &max)
Definition:
qgsdial.cpp:48
QWidget
QWidget::palette
const QPalette & palette() const
QPainter::end
bool end()
QgsDial::QgsDial
QgsDial(QWidget *parent=0)
Definition:
qgsdial.cpp:26
QgsDial::valueChanged
void valueChanged(QVariant)
QRect::height
int height() const
QgsDial::paintEvent
virtual void paintEvent(QPaintEvent *event) override
Definition:
qgsdial.cpp:31
QgsDial::setMinimum
void setMinimum(const QVariant &min)
Definition:
qgsdial.cpp:42
QgsDial::setSingleStep
void setSingleStep(const QVariant &step)
Definition:
qgsdial.cpp:54
QWidget::geometry
const QRect & geometry() const
QWidget::setMinimumSize
void setMinimumSize(const QSize &)
QDial
QRect
QVariant::toInt
int toInt(bool *ok) const
QVariant::isNull
bool isNull() const
QPainter::setPen
void setPen(const QColor &color)
QgsDial::variantValue
QVariant variantValue() const
Definition:
qgsdial.cpp:106
QPainter
QPainter::drawText
void drawText(const QPointF &position, const QString &text)
QAbstractSlider::setMinimum
void setMinimum(int)
QWidget::rect
QRect rect() const
QgsDial::setValue
void setValue(const QVariant &value)
Definition:
qgsdial.cpp:60
pal::min
int min(int a, int b)
Definition:
util.h:93
QSize
QAbstractSlider::value
int value() const
QRect::width
int width() const
qgsdial.h
QAbstractSlider::setSingleStep
void setSingleStep(int)
QRectF
QDial::paintEvent
virtual void paintEvent(QPaintEvent *pe)
QPen
QVariant::toDouble
double toDouble(bool *ok) const
QPaintEvent
QVariant::type
Type type() const
QAbstractSlider::setMaximum
void setMaximum(int)
QObject::connect
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QVariant::toString
QString toString() const
pal::max
int max(int a, int b)
Definition:
util.h:87
QVariant
qgslogger.h
Generated on Sat Aug 22 2015 02:53:41 for QGIS API Documentation by
1.8.6