initial commit

This commit is contained in:
2020-01-31 21:52:01 +01:00
parent ab85298c34
commit 1ab0ef0d3e
3 changed files with 135 additions and 54 deletions
+103 -54
View File
@@ -9,9 +9,14 @@
#include <QCloseEvent>
#include <QClipboard>
#include <QDebug>
#define SEPARATOR "\t"
cMainWindow::cMainWindow(cSplashScreen* lpSplashScreen, QWidget *parent) :
QMainWindow(parent),
ui(new Ui::cMainWindow),
@@ -39,6 +44,10 @@ cMainWindow::cMainWindow(cSplashScreen* lpSplashScreen, QWidget *parent) :
m_lpChart->addAxis(m_lpAxisYTemperature, Qt::AlignLeft);
m_lpSeriesTemperature->attachAxis(m_lpAxisYTemperature);
m_lpSeriesTemperature->attachAxis(m_lpAxisX);
m_lpSeriesTemperature->setName("Temperature");
m_lpSeriesTemperature->setPointLabelsFormat("@yPoint");
m_lpSeriesTemperature->setPointLabelsVisible(true);
m_lpSeriesTemperature->setColor(Qt::blue);
m_lpChart->addSeries(m_lpSeriesPressure);
m_lpAxisYPressure = new QValueAxis;
@@ -47,6 +56,10 @@ cMainWindow::cMainWindow(cSplashScreen* lpSplashScreen, QWidget *parent) :
m_lpChart->addAxis(m_lpAxisYPressure, Qt::AlignLeft);
m_lpSeriesPressure->attachAxis(m_lpAxisYPressure);
m_lpSeriesPressure->attachAxis(m_lpAxisX);
m_lpSeriesPressure->setName("Pressure");
m_lpSeriesPressure->setPointLabelsFormat("@yPoint");
m_lpSeriesPressure->setPointLabelsVisible(true);
m_lpSeriesPressure->setColor(Qt::red);
m_lpChart->addSeries(m_lpSeriesHumidity);
m_lpAxisYHumidity = new QValueAxis;
@@ -55,6 +68,10 @@ cMainWindow::cMainWindow(cSplashScreen* lpSplashScreen, QWidget *parent) :
m_lpChart->addAxis(m_lpAxisYHumidity, Qt::AlignLeft);
m_lpSeriesHumidity->attachAxis(m_lpAxisYHumidity);
m_lpSeriesHumidity->attachAxis(m_lpAxisX);
m_lpSeriesHumidity->setName("Humidity");
m_lpSeriesHumidity->setPointLabelsFormat("@yPoint");
m_lpSeriesHumidity->setPointLabelsVisible(true);
m_lpSeriesHumidity->setColor(Qt::gray);
m_lpChart->legend()->show();
m_lpChart->setTitle("Weather");
@@ -63,48 +80,9 @@ cMainWindow::cMainWindow(cSplashScreen* lpSplashScreen, QWidget *parent) :
ui->m_lpChart->setRenderHint(QPainter::Antialiasing);
// cMeteoStat meteoStat("Q1H5Feca");
// cMeteoDataList list = meteoStat.getHistoricalData(QDate(2020, 1, 16), QDate(2020, 1, 16), 11035);
// QClipboard* clipboard = QGuiApplication::clipboard();
// QString text = "";
// for(int x = 0;x < list.count();x++)
// {
// cMeteoData* lpData = list[x];
// text.append(lpData->dateTime().toString("yyyy-MM-dd hh:mm:ss"));
// text.append("\t");
// text.append(lpData->dateTimeLocal().toString("yyyy-MM-dd hh:mm:ss"));
// text.append("\t");
// text.append(QString::number(lpData->temperature()));
// text.append("\t");
// text.append(QString::number(lpData->dewpoint()));
// text.append("\t");
// text.append(QString::number(lpData->humidity()));
// text.append("\t");
// text.append(QString::number(lpData->windspeed()));
// text.append("\t");
// text.append(QString::number(lpData->peakgust()));
// text.append("\t");
// text.append(QString::number(lpData->winddirection()));
// text.append("\t");
// text.append(QString::number(lpData->pressure()));
// text.append("\t");
// text.append(QString::number(lpData->condition()));
// text.append("\n");
// }
// clipboard->setText(text);
onShowTemperature(0);
onShowPressure(0);
onShowHumidity(0);
}
cMainWindow::~cMainWindow()
@@ -124,6 +102,10 @@ void cMainWindow::closeEvent(QCloseEvent *event)
else
settings.setValue("main/maximized", QVariant::fromValue(false));
settings.setValue("show/temperature", QVariant::fromValue(ui->m_lpShowTemperature->isChecked()));
settings.setValue("show/pressure", QVariant::fromValue(ui->m_lpShowPressure->isChecked()));
settings.setValue("show/humidity", QVariant::fromValue(ui->m_lpShowHumidity->isChecked()));
event->accept();
}
@@ -133,9 +115,6 @@ void cMainWindow::initUI()
ui->setupUi(this);
// m_lpFileListModel = new QStandardItemModel;
// ui->m_lpFileList->setModel(m_lpFileListModel);
if(!settings.value("main/maximized").toBool())
{
qint32 iX = settings.value("main/x", QVariant::fromValue(-1)).toInt();
@@ -149,9 +128,6 @@ void cMainWindow::initUI()
move(iX, iY);
}
// QStringList headerLabels = QStringList() << tr("icon") << tr("path") << tr("file") << tr("size") << tr("date") << tr("width") << tr("height") << ("");
// m_lpFileListModel->setHorizontalHeaderLabels(headerLabels);
ui->m_lpDateFrom->setDate(QDate::currentDate().addDays(-1));
ui->m_lpDateTo->setDate(QDate::currentDate().addDays(-1));
@@ -160,6 +136,10 @@ void cMainWindow::initUI()
QStringList headerLabels = QStringList() << tr("Date") << tr("Temperature") << tr("Pressure") << tr("Humidity") << tr("Windspeed") << tr("Winddirection");
m_lpListModel->setHorizontalHeaderLabels(headerLabels);
ui->m_lpShowTemperature->setChecked(settings.value("show/temperature", QVariant::fromValue(true)).toBool());
ui->m_lpShowPressure->setChecked(settings.value("show/pressure", QVariant::fromValue(true)).toBool());
ui->m_lpShowHumidity->setChecked(settings.value("show/humidity", QVariant::fromValue(true)).toBool());
}
void cMainWindow::createActions()
@@ -172,7 +152,12 @@ void cMainWindow::createActions()
// connect(ui->m_lpFileList, &cTreeView::deleteEntrys, this, &cMainWindow::onDeleteEntrys);
// connect(ui->m_lpThumbnailSize, &QSlider::valueChanged, this, &cMainWindow::onThumbnailSize);
connect(ui->m_lpGo, &QPushButton::clicked, this, &cMainWindow::onGo);
connect(ui->m_lpGo, &QPushButton::clicked, this, &cMainWindow::onGo);
connect(ui->m_lpCopy, &QPushButton::clicked, this, &cMainWindow::onCopy);
connect(ui->m_lpShowTemperature, &QCheckBox::stateChanged, this, &cMainWindow::onShowTemperature);
connect(ui->m_lpShowPressure, &QCheckBox::stateChanged, this, &cMainWindow::onShowPressure);
connect(ui->m_lpShowHumidity, &QCheckBox::stateChanged, this, &cMainWindow::onShowHumidity);
}
void cMainWindow::createContextActions()
@@ -237,8 +222,6 @@ void cMainWindow::onGo()
qreal minHumidity = list[0]->humidity();
qreal maxHumidity = list[0]->humidity();
QStandardItem* itemList[6];
for(int x = 0;x < list.count();x++)
{
cMeteoData* lpData = list[x];
@@ -256,6 +239,13 @@ void cMainWindow::onGo()
itemList[3]->setTextAlignment(Qt::AlignRight);
itemList[4]->setTextAlignment(Qt::AlignRight);
itemList[0]->setData(QVariant::fromValue(lpData->dateTime()), Qt::UserRole);
itemList[1]->setData(QVariant::fromValue(lpData->temperature()), Qt::UserRole);
itemList[2]->setData(QVariant::fromValue(lpData->pressure()), Qt::UserRole);
itemList[3]->setData(QVariant::fromValue(lpData->humidity()), Qt::UserRole);
itemList[4]->setData(QVariant::fromValue(lpData->windspeed()), Qt::UserRole);
itemList[5]->setData(QVariant::fromValue(lpData->winddirection()), Qt::UserRole);
m_lpListModel->appendRow(itemList);
m_lpSeriesTemperature->append(lpData->dateTime().toMSecsSinceEpoch(), lpData->temperature());
@@ -287,10 +277,14 @@ void cMainWindow::onGo()
maxHumidity = lpData->humidity();
}
qreal diffTemperature = maxTemperature-minTemperature;
qreal diffPRessure = maxPressure-minPressure;
qreal diffHumidity = maxHumidity-minHumidity;
m_lpAxisX->setRange(minDate, maxDate);
m_lpAxisYTemperature->setRange(minTemperature, maxTemperature);
m_lpAxisYPressure->setRange(minPressure, maxPressure);
m_lpAxisYHumidity->setRange(minHumidity, maxHumidity);
m_lpAxisYTemperature->setRange(minTemperature-diffTemperature/10, maxTemperature+diffTemperature/10);
m_lpAxisYPressure->setRange(minPressure-diffPRessure/10, maxPressure+diffPRessure/10);
m_lpAxisYHumidity->setRange(minHumidity-diffHumidity/10, maxHumidity+diffHumidity/10);
ui->m_lpList->resizeColumnToContents(0);
ui->m_lpList->resizeColumnToContents(1);
@@ -299,3 +293,58 @@ void cMainWindow::onGo()
ui->m_lpList->resizeColumnToContents(4);
ui->m_lpList->resizeColumnToContents(5);
}
void cMainWindow::onCopy()
{
QClipboard* clipboard = QGuiApplication::clipboard();
QString text = tr("Date") + tr(SEPARATOR) + tr("Temperature") + tr(SEPARATOR) + tr("Pressure") + tr(SEPARATOR) + tr("Humidity") + tr(SEPARATOR) + tr("Windspeed") + tr(SEPARATOR) + tr("Winddirection\n");
for(int x = 0;x < m_lpListModel->rowCount();x++)
{
QStandardItem* lpDateTime = m_lpListModel->item(x, 0);
QStandardItem* lpTemperature = m_lpListModel->item(x, 1);
QStandardItem* lpPressure = m_lpListModel->item(x, 2);
QStandardItem* lpHumidity = m_lpListModel->item(x, 3);
QStandardItem* lpWindspeed = m_lpListModel->item(x, 4);
QStandardItem* lpWinddirection = m_lpListModel->item(x, 5);
text.append(lpDateTime->data(Qt::UserRole).toDateTime().toString("yyyy-MM-dd hh:mm:ss"));
text.append(SEPARATOR);
text.append(QString::number(lpTemperature->data(Qt::UserRole).toDouble()).replace(".", ","));
text.append(SEPARATOR);
text.append(QString::number(lpPressure->data(Qt::UserRole).toDouble()).replace(".", ","));
text.append(SEPARATOR);
text.append(QString::number(lpHumidity->data(Qt::UserRole).toInt()));
text.append(SEPARATOR);
text.append(QString::number(lpWindspeed->data(Qt::UserRole).toDouble()).replace(".", ","));
text.append(SEPARATOR);
text.append(QString::number(lpWinddirection->data(Qt::UserRole).toInt()));
text.append("\n");
}
clipboard->setText(text);
}
void cMainWindow::onShowTemperature(int /*state*/)
{
m_lpSeriesTemperature->setVisible(ui->m_lpShowTemperature->isChecked());
m_lpAxisYTemperature->setVisible(ui->m_lpShowTemperature->isChecked());
}
void cMainWindow::onShowPressure(int /*state*/)
{
m_lpSeriesPressure->setVisible(ui->m_lpShowPressure->isChecked());
m_lpAxisYPressure->setVisible(ui->m_lpShowPressure->isChecked());
}
void cMainWindow::onShowHumidity(int /*state*/)
{
m_lpSeriesHumidity->setVisible(ui->m_lpShowHumidity->isChecked());
m_lpAxisYHumidity->setVisible(ui->m_lpShowHumidity->isChecked());
}
+4
View File
@@ -56,5 +56,9 @@ protected:
private slots:
void onGo();
void onCopy();
void onShowTemperature(int state);
void onShowPressure(int state);
void onShowHumidity(int state);
};
#endif // CMAINWINDOW_H
+28
View File
@@ -56,6 +56,13 @@
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="m_lpCopy">
<property name="text">
<string>copy</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
@@ -69,6 +76,27 @@
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="m_lpShowTemperature">
<property name="text">
<string>Show Temperature</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="m_lpShowPressure">
<property name="text">
<string>Show Pressure</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="m_lpShowHumidity">
<property name="text">
<string>Show Humidity</string>
</property>
</widget>
</item>
</layout>
</item>
<item>