Some more optimizations of SoundManager

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@8392 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2015-06-07 17:35:58 +00:00
parent acfa384f7f
commit 24a07702f2
7 changed files with 33 additions and 31 deletions

View file

@ -70,8 +70,9 @@ SoundManager::SoundManager() : QObject()
void SoundManager::soundEvents(SoundEvents &events) void SoundManager::soundEvents(SoundEvents &events)
{ {
QDir baseDir = QDir(qApp->applicationDirPath()); QDir baseDir = QDir(qApp->applicationDirPath() + "/sounds");
baseDir.cd("sounds");
events.mDefaultPath = baseDir.absolutePath();
/* add standard events */ /* add standard events */
events.addEvent(tr("Friend"), tr("Go Online"), SOUND_USER_ONLINE, QFileInfo(baseDir, "online1.wav").absoluteFilePath()); events.addEvent(tr("Friend"), tr("Go Online"), SOUND_USER_ONLINE, QFileInfo(baseDir, "online1.wav").absoluteFilePath());
@ -132,13 +133,13 @@ void SoundManager::initDefault()
} }
} }
void SoundManager::setMute(bool mute) void SoundManager::setMute(bool m)
{ {
Settings->beginGroup(GROUP_MAIN); Settings->beginGroup(GROUP_MAIN);
Settings->setValue("mute", mute); Settings->setValue("mute", m);
Settings->endGroup(); Settings->endGroup();
emit SoundManager::mute(mute); emit mute(m);
} }
bool SoundManager::isMute() bool SoundManager::isMute()

View file

@ -50,6 +50,7 @@ public:
void addEvent(const QString &groupName, const QString &eventName, const QString &event, const QString &defaultFilename); void addEvent(const QString &groupName, const QString &eventName, const QString &event, const QString &defaultFilename);
public: public:
QString mDefaultPath;
QMap<QString, SoundEventInfo> mEventInfos; QMap<QString, SoundEventInfo> mEventInfos;
}; };
@ -58,7 +59,7 @@ class SoundManager : public QObject
Q_OBJECT Q_OBJECT
public slots: public slots:
void setMute(bool mute); void setMute(bool m);
signals: signals:
void mute(bool isMute); void mute(bool isMute);
@ -66,23 +67,23 @@ signals:
public: public:
static void create(); static void create();
void initDefault(); static void initDefault();
QString defaultFilename(const QString &event, bool check); static QString defaultFilename(const QString &event, bool check);
static QString convertFilename(const QString &filename); static QString convertFilename(const QString &filename);
static QString realFilename(const QString &filename); static QString realFilename(const QString &filename);
void soundEvents(SoundEvents &events); static void soundEvents(SoundEvents &events);
bool isMute(); static bool isMute();
void play(const QString &event); static void play(const QString &event);
void playFile(const QString &filename); static void playFile(const QString &filename);
bool eventEnabled(const QString &event); static bool eventEnabled(const QString &event);
void setEventEnabled(const QString &event, bool enabled); static void setEventEnabled(const QString &event, bool enabled);
QString eventFilename(const QString &event); static QString eventFilename(const QString &event);
void setEventFilename(const QString &event, const QString &filename); static void setEventFilename(const QString &event, const QString &filename);
private: private:
SoundManager(); SoundManager();

View file

@ -170,7 +170,7 @@ void ChatDialog::init(ChatId id, const QString &title)
if(msg.incoming && (msg.chat_id.isPeerId() || msg.chat_id.isGxsId())) if(msg.incoming && (msg.chat_id.isPeerId() || msg.chat_id.isGxsId()))
// play sound when recv a message // play sound when recv a message
soundManager->play(SOUND_NEW_CHAT_MESSAGE); SoundManager::play(SOUND_NEW_CHAT_MESSAGE);
ChatDialog *cd = getChat(msg.chat_id, Settings->getChatFlags()); ChatDialog *cd = getChat(msg.chat_id, Settings->getChatFlags());
if(cd) if(cd)

View file

@ -790,7 +790,7 @@ void NotifyQt::UpdateGUI()
switch(type) switch(type)
{ {
case RS_POPUP_ENCRYPTED_MSG: case RS_POPUP_ENCRYPTED_MSG:
soundManager->play(SOUND_MESSAGE_ARRIVED); SoundManager::play(SOUND_MESSAGE_ARRIVED);
if ((popupflags & RS_POPUP_MSG) && !_disableAllToaster) if ((popupflags & RS_POPUP_MSG) && !_disableAllToaster)
{ {
@ -798,7 +798,7 @@ void NotifyQt::UpdateGUI()
} }
break; break;
case RS_POPUP_MSG: case RS_POPUP_MSG:
soundManager->play(SOUND_MESSAGE_ARRIVED); SoundManager::play(SOUND_MESSAGE_ARRIVED);
if ((popupflags & RS_POPUP_MSG) && !_disableAllToaster) if ((popupflags & RS_POPUP_MSG) && !_disableAllToaster)
{ {
@ -806,7 +806,7 @@ void NotifyQt::UpdateGUI()
} }
break; break;
case RS_POPUP_CONNECT: case RS_POPUP_CONNECT:
soundManager->play(SOUND_USER_ONLINE); SoundManager::play(SOUND_USER_ONLINE);
if ((popupflags & RS_POPUP_CONNECT) && !_disableAllToaster) if ((popupflags & RS_POPUP_CONNECT) && !_disableAllToaster)
{ {
@ -814,7 +814,7 @@ void NotifyQt::UpdateGUI()
} }
break; break;
case RS_POPUP_DOWNLOAD: case RS_POPUP_DOWNLOAD:
soundManager->play(SOUND_DOWNLOAD_COMPLETE); SoundManager::play(SOUND_DOWNLOAD_COMPLETE);
if ((popupflags & RS_POPUP_DOWNLOAD) && !_disableAllToaster) if ((popupflags & RS_POPUP_DOWNLOAD) && !_disableAllToaster)
{ {

View file

@ -95,9 +95,9 @@ QTreeWidgetItem *SoundPage::addItem(QTreeWidgetItem *groupItem, const QString &n
QTreeWidgetItem *item = new QTreeWidgetItem(TYPE_ITEM); QTreeWidgetItem *item = new QTreeWidgetItem(TYPE_ITEM);
item->setData(COLUMN_DATA, ROLE_EVENT, event); item->setData(COLUMN_DATA, ROLE_EVENT, event);
item->setFlags(item->flags() | Qt::ItemIsUserCheckable); item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
item->setCheckState(COLUMN_NAME, soundManager->eventEnabled(event) ? Qt::Checked : Qt::Unchecked); item->setCheckState(COLUMN_NAME, SoundManager::eventEnabled(event) ? Qt::Checked : Qt::Unchecked);
item->setText(COLUMN_NAME, name); item->setText(COLUMN_NAME, name);
item->setText(COLUMN_FILENAME, soundManager->eventFilename(event)); item->setText(COLUMN_FILENAME, SoundManager::eventFilename(event));
groupItem->addChild(item); groupItem->addChild(item);
return item; return item;
@ -113,8 +113,8 @@ bool SoundPage::save(QString &/*errmsg*/)
if (item->type() == TYPE_ITEM) { if (item->type() == TYPE_ITEM) {
const QString event = item->data(COLUMN_DATA, ROLE_EVENT).toString(); const QString event = item->data(COLUMN_DATA, ROLE_EVENT).toString();
soundManager->setEventEnabled(event, item->checkState(COLUMN_NAME) == Qt::Checked); SoundManager::setEventEnabled(event, item->checkState(COLUMN_NAME) == Qt::Checked);
soundManager->setEventFilename(event, item->text(COLUMN_FILENAME)); SoundManager::setEventFilename(event, item->text(COLUMN_FILENAME));
} }
} }
@ -128,7 +128,7 @@ void SoundPage::load()
/* add sound events */ /* add sound events */
SoundEvents events; SoundEvents events;
soundManager->soundEvents(events); SoundManager::soundEvents(events);
QString event; QString event;
foreach (event, events.mEventInfos.keys()) { foreach (event, events.mEventInfos.keys()) {
@ -165,7 +165,7 @@ void SoundPage::eventChanged(QTreeWidgetItem *current, QTreeWidgetItem */*previo
ui.eventName->setText(eventName); ui.eventName->setText(eventName);
QString event = current->data(COLUMN_DATA, ROLE_EVENT).toString(); QString event = current->data(COLUMN_DATA, ROLE_EVENT).toString();
ui.defaultButton->setDisabled(soundManager->defaultFilename(event, true).isEmpty()); ui.defaultButton->setDisabled(SoundManager::defaultFilename(event, true).isEmpty());
} }
void SoundPage::filenameChanged(QString filename) void SoundPage::filenameChanged(QString filename)
@ -186,7 +186,7 @@ void SoundPage::defaultButtonClicked()
} }
QString event = item->data(COLUMN_DATA, ROLE_EVENT).toString(); QString event = item->data(COLUMN_DATA, ROLE_EVENT).toString();
ui.filenameEdit->setText(soundManager->defaultFilename(event, true)); ui.filenameEdit->setText(SoundManager::defaultFilename(event, true));
} }
void SoundPage::browseButtonClicked() void SoundPage::browseButtonClicked()
@ -206,5 +206,5 @@ void SoundPage::playButtonClicked()
} }
QString filename = item->text(COLUMN_FILENAME); QString filename = item->text(COLUMN_FILENAME);
soundManager->playFile(filename); SoundManager::playFile(filename);
} }

View file

@ -44,7 +44,7 @@ SoundStatus::SoundStatus(QWidget *parent)
setLayout(hbox); setLayout(hbox);
bool isMute = soundManager->isMute(); bool isMute = SoundManager::isMute();
imageButton->setChecked(isMute); imageButton->setChecked(isMute);
connect(soundManager, SIGNAL(mute(bool)), this, SLOT(mute(bool))); connect(soundManager, SIGNAL(mute(bool)), this, SLOT(mute(bool)));

View file

@ -335,7 +335,7 @@ int main(int argc, char *argv[])
Settings->setValue(QString::fromUtf8("FirstRun"), false); Settings->setValue(QString::fromUtf8("FirstRun"), false);
soundManager->initDefault(); SoundManager::initDefault();
#ifdef __APPLE__ #ifdef __APPLE__
/* For OSX, we set the default to "cleanlooks", as the AQUA style hides some input boxes /* For OSX, we set the default to "cleanlooks", as the AQUA style hides some input boxes