qnetdice

annotate 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
rev   line source
nuclear@0 1 #include "mainwin.h"
nuclear@0 2 #include "ui_mainwin.h"
nuclear@1 3 #include "ui_server.h"
nuclear@1 4 #include "rollwidget.h"
nuclear@1 5 #include "main.h"
nuclear@0 6
nuclear@1 7 MainWindow::MainWindow(QWidget *parent)
nuclear@1 8 : QMainWindow(parent),
nuclear@1 9 ui(new Ui::MainWindow)
nuclear@0 10 {
nuclear@1 11 ui->setupUi(this);
nuclear@1 12
nuclear@1 13 dicebox = new QVBoxLayout;
nuclear@1 14 ui->sarea_main_cont->setLayout(dicebox);
nuclear@1 15
nuclear@1 16 connect(ui->bn_add, SIGNAL(clicked()), this, SLOT(add_dice()));
nuclear@1 17 connect(ui->bn_clear, SIGNAL(clicked()), this, SLOT(clear_dice()));
nuclear@1 18 connect(ui->bn_roll_all, SIGNAL(clicked()), this, SLOT(roll_all()));
nuclear@1 19
nuclear@1 20 //connect(ui->action_connect, SIGNAL(triggered()), this, SLOT(start_client()));
nuclear@1 21 //connect(ui->action_start_server, SIGNAL(triggered()), this, SLOT(start_server()));
nuclear@0 22 }
nuclear@0 23
nuclear@0 24 MainWindow::~MainWindow()
nuclear@0 25 {
nuclear@1 26 delete ui;
nuclear@0 27 }
nuclear@1 28
nuclear@1 29
nuclear@1 30 void MainWindow::roll_all()
nuclear@1 31 {
nuclear@1 32 for(int i=0; i<dicebox->count() - 1; i++) {
nuclear@1 33 RollWidget *roll = (RollWidget*)dicebox->itemAt(i)->widget();
nuclear@1 34 roll->roll();
nuclear@1 35 }
nuclear@1 36 }
nuclear@1 37
nuclear@1 38
nuclear@1 39 void MainWindow::add_dice()
nuclear@1 40 {
nuclear@1 41 RollWidget *w = new RollWidget;
nuclear@1 42 dicebox->takeAt(dicebox->count() - 1);
nuclear@1 43 dicebox->addWidget(w);
nuclear@1 44 dicebox->addStretch();
nuclear@1 45
nuclear@1 46 Roll *roll = new Roll;
nuclear@1 47 roll->set_sides(4);
nuclear@1 48 dice.push_back(roll);
nuclear@1 49 w->set_roll(roll);
nuclear@1 50 }
nuclear@1 51
nuclear@1 52 void MainWindow::clear_dice()
nuclear@1 53 {
nuclear@1 54 while(!dicebox->isEmpty()) {
nuclear@1 55 RollWidget *roll = (RollWidget*)dicebox->takeAt(0)->widget();
nuclear@1 56 delete roll;
nuclear@1 57 }
nuclear@1 58
nuclear@1 59 for(size_t i=0; i<dice.size(); i++) {
nuclear@1 60 delete dice[i];
nuclear@1 61 }
nuclear@1 62 dice.clear();
nuclear@1 63 }
nuclear@1 64
nuclear@1 65 void MainWindow::start_client()
nuclear@1 66 {
nuclear@1 67 Ui::ServerDialog *dlg = new Ui::ServerDialog;
nuclear@1 68 dlg->setupUi(0);
nuclear@1 69 }
nuclear@1 70
nuclear@1 71 void MainWindow::start_server()
nuclear@1 72 {
nuclear@1 73 }