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