File: vmapdlg.cpp

package info (click to toggle)
rtklib 2.4.3.b34%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 114,300 kB
  • sloc: cpp: 57,065; ansic: 53,007; makefile: 994; fortran: 987; javascript: 309; sh: 25
file content (261 lines) | stat: -rw-r--r-- 10,359 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
//---------------------------------------------------------------------------

#include <QColorDialog>
#include <QShowEvent>

#include "vmapdlg.h"
#include "plotmain.h"

extern Plot *plot;

//---------------------------------------------------------------------------
QString color2String(const QColor &c);

//---------------------------------------------------------------------------
VecMapDialog::VecMapDialog(QWidget *parent)
    : QDialog(parent)
{
    setupUi(this);

    connect(Color1, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color2, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color3, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color4, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color5, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color6, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color7, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color8, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color9, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color10, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color11, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color12, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color1F, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color2F, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color3F, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color4F, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color5F, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color6F, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color7F, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color8F, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color9F, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color10F, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color11F, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Color12F, SIGNAL(clicked(bool)), this, SLOT(BtnColorClick()));
    connect(Vis1, SIGNAL(clicked(bool)), this, SLOT(VisClick()));
    connect(Vis2, SIGNAL(clicked(bool)), this, SLOT(VisClick()));
    connect(Vis3, SIGNAL(clicked(bool)), this, SLOT(VisClick()));
    connect(Vis4, SIGNAL(clicked(bool)), this, SLOT(VisClick()));
    connect(Vis5, SIGNAL(clicked(bool)), this, SLOT(VisClick()));
    connect(Vis6, SIGNAL(clicked(bool)), this, SLOT(VisClick()));
    connect(Vis7, SIGNAL(clicked(bool)), this, SLOT(VisClick()));
    connect(Vis8, SIGNAL(clicked(bool)), this, SLOT(VisClick()));
    connect(Vis9, SIGNAL(clicked(bool)), this, SLOT(VisClick()));
    connect(Vis10, SIGNAL(clicked(bool)), this, SLOT(VisClick()));
    connect(Vis11, SIGNAL(clicked(bool)), this, SLOT(VisClick()));
    connect(Vis12, SIGNAL(clicked(bool)), this, SLOT(VisClick()));
    connect(Layer1, SIGNAL(clicked(bool)), this, SLOT(LayerClick()));
    connect(Layer2, SIGNAL(clicked(bool)), this, SLOT(LayerClick()));
    connect(Layer3, SIGNAL(clicked(bool)), this, SLOT(LayerClick()));
    connect(Layer4, SIGNAL(clicked(bool)), this, SLOT(LayerClick()));
    connect(Layer5, SIGNAL(clicked(bool)), this, SLOT(LayerClick()));
    connect(Layer6, SIGNAL(clicked(bool)), this, SLOT(LayerClick()));
    connect(Layer7, SIGNAL(clicked(bool)), this, SLOT(LayerClick()));
    connect(Layer8, SIGNAL(clicked(bool)), this, SLOT(LayerClick()));
    connect(Layer9, SIGNAL(clicked(bool)), this, SLOT(LayerClick()));
    connect(Layer10, SIGNAL(clicked(bool)), this, SLOT(LayerClick()));
    connect(Layer11, SIGNAL(clicked(bool)), this, SLOT(LayerClick()));
    connect(Layer12, SIGNAL(clicked(bool)), this, SLOT(LayerClick()));
    connect(BtnApply, SIGNAL(clicked(bool)), this, SLOT(BtnApplyClick()));
    connect(BtnUp, SIGNAL(clicked(bool)), this, SLOT(BtnUpClick()));
    connect(BtnDown, SIGNAL(clicked(bool)), this, SLOT(BtnDownClick()));
    connect(BtnClose, SIGNAL(clicked(bool)), this, SLOT(reject()));
}
//---------------------------------------------------------------------------
void VecMapDialog::BtnColorClick()
{
    QPushButton *color[]={
        Color1,Color2,Color3,Color4,Color5,Color6,Color7,Color8,Color9,
        Color10,Color11,Color12,Color1F,Color2F,Color3F,Color4F,Color5F,
        Color6F,Color7F,Color8F,Color9F,Color10F,Color11F,Color12F,NULL
    };
    int i;

    for (i=0;color[i];i++) {
        if (color[i]==sender()) break;
    }
    if (color[i]) {
        QColorDialog dialog(this);

        dialog.setCurrentColor(Colors[i]);

        if (dialog.exec() != QDialog::Accepted) return;

        color[i]->setStyleSheet(QString("QPushButton {background-color: %1;}").arg(color2String(dialog.currentColor())));
        Colors[i] = dialog.currentColor();

        UpdateMap();
    }
}
//---------------------------------------------------------------------------
void VecMapDialog::LayerClick()
{
    QRadioButton *layer[] = {
        Layer1,	 Layer2,  Layer3, Layer4, Layer5, Layer6, Layer7, Layer8, Layer9,
        Layer10, Layer11, Layer12
	};

    for (int i = 0; i < MAXMAPLAYER; i++)
        layer[i]->setChecked((layer[i] == (QRadioButton *)sender()));

    UpdateMap();
}
//---------------------------------------------------------------------------
void VecMapDialog::BtnUpClick()
{
    QRadioButton *layer[] = {
        Layer1,	 Layer2,  Layer3, Layer4, Layer5, Layer6, Layer7, Layer8, Layer9,
        Layer10, Layer11, Layer12
	};
    QPushButton *color[]={
               Color1,Color2,Color3,Color4,Color5,Color6,Color7,Color8,Color9,
               Color10,Color11,Color12
    };
    QString style;
    QPushButton *colorf[]={
        Color1F,Color2F,Color3F,Color4F,Color5F,Color6F,Color7F,Color8F,
        Color9F,Color10F,Color11F,Color12F
    };
	gisd_t *data;
	char name[256];
    int i, flag;

    for (i = 0; i < MAXMAPLAYER; i++)
        if (layer[i]->isChecked()) break;
    if (i == 0 || i >= MAXMAPLAYER) return;
    strcpy(name, Gis.name[i - 1]);
    strcpy(Gis.name[i - 1], Gis.name[i]);
    strcpy(Gis.name[i], name);
    flag = Gis.flag[i - 1];
    Gis.flag[i - 1] = Gis.flag[i];
    Gis.flag[i] = flag;
    data = Gis.data[i - 1];
    Gis.data[i - 1] = Gis.data[i];
    Gis.data[i] = data;
    style=color[i-1]->styleSheet();
    color[i-1]->setStyleSheet(color[i]->styleSheet());
    color[i]->setStyleSheet(style);
    style=colorf[i-1]->styleSheet();
    colorf[i-1]->setStyleSheet(colorf[i]->styleSheet());
    colorf[i]->setStyleSheet(style);
    layer[i - 1]->setChecked(true);
    layer[i]->setChecked(false);
    UpdateMap();
}
//---------------------------------------------------------------------------
void VecMapDialog::BtnDownClick()
{
    QRadioButton *layer[] = {
        Layer1,	 Layer2,  Layer3, Layer4, Layer5, Layer6, Layer7, Layer8, Layer9,
        Layer10, Layer11, Layer12
	};
    QPushButton *color[]={
               Color1,Color2,Color3,Color4,Color5,Color6,Color7,Color8,Color9,
               Color10,Color11,Color12
    };
    QString style;
    QPushButton *colorf[]={
        Color1F,Color2F,Color3F,Color4F,Color5F,Color6F,Color7F,Color8F,
        Color9F,Color10F,Color11F,Color12F
    };
	gisd_t *data;
	char name[256];
    int i, flag;

    for (i = 0; i < MAXMAPLAYER; i++)
        if (layer[i]->isChecked()) break;
    if (i == MAXMAPLAYER - 1 || i >= MAXMAPLAYER) return;
    strcpy(name, Gis.name[i + 1]);
    strcpy(Gis.name[i + 1], Gis.name[i]);
    strcpy(Gis.name[i], name);
    flag = Gis.flag[i + 1];
    Gis.flag[i + 1] = Gis.flag[i];
    Gis.flag[i] = flag;
    data = Gis.data[i + 1];
    Gis.data[i + 1] = Gis.data[i];
    Gis.data[i] = data;
    style=color[i+1]->styleSheet();
    color[i+1]->setStyleSheet(color[i]->styleSheet());
    color[i]->setStyleSheet(style);
    style=colorf[i+1]->styleSheet();
    colorf[i+1]->setStyleSheet(colorf[i]->styleSheet());
    colorf[i]->setStyleSheet(style);

    layer[i + 1]->setChecked(true);
    layer[i]->setChecked(false);
    UpdateMap();
}
//---------------------------------------------------------------------------
void VecMapDialog::VisClick()
{
    QCheckBox *vis[] = {
        Vis1, Vis2, Vis3, Vis4, Vis5, Vis6, Vis7, Vis8, Vis9, Vis10, Vis11, Vis12
	};

    for (int i = 0; i < MAXMAPLAYER; i++)
        if (qobject_cast<QCheckBox *>(sender()) == vis[i]) Gis.flag[i] = vis[i]->isChecked() ? 1 : 0;

    UpdateMap();
}
//---------------------------------------------------------------------------
void VecMapDialog::showEvent(QShowEvent *event)
{
    if (event->spontaneous()) return;

    QRadioButton *layer[] = {
        Layer1,	 Layer2,  Layer3, Layer4, Layer5, Layer6, Layer7, Layer8, Layer9,
        Layer10, Layer11, Layer12
	};
    QPushButton *color[] = {
        Color1,	 Color2,  Color3, Color4, Color5, Color6, Color7, Color8, Color9,
        Color10, Color11, Color12
	};
    QPushButton *colorf[]={
        Color1F,Color2F,Color3F,Color4F,Color5F,Color6F,Color7F,Color8F,
        Color9F,Color10F,Color11F,Color12F
    };
    Gis = plot->Gis;
    for (int i = 0; i < MAXMAPLAYER; i++) {
        layer[i]->setChecked(false);
        color[i]->setStyleSheet(QString("QPushButton {background-color: %1;}").arg(color2String(plot->MapColor[i])));
        colorf[i]->setStyleSheet(QString("QPushButton {background-color: %1;}").arg(color2String(plot->MapColor[i])));
	}
    UpdateMap();
}
//---------------------------------------------------------------------------
void VecMapDialog::BtnApplyClick()
{

    UpdateMap();

    accept();
}
//---------------------------------------------------------------------------
void VecMapDialog::UpdateMap(void)
{
    QRadioButton *layer[] = {
        Layer1,	 Layer2,  Layer3, Layer4, Layer5, Layer6, Layer7, Layer8, Layer9,
        Layer10, Layer11, Layer12
	};
    QCheckBox *vis[] = {
        Vis1, Vis2, Vis3, Vis4, Vis5, Vis6, Vis7, Vis8, Vis9, Vis10, Vis11, Vis12
	};

    for (int i = 0; i < MAXMAPLAYER; i++) {
        layer[i]->setText(Gis.name[i]);
        vis[i]->setChecked(Gis.flag[i]);
        plot->MapColor [i]=Colors[i];
        plot->MapColorF[i]=Colors[i+12];
    }
    plot->Gis = Gis;
}
//---------------------------------------------------------------------------