6 #include "cfgircsounds.h"
7 #include "irc/configuration/ircconfig.h"
8 #include "ui_cfgircsounds.h"
11 #include <QFileDialog>
14 DClass<CFGIRCSounds> :
public Ui::CFGIRCSounds
24 d->lblNicknameUsedWarning->hide();
25 d->lblPrivateMessageWarning->hide();
27 this->connect(d->cbNicknameUsed, SIGNAL(toggled(
bool)),
28 SIGNAL(validationRequested()));
29 this->connect(d->leNicknameUsed, SIGNAL(editingFinished()),
30 SIGNAL(validationRequested()));
31 this->connect(d->cbPrivateMessage, SIGNAL(toggled(
bool)),
32 SIGNAL(validationRequested()));
33 this->connect(d->lePrivateMessage, SIGNAL(editingFinished()),
34 SIGNAL(validationRequested()));
37 CFGIRCSounds::~CFGIRCSounds()
41 void CFGIRCSounds::browseNicknameUsed()
43 setPath(d->leNicknameUsed, getPathToWav());
46 void CFGIRCSounds::browsePrivateMessage()
48 setPath(d->lePrivateMessage, getPathToWav());
51 QString CFGIRCSounds::getPathToWav()
53 return QFileDialog::getOpenFileName(
this, tr(
"Pick Sound File"),
58 void CFGIRCSounds::playNicknameUsed()
60 playSound(d->leNicknameUsed->text());
63 void CFGIRCSounds::playPrivateMessage()
65 playSound(d->lePrivateMessage->text());
68 void CFGIRCSounds::playSound(
const QString &path)
const
77 d->cbNicknameUsed->setChecked(gIRCConfig.sounds.bUseNicknameUsedSound);
78 d->cbPrivateMessage->setChecked(gIRCConfig.sounds.bUsePrivateMessageReceivedSound);
80 d->leNicknameUsed->setText(gIRCConfig.sounds.nicknameUsedSound);
81 d->lePrivateMessage->setText(gIRCConfig.sounds.privateMessageReceivedSound);
86 gIRCConfig.sounds.bUseNicknameUsedSound = d->cbNicknameUsed->isChecked();
87 gIRCConfig.sounds.nicknameUsedSound = d->leNicknameUsed->text().trimmed();
89 gIRCConfig.sounds.bUsePrivateMessageReceivedSound = d->cbPrivateMessage->isChecked();
90 gIRCConfig.sounds.privateMessageReceivedSound = d->lePrivateMessage->text().trimmed();
93 void CFGIRCSounds::setPath(QLineEdit *pLineEdit,
const QString &path)
95 QString trimmedPath = path.trimmed();
96 if (!trimmedPath.isEmpty())
97 pLineEdit->setText(trimmedPath);
104 QString nicknameUsedError;
105 if (d->cbNicknameUsed->isChecked())
106 nicknameUsedError = validateFilePath(d->leNicknameUsed->text().trimmed());
107 d->lblNicknameUsedWarning->setVisible(!nicknameUsedError.isEmpty());
108 d->lblNicknameUsedWarning->setToolTip(nicknameUsedError);
109 error = error || !nicknameUsedError.isEmpty();
111 QString privateMessageError;
112 if (d->cbPrivateMessage->isChecked())
113 privateMessageError = validateFilePath(d->lePrivateMessage->text().trimmed());
114 d->lblPrivateMessageWarning->setVisible(!privateMessageError.isEmpty());
115 d->lblPrivateMessageWarning->setToolTip(privateMessageError);
116 error = error || !privateMessageError.isEmpty();
121 QString CFGIRCSounds::validateFilePath(
const QString &path)
const
123 if (path.trimmed().isEmpty())
124 return tr(
"No path specified.");
126 QFileInfo fileInfo(path.trimmed());
127 if (!fileInfo.exists())
128 return tr(
"File doesn't exist.");
130 if (!fileInfo.isFile())
131 return tr(
"This is not a file.");