Skip to content

Commit

Permalink
Merge commit '116bb60ea40c12d8691207fae79b05892df6f674'
Browse files Browse the repository at this point in the history
  • Loading branch information
ftomei committed Jul 7, 2024
2 parents c564272 + 116bb60 commit a999321
Show file tree
Hide file tree
Showing 10 changed files with 184 additions and 143 deletions.
2 changes: 1 addition & 1 deletion agrolib/gis/gisIO.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -571,7 +571,7 @@ namespace gis
}

myFile << "ENVI\n";
myFile << "description = {CRITERIA3D raster grid}\n";
myFile << "description = {raster grid}\n";
myFile << "samples = " << rasterGrid->header->nrCols << "\n";
myFile << "lines = " << rasterGrid->header->nrRows << "\n";
myFile << "bands = 1\n";
Expand Down
209 changes: 95 additions & 114 deletions agrolib/graphics/stationMarker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,64 +12,18 @@ StationMarker::StationMarker(qreal radius,bool sizeIsZoomInvariant, QColor fillC
this->setFlag(MapGraphicsObject::ObjectIsSelectable, false);
this->setFlag(MapGraphicsObject::ObjectIsMovable, false);
this->setFlag(MapGraphicsObject::ObjectIsFocusable, false);

_id = "";
_name = "";
_dataset = "";
_municipality = "";
_altitude = NODATA;
_lapseRateCode = primary;
_municipality = "";
_active = true;
}

void StationMarker::setId(std::string id)
{
_id = id;
}

std::string StationMarker::id() const
{
return _id;
}

void StationMarker::setName(const std::string &name)
{
_name = name;
}

void StationMarker::setDataset(const std::string &dataset)
{
_dataset = dataset;
}

void StationMarker::setAltitude(double altitude)
{
_altitude = altitude;
}

void StationMarker::setLapseRateCode(lapseRateCodeType code)
{
_lapseRateCode = code;
}

void StationMarker::setMunicipality(const std::string &municipality)
{
_municipality = municipality;
}

void StationMarker::setQuality(const quality::qualityType &quality)
{
_quality = quality;
}

bool StationMarker::active() const
{
return _active;
_caller = PRAGA_caller;
_active = true;
}

void StationMarker::setActive(bool active)
{
_active = active;
}

void StationMarker::setToolTip()
{
Expand Down Expand Up @@ -109,74 +63,101 @@ void StationMarker::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
if (event->button() == Qt::RightButton)
{
bool isGrid = false;
QMenu menu;
QAction *openMeteoWidget = menu.addAction("Open new meteo widget");
QAction *appendMeteoWidget = menu.addAction("Append to last meteo widget");
menu.addSeparator();
QAction *openPointStatisticsWidget = menu.addAction("Open point statistics widget");
QAction *openHomogeneityWidget = menu.addAction("Open homogeneity test widget");
menu.addSeparator();
QAction *openSynchronicityWidget = menu.addAction("Open synchronicity test widget");
QAction *setSynchronicityReferencePoint = menu.addAction("Set as synchronicity reference point");
menu.addSeparator();
QMenu *orogCodeSubMenu;
orogCodeSubMenu = menu.addMenu("Orog code");
QAction *actionOrogCode_primary = orogCodeSubMenu->addAction( "Set as primary station" );
QAction *actionOrogCode_secondary = orogCodeSubMenu->addAction( "Set as secondary station" );
QAction *actionOrogCode_supplemental = orogCodeSubMenu->addAction( "Set as supplemental station" );
menu.addSeparator();
QAction *actionMarkPoint = menu.addAction( "Mark point" );
QAction *actionUnmarkPoint = menu.addAction( "Unmark point" );

QAction *selection = menu.exec(QCursor::pos());

if (selection != nullptr)
if (_caller == PRAGA_caller)
{
std::string lapseRateCode = getLapseRateCodeName(_lapseRateCode);
if (selection == openMeteoWidget)
{
emit newStationClicked(_id, _name, _dataset, _altitude, lapseRateCode, isGrid);
}
else if (selection == appendMeteoWidget)
{
emit appendStationClicked(_id, _name, _dataset, _altitude, lapseRateCode, isGrid);
}
else if (selection == openPointStatisticsWidget)
{
emit newPointStatisticsClicked(_id, isGrid);
}
else if (selection == openHomogeneityWidget)
{
emit newHomogeneityTestClicked(_id);
}
else if (selection == openSynchronicityWidget)
{
emit newSynchronicityTestClicked(_id);
}
else if (selection == setSynchronicityReferencePoint)
{
emit setSynchronicityReferenceClicked(_id);
}
else if (selection == actionOrogCode_primary)
{
emit changeOrogCodeClicked(_id, 0);
}
else if (selection == actionOrogCode_secondary)
{
emit changeOrogCodeClicked(_id, 1);
}
else if (selection == actionOrogCode_supplemental)
QMenu menu;
QAction *openMeteoWidget = menu.addAction("Open a new meteo widget");
QAction *appendMeteoWidget = menu.addAction("Append to the lastest meteo widget");
menu.addSeparator();
QAction *openPointStatisticsWidget = menu.addAction("Open point statistics widget");
QAction *openHomogeneityWidget = menu.addAction("Open homogeneity test widget");
menu.addSeparator();
QAction *openSynchronicityWidget = menu.addAction("Open synchronicity test widget");
QAction *setSynchronicityReferencePoint = menu.addAction("Set as synchronicity reference point");
menu.addSeparator();
QAction *actionMarkPoint = menu.addAction( "Mark point" );
QAction *actionUnmarkPoint = menu.addAction( "Unmark point" );
menu.addSeparator();
QMenu *orogCodeSubMenu;
orogCodeSubMenu = menu.addMenu("Orog code");
QAction *actionOrogCode_primary = orogCodeSubMenu->addAction( "Set as primary station" );
QAction *actionOrogCode_secondary = orogCodeSubMenu->addAction( "Set as secondary station" );
QAction *actionOrogCode_supplemental = orogCodeSubMenu->addAction( "Set as supplemental station" );

QAction *selection = menu.exec(QCursor::pos());

if (selection != nullptr)
{
emit changeOrogCodeClicked(_id, 2);
bool isGrid = false;
std::string lapseRateCode = getLapseRateCodeName(_lapseRateCode);
if (selection == openMeteoWidget)
{
emit newStationClicked(_id, _name, _dataset, _altitude, lapseRateCode, isGrid);
}
else if (selection == appendMeteoWidget)
{
emit appendStationClicked(_id, _name, _dataset, _altitude, lapseRateCode, isGrid);
}
else if (selection == openPointStatisticsWidget)
{
emit newPointStatisticsClicked(_id, isGrid);
}
else if (selection == openHomogeneityWidget)
{
emit newHomogeneityTestClicked(_id);
}
else if (selection == openSynchronicityWidget)
{
emit newSynchronicityTestClicked(_id);
}
else if (selection == setSynchronicityReferencePoint)
{
emit setSynchronicityReferenceClicked(_id);
}
else if (selection == actionOrogCode_primary)
{
emit changeOrogCodeClicked(_id, 0);
}
else if (selection == actionOrogCode_secondary)
{
emit changeOrogCodeClicked(_id, 1);
}
else if (selection == actionOrogCode_supplemental)
{
emit changeOrogCodeClicked(_id, 2);
}
else if (selection == actionMarkPoint)
{
emit markPoint(_id);
}
else if (selection == actionUnmarkPoint)
{
emit unmarkPoint(_id);
}
}
else if (selection == actionMarkPoint)
{
emit markPoint(_id);
}
else if (selection == actionUnmarkPoint)
}
else
{
// Other Software
QMenu menu;
QAction *openMeteoWidget = menu.addAction("Open a new meteo widget");
QAction *appendMeteoWidget = menu.addAction("Append to the lastest meteo widget");
menu.addSeparator();

QAction *selection = menu.exec(QCursor::pos());

if (selection != nullptr)
{
emit unmarkPoint(_id);
bool isGrid = false;
std::string lapseRateCode = getLapseRateCodeName(_lapseRateCode);
if (selection == openMeteoWidget)
{
emit newStationClicked(_id, _name, _dataset, _altitude, lapseRateCode, isGrid);
}
else if (selection == appendMeteoWidget)
{
emit appendStationClicked(_id, _name, _dataset, _altitude, lapseRateCode, isGrid);
}
}
}
}
Expand Down
46 changes: 34 additions & 12 deletions agrolib/graphics/stationMarker.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,36 +5,58 @@
#include "CircleObject.h"
#include "MapGraphicsView.h"
#include "quality.h"
#include "meteo.h"

class Crit3DMeteoPoint;

enum callerSoftware{PRAGA_caller, CRITERIA3D_caller, other_caller};

class StationMarker : public CircleObject
{
Q_OBJECT

public:
explicit StationMarker(qreal radius, bool sizeIsZoomInvariant, QColor fillColor, MapGraphicsObject *parent = nullptr);
void setId(std::string id);

void setToolTip();
std::string id() const;
void setName(const std::string &name);
void setDataset(const std::string &dataset);
void setAltitude(double altitude);
void setLapseRateCode(lapseRateCodeType code);
void setMunicipality(const std::string &municipality);
void setQuality(const quality::qualityType &quality);
bool active() const;
void setActive(bool active);

void setId(std::string id) { _id = id; }
std::string id() const { return _id; }

bool active() const { return _active; }
void setActive(bool active) { _active = active; }

void setName(const std::string &name) { _name = name; }

void setDataset(const std::string &dataset) { _dataset = dataset; }

void setAltitude(double altitude) { _altitude = altitude; }

void setCallerSoftware(callerSoftware caller)
{ _caller = caller;}

void setLapseRateCode(lapseRateCodeType code)
{ _lapseRateCode = code; }

void setMunicipality(const std::string &municipality)
{ _municipality = municipality; }

void setQuality(const quality::qualityType &quality)
{ _quality = quality; }

private:
std::string _id;
std::string _name;
std::string _dataset;
double _altitude;
lapseRateCodeType _lapseRateCode;
std::string _municipality;

double _altitude;
float _currentValue;

lapseRateCodeType _lapseRateCode;
quality::qualityType _quality;
callerSoftware _caller;

bool _active;

protected:
Expand Down
1 change: 0 additions & 1 deletion agrolib/meteoWidget/dialogMeteoTable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ DialogMeteoTable::DialogMeteoTable(Crit3DMeteoSettings *meteoSettings_, QVector<
QVBoxLayout* mainLayout = new QVBoxLayout;
this->resize(800, 600);


meteoTable = new MeteoTable();
mainLayout->addWidget(meteoTable);

Expand Down
Loading

0 comments on commit a999321

Please sign in to comment.