Piccola modifica
[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
40     tread.start();
41
42     setStyleSheet("CrazyButton {"
43                  "color: white;"
44                  "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);"
45                  "border-width: 1px;"
46                  "border-color: #339;"
47                  "border-style: solid;"
48                  "border-radius: 7;"
49                  "padding: 3px;"
50                  "font-size: 50px;"
51                  "padding-left: 5px;"
52                  "padding-right: 5px;"
53                  "min-width: 15px;"
54                  "max-width: 300px;"
55                  "min-height: 11px;"
56                  "max-height: 300px;"
57                  "}"
58                  "QPushButton:pressed {"
59                  "padding-top: 15px;"
60                  "}");
61     //showMaximized();
62      setWindowTitle(tr("QMemory"));
63 }
64 void MainWindow::sbagliato(int score){
65
66     if(bestScore<= score){
67         bestScore=score;
68         writeSettings();
69         QString sscore("This is Best Score ");
70         sscore.append(QString::number(score));
71         QMessageBox::warning(this, tr("End Game"),sscore,QMessageBox::Escape);
72         //tread.genera();
73         exit(0);
74     }
75     QString sscore("Your Score: ");
76     sscore.append(QString::number(score));
77     sscore.append("\n Best score: ");
78     sscore.append(QString::number(bestScore));
79     QMessageBox::warning(this, tr("End Game"),sscore,QMessageBox::Escape);
80     bestScore=0;
81     readSettings();
82     tread.genera();
83
84     //exit(0);
85
86 }
87 void MainWindow::disableAll(){
88     ui->pushButton->setEnabled(false);
89     ui->pushButton_2->setEnabled(false);
90     ui->pushButton_3->setEnabled(false);
91     ui->pushButton_4->setEnabled(false);
92     ui->pushButton_5->setEnabled(false);
93     ui->pushButton_6->setEnabled(false);
94     ui->pushButton_7->setEnabled(false);
95     ui->pushButton_8->setEnabled(false);
96     ui->pushButton_9->setEnabled(false);
97     statusLed->setValue(true);
98 }
99
100 void MainWindow::enableAll(){
101     ui->pushButton->setEnabled(true);
102     ui->pushButton_2->setEnabled(true);
103     ui->pushButton_3->setEnabled(true);
104     ui->pushButton_4->setEnabled(true);
105     ui->pushButton_5->setEnabled(true);
106     ui->pushButton_6->setEnabled(true);
107     ui->pushButton_7->setEnabled(true);
108     ui->pushButton_8->setEnabled(true);
109     ui->pushButton_9->setEnabled(true);
110     statusLed->setValue(false);
111 }
112
113
114 void MainWindow::cliccaBottone(int id)
115 {
116     switch(id){
117         case 0:
118                 if(ui->pushButton->getStateColor())
119                     QSound::play("sounds/dog.wav");
120                 ui->pushButton->changeColor();
121                 break;
122         case 1:
123                 if(ui->pushButton_2->getStateColor())
124                     QSound::play("sounds/cat.wav");
125                 ui->pushButton_2->changeColor();
126                 break;
127         case 2:
128                 if(ui->pushButton_3->getStateColor())
129                     QSound::play("sounds/cow.wav");
130                 ui->pushButton_3->changeColor();
131                 break;
132         case 3:
133                 if(ui->pushButton_4->getStateColor())
134                     QSound::play("sounds/duck.wav");
135                 ui->pushButton_4->changeColor();
136                 break;
137         case 4:
138                 if(ui->pushButton_5->getStateColor())
139                     QSound::play("sounds/goat.wav");
140                 ui->pushButton_5->changeColor();
141                 break;
142         case 5:
143                 if(ui->pushButton_6->getStateColor())
144                     QSound::play("sounds/donkey.wav");
145                 ui->pushButton_6->changeColor();
146                 break;
147         case 6:
148                 if(ui->pushButton_7->getStateColor())
149                     QSound::play("sounds/crow.wav");
150                 ui->pushButton_7->changeColor();
151                 break;
152         case 7:
153                 if(ui->pushButton_8->getStateColor())
154                     QSound::play("sounds/rosteer.wav");
155                 ui->pushButton_8->changeColor();
156                 break;
157         case 8:
158                 if(ui->pushButton_9->getStateColor())
159                     QSound::play("sounds/bleeeh.wav");
160                 ui->pushButton_9->changeColor();
161                 break;
162     }
163 }
164
165 MainWindow::~MainWindow()
166 {
167     delete ui;
168     delete statusLed;
169 }
170
171 void MainWindow::clickA(){
172     QSound::play("sounds/dog.wav");
173     emit cliccatoIlBottone(0);
174
175 }
176
177 void MainWindow::clickB(){
178     QSound::play("sounds/cat.wav");
179     emit cliccatoIlBottone(1);
180
181 }
182
183 void MainWindow::clickC(){
184     QSound::play("sounds/cow.wav");
185     emit cliccatoIlBottone(2);
186
187 }
188
189 void MainWindow::clickD(){
190     QSound::play("sounds/duck.wav");
191     emit cliccatoIlBottone(3);
192
193 }
194
195 void MainWindow::clickE(){
196     QSound::play("sounds/goat.wav");
197     emit cliccatoIlBottone(4);
198
199 }
200
201 void MainWindow::clickF(){
202     QSound::play("sounds/donkey.wav");
203     emit cliccatoIlBottone(5);
204
205 }
206
207 void MainWindow::clickG(){
208     QSound::play("sounds/crow.wav");
209     emit cliccatoIlBottone(6);
210
211 }
212
213 void MainWindow::clickH(){
214     QSound::play("sounds/rosteer.wav");
215     emit cliccatoIlBottone(7);
216
217 }
218
219 void MainWindow::clickI(){
220     QSound::play("sounds/bleeeh.wav");
221     emit cliccatoIlBottone(8);
222
223 }
224
225
226 void MainWindow::changeEvent(QEvent *e)
227 {
228     QMainWindow::changeEvent(e);
229     switch (e->type()) {
230     case QEvent::LanguageChange:
231         ui->retranslateUi(this);
232         break;
233     default:
234         break;
235     }
236 }
237
238 void MainWindow::writeSettings()
239 {
240     QSettings settings("Emmynet Inc.", "QMemory");
241     settings.setValue("bestscore",bestScore);
242
243 }
244
245 void MainWindow::readSettings()
246 {
247     QSettings settings("Emmynet Inc.", "QMemory");
248     bestScore=(settings.value("bestscore").toInt());
249
250 }
251