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.");
void readSettings() override
Reimplement this to read settings from config into widgets.
Validation
Result of validate()
void validationRequested()
Request that the page should be (re-)validated.
Validation validate() override
Validate settings on this page.
Validation detected no problems.
void saveSettings() override
Reimplement this to write settings to config from widgets.
Validation detected at least one problem.
Base class for configuration pages.