Problemi con emit score
[qmemory] / mainwindow.cpp
1 #include "mainwindow.h"
2 #include "ui_mainwindow.h"
3 #include <QMessageBox>
4 #include <QDebug>
5 #include <QSound>
6 #include <QSettings>
7
8 MainWindow::MainWindow(QWidget *parent) :
9     QMainWindow(parent),
10     ui(new Ui::MainWindow)
11 {
12     ui->setupUi(this);
13
14     bestScore=0;
15     readSettings();
16     statusLed = new QLed(ui->verticalLayoutWidget);
17     ui->horizontalLayout_4->insertWidget(0,statusLed);
18
19     statusLed->setOnColor(QLed::Red);
20     statusLed->setOffColor(QLed::Green);
21     //statusLed->setGeometry(QRect(0,0,100,100));
22     statusLed->setShape(QLed::Rounded);
23     setCentralWidget(ui->verticalLayoutWidget);
24     connect(&tread,SIGNAL(generate(int)),this,SLOT(cliccaBottone(int)));
25     connect(&tread,SIGNAL(score(int)),ui->lcdNumber,SLOT(display(int)));
26     connect(&tread,SIGNAL(exit(int)),this,SLOT(sbagliato(int)));
27     connect(&tread,SIGNAL(disableInterface()),this,SLOT(disableAll()));
28     connect(&tread,SIGNAL(enableInterface()),this,SLOT(enableAll()));
29     connect(this,SIGNAL(cliccatoIlBottone(int)),&tread,SLOT(addUserInput(int)));
30     connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(clickA()));
31     connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(clickB()));
32     connect(ui->pushButton_3,SIGNAL(clicked()),this,SLOT(clickC()));
33     connect(ui->pushButton_4,SIGNAL(clicked()),this,SLOT(clickD()));
34     connect(ui->pushButton_5,SIGNAL(clicked()),this,SLOT(clickE()));
35     connect(ui->pushButton_6,SIGNAL(clicked()),this,SLOT(clickF()));
36     connect(ui->pushButton_7,SIGNAL(clicked()),this,SLOT(clickG()));
37     connect(ui->pushButton_8,SIGNAL(clicked()),this,SLOT(clickH()));
38     connect(ui->pushButton_9,SIGNAL(clicked()),this,SLOT(clickI()));
39     ui->pushButton->setShortcut(QKeySequence("1"));
40     ui->pushButton_2->setShortcut(QKeySequence("2"));
41     ui->pushButton_3->setShortcut(QKeySequence("3"));
42     ui->pushButton_4->setShortcut(QKeySequence("4"));
43     ui->pushButton_5->setShortcut(QKeySequence("5"));
44     ui->pushButton_6->setShortcut(QKeySequence("6"));
45     ui->pushButton_7->setShortcut(QKeySequence("7"));
46     ui->pushButton_8->setShortcut(QKeySequence("8"));
47     ui->pushButton_9->setShortcut(QKeySequence("9"));
48
49     tread.start();
50
51     setStyleSheet("CrazyButton {"
52                  "color: white;"
53                  "background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #88d, stop: 0.1 #99e, stop: 0.49 #77c, stop: 0.5 #66b, stop: 1 #77c);"
54                  "border-width: 1px;"
55                  "border-color: #339;"
56                  "border-style: solid;"
57                  "border-radius: 7;"
58                  "padding: 3px;"
59                  "font-size: 50px;"
60                  "padding-left: 5px;"
61                  "padding-right: 5px;"
62                  "min-width: 15px;"
63                  "max-width: 300px;"
64                  "min-height: 11px;"
65                  "max-height: 300px;"
66                  "}"
67                  "QPushButton:pressed {"
68                  "padding-top: 15px;"
69                  "}");
70     //showMaximized();
71      setWindowTitle(tr("QMemory"));
72 }
73 void MainWindow::sbagliato(int score){
74
75     if(bestScore<= score){
76         bestScore=score;
77         writeSettings();
78         QString sscore("This is Best Score ");
79         sscore.append(QString::number(score));
80         QMessageBox::warning(this, tr("End Game"),sscore,QMessageBox::Escape);
81         bestScore=0;
82         readSettings();
83         tread.genera();
84         //exit(0);
85     }
86     QString sscore("Your Score: ");
87     sscore.append(QString::number(score));
88     sscore.append("\n Best score: ");
89     sscore.append(QString::number(bestScore));
90     QMessageBox::warning(this, tr("End Game"),sscore,QMessageBox::Escape);
91     bestScore=0;
92     readSettings();
93     tread.genera();
94
95     //exit(0);
96
97 }
98 void MainWindow::disableAll(){
99     ui->pushButton->setEnabled(false);
100     ui->pushButton_2->setEnabled(false);
101     ui->pushButton_3->setEnabled(false);
102     ui->pushButton_4->setEnabled(false);
103     ui->pushButton_5->setEnabled(false);
104     ui->pushButton_6->setEnabled(false);
105     ui->pushButton_7->setEnabled(false);
106     ui->pushButton_8->setEnabled(false);
107     ui->pushButton_9->setEnabled(false);
108     statusLed->setValue(true);
109 }
110
111 void MainWindow::enableAll(){
112     ui->pushButton->setEnabled(true);
113     ui->pushButton_2->setEnabled(true);
114     ui->pushButton_3->setEnabled(true);
115     ui->pushButton_4->setEnabled(true);
116     ui->pushButton_5->setEnabled(true);
117     ui->pushButton_6->setEnabled(true);
118     ui->pushButton_7->setEnabled(true);
119     ui->pushButton_8->setEnabled(true);
120     ui->pushButton_9->setEnabled(true);
121     statusLed->setValue(false);
122 }
123
124
125 void MainWindow::cliccaBottone(int id)
126 {
127     switch(id){
128         case 0:
129                 if(ui->pushButton->getStateColor())
130                     QSound::play("sounds/dog.wav");
131                 ui->pushButton->changeColor();
132                 break;
133         case 1:
134                 if(ui->pushButton_2->getStateColor())
135                     QSound::play("sounds/cat.wav");
136                 ui->pushButton_2->changeColor();
137                 break;
138         case 2:
139                 if(ui->pushButton_3->getStateColor())
140                     QSound::play("sounds/cow.wav");
141                 ui->pushButton_3->changeColor();
142                 break;
143         case 3:
144                 if(ui->pushButton_4->getStateColor())
145                     QSound::play("sounds/duck.wav");
146                 ui->pushButton_4->changeColor();
147                 break;
148         case 4:
149                 if(ui->pushButton_5->getStateColor())
150                     QSound::play("sounds/goat.wav");
151                 ui->pushButton_5->changeColor();
152                 break;
153         case 5:
154                 if(ui->pushButton_6->getStateColor())
155                     QSound::play("sounds/donkey.wav");
156                 ui->pushButton_6->changeColor();
157                 break;
158         case 6:
159                 if(ui->pushButton_7->getStateColor())
160                     QSound::play("sounds/crow.wav");
161                 ui->pushButton_7->changeColor();
162                 break;
163         case 7:
164                 if(ui->pushButton_8->getStateColor())
165                     QSound::play("sounds/rosteer.wav");
166                 ui->pushButton_8->changeColor();
167                 break;
168         case 8:
169                 if(ui->pushButton_9->getStateColor())
170                     QSound::play("sounds/bleeeh.wav");
171                 ui->pushButton_9->changeColor();
172                 break;
173     }
174 }
175
176 MainWindow::~MainWindow()
177 {
178     delete ui;
179     delete statusLed;
180 }
181
182 void MainWindow::clickA(){
183     QSound::play("sounds/dog.wav");
184     emit cliccatoIlBottone(0);
185
186 }
187
188 void MainWindow::clickB(){
189     QSound::play("sounds/cat.wav");
190     emit cliccatoIlBottone(1);
191
192 }
193
194 void MainWindow::clickC(){
195     QSound::play("sounds/cow.wav");
196     emit cliccatoIlBottone(2);
197
198 }
199
200 void MainWindow::clickD(){
201     QSound::play("sounds/duck.wav");
202     emit cliccatoIlBottone(3);
203
204 }
205
206 void MainWindow::clickE(){
207     QSound::play("sounds/goat.wav");
208     emit cliccatoIlBottone(4);
209
210 }
211
212 void MainWindow::clickF(){
213     QSound::play("sounds/donkey.wav");
214     emit cliccatoIlBottone(5);
215
216 }
217
218 void MainWindow::clickG(){
219     QSound::play("sounds/crow.wav");
220     emit cliccatoIlBottone(6);
221
222 }
223
224 void MainWindow::clickH(){
225     QSound::play("sounds/rosteer.wav");
226     emit cliccatoIlBottone(7);
227
228 }
229
230 void MainWindow::clickI(){
231     QSound::play("sounds/bleeeh.wav");
232     emit cliccatoIlBottone(8);
233
234 }
235
236
237 void MainWindow::changeEvent(QEvent *e)
238 {
239     QMainWindow::changeEvent(e);
240     switch (e->type()) {
241     case QEvent::LanguageChange:
242         ui->retranslateUi(this);
243         break;
244     default:
245         break;
246     }
247 }
248
249 void MainWindow::writeSettings()
250 {
251     QSettings settings("Emmynet Inc.", "QMemory");
252     settings.setValue("bestscore",bestScore);
253
254 }
255
256 void MainWindow::readSettings()
257 {
258     QSettings settings("Emmynet Inc.", "QMemory");
259     bestScore=(settings.value("bestscore").toInt());
260
261 }
262