X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fphononnotificationbackend.h;fp=src%2Fqtui%2Fphononnotificationbackend.h;h=858a7bc3208cdd7462329f2040542385308f3654;hb=5d627d362db7f8e1241fcb0c7164679e7847fdfa;hp=0000000000000000000000000000000000000000;hpb=603f1fd2e9501d84a320554f068df26861ebde71;p=quassel.git diff --git a/src/qtui/phononnotificationbackend.h b/src/qtui/phononnotificationbackend.h new file mode 100644 index 00000000..858a7bc3 --- /dev/null +++ b/src/qtui/phononnotificationbackend.h @@ -0,0 +1,79 @@ +/*************************************************************************** +* Copyright (C) 2005-08 by the Quassel Project * +* devel@quassel-irc.org * +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License as published by * +* the Free Software Foundation; either version 2 of the License, or * +* (at your option) version 3. * +* * +* This program is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* GNU General Public License for more details. * +* * +* You should have received a copy of the GNU General Public License * +* along with this program; if not, write to the * +* Free Software Foundation, Inc., * +* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * +***************************************************************************/ + +#ifndef PHONONNOTIFICATIONBACKEND_H_ +#define PHONONNOTIFICATIONBACKEND_H_ + +#include + +#include "abstractnotificationbackend.h" +#include "settingspage.h" + +#include "ui_phononnotificationconfigwidget.h" + +class PhononNotificationBackend : public AbstractNotificationBackend { + Q_OBJECT + +public: + PhononNotificationBackend(QObject *parent = 0); + ~PhononNotificationBackend(); + + void notify(const Notification &); + void close(uint notificationId); + virtual SettingsPage *createConfigWidget() const; + +private slots: + void enabledChanged(const QVariant &); + void audioFileChanged(const QVariant &); + void createMediaObject(const QString &name); + +private: + class ConfigWidget; + + bool _enabled; + Phonon::MediaObject *_media; +}; + +class PhononNotificationBackend::ConfigWidget : public SettingsPage { + Q_OBJECT + +public: + ConfigWidget(QWidget *parent = 0); + ~ConfigWidget(); + + void save(); + void load(); + bool hasDefaults() const; + void defaults(); + +private slots: + void widgetChanged(); + void on_open_clicked(); + void on_play_clicked(); + +private: + Ui::PhononNotificationConfigWidget ui; + + bool enabled; + QString filename; + Phonon::MediaObject *audioPreview; +}; + +#endif