Merge branch 'savebletimers'
[kitchenalert] / src / selectsounddialog.cpp
1 /**************************************************************************
2         KitchenAlert
3
4         Copyright (C) 2010-2011  Heli Hyvättinen
5         
6         This file is part of KitchenAlert.
7
8         Kitchen Alert is free software: you can redistribute it and/or modify
9         it under the terms of the GNU General Public License as published by
10         the Free Software Foundation, either version 3 of the License, or
11         (at your option) any later version.
12
13         This program is distributed in the hope that it will be useful,
14         but WITHOUT ANY WARRANTY; without even the implied warranty of
15         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16         GNU General Public License for more details.
17
18         You should have received a copy of the GNU General Public License
19         along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
21 **************************************************************************/
22
23
24
25
26
27 #include "selectsounddialog.h"
28 #include "ui_selectsounddialog.h"
29 #include "alertsound.h"
30 #include <QFileDialog>
31 #include <QSettings>
32 #include <QDebug>
33
34
35
36 SelectSoundDialog::SelectSoundDialog(QWidget *parent) :
37     QDialog(parent),
38     ui(new Ui::SelectSoundDialog)
39 {
40
41     ui->setupUi(this);
42     connect(ui->browseButton,SIGNAL(clicked()),this,SLOT(browse()));
43
44     QSettings settings("KitchenAlert","KitchenAlert");
45     QString filename = settings.value("soundfile").toString();
46     ui->lineEdit->setText(filename);
47
48     bool useDefaultSoundFile = settings.value("UseDefaultSound",true).toBool();
49     if (useDefaultSoundFile == true)
50     {
51         ui->DefaultSoundRadioButton->setChecked(true);
52         ui->browseButton->setDisabled(true);
53         ui->lineEdit->setDisabled(true);
54     }
55     else ui->CustomSoundRadioButton->setChecked(true);
56 //    qDebug() << "UseDefaultSoundfile is " << useDefaultSoundFile;
57
58
59
60     isTesting_ = false;
61     connect(ui->TestButton,SIGNAL(clicked()),this,SLOT(testSound()));
62 }
63
64 SelectSoundDialog::~SelectSoundDialog()
65 {
66     delete ui;
67 }
68
69 void SelectSoundDialog::browse()
70 {
71     QString filename = QFileDialog::getOpenFileName(this, tr("Choose a sound file"),"/home/user/"); //Filters: to use or not...? //MAEMO specific dir here...
72     if (!filename.isEmpty()) //Empty string returned by the dialog if user pressed cancel...
73     {
74         ui->lineEdit->setText(filename);
75     }
76 }
77
78 QString SelectSoundDialog::getSoundFileName()
79 {
80     if (ui->CustomSoundRadioButton->isChecked() == true)
81         return ui->lineEdit->displayText();
82     else return QString();
83 }
84
85 bool SelectSoundDialog::isDefaultSoundChecked()
86 {
87     return ui->DefaultSoundRadioButton->isChecked();
88 }
89
90 void SelectSoundDialog::testSound()
91 {
92     if (isTesting_ == false)
93     {
94         if  (ui->CustomSoundRadioButton->isChecked() == false)
95         {
96             player.setMedia(QUrl::fromLocalFile(AlertSound::defaultsound_));
97         }
98
99         else
100         {
101             player.setMedia(QUrl::fromLocalFile(ui->lineEdit->displayText()));
102         }
103
104         player.play();
105
106         ui->TestButton->setText(tr("Stop test"));
107
108         isTesting_ = true;
109     }
110
111     else
112     {
113         player.stop();
114         ui->TestButton->setText(tr("Test sound"));
115         isTesting_ = false;
116     }
117
118 }