Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikkel Krautz <mikkel@krautz.dk>2014-11-03 01:37:16 +0300
committerMikkel Krautz <mikkel@krautz.dk>2014-11-04 23:53:21 +0300
commitf1dbd922b86ac52755f449f1bebca5c0c4b0937f (patch)
treec8aa94b14f6fe05a35addc000d1498d4b0bcc1b1 /src/mumble/OverlayConfig.cpp
parente5b6dac26dd317ca5115f78ef3ebc84aa7ca0a7b (diff)
Ensure up-to-date built-in overlay blacklist.
This changeset makes the following modifications: 1. The overlay DLL is changed to always consider the built-in blacklist, even if a blacklist is present in the registry. For Mumble users who have been running with the old blacklist behavior, this means that we'll be doing some duplicate checking for blacklist entries, but I don't think this matters in practice. 2. Settings.cpp is changed to not do anything with overlay_blacklist.h. Effectively, this means that qslBlacklist now represents the items the user has added to the blacklist, and not the combination of both an outdated built-in list and the user's own entries. 3. OverlayConfig.cpp is changed to always show all entries from overlay_blacklist.h. Entries from the built-in list are 'disabled', so they can't be interacted with. For more information, see PR #1461
Diffstat (limited to 'src/mumble/OverlayConfig.cpp')
-rw-r--r--src/mumble/OverlayConfig.cpp27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/mumble/OverlayConfig.cpp b/src/mumble/OverlayConfig.cpp
index 155e649e3..ce72fb20f 100644
--- a/src/mumble/OverlayConfig.cpp
+++ b/src/mumble/OverlayConfig.cpp
@@ -45,6 +45,8 @@
#include "MainWindow.h"
#include "GlobalShortcut.h"
+#include "../../overlay/overlay_blacklist.h"
+
static ConfigWidget *OverlayConfigDialogNew(Settings &st) {
return new OverlayConfig(st);
}
@@ -305,7 +307,25 @@ void OverlayConfig::load(const Settings &r) {
qlwiApplication->setData(Qt::UserRole, QVariant(str));
}
+ QStringList builtinBlacklist;
+#ifdef Q_OS_WIN
+ int i = 0;
+ while (overlayBlacklist[i]) {
+ QString str = QLatin1String(overlayBlacklist[i]);
+ builtinBlacklist << str;
+ ++i;
+ }
+#endif
+ foreach (QString str, builtinBlacklist) {
+ OverlayAppInfo oai = applicationInfoForId(str);
+ QListWidgetItem *qlwiApplication = new QListWidgetItem(oai.qiIcon, oai.qsDisplayName, qlwBlacklist);
+ qlwiApplication->setFlags(qlwiApplication->flags() & ~Qt::ItemIsEnabled);
+ }
+
foreach(QString str, s.os.qslBlacklist) {
+ if (builtinBlacklist.contains(str)) {
+ continue;
+ }
OverlayAppInfo oai = applicationInfoForId(str);
QListWidgetItem *qlwiApplication = new QListWidgetItem(oai.qiIcon, oai.qsDisplayName, qlwBlacklist);
qlwiApplication->setData(Qt::UserRole, QVariant(str));
@@ -345,7 +365,12 @@ void OverlayConfig::save() const {
s.os.qslBlacklist.clear();
for (int i=0;i<qlwBlacklist->count();++i) {
QVariant qvUserData = qlwBlacklist->item(i)->data(Qt::UserRole);
- s.os.qslBlacklist << qvUserData.toString();
+ QString str = qvUserData.toString();
+ // Built-in blacklist entries have no user data set.
+ // Skip them.
+ if (!str.isEmpty()) {
+ s.os.qslBlacklist << qvUserData.toString();
+ }
}
s.os.qslWhitelist.clear();