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