opcoes.cpp

Ir para a documentação deste ficheiro.
00001 #include <QtGui>
00002 #include "opcoes.h"
00003 
00004 // if we include <QtGui> there is no need to include every class used: <QString>, <QFileDialog>,...
00005 
00006 Opcoes::Opcoes(QWidget *parent, Qt::WFlags f) : QWidget(parent, f)
00007 {
00008     setupUi(this); // this sets up GUI
00009     setWindowFlags(f & (~Qt::WindowMaximizeButtonHint));
00010 
00011     /* Conecta botao */
00012     QObject::connect(buttonBox, SIGNAL(accepted()), this, SLOT(aceitou()));
00013     QObject::connect(buttonBox, SIGNAL(rejected()), this, SLOT(close()));
00014 }
00015 
00016 /******************************************************************************/
00017 
00018 void Opcoes::setMundo(Mundo *m)
00019 {
00020     mundo = m;
00021 }
00022 
00023 /******************************************************************************/
00024 
00025 void Opcoes::setBarras(QScrollBar *x, QScrollBar *y)
00026 {
00027     barX = x;
00028     barY = y;
00029 }
00030 
00031 /******************************************************************************/
00032 
00033 void Opcoes::showEvent ( QShowEvent * event )
00034 {
00035     Q_UNUSED(event)
00036 
00037     /* Calibra spins */
00038     spinTeto->setValue(mundo->propriedades.teto_energetico);
00039     spinGrao->setValue(mundo->propriedades.energia_grao);
00040     spinProbabilidade->setValue(mundo->propriedades.probabilidade_mutacao);
00041     spinIntensidade->setValue(mundo->propriedades.intensidade_mutacao);
00042     spinHorizontal->setValue(mundo->propriedades.tamanho_x);
00043     spinVertical->setValue(mundo->propriedades.tamanho_y);
00044 }
00045 
00046 /******************************************************************************/
00047 
00048 void Opcoes::aceitou()
00049 {
00050     /* modifica propriedades do mundo */
00051     mundo->propriedades.teto_energetico = spinTeto->value();
00052     mundo->propriedades.energia_grao = spinGrao->value();
00053     mundo->propriedades.probabilidade_mutacao = spinProbabilidade->value();
00054     mundo->propriedades.intensidade_mutacao = spinIntensidade->value();
00055     mundo->propriedades.tamanho_x = spinHorizontal->value();
00056     mundo->propriedades.tamanho_y = spinVertical->value();
00057 
00058     /* muda barras */
00059     barX->setRange(0, mundo->propriedades.tamanho_x);
00060     barY->setRange(0, mundo->propriedades.tamanho_y);
00061 
00062     if (checkPadrao->isChecked())
00063     {
00064         /* Tornar padrao */
00065         /* Cria arquivo e escreve valores */
00066         FILE *arq = fopen("simvida.cfg", "w");
00067 
00068         fprintf(arq, "%d\n%d\n%d\n%d\n%d\n%d\n",
00069         mundo->propriedades.tamanho_x,
00070         mundo->propriedades.tamanho_y,
00071         mundo->propriedades.energia_grao,
00072         mundo->propriedades.teto_energetico,
00073         mundo->propriedades.probabilidade_mutacao,
00074         mundo->propriedades.intensidade_mutacao);
00075 
00076         /* Fecha arquivo */
00077         fclose(arq);
00078     }
00079 
00080     close();
00081 }
00082 
00083 /******************************************************************************/

Gerado em Mon May 4 14:52:59 2009 para Simvida por  doxygen 1.5.8