#include "tconv_gui.h"
#include "tconv_utils.h"
//Including headers for all the widgets
#include <QLineEdit>
#include <QMenu>
#include <QMenuBar>
#include <QPushButton>
#include <QString>
#include <QGridLayout>
#include <QMessageBox>
#include <QAction>
#include <QLabel>
TConv_GUI::TConv_GUI(QWidget *parent)
: QWidget(parent)
{
//Now let's instance all widgets
input = new QLineEdit;
ris = new QLabel("");
CF = new QPushButton("Converti da Celsius a Fahrenheit!");
CK = new QPushButton("Converti da Celsius a Kelvin!");
FC = new QPushButton("Converti da Fahrenheit a Celsius!");
FK = new QPushButton("Converti da Fahrenheit a Kelvin!");
KC = new QPushButton("Converti da Kelvin a Celsius!");
KF = new QPushButton("Converti da Kelvin a Fahrenheit");
barra = new QMenuBar;
file = new QMenu("File");
info = new QMenu("?");
exit = new QAction("Esci", this);
showInfo = new QAction("Info...", this);
layout = new QGridLayout();
layout->setMenuBar(barra);
layout->addWidget(input, 1, 0);
layout->addWidget(CF, 0, 1);
layout->addWidget(CK, 2, 1);
layout->addWidget(FC, 0, 2);
layout->addWidget(FK, 2, 2);
layout->addWidget(KC, 0, 3);
layout->addWidget(KF, 2, 3);
layout->addWidget(ris, 2, 0);
barra->addMenu(file);
barra->addMenu(info);
file->addAction(exit);
info->addAction(showInfo);
barra->adjustSize();
//The time has come: we have to connect signals to slots
connect(CF, SIGNAL(clicked()), this, SLOT(cf()));
connect(CK, SIGNAL(clicked()), this, SLOT(ck()));
connect(FC, SIGNAL(clicked()), this, SLOT(fc()));
connect(FK, SIGNAL(clicked()), this, SLOT(fk()));
connect(KC, SIGNAL(clicked()), this, SLOT(kc()));
connect(KF, SIGNAL(clicked()), this, SLOT(kf()));
connect(exit, SIGNAL(triggered()), this, SLOT(close()));
connect(showInfo, SIGNAL(triggered()), this, SLOT(informazioni()));
setWindowTitle("TConv - Convertitore di temperature");
setLayout(layout);
}
void TConv_GUI::cf()
{
QString tempInserita = input->text();
double val = tempInserita.toDouble();
double fahrenheit = C2F(val);
QString expr;
expr = expr.setNum(fahrenheit);
ris->setText(expr);
}
void TConv_GUI::ck()
{
QString tempInserita = input->text();
double val = tempInserita.toDouble();
double kelvin = C2K(val);
QString expr;
expr = expr.setNum(kelvin);
ris->setText(expr);
}
void TConv_GUI::fc()
{
QString tempInserita = input->text();
double val = tempInserita.toDouble();
double celsius = F2C(val);
QString expr;
expr = expr.setNum(celsius);
ris->setText(expr);
}
void TConv_GUI::fk()
{
QString tempInserita = input->text();
double kelvin = F2K(tempInserita.toDouble());
QString expr;
expr = expr.setNum(kelvin);
ris->setText(expr);
}
void TConv_GUI::kc()
{
QString tempInserita = input->text();
double celsius = K2C(tempInserita.toDouble());
QString expr;
expr = expr.setNum(celsius);
ris->setText(expr);
}
void TConv_GUI::kf()
{
QString tempInserita = input->text();
double fahrenheit = K2F(tempInserita.toDouble());
QString expr;
expr = expr.setNum(fahrenheit);
ris->setText(expr);
}
void TConv_GUI::informazioni()
{
QMessageBox::about(this, "Informazioni su TConv", "Questo programma e' stato scritto in C++ / Qt da Fiusco Francesco.\n Versione: 0.1 \n Per info e/o bug: kot.gotico@gmail.com");
}