highlighting whispers works better and looks better

This commit is contained in:
apa420 2018-08-29 01:21:36 +02:00
parent c5d5825b5a
commit c3065db16d
6 changed files with 75 additions and 33 deletions

View file

@ -124,7 +124,7 @@ public:
rowItem.items[column]->setData(value, role);
if (rowItem.isCustomRow) {
this->customRowSetData(rowItem.items, column, value, role);
this->customRowSetData(rowItem.items, column, value, role, row);
} else {
int vecRow = this->getVectorIndexFromModelIndex(row);
this->vector_->removeItem(vecRow, this);
@ -230,7 +230,8 @@ protected:
}
virtual void customRowSetData(const std::vector<QStandardItem *> &row,
int column, const QVariant &value, int role)
int column, const QVariant &value, int role,
int rowIndex)
{
}

View file

@ -36,36 +36,67 @@ void HighlightModel::getRowFromItem(const HighlightPhrase &item,
void HighlightModel::afterInit()
{
std::vector<QStandardItem *> row = this->createRow();
setBoolItem(row[0], getSettings()->enableHighlightsSelf.getValue(), true,
std::vector<QStandardItem *> usernameRow = this->createRow();
setBoolItem(usernameRow[0], getSettings()->enableSelfHighlight.getValue(),
true, false);
usernameRow[0]->setData("Your username (automatic)", Qt::DisplayRole);
setBoolItem(usernameRow[1],
getSettings()->enableSelfHighlightTaskbar.getValue(), true,
false);
row[0]->setData("Your username (automatic)", Qt::DisplayRole);
setBoolItem(row[1], getSettings()->enableHighlightTaskbar.getValue(), true,
setBoolItem(usernameRow[2],
getSettings()->enableSelfHighlightSound.getValue(), true,
false);
setBoolItem(row[2], getSettings()->enableHighlightSound.getValue(), true,
usernameRow[3]->setFlags(0);
this->insertCustomRow(usernameRow, 0);
std::vector<QStandardItem *> whisperRow = this->createRow();
setBoolItem(whisperRow[0], getSettings()->enableWhisperHighlight.getValue(),
true, false);
whisperRow[0]->setData("Whispers", Qt::DisplayRole);
setBoolItem(whisperRow[1],
getSettings()->enableWhisperHighlightTaskbar.getValue(), true,
false);
row[3]->setFlags(0);
this->insertCustomRow(row, 0);
setBoolItem(whisperRow[2],
getSettings()->enableWhisperHighlightSound.getValue(), true,
false);
whisperRow[3]->setFlags(0);
this->insertCustomRow(whisperRow, 1);
}
void HighlightModel::customRowSetData(const std::vector<QStandardItem *> &row,
int column, const QVariant &value,
int role)
int role, int rowIndex)
{
switch (column) {
case 0: {
if (role == Qt::CheckStateRole) {
getSettings()->enableHighlightsSelf.setValue(value.toBool());
if (rowIndex == 0) {
getSettings()->enableSelfHighlight.setValue(value.toBool());
} else if (rowIndex == 1) {
getSettings()->enableWhisperHighlight.setValue(
value.toBool());
}
}
} break;
case 1: {
if (role == Qt::CheckStateRole) {
getSettings()->enableHighlightTaskbar.setValue(value.toBool());
if (rowIndex == 0) {
getSettings()->enableSelfHighlightTaskbar.setValue(
value.toBool());
} else if (rowIndex == 1) {
getSettings()->enableWhisperHighlightTaskbar.setValue(
value.toBool());
}
}
} break;
case 2: {
if (role == Qt::CheckStateRole) {
getSettings()->enableHighlightSound.setValue(value.toBool());
if (rowIndex == 0) {
getSettings()->enableSelfHighlightSound.setValue(
value.toBool());
} else if (rowIndex == 1) {
getSettings()->enableWhisperHighlightSound.setValue(
value.toBool());
}
}
} break;
case 3: {

View file

@ -26,8 +26,8 @@ protected:
virtual void afterInit() override;
virtual void customRowSetData(const std::vector<QStandardItem *> &row,
int column, const QVariant &value,
int role) override;
int column, const QVariant &value, int role,
int rowIndex) override;
friend class HighlightController;
};

View file

@ -507,10 +507,10 @@ void TwitchMessageBuilder::parseHighlights(bool isPastMsg)
std::vector<HighlightPhrase> userHighlights =
app->highlights->highlightedUsers.getVector();
if (getSettings()->enableHighlightsSelf && currentUsername.size() > 0) {
if (getSettings()->enableSelfHighlight && currentUsername.size() > 0) {
HighlightPhrase selfHighlight(
currentUsername, getSettings()->enableHighlightTaskbar,
getSettings()->enableHighlightSound, false);
currentUsername, getSettings()->enableSelfHighlightTaskbar,
getSettings()->enableSelfHighlightSound, false);
activeHighlights.emplace_back(std::move(selfHighlight));
}
@ -564,6 +564,19 @@ void TwitchMessageBuilder::parseHighlights(bool isPastMsg)
}
}
}
if (this->args.isReceivedWhisper) {
if (getSettings()->enableWhisperHighlight) {
log("Highlight because it's a whisper",
this->args.isReceivedWhisper);
doHighlight = true;
}
if (getSettings()->enableWhisperHighlightTaskbar) {
doAlert = true;
}
if (getSettings()->enableSelfHighlightSound) {
playSound = true;
}
}
this->message().flags.set(MessageFlag::Highlighted, doHighlight);
@ -578,12 +591,6 @@ void TwitchMessageBuilder::parseHighlights(bool isPastMsg)
2500);
}
}
if (this->args.isReceivedWhisper &&
getSettings()->highlightSoundOnWhisper) {
if (!hasFocus || getSettings()->highlightAlwaysPlaySound) {
player->play();
}
}
}
}

View file

@ -114,14 +114,19 @@ public:
/// Highlighting
// BoolSetting enableHighlights = {"/highlighting/enabled", true};
BoolSetting enableHighlightsSelf = {"/highlighting/nameIsHighlightKeyword",
true};
BoolSetting enableHighlightSound = {"/highlighting/enableSound", true};
BoolSetting enableHighlightTaskbar = {"/highlighting/enableTaskbarFlashing",
true};
BoolSetting customHighlightSound = {"/highlighting/useCustomSound", false};
BoolSetting highlightSoundOnWhisper = {
"/highlighting/highlightSoundOnWhisper", false};
BoolSetting enableSelfHighlight = {
"/highlighting/selfHighlight/nameIsHighlightKeyword", true};
BoolSetting enableSelfHighlightSound = {
"/highlighting/selfHighlight/enableSound", true};
BoolSetting enableSelfHighlightTaskbar = {
"/highlighting/selfHighlight/enableTaskbarFlashing", true};
BoolSetting enableWhisperHighlight = {
"/highlighting/whisperHighlight/whispersHighlighted", true};
BoolSetting enableWhisperHighlightSound = {
"/highlighting/whisperHighlight/enableSound", false};
BoolSetting enableWhisperHighlightTaskbar = {
"/highlighting/whisperHighlight/enableTaskbarFlashing", false};
/// Logging
BoolSetting enableLogging = {"/logging/enabled", false};

View file

@ -149,8 +149,6 @@ HighlightingPage::HighlightingPage()
layout.append(createCheckBox(ALWAYS_PLAY,
getSettings()->highlightAlwaysPlaySound));
layout.append(createCheckBox(("Notification on whisper"),
getSettings()->highlightSoundOnWhisper));
}
// ---- misc