#include "antenna_w.h"
#include "ui_antenna_w.h"

#include <QShowEvent>

Antenna_w::Antenna_w(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::Antenna_w)
{
    ui->setupUi(this);

    init_Antenna();

    QObject::connect(ui->actionExit, SIGNAL(triggered()), qApp, SLOT(quit()));
}

Antenna_w::~Antenna_w()
{
    delete ui;
}

/*!
  \fn void Antenna_w::init_Antenna()
  \brief Initialise la page de démarrage.
  */
void Antenna_w::init_Antenna()
{
    setAntenna(ui->config_, true);
    setAntenna(ui->cover_, false);
    setAntenna(ui->meas_, false);
    setAntenna(ui->mem_, false);
    setAntenna(ui->switch_, false);
    setAntenna(ui->system_, false);

    ui->title->setText("Antenna configuration");
}

/*!
  \fn void Antenna_w::setAntenna(QWidget *ant, bool val)
  \brief Masque ou affiche la fenętre.
  \param[in] QWidget *ant   Fenętre a afficher ou pas
  \param[in] bool val   true = visible, false = invisible
  */
void Antenna_w::setAntenna(QWidget *ant, bool val)
{
    ant->setVisible(val);
}

/******************** SLOTS ********************/
/*!
  \brief Slot appelé lors d'une action sur le bouton actionConfig
*
*        Affiche le titre de la fenętre correspondante
  */
void Antenna_w::on_actionConfig_triggered()
{
    setAntenna(ui->config_, true);
    setAntenna(ui->cover_, false);
    setAntenna(ui->meas_, false);
    setAntenna(ui->mem_, false);
    setAntenna(ui->switch_, false);
    setAntenna(ui->system_, false);

    ui->title->setText("Antenna configuration");
}

/*!
  \brief Slot appelé lors d'une action sur le bouton actionCoverage
*
*        Affiche le titre de la fenętre correspondante
  */
void Antenna_w::on_actionCoverage_triggered()
{
    setAntenna(ui->config_, false);
    setAntenna(ui->cover_, true);
    setAntenna(ui->meas_, false);
    setAntenna(ui->mem_, false);
    setAntenna(ui->switch_, false);
    setAntenna(ui->system_, false);

    ui->title->setText("Antenna coverage");
}

/*!
  \brief Slot appelé lors d'une action sur le bouton actionFactory_settings
*
*        Affiche le titre de la fenętre correspondante
  */
void Antenna_w::on_actionFactory_settings_triggered()
{
    setAntenna(ui->config_, false);
    setAntenna(ui->cover_, false);
    setAntenna(ui->meas_, false);
    setAntenna(ui->mem_, true);
    setAntenna(ui->switch_, false);
    setAntenna(ui->system_, false);

    ui->title->setText("Factory settings");
}

/*!
  \brief Slot appelé lors d'une action sur le bouton actionMeasurement
*
*        Affiche le titre de la fenętre correspondante
  */
void Antenna_w::on_actionMeasurement_triggered()
{
    setAntenna(ui->config_, false);
    setAntenna(ui->cover_, false);
    setAntenna(ui->meas_, true);
    setAntenna(ui->mem_, false);
    setAntenna(ui->switch_, false);
    setAntenna(ui->system_, false);

    ui->title->setText("Antenna measurement");
}

/*!
  \brief Slot appelé lors d'une action sur le bouton actionTest_System
*
*        Affiche le titre de la fenętre correspondante
  */
void Antenna_w::on_actionTest_System_triggered()
{
    setAntenna(ui->config_, false);
    setAntenna(ui->cover_, false);
    setAntenna(ui->meas_, false);
    setAntenna(ui->mem_, false);
    setAntenna(ui->switch_, false);
    setAntenna(ui->system_, true);

    ui->title->setText("Test system");
}

/*!
  \brief Slot appelé lors d'une action sur le bouton actionSwitching
*
*        Affiche le titre de la fenętre correspondante
  */
void Antenna_w::on_actionSwitching_triggered()
{
    setAntenna(ui->config_, false);
    setAntenna(ui->cover_, false);
    setAntenna(ui->meas_, false);
    setAntenna(ui->mem_, false);
    setAntenna(ui->switch_, true);
    setAntenna(ui->system_, false);

    ui->title->setText("Antenna switching mode");
}

/*!
  \brief Slot appelé sur une action du menu Clear
*
*        Efface la fenętre RxData
  */
void Antenna_w::on_actionClear_triggered()
{
    text_ = "";
    ui->rxData->setPlainText(text_);
}

/*!
  \brief Slot appelé pour afficher du text dans la fenętre RxData
  */
void Antenna_w::set_Text(QString text)
{
    text_ += text;
    ui->rxData->setPlainText(text_);
}

/******************** END SLOTS ********************/
