QGIS API Documentation
4.3.0-Master (52aa6503bed)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
gui
qgshttpheaderwidget.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgshttpheaderswidget.cpp
3
This class implements simple UI for http header.
4
5
-------------------
6
begin : 2021-09-09
7
copyright : (C) 2021 B. De Mezzo
8
email : benoit dot de dot mezzo at oslandia dot com
9
10
***************************************************************************/
11
12
/***************************************************************************
13
* *
14
* This program is free software; you can redistribute it and/or modify *
15
* it under the terms of the GNU General Public License as published by *
16
* the Free Software Foundation; either version 2 of the License, or *
17
* (at your option) any later version. *
18
* *
19
***************************************************************************/
20
21
#include "ui_qgshttpheaderwidget.h"
22
#include "
qgshttpheaderwidget.h
"
23
24
#include "
qgsapplication.h
"
25
26
#include <QString>
27
28
#include "moc_qgshttpheaderwidget.cpp"
29
30
using namespace
Qt::StringLiterals;
31
32
QgsHttpHeaderWidget::QgsHttpHeaderWidget
( QWidget *parent )
33
: QWidget( parent )
34
{
35
setupUi(
this
);
36
btnAddQueryPair->setIcon(
QgsApplication::getThemeIcon
( u
"/symbologyAdd.svg"
_s ) );
37
btnRemoveQueryPair->setIcon(
QgsApplication::getThemeIcon
( u
"/symbologyRemove.svg"
_s ) );
38
grpbxAdvanced->setCollapsed(
true
);
39
40
// Action and interaction connections
41
connect( btnAddQueryPair, &QToolButton::clicked,
this
, &QgsHttpHeaderWidget::addQueryPair );
42
connect( btnRemoveQueryPair, &QToolButton::clicked,
this
, &QgsHttpHeaderWidget::removeQueryPair );
43
}
44
45
QgsHttpHeaderWidget::~QgsHttpHeaderWidget
() =
default
;
46
47
void
QgsHttpHeaderWidget::addQueryPairRow(
const
QString &key,
const
QString &val )
48
{
49
const
int
rowCnt = tblwdgQueryPairs->rowCount();
50
tblwdgQueryPairs->insertRow( rowCnt );
51
52
const
Qt::ItemFlags itemFlags = Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsDropEnabled;
53
54
QTableWidgetItem *keyItem =
new
QTableWidgetItem( key );
55
keyItem->setFlags( itemFlags );
56
tblwdgQueryPairs->setItem( rowCnt, 0, keyItem );
57
58
QTableWidgetItem *valueItem =
new
QTableWidgetItem( val );
59
valueItem->setFlags( itemFlags );
60
tblwdgQueryPairs->setItem( rowCnt, 1, valueItem );
61
}
62
63
QgsHttpHeaders
QgsHttpHeaderWidget::httpHeaders
()
const
64
{
65
QgsHttpHeaders
querypairs;
66
for
(
int
i = 0; i < tblwdgQueryPairs->rowCount(); ++i )
67
{
68
if
( tblwdgQueryPairs->item( i, 0 )->text().isEmpty() )
69
{
70
continue
;
71
}
72
querypairs[tblwdgQueryPairs->item( i, 0 )->text()] = QVariant( tblwdgQueryPairs->item( i, 1 )->text() );
73
}
74
75
if
( !mRefererLineEdit->text().isEmpty() )
76
{
77
querypairs[
"referer"
] = QVariant( mRefererLineEdit->text() );
78
}
79
80
#if 0
81
for
(
auto
k : querypairs.
keys
() )
82
{
83
QgsLogger::debug
( QString(
"httpHeaders called: %1=%2"
).arg( k, querypairs[k].toString() ) );
84
}
85
#endif
86
87
return
querypairs;
88
}
89
90
91
void
QgsHttpHeaderWidget::addQueryPair()
92
{
93
addQueryPairRow( QString(), QString() );
94
tblwdgQueryPairs->setFocus();
95
tblwdgQueryPairs->setCurrentCell( tblwdgQueryPairs->rowCount() - 1, 0 );
96
}
97
98
99
void
QgsHttpHeaderWidget::removeQueryPair()
100
{
101
tblwdgQueryPairs->removeRow( tblwdgQueryPairs->currentRow() );
102
}
103
104
105
void
QgsHttpHeaderWidget::setFromSettings
(
const
QgsSettings
&settings,
const
QString &key )
106
{
107
// load headers from settings
108
QgsHttpHeaders
headers;
109
headers.
setFromSettings
( settings, key );
110
setHeaders
( headers );
111
}
112
113
void
QgsHttpHeaderWidget::setHeaders
(
const
QgsHttpHeaders
&headers )
114
{
115
// clean table
116
for
(
int
i = tblwdgQueryPairs->rowCount(); i > 0; i-- )
117
tblwdgQueryPairs->removeRow( i - 1 );
118
119
// push headers to table
120
QList<QString> lst = headers.
keys
();
121
for
(
auto
ite = lst.constBegin(); ite != lst.constEnd(); ++ite )
122
{
123
if
( ite->compare(
"referer"
) != 0 )
124
{
125
addQueryPairRow( *ite, headers[*ite].toString() );
126
}
127
else
128
{
129
mRefererLineEdit->setText( headers[*ite].toString() );
130
}
131
}
132
}
133
134
void
QgsHttpHeaderWidget::updateSettings
(
QgsSettings
&settings,
const
QString &key )
const
135
{
136
Q_NOWARN_DEPRECATED_PUSH
137
QgsHttpHeaders
h =
httpHeaders
();
138
h.updateSettings( settings, key );
139
Q_NOWARN_DEPRECATED_POP
140
}
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
QgsHttpHeaderWidget::~QgsHttpHeaderWidget
~QgsHttpHeaderWidget() override
QgsHttpHeaderWidget::QgsHttpHeaderWidget
QgsHttpHeaderWidget(QWidget *parent=nullptr)
Default constructor.
Definition
qgshttpheaderwidget.cpp:32
QgsHttpHeaderWidget::setHeaders
void setHeaders(const QgsHttpHeaders &headers)
Sets the widget from the headers.
Definition
qgshttpheaderwidget.cpp:113
QgsHttpHeaderWidget::updateSettings
Q_DECL_DEPRECATED void updateSettings(QgsSettings &settings, const QString &key) const SIP_DEPRECATED
update the settings with the http headers present in the inner map.
Definition
qgshttpheaderwidget.cpp:134
QgsHttpHeaderWidget::setFromSettings
Q_DECL_DEPRECATED void setFromSettings(const QgsSettings &settings, const QString &key) SIP_DEPRECATED
fill the inner header map from the settings defined at key
Definition
qgshttpheaderwidget.cpp:105
QgsHttpHeaderWidget::httpHeaders
QgsHttpHeaders httpHeaders() const
Returns the headers as defined in the widget.
Definition
qgshttpheaderwidget.cpp:63
QgsHttpHeaders
Implements simple HTTP header management.
Definition
qgshttpheaders.h:41
QgsHttpHeaders::keys
QList< QString > keys() const
Returns the list of all HTTP header keys.
Definition
qgshttpheaders.cpp:286
QgsHttpHeaders::setFromSettings
void setFromSettings(const QgsSettings &settings, const QString &key=QString())
Loads headers from the settings.
Definition
qgshttpheaders.cpp:153
QgsLogger::debug
static void debug(const QString &msg, int debuglevel=1, const char *file=nullptr, const char *function=nullptr, int line=-1)
Goes to qDebug.
Definition
qgslogger.cpp:62
QgsSettings
Stores settings for use within QGIS.
Definition
qgssettings.h:68
Q_NOWARN_DEPRECATED_POP
#define Q_NOWARN_DEPRECATED_POP
Definition
qgis.h:8407
Q_NOWARN_DEPRECATED_PUSH
#define Q_NOWARN_DEPRECATED_PUSH
Definition
qgis.h:8406
qgsapplication.h
qgshttpheaderwidget.h
Generated on
for QGIS API Documentation by
1.17.0