QGIS API Documentation
4.3.0-Master (52aa6503bed)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
gui
qgsalignmentcombobox.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsalignmentcombobox.h
3
---------------------
4
begin : June 2019
5
copyright : (C) 2019 by Nyall Dawson
6
email : nyall dot dawson at gmail dot com
7
***************************************************************************
8
* *
9
* This program is free software; you can redistribute it and/or modify *
10
* it under the terms of the GNU General Public License as published by *
11
* the Free Software Foundation; either version 2 of the License, or *
12
* (at your option) any later version. *
13
* *
14
***************************************************************************/
15
16
#include "
qgsalignmentcombobox.h
"
17
18
#include "
qgsapplication.h
"
19
#include "
qgsguiutils.h
"
20
21
#include <QString>
22
23
#include "moc_qgsalignmentcombobox.cpp"
24
25
using namespace
Qt::StringLiterals;
26
27
QgsAlignmentComboBox::QgsAlignmentComboBox
( QWidget *parent )
28
: QComboBox( parent )
29
{
30
populate();
31
setCurrentIndex( 0 );
32
connect(
this
,
static_cast<
void
( QComboBox::* )(
int
)
>
( &QComboBox::currentIndexChanged ),
this
, [
this
] {
33
if
( !mBlockChanged )
34
emit
changed
();
35
} );
36
}
37
38
void
QgsAlignmentComboBox::setAvailableAlignments
( Qt::Alignment alignments )
39
{
40
mAlignments = alignments;
41
populate();
42
}
43
44
Qt::Alignment
QgsAlignmentComboBox::currentAlignment
()
const
45
{
46
return
static_cast<
Qt::Alignment
>
( currentData().toInt() );
47
}
48
49
void
QgsAlignmentComboBox::setCurrentAlignment
( Qt::Alignment alignment )
50
{
51
const
int
index = findData( QVariant( alignment ) );
52
if
( index >= 0 )
53
setCurrentIndex( index );
54
}
55
56
Qgis::TextHorizontalAlignment
QgsAlignmentComboBox::horizontalAlignment
()
const
57
{
58
switch
(
currentAlignment
() )
59
{
60
case
Qt::AlignLeft:
61
return
Qgis::TextHorizontalAlignment::Left
;
62
case
Qt::AlignRight:
63
return
Qgis::TextHorizontalAlignment::Right
;
64
65
case
Qt::AlignHCenter:
66
return
Qgis::TextHorizontalAlignment::Center
;
67
case
Qt::AlignJustify:
68
return
Qgis::TextHorizontalAlignment::Justify
;
69
case
Qt::AlignAbsolute:
70
return
Qgis::TextHorizontalAlignment::Left
;
71
72
default
:
73
break
;
74
}
75
76
return
Qgis::TextHorizontalAlignment::Left
;
77
}
78
79
Qgis::TextVerticalAlignment
QgsAlignmentComboBox::verticalAlignment
()
const
80
{
81
switch
(
currentAlignment
() )
82
{
83
case
Qt::AlignTop:
84
return
Qgis::TextVerticalAlignment::Top
;
85
case
Qt::AlignBottom:
86
return
Qgis::TextVerticalAlignment::Bottom
;
87
case
Qt::AlignVCenter:
88
return
Qgis::TextVerticalAlignment::VerticalCenter
;
89
case
Qt::AlignBaseline:
90
return
Qgis::TextVerticalAlignment::Bottom
;
// not yet supported
91
92
default
:
93
break
;
94
}
95
96
return
Qgis::TextVerticalAlignment::Bottom
;
97
}
98
99
void
QgsAlignmentComboBox::setCurrentAlignment
(
Qgis::TextHorizontalAlignment
alignment )
100
{
101
switch
( alignment )
102
{
103
case
Qgis::TextHorizontalAlignment::Left
:
104
setCurrentAlignment
( Qt::AlignmentFlag::AlignLeft );
105
break
;
106
case
Qgis::TextHorizontalAlignment::Center
:
107
setCurrentAlignment
( Qt::AlignmentFlag::AlignHCenter );
108
break
;
109
case
Qgis::TextHorizontalAlignment::Right
:
110
setCurrentAlignment
( Qt::AlignmentFlag::AlignRight );
111
break
;
112
case
Qgis::TextHorizontalAlignment::Justify
:
113
setCurrentAlignment
( Qt::AlignmentFlag::AlignJustify );
114
break
;
115
}
116
}
117
118
void
QgsAlignmentComboBox::setCurrentAlignment
(
Qgis::TextVerticalAlignment
alignment )
119
{
120
switch
( alignment )
121
{
122
case
Qgis::TextVerticalAlignment::Top
:
123
setCurrentAlignment
( Qt::AlignmentFlag::AlignTop );
124
break
;
125
case
Qgis::TextVerticalAlignment::VerticalCenter
:
126
setCurrentAlignment
( Qt::AlignmentFlag::AlignVCenter );
127
break
;
128
case
Qgis::TextVerticalAlignment::Bottom
:
129
setCurrentAlignment
( Qt::AlignmentFlag::AlignBottom );
130
break
;
131
}
132
}
133
134
void
QgsAlignmentComboBox::customizeAlignmentDisplay
( Qt::Alignment alignment,
const
QString &text,
const
QIcon &icon )
135
{
136
const
int
index = findData( QVariant( alignment ) );
137
if
( index >= 0 )
138
{
139
if
( !text.isEmpty() )
140
setItemText( index, text );
141
if
( !icon.isNull() )
142
setItemIcon( index, icon );
143
}
144
}
145
146
void
QgsAlignmentComboBox::populate()
147
{
148
const
Qt::Alignment prevAlign =
currentAlignment
();
149
150
mBlockChanged =
true
;
151
clear();
152
153
if
( mAlignments & Qt::AlignLeft )
154
addItem(
QgsApplication::getThemeIcon
( u
"/mIconAlignLeft.svg"
_s ), tr(
"Left"
), Qt::AlignLeft );
155
if
( mAlignments & Qt::AlignHCenter )
156
addItem(
QgsApplication::getThemeIcon
( u
"/mIconAlignCenter.svg"
_s ), tr(
"Center"
), Qt::AlignHCenter );
157
if
( mAlignments & Qt::AlignRight )
158
addItem(
QgsApplication::getThemeIcon
( u
"/mIconAlignRight.svg"
_s ), tr(
"Right"
), Qt::AlignRight );
159
if
( mAlignments & Qt::AlignJustify )
160
addItem(
QgsApplication::getThemeIcon
( u
"/mIconAlignJustify.svg"
_s ), tr(
"Justify"
), Qt::AlignJustify );
161
162
if
( mAlignments & Qt::AlignTop )
163
addItem(
QgsApplication::getThemeIcon
( u
"/mIconAlignTop.svg"
_s ), tr(
"Top"
), Qt::AlignTop );
164
if
( mAlignments & Qt::AlignVCenter )
165
addItem(
QgsApplication::getThemeIcon
( u
"/mIconAlignVCenter.svg"
_s ), tr(
"Vertical Center"
), Qt::AlignVCenter );
166
if
( mAlignments & Qt::AlignBottom )
167
addItem(
QgsApplication::getThemeIcon
( u
"/mIconAlignBottom.svg"
_s ), tr(
"Bottom"
), Qt::AlignBottom );
168
169
const
int
index = findData( QVariant( prevAlign ) );
170
if
( index >= 0 )
171
setCurrentIndex( index );
172
173
mBlockChanged =
false
;
174
if
(
currentAlignment
() != prevAlign )
175
emit
changed
();
176
}
Qgis::TextVerticalAlignment
TextVerticalAlignment
Text vertical alignment.
Definition
qgis.h:3186
Qgis::TextVerticalAlignment::Bottom
@ Bottom
Align to bottom.
Definition
qgis.h:3189
Qgis::TextVerticalAlignment::Top
@ Top
Align to top.
Definition
qgis.h:3187
Qgis::TextVerticalAlignment::VerticalCenter
@ VerticalCenter
Center align.
Definition
qgis.h:3188
Qgis::TextHorizontalAlignment
TextHorizontalAlignment
Text horizontal alignment.
Definition
qgis.h:3167
Qgis::TextHorizontalAlignment::Justify
@ Justify
Justify align.
Definition
qgis.h:3171
Qgis::TextHorizontalAlignment::Center
@ Center
Center align.
Definition
qgis.h:3169
Qgis::TextHorizontalAlignment::Right
@ Right
Right align.
Definition
qgis.h:3170
Qgis::TextHorizontalAlignment::Left
@ Left
Left align.
Definition
qgis.h:3168
QgsAlignmentComboBox::QgsAlignmentComboBox
QgsAlignmentComboBox(QWidget *parent=nullptr)
Constructor for QgsAlignmentComboBox, with the specified parent widget.
Definition
qgsalignmentcombobox.cpp:27
QgsAlignmentComboBox::changed
void changed()
Emitted when the alignment is changed.
QgsAlignmentComboBox::horizontalAlignment
Qgis::TextHorizontalAlignment horizontalAlignment() const
Returns the current alignment choice as a QGIS horizontal text alignment enum.
Definition
qgsalignmentcombobox.cpp:56
QgsAlignmentComboBox::setCurrentAlignment
void setCurrentAlignment(Qt::Alignment alignment)
Sets the current alignment choice.
Definition
qgsalignmentcombobox.cpp:49
QgsAlignmentComboBox::customizeAlignmentDisplay
void customizeAlignmentDisplay(Qt::Alignment alignment, const QString &text=QString(), const QIcon &icon=QIcon())
Sets the text and icon to use for a particular alignment option, replacing the default text or icon.
Definition
qgsalignmentcombobox.cpp:134
QgsAlignmentComboBox::verticalAlignment
Qgis::TextVerticalAlignment verticalAlignment() const
Returns the current alignment choice as a QGIS horizontal text alignment enum.
Definition
qgsalignmentcombobox.cpp:79
QgsAlignmentComboBox::currentAlignment
Qt::Alignment currentAlignment() const
Returns the current alignment choice.
Definition
qgsalignmentcombobox.cpp:44
QgsAlignmentComboBox::setAvailableAlignments
void setAvailableAlignments(Qt::Alignment alignments)
Sets the available alignment choices shown in the combo box.
Definition
qgsalignmentcombobox.cpp:38
QgsApplication::getThemeIcon
static QIcon getThemeIcon(const QString &name, const QColor &fillColor=QColor(), const QColor &strokeColor=QColor())
Helper to get a theme icon.
Definition
qgsapplication.cpp:904
qgsalignmentcombobox.h
qgsapplication.h
qgsguiutils.h
Generated on
for QGIS API Documentation by
1.17.0