Added Highlights (#86)

Added Highlights
This commit is contained in:
Cranken
2017-07-31 00:37:22 +02:00
committed by pajlada
parent 467ca90fd8
commit 8fb0671834
17 changed files with 245 additions and 12 deletions
+40 -3
View File
@@ -3,8 +3,13 @@
#include "emotemanager.hpp"
#include "ircmanager.hpp"
#include "resources.hpp"
#include "settingsmanager.hpp"
#include "windowmanager.hpp"
#include <QApplication>
#include <QDebug>
#include <QMediaPlayer>
using namespace chatterino::messages;
namespace chatterino {
@@ -48,7 +53,41 @@ SharedMessage TwitchMessageBuilder::parse()
this->parseUsername();
// highlights
// TODO: implement this xD
const QString &originalMessage = ircMessage->content();
this->originalMessage = originalMessage;
SettingsManager &settings = SettingsManager::getInstance();
static auto player = new QMediaPlayer;
if(settings.customHighlightSound.get()){
player->setMedia(QUrl(settings.pathHighlightSound.get()));
} else {
player->setMedia(QUrl("qrc:/sounds/ping2.wav"));
}
if(settings.enableHighlights.get() && ircMessage->nick().compare(settings.selectedUser.get(), Qt::CaseInsensitive)){
if(settings.enableHighlightsSelf.get() && originalMessage.contains(settings.selectedUser.get(), Qt::CaseInsensitive)){
this->setHighlight(true);
if(settings.enableHighlightSound.get()){
player->play();
}
if(settings.enableHighlightTaskbar.get()){
QApplication::alert(windowManager.getMainWindow().window(),2500);
}
} else {
QStringList lines = settings.highlightProperties.get().keys();
for(QString string : lines){
if(originalMessage.contains(string,Qt::CaseInsensitive)){
this->setHighlight(true);
// Sound
if(settings.highlightProperties.get().value(string).first){
player->play();
}
// Taskbar
if(settings.highlightProperties.get().value(string).second){
QApplication::alert(windowManager.getMainWindow().window(),2500);
}
}
}
}
}
// bits
QString bits = "";
@@ -85,8 +124,6 @@ SharedMessage TwitchMessageBuilder::parse()
// words
QColor textColor = ircMessage->isAction() ? this->usernameColor : this->colorScheme.Text;
const QString &originalMessage = ircMessage->content();
this->originalMessage = originalMessage;
QStringList splits = originalMessage.split(' ');
long int i = 0;