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 +}