6 #include "cfgircsounds.h" 7 #include "ui_cfgircsounds.h" 8 #include "irc/configuration/ircconfig.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 79 d->cbNicknameUsed->setChecked(gIRCConfig.sounds.bUseNicknameUsedSound);
80 d->cbPrivateMessage->setChecked(gIRCConfig.sounds.bUsePrivateMessageReceivedSound);
82 d->leNicknameUsed->setText(gIRCConfig.sounds.nicknameUsedSound);
83 d->lePrivateMessage->setText(gIRCConfig.sounds.privateMessageReceivedSound);
88 gIRCConfig.sounds.bUseNicknameUsedSound = d->cbNicknameUsed->isChecked();
89 gIRCConfig.sounds.nicknameUsedSound = d->leNicknameUsed->text().trimmed();
91 gIRCConfig.sounds.bUsePrivateMessageReceivedSound = d->cbPrivateMessage->isChecked();
92 gIRCConfig.sounds.privateMessageReceivedSound = d->lePrivateMessage->text().trimmed();
95 void CFGIRCSounds::setPath(QLineEdit* pLineEdit,
const QString& path)
97 QString trimmedPath = path.trimmed();
98 if (!trimmedPath.isEmpty())
100 pLineEdit->setText(trimmedPath);
108 QString nicknameUsedError;
109 if (d->cbNicknameUsed->isChecked())
110 nicknameUsedError = validateFilePath(d->leNicknameUsed->text().trimmed());
111 d->lblNicknameUsedWarning->setVisible(!nicknameUsedError.isEmpty());
112 d->lblNicknameUsedWarning->setToolTip(nicknameUsedError);
113 error = error || !nicknameUsedError.isEmpty();
115 QString privateMessageError;
116 if (d->cbPrivateMessage->isChecked())
117 privateMessageError = validateFilePath(d->lePrivateMessage->text().trimmed());
118 d->lblPrivateMessageWarning->setVisible(!privateMessageError.isEmpty());
119 d->lblPrivateMessageWarning->setToolTip(privateMessageError);
120 error = error || !privateMessageError.isEmpty();
125 QString CFGIRCSounds::validateFilePath(
const QString &path)
const 127 if (path.trimmed().isEmpty())
129 return tr(
"No path specified.");
132 QFileInfo fileInfo(path.trimmed());
133 if (!fileInfo.exists())
135 return tr(
"File doesn't exist.");
138 if (!fileInfo.isFile())
140 return tr(
"This is not a file.");
Validation
Result of validate()
void validationRequested()
Request that the page should be (re-)validated.
void saveSettings()
Reimplement this to write settings to config from widgets.
Validation detected no problems.
void readSettings()
Reimplement this to read settings from config into widgets.
Validation validate()
Validate settings on this page.
Validation detected at least one problem.
Base class for configuration pages.