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;
}
//---------------------------------------------------------------------------
|