qnetdice
annotate src/rollwidget.cc @ 2:ad12da657c00
removed the unused dice dialog
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Sun, 22 Dec 2013 04:09:23 +0200 |
parents | |
children |
rev | line source |
---|---|
nuclear@1 | 1 #include <stdio.h> |
nuclear@1 | 2 #include "rollwidget.h" |
nuclear@1 | 3 #include <QHBoxLayout> |
nuclear@1 | 4 #include <QComboBox> |
nuclear@1 | 5 #include <QLineEdit> |
nuclear@1 | 6 #include <QPushButton> |
nuclear@1 | 7 |
nuclear@1 | 8 static struct { |
nuclear@1 | 9 const char *name; |
nuclear@1 | 10 int sides; |
nuclear@1 | 11 } dice_types[] = { |
nuclear@1 | 12 { "d4", 4 }, |
nuclear@1 | 13 { "d6", 6 }, |
nuclear@1 | 14 { "d8", 8 }, |
nuclear@1 | 15 { "d10", 10 }, |
nuclear@1 | 16 { "d12", 12 }, |
nuclear@1 | 17 { "d20", 20 }, |
nuclear@1 | 18 { "d100", 100 }, |
nuclear@1 | 19 { 0, 0 } |
nuclear@1 | 20 }; |
nuclear@1 | 21 |
nuclear@1 | 22 RollWidget::RollWidget(QWidget *parent) : |
nuclear@1 | 23 QWidget(parent) |
nuclear@1 | 24 { |
nuclear@1 | 25 dice = 0; |
nuclear@1 | 26 |
nuclear@1 | 27 QHBoxLayout *hbox = new QHBoxLayout(this); |
nuclear@1 | 28 |
nuclear@1 | 29 cmb_type = new QComboBox; |
nuclear@1 | 30 for(int i=0; dice_types[i].name; i++) { |
nuclear@1 | 31 char buf[64]; |
nuclear@1 | 32 sprintf(buf, ":/data/dice/%s.png", dice_types[i].name); |
nuclear@1 | 33 cmb_type->addItem(QIcon(buf), dice_types[i].name); |
nuclear@1 | 34 } |
nuclear@1 | 35 hbox->addWidget(cmb_type); |
nuclear@1 | 36 |
nuclear@1 | 37 QPushButton *bn_roll = new QPushButton("roll"); |
nuclear@1 | 38 hbox->addWidget(bn_roll); |
nuclear@1 | 39 connect(bn_roll, SIGNAL(clicked()), this, SLOT(roll())); |
nuclear@1 | 40 |
nuclear@1 | 41 tx_res = new QLineEdit; |
nuclear@1 | 42 tx_res->setReadOnly(true); |
nuclear@1 | 43 hbox->addWidget(tx_res); |
nuclear@1 | 44 |
nuclear@1 | 45 QPushButton *bn_rm = new QPushButton("remove"); |
nuclear@1 | 46 hbox->addWidget(bn_rm); |
nuclear@1 | 47 } |
nuclear@1 | 48 |
nuclear@1 | 49 void RollWidget::set_roll(Roll *roll) |
nuclear@1 | 50 { |
nuclear@1 | 51 dice = roll; |
nuclear@1 | 52 } |
nuclear@1 | 53 |
nuclear@1 | 54 Roll *RollWidget::get_roll() const |
nuclear@1 | 55 { |
nuclear@1 | 56 return dice; |
nuclear@1 | 57 } |
nuclear@1 | 58 |
nuclear@1 | 59 |
nuclear@1 | 60 void RollWidget::roll() |
nuclear@1 | 61 { |
nuclear@1 | 62 if(!dice) return; |
nuclear@1 | 63 |
nuclear@1 | 64 int sel = cmb_type->currentIndex(); |
nuclear@1 | 65 dice->set_sides(dice_types[sel].sides); |
nuclear@1 | 66 int value = dice->roll(); |
nuclear@1 | 67 |
nuclear@1 | 68 QString text; |
nuclear@1 | 69 text.setNum(value); |
nuclear@1 | 70 tx_res->setText(text); |
nuclear@1 | 71 |
nuclear@1 | 72 emit value_changed(value); |
nuclear@1 | 73 } |