qnetdice

diff src/mainwin.cc @ 1:92377189a5c6

moving along
author John Tsiombikas <nuclear@member.fsf.org>
date Sun, 22 Dec 2013 04:08:50 +0200
parents 0e9c16d77e47
children 2e57c80653af
line diff
     1.1 --- a/src/mainwin.cc	Thu Dec 19 13:34:40 2013 +0200
     1.2 +++ b/src/mainwin.cc	Sun Dec 22 04:08:50 2013 +0200
     1.3 @@ -1,14 +1,73 @@
     1.4  #include "mainwin.h"
     1.5  #include "ui_mainwin.h"
     1.6 +#include "ui_server.h"
     1.7 +#include "rollwidget.h"
     1.8 +#include "main.h"
     1.9  
    1.10 -MainWindow::MainWindow(QWidget *parent) :
    1.11 -    QMainWindow(parent),
    1.12 -    ui(new Ui::MainWindow)
    1.13 +MainWindow::MainWindow(QWidget *parent)
    1.14 +	: QMainWindow(parent),
    1.15 +	ui(new Ui::MainWindow)
    1.16  {
    1.17 -    ui->setupUi(this);
    1.18 +	ui->setupUi(this);
    1.19 +
    1.20 +	dicebox = new QVBoxLayout;
    1.21 +	ui->sarea_main_cont->setLayout(dicebox);
    1.22 +
    1.23 +	connect(ui->bn_add, SIGNAL(clicked()), this, SLOT(add_dice()));
    1.24 +	connect(ui->bn_clear, SIGNAL(clicked()), this, SLOT(clear_dice()));
    1.25 +	connect(ui->bn_roll_all, SIGNAL(clicked()), this, SLOT(roll_all()));
    1.26 +
    1.27 +	//connect(ui->action_connect, SIGNAL(triggered()), this, SLOT(start_client()));
    1.28 +	//connect(ui->action_start_server, SIGNAL(triggered()), this, SLOT(start_server()));
    1.29  }
    1.30  
    1.31  MainWindow::~MainWindow()
    1.32  {
    1.33 -    delete ui;
    1.34 +	delete ui;
    1.35  }
    1.36 +
    1.37 +
    1.38 +void MainWindow::roll_all()
    1.39 +{
    1.40 +	for(int i=0; i<dicebox->count() - 1; i++) {
    1.41 +		RollWidget *roll = (RollWidget*)dicebox->itemAt(i)->widget();
    1.42 +		roll->roll();
    1.43 +	}
    1.44 +}
    1.45 +
    1.46 +
    1.47 +void MainWindow::add_dice()
    1.48 +{
    1.49 +	RollWidget *w = new RollWidget;
    1.50 +	dicebox->takeAt(dicebox->count() - 1);
    1.51 +	dicebox->addWidget(w);
    1.52 +	dicebox->addStretch();
    1.53 +
    1.54 +	Roll *roll = new Roll;
    1.55 +	roll->set_sides(4);
    1.56 +	dice.push_back(roll);
    1.57 +	w->set_roll(roll);
    1.58 +}
    1.59 +
    1.60 +void MainWindow::clear_dice()
    1.61 +{
    1.62 +	while(!dicebox->isEmpty()) {
    1.63 +		RollWidget *roll = (RollWidget*)dicebox->takeAt(0)->widget();
    1.64 +		delete roll;
    1.65 +	}
    1.66 +
    1.67 +	for(size_t i=0; i<dice.size(); i++) {
    1.68 +		delete dice[i];
    1.69 +	}
    1.70 +	dice.clear();
    1.71 +}
    1.72 +
    1.73 +void MainWindow::start_client()
    1.74 +{
    1.75 +	Ui::ServerDialog *dlg = new Ui::ServerDialog;
    1.76 +	dlg->setupUi(0);
    1.77 +}
    1.78 +
    1.79 +void MainWindow::start_server()
    1.80 +{
    1.81 +}