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
qgsslider.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsslider.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 "
qgsslider.h
"
19
#include "
qgslogger.h
"
20
21
#include <QPaintEvent>
22
#include <QPainter>
23
#include <QRect>
24
#include <qmath.h>
25
26
QgsSlider::QgsSlider
(
QWidget
* parent ) :
QSlider
( parent )
27
{
28
setMinimumSize
(
QSize
( 100, 40 ) );
29
}
30
31
QgsSlider::QgsSlider
( Qt::Orientation orientation,
QWidget
* parent ) :
QSlider
( orientation, parent )
32
{
33
setMinimumSize
(
QSize
( 100, 40 ) );
34
}
35
36
void
QgsSlider::paintEvent
(
QPaintEvent
*event )
37
{
38
QSlider::paintEvent
( event );
39
QPainter
painter(
this
);
40
QRect
rect
=
geometry
();
41
painter.
setPen
(
QPen
(
palette
().color( QPalette::WindowText ) ) );
42
painter.
drawText
(
QRectF
( 0, rect.
height
() * 0.5, rect.
width
(), rect.
height
() ),
43
Qt::AlignHCenter,
variantValue
().
toString
(), 0 );
44
painter.
end
();
45
}
46
47
void
QgsSlider::setMinimum
(
const
QVariant
&
min
)
48
{
49
mMin =
min
;
50
update();
51
}
52
53
void
QgsSlider::setMaximum
(
const
QVariant
&
max
)
54
{
55
mMax =
max
;
56
update();
57
}
58
59
void
QgsSlider::setSingleStep
(
const
QVariant
&step )
60
{
61
mStep = step;
62
update();
63
}
64
65
void
QgsSlider::setValue
(
const
QVariant
&value )
66
{
67
mValue =
value
;
68
update();
69
}
70
71
void
QgsSlider::update()
72
{
73
if
( mMin.
isNull
() || mMax.
isNull
() || mStep.
isNull
() )
74
return
;
75
76
if
( mValue.
isNull
() )
77
mValue = mMin;
78
79
if
( mMin.
type
() == QVariant::Int &&
80
mMax.
type
() == QVariant::Int &&
81
mStep.
type
() == QVariant::Int &&
82
mValue.
type
() == QVariant::Int )
83
{
84
QSlider::setMinimum
( mMin.
toInt
() );
85
QSlider::setMaximum
( mMax.
toInt
() );
86
QSlider::setSingleStep
( mStep.
toInt
() );
87
QSlider::setValue
( mValue.
toInt
() );
88
}
89
90
if
( mMin.
type
() == QVariant::Double &&
91
mMax.
type
() == QVariant::Double &&
92
mStep.
type
() == QVariant::Double &&
93
mValue.
type
() == QVariant::Double )
94
{
95
if
(
minimum
() != 0 )
96
QSlider::setMinimum
( 0 );
97
98
int
max
= qCeil(( mMax.
toDouble
() - mMin.
toDouble
() ) / mStep.
toDouble
() );
99
if
(
maximum
() !=
max
)
100
QSlider::setMaximum
( max );
101
102
if
(
singleStep
() != 1 )
103
QSlider::setSingleStep
( 1 );
104
105
QSlider::setValue
( qCeil(( mValue.
toDouble
() - mMin.
toDouble
() ) / mStep.
toDouble
() ) );
106
}
107
108
connect
(
this
, SIGNAL(
valueChanged
(
int
) ),
this
, SLOT(
valueChanged
(
int
) ) );
109
}
110
111
QVariant
QgsSlider::variantValue
()
const
112
{
113
return
mValue;
114
}
115
116
void
QgsSlider::valueChanged
(
int
value )
117
{
118
if
( mMin.
isNull
() || mMax.
isNull
() || mStep.
isNull
() )
119
{
120
mValue =
QVariant
();
121
return
;
122
}
123
124
if
( mMin.
type
() == QVariant::Int &&
125
mMax.
type
() == QVariant::Int &&
126
mStep.
type
() == QVariant::Int &&
127
mValue.
type
() == QVariant::Int )
128
{
129
mValue =
value
;
130
return
;
131
}
132
133
if
( mMin.
type
() == QVariant::Double &&
134
mMax.
type
() == QVariant::Double &&
135
mStep.
type
() == QVariant::Double &&
136
mValue.
type
() == QVariant::Double )
137
{
138
mValue =
QVariant
( mMin.
toDouble
() + value * mStep.
toDouble
() );
139
return
;
140
}
141
}
QgsSlider::setValue
void setValue(const QVariant &value)
Definition:
qgsslider.cpp:65
QWidget
QWidget::palette
const QPalette & palette() const
QPainter::end
bool end()
QgsSlider::valueChanged
void valueChanged(QVariant)
qgsslider.h
QgsSlider::setMaximum
void setMaximum(const QVariant &max)
Definition:
qgsslider.cpp:53
QgsSlider::setSingleStep
void setSingleStep(const QVariant &step)
Definition:
qgsslider.cpp:59
QRect::height
int height() const
QgsSlider::QgsSlider
QgsSlider(QWidget *parent=0)
Definition:
qgsslider.cpp:26
QSlider
QgsSlider::setMinimum
void setMinimum(const QVariant &min)
Definition:
qgsslider.cpp:47
QWidget::geometry
const QRect & geometry() const
QWidget::setMinimumSize
void setMinimumSize(const QSize &)
QRect
QVariant::toInt
int toInt(bool *ok) const
QVariant::isNull
bool isNull() const
QPainter::setPen
void setPen(const QColor &color)
QPainter
QgsSlider::variantValue
QVariant variantValue() const
Definition:
qgsslider.cpp:111
QPainter::drawText
void drawText(const QPointF &position, const QString &text)
QSlider::paintEvent
virtual void paintEvent(QPaintEvent *ev)
QAbstractSlider::setMinimum
void setMinimum(int)
QWidget::rect
QRect rect() const
pal::min
int min(int a, int b)
Definition:
util.h:93
QSize
QAbstractSlider::value
int value() const
QRect::width
int width() const
QAbstractSlider::setSingleStep
void setSingleStep(int)
QRectF
QPen
QVariant::toDouble
double toDouble(bool *ok) const
QPaintEvent
QgsSlider::paintEvent
virtual void paintEvent(QPaintEvent *event) override
Definition:
qgsslider.cpp:36
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:42 for QGIS API Documentation by
1.8.6