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:
authorRobert Adam <dev@robert-adam.de>2022-09-09 15:01:38 +0300
committerGitHub <noreply@github.com>2022-09-09 15:01:38 +0300
commit7c069ca6868348a36e34ab0f40ae62264fc6214a (patch)
tree45d6d093476511363941f489da9c6bf82b147f79 /src/mumble
parent264eac3b45970e45cba087241ffc2e322ae4eceb (diff)
parent61ff688da0ad92e8696a19e16dfc5423877a73fe (diff)
Merge PR #4636: FEAT(client): Adds shortcut to listen to a channel
This introduces a new global shortcut that can be used to start or stop listening to a configured channel. Fixes #4486
Diffstat (limited to 'src/mumble')
-rw-r--r--src/mumble/CMakeLists.txt1
-rw-r--r--src/mumble/Database.cpp31
-rw-r--r--src/mumble/GlobalShortcut.cpp40
-rw-r--r--src/mumble/GlobalShortcut.h13
-rw-r--r--src/mumble/GlobalShortcutTypes.h49
-rw-r--r--src/mumble/MainWindow.cpp82
-rw-r--r--src/mumble/MainWindow.h3
-rw-r--r--src/mumble/Messages.cpp4
-rw-r--r--src/mumble/Settings.cpp25
-rw-r--r--src/mumble/Settings.h15
-rw-r--r--src/mumble/mumble_ar.ts14
-rw-r--r--src/mumble/mumble_bg.ts14
-rw-r--r--src/mumble/mumble_br.ts14
-rw-r--r--src/mumble/mumble_ca.ts14
-rw-r--r--src/mumble/mumble_cs.ts14
-rw-r--r--src/mumble/mumble_cy.ts14
-rw-r--r--src/mumble/mumble_da.ts14
-rw-r--r--src/mumble/mumble_de.ts14
-rw-r--r--src/mumble/mumble_el.ts14
-rw-r--r--src/mumble/mumble_en.ts14
-rw-r--r--src/mumble/mumble_en_GB.ts14
-rw-r--r--src/mumble/mumble_eo.ts14
-rw-r--r--src/mumble/mumble_es.ts14
-rw-r--r--src/mumble/mumble_et.ts14
-rw-r--r--src/mumble/mumble_eu.ts14
-rw-r--r--src/mumble/mumble_fa_IR.ts14
-rw-r--r--src/mumble/mumble_fi.ts14
-rw-r--r--src/mumble/mumble_fr.ts14
-rw-r--r--src/mumble/mumble_gl.ts14
-rw-r--r--src/mumble/mumble_he.ts14
-rw-r--r--src/mumble/mumble_hu.ts14
-rw-r--r--src/mumble/mumble_it.ts14
-rw-r--r--src/mumble/mumble_ja.ts14
-rw-r--r--src/mumble/mumble_ko.ts14
-rw-r--r--src/mumble/mumble_lt.ts14
-rw-r--r--src/mumble/mumble_nl.ts14
-rw-r--r--src/mumble/mumble_no.ts14
-rw-r--r--src/mumble/mumble_oc.ts14
-rw-r--r--src/mumble/mumble_pl.ts14
-rw-r--r--src/mumble/mumble_pt_BR.ts14
-rw-r--r--src/mumble/mumble_pt_PT.ts14
-rw-r--r--src/mumble/mumble_ro.ts14
-rw-r--r--src/mumble/mumble_ru.ts14
-rw-r--r--src/mumble/mumble_si.ts14
-rw-r--r--src/mumble/mumble_sk.ts14
-rw-r--r--src/mumble/mumble_sq.ts14
-rw-r--r--src/mumble/mumble_sv.ts14
-rw-r--r--src/mumble/mumble_te.ts14
-rw-r--r--src/mumble/mumble_th.ts14
-rw-r--r--src/mumble/mumble_tr.ts14
-rw-r--r--src/mumble/mumble_uk.ts14
-rw-r--r--src/mumble/mumble_zh_CN.ts14
-rw-r--r--src/mumble/mumble_zh_HK.ts14
-rw-r--r--src/mumble/mumble_zh_TW.ts14
54 files changed, 840 insertions, 39 deletions
diff --git a/src/mumble/CMakeLists.txt b/src/mumble/CMakeLists.txt
index 80681555f..2189f9525 100644
--- a/src/mumble/CMakeLists.txt
+++ b/src/mumble/CMakeLists.txt
@@ -157,6 +157,7 @@ set(MUMBLE_SOURCES
"GlobalShortcutButtons.h"
"GlobalShortcutButtons.ui"
"GlobalShortcutTarget.ui"
+ "GlobalShortcutTypes.h"
"JSONSerialization.cpp"
"JSONSerialization.h"
"LCD.cpp"
diff --git a/src/mumble/Database.cpp b/src/mumble/Database.cpp
index 63677dd1a..d4aeb30fe 100644
--- a/src/mumble/Database.cpp
+++ b/src/mumble/Database.cpp
@@ -10,6 +10,7 @@
#include "Utils.h"
#include "Version.h"
#include "Global.h"
+#include "GlobalShortcutTypes.h"
#include <QSettings>
#include <QtCore/QStandardPaths>
@@ -163,7 +164,9 @@ Database::Database(const QString &dbname) {
execQueryAndLogFailure(
query, QLatin1String("CREATE TABLE IF NOT EXISTS `shortcut` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `digest` "
- "BLOB, `shortcut` BLOB, `target` BLOB, `suppress` INTEGER)"));
+ "BLOB, `type` INTEGER, `shortcut` BLOB, `target` BLOB, `suppress` INTEGER)"));
+ query.exec(QLatin1String(
+ "ALTER TABLE `shortcut` ADD COLUMN `type` INTEGER")); // Upgrade path, failing this query is not noteworthy
execQueryAndLogFailure(query,
QLatin1String("CREATE INDEX IF NOT EXISTS `shortcut_host_port` ON `shortcut`(`digest`)"));
@@ -546,13 +549,25 @@ QList< Shortcut > Database::getShortcuts(const QByteArray &digest) {
QList< Shortcut > ql;
QSqlQuery query(db);
- query.prepare(QLatin1String("SELECT `shortcut`,`target`,`suppress` FROM `shortcut` WHERE `digest` = ?"));
+ query.prepare(QLatin1String("SELECT `type`, `shortcut`,`target`,`suppress` FROM `shortcut` WHERE `digest` = ?"));
query.addBindValue(digest);
execQueryAndLogFailure(query);
while (query.next()) {
Shortcut sc;
- QByteArray a = query.value(0).toByteArray();
+ QVariant type = query.value(0);
+
+ if (type.isNull()) {
+ // The shortcut's type was originally not explicitly stored, because the assumption was that the only
+ // server-specific shortcuts (which are the ones we're dealing with here) are those configuring whispers or
+ // shouts. Thus, if the field is not set, we assume that we're loading a shortcut from that era, which means
+ // that we'll assume it to be a whisper/shout shortcut as well.
+ sc.iIndex = GlobalShortcutType::Whisper_Shout;
+ } else {
+ sc.iIndex = type.toInt();
+ }
+
+ QByteArray a = query.value(1).toByteArray();
{
QDataStream s(&a, QIODevice::ReadOnly);
@@ -560,7 +575,7 @@ QList< Shortcut > Database::getShortcuts(const QByteArray &digest) {
s >> sc.qlButtons;
}
- a = query.value(1).toByteArray();
+ a = query.value(2).toByteArray();
{
QDataStream s(&a, QIODevice::ReadOnly);
@@ -568,7 +583,7 @@ QList< Shortcut > Database::getShortcuts(const QByteArray &digest) {
s >> sc.qvData;
}
- sc.bSuppress = query.value(2).toBool();
+ sc.bSuppress = query.value(3).toBool();
ql << sc;
}
return ql;
@@ -590,12 +605,14 @@ void Database::setShortcuts(const QByteArray &digest, const QList< Shortcut > &s
query.addBindValue(digest);
execQueryAndLogFailure(query);
- query.prepare(
- QLatin1String("INSERT INTO `shortcut` (`digest`, `shortcut`, `target`, `suppress`) VALUES (?,?,?,?)"));
+ query.prepare(QLatin1String(
+ "INSERT INTO `shortcut` (`digest`, `type`, `shortcut`, `target`, `suppress`) VALUES (?,?,?,?,?)"));
for (const Shortcut &sc : shortcuts) {
if (sc.isServerSpecific()) {
query.addBindValue(digest);
+ query.addBindValue(sc.iIndex);
+
QByteArray a;
{
QDataStream s(&a, QIODevice::WriteOnly);
diff --git a/src/mumble/GlobalShortcut.cpp b/src/mumble/GlobalShortcut.cpp
index b0998f20c..e6f849f18 100644
--- a/src/mumble/GlobalShortcut.cpp
+++ b/src/mumble/GlobalShortcut.cpp
@@ -26,6 +26,8 @@
# include <QtCore/QOperatingSystemVersion>
#endif
+#include <cassert>
+
const QString GlobalShortcutConfig::name = QLatin1String("GlobalShortcutConfig");
/**
@@ -104,6 +106,31 @@ int ShortcutToggleWidget::index() const {
return itemData(currentIndex()).toInt();
}
+ChannelSelectWidget::ChannelSelectWidget(QWidget *parent) : MUComboBox(parent) {
+ QReadLocker lock(&Channel::c_qrwlChannels);
+
+ int index = 0;
+
+ for (const Channel *currentChannel : Channel::c_qhChannels) {
+ assert(currentChannel);
+
+ insertItem(index, currentChannel->qsName);
+ setItemData(index, currentChannel->iId);
+
+ index++;
+ }
+
+ model()->sort(0);
+}
+
+void ChannelSelectWidget::setCurrentChannel(const ChannelTarget &target) {
+ setCurrentIndex(findData(target.channelID));
+}
+
+ChannelTarget ChannelSelectWidget::currentChannel() const {
+ return itemData(currentIndex()).toInt();
+}
+
void iterateChannelChildren(QTreeWidgetItem *root, Channel *chan, QMap< int, QTreeWidgetItem * > &map) {
foreach (Channel *c, chan->qlChannels) {
QTreeWidgetItem *sub = new QTreeWidgetItem(root, QStringList(c->qsName));
@@ -432,6 +459,8 @@ ShortcutDelegate::ShortcutDelegate(QObject *p) : QStyledItemDelegate(p) {
factory->registerEditor(QVariant::Int, new QStandardItemEditorCreator< ShortcutToggleWidget >());
factory->registerEditor(static_cast< QVariant::Type >(QVariant::fromValue(ShortcutTarget()).userType()),
new QStandardItemEditorCreator< ShortcutTargetWidget >());
+ factory->registerEditor(static_cast< QVariant::Type >(QVariant::fromValue(ChannelTarget()).userType()),
+ new QStandardItemEditorCreator< ChannelSelectWidget >());
factory->registerEditor(QVariant::String, new QStandardItemEditorCreator< QLineEdit >());
factory->registerEditor(QVariant::Invalid, new QStandardItemEditorCreator< QWidget >());
setItemEditorFactory(factory);
@@ -448,6 +477,15 @@ ShortcutDelegate::~ShortcutDelegate() {
QString ShortcutDelegate::displayText(const QVariant &item, const QLocale &loc) const {
if (item.userType() == QVariant::fromValue(ShortcutTarget()).userType()) {
return ShortcutTargetWidget::targetString(item.value< ShortcutTarget >());
+ } else if (item.userType() == QVariant::fromValue(ChannelTarget()).userType()) {
+ ChannelTarget target = item.value< ChannelTarget >();
+
+ const Channel *c = Channel::get(target.channelID);
+ if (c) {
+ return c->qsName;
+ } else {
+ return tr("< Unknown Channel >");
+ }
}
switch (item.type()) {
@@ -665,7 +703,7 @@ void GlobalShortcutConfig::on_qtwShortcuts_itemChanged(QTreeWidgetItem *item, in
sc.bSuppress = item->checkState(3) == Qt::Checked;
const ::GlobalShortcut *gs = GlobalShortcutEngine::engine->qmShortcuts.value(sc.iIndex);
- if (gs && sc.qvData.type() != gs->qvDefault.type()) {
+ if (gs && sc.qvData.userType() != gs->qvDefault.userType()) {
item->setData(1, Qt::DisplayRole, gs->qvDefault);
}
}
diff --git a/src/mumble/GlobalShortcut.h b/src/mumble/GlobalShortcut.h
index aad5e89f0..9ba689719 100644
--- a/src/mumble/GlobalShortcut.h
+++ b/src/mumble/GlobalShortcut.h
@@ -11,6 +11,7 @@
#include <QtWidgets/QStyledItemDelegate>
#include <QtWidgets/QToolButton>
+#include "Channel.h"
#include "ConfigDialog.h"
#include "MUComboBox.h"
#include "Timer.h"
@@ -72,6 +73,17 @@ public:
void setIndex(int);
};
+class ChannelSelectWidget : public MUComboBox {
+ Q_OBJECT
+ Q_DISABLE_COPY(ChannelSelectWidget)
+ Q_PROPERTY(ChannelTarget currentChannel READ currentChannel WRITE setCurrentChannel USER true)
+public:
+ ChannelSelectWidget(QWidget *parent = nullptr);
+
+ ChannelTarget currentChannel() const;
+ void setCurrentChannel(const ChannelTarget &);
+};
+
/**
* Dialog which is used to select the targets of a targeted shortcut like Whisper.
*/
@@ -136,6 +148,7 @@ public slots:
* @see ShortcutKeyWidget
* @see ShortcutActionWidget
* @see ShortcutTargetWidget
+ * @see ChannelSelectWidget
*/
class ShortcutDelegate : public QStyledItemDelegate {
Q_OBJECT
diff --git a/src/mumble/GlobalShortcutTypes.h b/src/mumble/GlobalShortcutTypes.h
new file mode 100644
index 000000000..6fbf49eb0
--- /dev/null
+++ b/src/mumble/GlobalShortcutTypes.h
@@ -0,0 +1,49 @@
+// Copyright 2022 The Mumble Developers. All rights reserved.
+// Use of this source code is governed by a BSD-style license
+// that can be found in the LICENSE file at the root of the
+// Mumble source tree or at <https://www.mumble.info/LICENSE>.
+
+#ifndef MUMBLE_MUMBLE_GLOBALSHORTCUTTYPES_H_
+#define MUMBLE_MUMBLE_GLOBALSHORTCUTTYPES_H_
+
+/**
+ * The entries in this namespace/enum represent the shortcut types (often referred to as a shortcut's "index")
+ * of the existing global shortcuts.
+ *
+ * IMPORTANT: ONLY EVER APPEND TO THE END OF THE ENUM!
+ */
+namespace GlobalShortcutType {
+enum Type {
+ PushToTalk = 1,
+ ResetAudio,
+ MuteSelf,
+ DeafenSelf,
+ UnlinkPlugin,
+ PushToMute,
+ JoinChannel,
+ ToggleOverlay,
+ ToggleMinimalView,
+ VolumeUp,
+ VolumeDown,
+ Whisper_Shout,
+ LinkChannel,
+ CycleTransmitMode,
+ ToggleMainWindowVisibility,
+ UsePushToTalk,
+ UseContinous,
+ UseVAD,
+ SendTextMessage,
+ SendTextMessageClipboard,
+ ToggleTalkingUI,
+ ToggleSearch,
+ ListenToChannel,
+};
+
+// A few assertions meant to catch, if anyone inserts a new value in-between instead of appending
+// to the end of the enum
+static_assert(PushToTalk == 1, "You may only append to the end of the enum!");
+static_assert(ToggleMinimalView == 9, "You may only append to the end of the enum!");
+static_assert(ToggleSearch == 22, "You may only append to the end of the enum!");
+} // namespace GlobalShortcutType
+
+#endif // MUMBLE_MUMBLE_GLOBALSHORTCUTTYPES_H_
diff --git a/src/mumble/MainWindow.cpp b/src/mumble/MainWindow.cpp
index 78a39e136..1774c74c2 100644
--- a/src/mumble/MainWindow.cpp
+++ b/src/mumble/MainWindow.cpp
@@ -24,6 +24,7 @@
#include "NetworkConfig.h"
#include "OpusCodec.h"
#include "GlobalShortcut.h"
+#include "GlobalShortcutTypes.h"
#ifdef USE_OVERLAY
# include "OverlayClient.h"
#endif
@@ -202,8 +203,7 @@ MainWindow::MainWindow(QWidget *p)
}
void MainWindow::createActions() {
- int idx = 1;
- gsPushTalk = new GlobalShortcut(this, idx++, tr("Push-to-Talk", "Global Shortcut"));
+ gsPushTalk = new GlobalShortcut(this, GlobalShortcutType::PushToTalk, tr("Push-to-Talk", "Global Shortcut"));
gsPushTalk->setObjectName(QLatin1String("PushToTalk"));
gsPushTalk->qsToolTip = tr("Push and hold this button to send voice.", "Global Shortcut");
gsPushTalk->qsWhatsThis = tr(
@@ -211,35 +211,43 @@ void MainWindow::createActions() {
"Global Shortcut");
- gsResetAudio = new GlobalShortcut(this, idx++, tr("Reset Audio Processor", "Global Shortcut"));
+ gsResetAudio =
+ new GlobalShortcut(this, GlobalShortcutType::ResetAudio, tr("Reset Audio Processor", "Global Shortcut"));
gsResetAudio->setObjectName(QLatin1String("ResetAudio"));
- gsMuteSelf = new GlobalShortcut(this, idx++, tr("Mute Self", "Global Shortcut"), 0);
+ gsMuteSelf = new GlobalShortcut(this, GlobalShortcutType::MuteSelf, tr("Mute Self", "Global Shortcut"), 0);
gsMuteSelf->setObjectName(QLatin1String("gsMuteSelf"));
gsMuteSelf->qsToolTip = tr("Set self-mute status.", "Global Shortcut");
gsMuteSelf->qsWhatsThis =
tr("This will set or toggle your muted status. If you turn this off, you will also disable self-deafen.",
"Global Shortcut");
- gsDeafSelf = new GlobalShortcut(this, idx++, tr("Deafen Self", "Global Shortcut"), 0);
+ gsDeafSelf = new GlobalShortcut(this, GlobalShortcutType::DeafenSelf, tr("Deafen Self", "Global Shortcut"), 0);
gsDeafSelf->setObjectName(QLatin1String("gsDeafSelf"));
gsDeafSelf->qsToolTip = tr("Set self-deafen status.", "Global Shortcut");
gsDeafSelf->qsWhatsThis =
tr("This will set or toggle your deafened status. If you turn this on, you will also enable self-mute.",
"Global Shortcut");
- gsUnlink = new GlobalShortcut(this, idx++, tr("Unlink Plugin", "Global Shortcut"));
+ gsUnlink = new GlobalShortcut(this, GlobalShortcutType::UnlinkPlugin, tr("Unlink Plugin", "Global Shortcut"));
gsUnlink->setObjectName(QLatin1String("UnlinkPlugin"));
- gsPushMute = new GlobalShortcut(this, idx++, tr("Push-to-Mute", "Global Shortcut"));
+ gsPushMute = new GlobalShortcut(this, GlobalShortcutType::PushToMute, tr("Push-to-Mute", "Global Shortcut"));
gsPushMute->setObjectName(QLatin1String("PushToMute"));
- gsJoinChannel = new GlobalShortcut(this, idx++, tr("Join Channel", "Global Shortcut"));
+ gsJoinChannel = new GlobalShortcut(this, GlobalShortcutType::JoinChannel, tr("Join Channel", "Global Shortcut"));
gsJoinChannel->setObjectName(QLatin1String("MetaChannel"));
gsJoinChannel->qsToolTip = tr("Use in conjunction with Whisper to.", "Global Shortcut");
+ gsListenChannel =
+ new GlobalShortcut(this, GlobalShortcutType::ListenToChannel, tr("Listen to Channel", "Global Shortcut"),
+ QVariant::fromValue(ChannelTarget()));
+ gsListenChannel->setObjectName(QLatin1String("gsListenChannel"));
+ gsListenChannel->qsToolTip = tr("Toggles listening to the given channel.", "Global Shortcut");
+
#ifdef USE_OVERLAY
- gsToggleOverlay = new GlobalShortcut(this, idx++, tr("Toggle Overlay", "Global Shortcut"));
+ gsToggleOverlay =
+ new GlobalShortcut(this, GlobalShortcutType::ToggleOverlay, tr("Toggle Overlay", "Global Shortcut"));
gsToggleOverlay->setObjectName(QLatin1String("ToggleOverlay"));
gsToggleOverlay->qsToolTip = tr("Toggle state of in-game overlay.", "Global Shortcut");
gsToggleOverlay->qsWhatsThis = tr("This will switch the states of the in-game overlay.", "Global Shortcut");
@@ -247,57 +255,66 @@ void MainWindow::createActions() {
connect(gsToggleOverlay, SIGNAL(down(QVariant)), Global::get().o, SLOT(toggleShow()));
#endif
- gsMinimal = new GlobalShortcut(this, idx++, tr("Toggle Minimal", "Global Shortcut"));
+ gsMinimal =
+ new GlobalShortcut(this, GlobalShortcutType::ToggleMinimalView, tr("Toggle Minimal", "Global Shortcut"));
gsMinimal->setObjectName(QLatin1String("ToggleMinimal"));
- gsVolumeUp = new GlobalShortcut(this, idx++, tr("Volume Up (+10%)", "Global Shortcut"));
+ gsVolumeUp = new GlobalShortcut(this, GlobalShortcutType::VolumeUp, tr("Volume Up (+10%)", "Global Shortcut"));
gsVolumeUp->setObjectName(QLatin1String("VolumeUp"));
- gsVolumeDown = new GlobalShortcut(this, idx++, tr("Volume Down (-10%)", "Global Shortcut"));
+ gsVolumeDown =
+ new GlobalShortcut(this, GlobalShortcutType::VolumeDown, tr("Volume Down (-10%)", "Global Shortcut"));
gsVolumeDown->setObjectName(QLatin1String("VolumeDown"));
qstiIcon = new QSystemTrayIcon(qiIcon, this);
qstiIcon->setToolTip(tr("Mumble -- %1").arg(Version::getRelease()));
qstiIcon->setObjectName(QLatin1String("Icon"));
- gsWhisper = new GlobalShortcut(this, idx++, tr("Whisper/Shout"), QVariant::fromValue(ShortcutTarget()));
+ gsWhisper = new GlobalShortcut(this, GlobalShortcutType::Whisper_Shout, tr("Whisper/Shout"),
+ QVariant::fromValue(ShortcutTarget()));
gsWhisper->setObjectName(QLatin1String("gsWhisper"));
- gsLinkChannel = new GlobalShortcut(this, idx++, tr("Link Channel", "Global Shortcut"));
+ gsLinkChannel = new GlobalShortcut(this, GlobalShortcutType::LinkChannel, tr("Link Channel", "Global Shortcut"));
gsLinkChannel->setObjectName(QLatin1String("MetaLink"));
gsLinkChannel->qsToolTip = tr("Use in conjunction with Whisper to.", "Global Shortcut");
- gsCycleTransmitMode = new GlobalShortcut(this, idx++, tr("Cycle Transmit Mode", "Global Shortcut"));
+ gsCycleTransmitMode =
+ new GlobalShortcut(this, GlobalShortcutType::CycleTransmitMode, tr("Cycle Transmit Mode", "Global Shortcut"));
gsCycleTransmitMode->setObjectName(QLatin1String("gsCycleTransmitMode"));
- gsToggleMainWindowVisibility = new GlobalShortcut(this, idx++, tr("Hide/show main window", "Global Shortcut"));
+ gsToggleMainWindowVisibility = new GlobalShortcut(this, GlobalShortcutType::ToggleMainWindowVisibility,
+ tr("Hide/show main window", "Global Shortcut"));
gsToggleMainWindowVisibility->setObjectName(QLatin1String("gsToggleMainWindowVisibility"));
- gsTransmitModePushToTalk =
- new GlobalShortcut(this, idx++, tr("Set Transmit Mode to Push-To-Talk", "Global Shortcut"));
+ gsTransmitModePushToTalk = new GlobalShortcut(this, GlobalShortcutType::UsePushToTalk,
+ tr("Set Transmit Mode to Push-To-Talk", "Global Shortcut"));
gsTransmitModePushToTalk->setObjectName(QLatin1String("gsTransmitModePushToTalk"));
- gsTransmitModeContinuous =
- new GlobalShortcut(this, idx++, tr("Set Transmit Mode to Continuous", "Global Shortcut"));
+ gsTransmitModeContinuous = new GlobalShortcut(this, GlobalShortcutType::UseContinous,
+ tr("Set Transmit Mode to Continuous", "Global Shortcut"));
gsTransmitModeContinuous->setObjectName(QLatin1String("gsTransmitModeContinuous"));
- gsTransmitModeVAD = new GlobalShortcut(this, idx++, tr("Set Transmit Mode to VAD", "Global Shortcut"));
+ gsTransmitModeVAD =
+ new GlobalShortcut(this, GlobalShortcutType::UseVAD, tr("Set Transmit Mode to VAD", "Global Shortcut"));
gsTransmitModeVAD->setObjectName(QLatin1String("gsTransmitModeVAD"));
- gsSendTextMessage =
- new GlobalShortcut(this, idx++, tr("Send Text Message", "Global Shortcut"), QVariant(QString()));
+ gsSendTextMessage = new GlobalShortcut(this, GlobalShortcutType::SendTextMessage,
+ tr("Send Text Message", "Global Shortcut"), QVariant(QString()));
gsSendTextMessage->setObjectName(QLatin1String("gsSendTextMessage"));
- gsSendClipboardTextMessage = new GlobalShortcut(this, idx++, tr("Send Clipboard Text Message", "Global Shortcut"));
+ gsSendClipboardTextMessage = new GlobalShortcut(this, GlobalShortcutType::SendTextMessageClipboard,
+ tr("Send Clipboard Text Message", "Global Shortcut"));
gsSendClipboardTextMessage->setObjectName(QLatin1String("gsSendClipboardTextMessage"));
gsSendClipboardTextMessage->qsWhatsThis =
tr("This will send your Clipboard content to the channel you are currently in.", "Global Shortcut");
- gsToggleTalkingUI = new GlobalShortcut(this, idx++, tr("Toggle TalkingUI", "Global shortcut"));
+ gsToggleTalkingUI =
+ new GlobalShortcut(this, GlobalShortcutType::ToggleTalkingUI, tr("Toggle TalkingUI", "Global shortcut"));
gsToggleTalkingUI->setObjectName(QLatin1String("gsToggleTalkingUI"));
gsToggleTalkingUI->qsWhatsThis = tr("Toggles the visibility of the TalkingUI.", "Global Shortcut");
- gsToggleSearch = new GlobalShortcut(this, idx++, tr("Toggle search dialog", "Global Shortcut"));
+ gsToggleSearch =
+ new GlobalShortcut(this, GlobalShortcutType::ToggleSearch, tr("Toggle search dialog", "Global Shortcut"));
gsToggleSearch->setObjectName(QLatin1String("gsToggleSearch"));
gsToggleSearch->qsWhatsThis =
tr("This will open or close the search dialog depending on whether it is currently opened already");
@@ -3090,6 +3107,19 @@ void MainWindow::on_gsToggleMainWindowVisibility_triggered(bool down, QVariant)
}
}
+void MainWindow::on_gsListenChannel_triggered(bool down, QVariant scdata) {
+ ChannelTarget target = scdata.value< ChannelTarget >();
+ const Channel *c = Channel::get(target.channelID);
+
+ if (down && c) {
+ if (!Global::get().channelListenerManager->isListening(Global::get().uiSession, c->iId)) {
+ Global::get().sh->startListeningToChannel(c->iId);
+ } else {
+ Global::get().sh->stopListeningToChannel(c->iId);
+ }
+ }
+}
+
void MainWindow::on_gsTransmitModePushToTalk_triggered(bool down, QVariant) {
if (down) {
setTransmissionMode(Settings::PushToTalk);
diff --git a/src/mumble/MainWindow.h b/src/mumble/MainWindow.h
index fde90c5ef..880b33239 100644
--- a/src/mumble/MainWindow.h
+++ b/src/mumble/MainWindow.h
@@ -93,7 +93,7 @@ public:
#ifdef USE_OVERLAY
GlobalShortcut *gsToggleOverlay;
#endif
- GlobalShortcut *gsMinimal, *gsVolumeUp, *gsVolumeDown, *gsWhisper, *gsLinkChannel;
+ GlobalShortcut *gsMinimal, *gsVolumeUp, *gsVolumeDown, *gsWhisper, *gsLinkChannel, *gsListenChannel;
GlobalShortcut *gsCycleTransmitMode, *gsToggleMainWindowVisibility, *gsTransmitModePushToTalk,
*gsTransmitModeContinuous, *gsTransmitModeVAD;
GlobalShortcut *gsSendTextMessage, *gsSendClipboardTextMessage;
@@ -296,6 +296,7 @@ public slots:
void on_gsWhisper_triggered(bool, QVariant);
void addTarget(ShortcutTarget *);
void removeTarget(ShortcutTarget *);
+ void on_gsListenChannel_triggered(bool, QVariant);
void on_gsCycleTransmitMode_triggered(bool, QVariant);
void on_gsToggleMainWindowVisibility_triggered(bool, QVariant);
void on_gsTransmitModePushToTalk_triggered(bool, QVariant);
diff --git a/src/mumble/Messages.cpp b/src/mumble/Messages.cpp
index 631c11896..6e581ae9e 100644
--- a/src/mumble/Messages.cpp
+++ b/src/mumble/Messages.cpp
@@ -160,10 +160,6 @@ void MainWindow::msgServerSync(const MumbleProto::ServerSync &msg) {
QList< Shortcut > sc = Global::get().db->getShortcuts(Global::get().sh->qbaDigest);
if (!sc.isEmpty()) {
- for (int i = 0; i < sc.count(); ++i) {
- Shortcut &s = sc[i];
- s.iIndex = Global::get().mw->gsWhisper->idx;
- }
Global::get().s.qlShortcuts << sc;
GlobalShortcutEngine::engine->bNeedRemap = true;
}
diff --git a/src/mumble/Settings.cpp b/src/mumble/Settings.cpp
index 09b5aff75..15e7e7a90 100644
--- a/src/mumble/Settings.cpp
+++ b/src/mumble/Settings.cpp
@@ -59,6 +59,9 @@ bool Shortcut::isServerSpecific() const {
const ShortcutTarget &sc = qvariant_cast< ShortcutTarget >(qvData);
return sc.isServerSpecific();
}
+ if (qvData.canConvert< ChannelTarget >()) {
+ return true;
+ }
return false;
}
@@ -378,6 +381,26 @@ QDataStream &operator>>(QDataStream &qds, ShortcutTarget &st) {
}
}
+QDataStream &operator<<(QDataStream &qds, const ChannelTarget &target) {
+ return qds << target.channelID;
+}
+
+QDataStream &operator>>(QDataStream &qds, ChannelTarget &target) {
+ return qds >> target.channelID;
+}
+
+bool operator==(const ChannelTarget &lhs, const ChannelTarget &rhs) {
+ return lhs.channelID == rhs.channelID;
+}
+
+bool operator<(const ChannelTarget &lhs, const ChannelTarget &rhs) {
+ return lhs.channelID < rhs.channelID;
+}
+
+quint32 qHash(const ChannelTarget &target) {
+ return qHash(target.channelID);
+}
+
const QString Settings::cqsDefaultPushClickOn = QLatin1String(":/on.ogg");
const QString Settings::cqsDefaultPushClickOff = QLatin1String(":/off.ogg");
@@ -492,6 +515,8 @@ Settings::Settings() {
#endif
qRegisterMetaType< ShortcutTarget >("ShortcutTarget");
qRegisterMetaTypeStreamOperators< ShortcutTarget >("ShortcutTarget");
+ qRegisterMetaType< ChannelTarget >("ChannelTarget");
+ qRegisterMetaTypeStreamOperators< ChannelTarget >("ChannelTarget");
qRegisterMetaType< QVariant >("QVariant");
qRegisterMetaType< PluginSetting >("PluginSetting");
qRegisterMetaTypeStreamOperators< PluginSetting >("PluginSetting");
diff --git a/src/mumble/Settings.h b/src/mumble/Settings.h
index 6d37b77fb..6d5a4ee4b 100644
--- a/src/mumble/Settings.h
+++ b/src/mumble/Settings.h
@@ -23,6 +23,7 @@
#include <QVariant>
#include <Qt>
+#include "Channel.h"
#include "EchoCancelOption.h"
#include "SSL.h"
#include "SearchDialog.h"
@@ -52,6 +53,20 @@ struct Shortcut {
bool operator==(const Shortcut &) const;
};
+struct ChannelTarget {
+ int channelID = Channel::ROOT_ID;
+
+ ChannelTarget() = default;
+ ChannelTarget(int id) : channelID(id) {}
+
+ friend bool operator==(const ChannelTarget &lhs, const ChannelTarget &rhs);
+ friend bool operator<(const ChannelTarget &lhs, const ChannelTarget &rhs);
+};
+
+Q_DECLARE_METATYPE(ChannelTarget)
+
+quint32 qHash(const ChannelTarget &);
+
struct ShortcutTarget {
bool bCurrentSelection = false;
bool bUsers = true;
diff --git a/src/mumble/mumble_ar.ts b/src/mumble/mumble_ar.ts
index 40d884c9e..057789707 100644
--- a/src/mumble/mumble_ar.ts
+++ b/src/mumble/mumble_ar.ts
@@ -6365,6 +6365,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8068,6 +8078,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_bg.ts b/src/mumble/mumble_bg.ts
index 868d23678..5f8a184bb 100644
--- a/src/mumble/mumble_bg.ts
+++ b/src/mumble/mumble_bg.ts
@@ -6362,6 +6362,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8065,6 +8075,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_br.ts b/src/mumble/mumble_br.ts
index a63cf4730..6707d2ee0 100644
--- a/src/mumble/mumble_br.ts
+++ b/src/mumble/mumble_br.ts
@@ -6361,6 +6361,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8064,6 +8074,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_ca.ts b/src/mumble/mumble_ca.ts
index e88e0c41e..681798b1b 100644
--- a/src/mumble/mumble_ca.ts
+++ b/src/mumble/mumble_ca.ts
@@ -6387,6 +6387,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8090,6 +8100,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_cs.ts b/src/mumble/mumble_cs.ts
index 00ac81f1b..8e5abf9a6 100644
--- a/src/mumble/mumble_cs.ts
+++ b/src/mumble/mumble_cs.ts
@@ -6421,6 +6421,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">Tato verze Mumble neumí pracovat s URL pro verzi Mumble %1</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8128,6 +8138,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_cy.ts b/src/mumble/mumble_cy.ts
index 38a584fb5..8ce16c1f1 100644
--- a/src/mumble/mumble_cy.ts
+++ b/src/mumble/mumble_cy.ts
@@ -6365,6 +6365,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8068,6 +8078,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_da.ts b/src/mumble/mumble_da.ts
index e4895bad3..8e3188d6d 100644
--- a/src/mumble/mumble_da.ts
+++ b/src/mumble/mumble_da.ts
@@ -6417,6 +6417,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">Denne version af Mumble kan ikke håndtere URLs for Mumble version %1</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8124,6 +8134,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_de.ts b/src/mumble/mumble_de.ts
index 59e82b49e..6441a110d 100644
--- a/src/mumble/mumble_de.ts
+++ b/src/mumble/mumble_de.ts
@@ -6508,6 +6508,16 @@ Gültige Optionen sind:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">Diese Version von Mumble kann keine URLs von Mumble Version %1 verarbeiten</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8219,6 +8229,10 @@ Sie können sie jedoch erneut registrieren.</translation>
<source>Press to show button combination</source>
<translation>Drücken um die Tastenkombination anzuzeigen</translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_el.ts b/src/mumble/mumble_el.ts
index 1af15057c..4c10bd06e 100644
--- a/src/mumble/mumble_el.ts
+++ b/src/mumble/mumble_el.ts
@@ -6455,6 +6455,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">Αυτή η έκδοση του Mumble δεν μπορεί να χειριστεί διευθύνσεις URL για την έκδοση Mumble %1</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8166,6 +8176,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation>Πατήστε για εμφάνιση του συνδυασμού κουμπιών</translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_en.ts b/src/mumble/mumble_en.ts
index 43250151d..2a18e5e8b 100644
--- a/src/mumble/mumble_en.ts
+++ b/src/mumble/mumble_en.ts
@@ -6360,6 +6360,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8063,6 +8073,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_en_GB.ts b/src/mumble/mumble_en_GB.ts
index 1340c70ea..c07142abc 100644
--- a/src/mumble/mumble_en_GB.ts
+++ b/src/mumble/mumble_en_GB.ts
@@ -6397,6 +6397,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8100,6 +8110,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_eo.ts b/src/mumble/mumble_eo.ts
index 461e8c155..0f4df4cb1 100644
--- a/src/mumble/mumble_eo.ts
+++ b/src/mumble/mumble_eo.ts
@@ -6373,6 +6373,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8076,6 +8086,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_es.ts b/src/mumble/mumble_es.ts
index 8db576087..2366c216e 100644
--- a/src/mumble/mumble_es.ts
+++ b/src/mumble/mumble_es.ts
@@ -6433,6 +6433,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">Esta versión de Mumble no puede manejar URLs para la versión %1 de Mumble</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8144,6 +8154,10 @@ Puedes registrarlos otra vez.</translation>
<source>Press to show button combination</source>
<translation>Presione para mostrar la combinación de botones</translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_et.ts b/src/mumble/mumble_et.ts
index 679b93139..a7cc3c0bb 100644
--- a/src/mumble/mumble_et.ts
+++ b/src/mumble/mumble_et.ts
@@ -6362,6 +6362,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8065,6 +8075,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_eu.ts b/src/mumble/mumble_eu.ts
index 0ebd47ad8..9a1b25b4f 100644
--- a/src/mumble/mumble_eu.ts
+++ b/src/mumble/mumble_eu.ts
@@ -6382,6 +6382,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8085,6 +8095,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_fa_IR.ts b/src/mumble/mumble_fa_IR.ts
index 3085d5a61..05a6a3b55 100644
--- a/src/mumble/mumble_fa_IR.ts
+++ b/src/mumble/mumble_fa_IR.ts
@@ -6360,6 +6360,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8063,6 +8073,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_fi.ts b/src/mumble/mumble_fi.ts
index 27f0a0b3b..62ddebeed 100644
--- a/src/mumble/mumble_fi.ts
+++ b/src/mumble/mumble_fi.ts
@@ -6454,6 +6454,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">Mumblen tämä versio ei pysty käsittelemään URL-osoitteita Mumblen versiosta %1</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8165,6 +8175,10 @@ Voit rekisteröidä ne uudelleen.</translation>
<source>Press to show button combination</source>
<translation>Paina näyttääksesi näppäinyhdistelmän</translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_fr.ts b/src/mumble/mumble_fr.ts
index c96b62ef1..ad9a08fae 100644
--- a/src/mumble/mumble_fr.ts
+++ b/src/mumble/mumble_fr.ts
@@ -6516,6 +6516,16 @@ Les options valides sont&#xa0;:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">Cette version de Mumble ne peut pas manipuler les URLs pour Mumble version %1</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8227,6 +8237,10 @@ Vous pouvez les enregistrer à nouveau.</translation>
<source>Press to show button combination</source>
<translation>Appuyer pour montrer la combinaison de touches</translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_gl.ts b/src/mumble/mumble_gl.ts
index 914493b88..a6f614803 100644
--- a/src/mumble/mumble_gl.ts
+++ b/src/mumble/mumble_gl.ts
@@ -6363,6 +6363,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8066,6 +8076,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_he.ts b/src/mumble/mumble_he.ts
index a8d1037b2..43d6294dc 100644
--- a/src/mumble/mumble_he.ts
+++ b/src/mumble/mumble_he.ts
@@ -6413,6 +6413,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">גירסא זו של Mumble לא יכולה לטפל בכתובות עבור Mumble גירסא %1</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8120,6 +8130,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_hu.ts b/src/mumble/mumble_hu.ts
index 85d376859..0e524c4ac 100644
--- a/src/mumble/mumble_hu.ts
+++ b/src/mumble/mumble_hu.ts
@@ -6413,6 +6413,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">A Mumble jelen verziója nem képes kezelni a %1 verziójú Mumble címeket</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8117,6 +8127,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_it.ts b/src/mumble/mumble_it.ts
index d05267b31..47c8151b2 100644
--- a/src/mumble/mumble_it.ts
+++ b/src/mumble/mumble_it.ts
@@ -6455,6 +6455,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">Questa versione di Mumble non può utilizzare gli URL di Mumble versione %1</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8166,6 +8176,10 @@ Puoi registrarle di nuovo.</translation>
<source>Press to show button combination</source>
<translation>Premi per mostrare la combinazione di tasti</translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_ja.ts b/src/mumble/mumble_ja.ts
index 0e7cc4411..a52a4b66f 100644
--- a/src/mumble/mumble_ja.ts
+++ b/src/mumble/mumble_ja.ts
@@ -6411,6 +6411,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">このバージョンのMumble は Mumble %1 のための URL を扱えません</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8118,6 +8128,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_ko.ts b/src/mumble/mumble_ko.ts
index b09c3beb6..e505b4fde 100644
--- a/src/mumble/mumble_ko.ts
+++ b/src/mumble/mumble_ko.ts
@@ -6454,6 +6454,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">이 버전의 Mumble은 Mumble 버전 %1 URL을 처리할 수 없음</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8165,6 +8175,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation>버튼 조합을 표시하려면 누르세요</translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_lt.ts b/src/mumble/mumble_lt.ts
index 01cac5fec..d8896a43b 100644
--- a/src/mumble/mumble_lt.ts
+++ b/src/mumble/mumble_lt.ts
@@ -6395,6 +6395,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">Ši Mumble versija negali apdoroti URL, skirtus Mumble versijai %1</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8102,6 +8112,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_nl.ts b/src/mumble/mumble_nl.ts
index 0249ce710..93d0df321 100644
--- a/src/mumble/mumble_nl.ts
+++ b/src/mumble/mumble_nl.ts
@@ -6455,6 +6455,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">Mumble-versie kan URL&apos;s voor Mumble versie %1 niet aan</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8166,6 +8176,10 @@ Je kunt ze opnieuw registreren.</translation>
<source>Press to show button combination</source>
<translation>Druk om knoppencombinatie weer te geven</translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_no.ts b/src/mumble/mumble_no.ts
index 7039e3f1a..db990af04 100644
--- a/src/mumble/mumble_no.ts
+++ b/src/mumble/mumble_no.ts
@@ -6470,6 +6470,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">Denne versjonen av Mumble kan ikke håndtere URL-er for Mumble versjon %1</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8181,6 +8191,10 @@ Du kan registrere dem igjen.</translation>
<source>Press to show button combination</source>
<translation>Trykk for å vise tastekombinasjon</translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_oc.ts b/src/mumble/mumble_oc.ts
index eff089722..124242708 100644
--- a/src/mumble/mumble_oc.ts
+++ b/src/mumble/mumble_oc.ts
@@ -6362,6 +6362,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8065,6 +8075,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_pl.ts b/src/mumble/mumble_pl.ts
index 6e1ea6b31..d3c3e7933 100644
--- a/src/mumble/mumble_pl.ts
+++ b/src/mumble/mumble_pl.ts
@@ -6516,6 +6516,16 @@ Prawidłowe opcje to:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">Ta wersja Mumble nie obsługuje adresów URL starszych wersji Mumble %1</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8227,6 +8237,10 @@ Możesz je ponownie zarejestrować.</translation>
<source>Press to show button combination</source>
<translation>Naciśnij, aby wyświetlić kombinację przycisków</translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_pt_BR.ts b/src/mumble/mumble_pt_BR.ts
index 0e1c8d445..8d3543c67 100644
--- a/src/mumble/mumble_pt_BR.ts
+++ b/src/mumble/mumble_pt_BR.ts
@@ -6455,6 +6455,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">Esta versão do Mumble não pode lidar com URLs para o Mumble versão %1</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8165,6 +8175,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation>Pressione para mostrar a combinação de teclas</translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_pt_PT.ts b/src/mumble/mumble_pt_PT.ts
index e773486d3..c0082d137 100644
--- a/src/mumble/mumble_pt_PT.ts
+++ b/src/mumble/mumble_pt_PT.ts
@@ -6433,6 +6433,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">Esta versão do Mumble não consegue lidar com URLs para o Mumble versão %1</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8143,6 +8153,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation>Pressione para mostrar a combinação de teclas</translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_ro.ts b/src/mumble/mumble_ro.ts
index e60d610a8..6ab0b8987 100644
--- a/src/mumble/mumble_ro.ts
+++ b/src/mumble/mumble_ro.ts
@@ -6366,6 +6366,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8069,6 +8079,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_ru.ts b/src/mumble/mumble_ru.ts
index 17b35e572..c264a7ee8 100644
--- a/src/mumble/mumble_ru.ts
+++ b/src/mumble/mumble_ru.ts
@@ -6456,6 +6456,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">Эта версия Mumble не может использовать ссылки из Mumble версий %1</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8167,6 +8177,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation>Нажмите, чтобы показать комбинацию кнопок</translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_si.ts b/src/mumble/mumble_si.ts
index 4b4997d1b..fccaa18a3 100644
--- a/src/mumble/mumble_si.ts
+++ b/src/mumble/mumble_si.ts
@@ -6324,6 +6324,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8023,6 +8033,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_sk.ts b/src/mumble/mumble_sk.ts
index da40b1276..38e404a67 100644
--- a/src/mumble/mumble_sk.ts
+++ b/src/mumble/mumble_sk.ts
@@ -6325,6 +6325,16 @@ Otherwise abort and check your certificate and username.</source>
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8024,6 +8034,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_sq.ts b/src/mumble/mumble_sq.ts
index 3a8124009..04d36c6ff 100644
--- a/src/mumble/mumble_sq.ts
+++ b/src/mumble/mumble_sq.ts
@@ -6326,6 +6326,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8025,6 +8035,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_sv.ts b/src/mumble/mumble_sv.ts
index 2a2ae50a1..5f956597c 100644
--- a/src/mumble/mumble_sv.ts
+++ b/src/mumble/mumble_sv.ts
@@ -6455,6 +6455,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">Den här versionen av Mumble kan inte hantera URLer för Mumble version %1</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8165,6 +8175,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation>Tryck för att visa knappkombination</translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_te.ts b/src/mumble/mumble_te.ts
index 05a3c3756..ba14f05c4 100644
--- a/src/mumble/mumble_te.ts
+++ b/src/mumble/mumble_te.ts
@@ -6373,6 +6373,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8082,6 +8092,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_th.ts b/src/mumble/mumble_th.ts
index c131a8ca6..28f2e4296 100644
--- a/src/mumble/mumble_th.ts
+++ b/src/mumble/mumble_th.ts
@@ -6360,6 +6360,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8063,6 +8073,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_tr.ts b/src/mumble/mumble_tr.ts
index e7e1f127a..675521346 100644
--- a/src/mumble/mumble_tr.ts
+++ b/src/mumble/mumble_tr.ts
@@ -6514,6 +6514,16 @@ Geçerli seçenekler şunlardır:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">Mumble&apos;ın bu sürümü %1 sayılı sürümün URL&apos;lerini işleyemez</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8225,6 +8235,10 @@ Bunları tekrar kaydedebilirsiniz.</translation>
<source>Press to show button combination</source>
<translation>Düğme kombinasyonunu göstermek için basın</translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_uk.ts b/src/mumble/mumble_uk.ts
index 13f597aa8..55942dcdd 100644
--- a/src/mumble/mumble_uk.ts
+++ b/src/mumble/mumble_uk.ts
@@ -6362,6 +6362,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8065,6 +8075,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_zh_CN.ts b/src/mumble/mumble_zh_CN.ts
index 2f7c4f53b..11f1a51e8 100644
--- a/src/mumble/mumble_zh_CN.ts
+++ b/src/mumble/mumble_zh_CN.ts
@@ -6514,6 +6514,16 @@ mumble://[&lt;用户名&gt;[:&lt;密码&gt;]@]&lt;主机名&gt;[:&lt;端口&gt;]
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">当前版本的 Mumble 无法处理用于 Mumble %1 的 URL</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8225,6 +8235,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation>点击显示组合键</translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_zh_HK.ts b/src/mumble/mumble_zh_HK.ts
index 2e48845ec..f784c32f9 100644
--- a/src/mumble/mumble_zh_HK.ts
+++ b/src/mumble/mumble_zh_HK.ts
@@ -6365,6 +6365,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">目前的 Mumble 無法處理版本 %1 產生的網址</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8072,6 +8082,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>
diff --git a/src/mumble/mumble_zh_TW.ts b/src/mumble/mumble_zh_TW.ts
index ff64f04ab..907e57a3c 100644
--- a/src/mumble/mumble_zh_TW.ts
+++ b/src/mumble/mumble_zh_TW.ts
@@ -6388,6 +6388,16 @@ Valid options are:
<source>This version of Mumble can&apos;t handle URLs for Mumble version %1</source>
<translation type="unfinished">目前的 Mumble 無法處理版本 %1 產生的網址</translation>
</message>
+ <message>
+ <source>Listen to Channel</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Toggles listening to the given channel.</source>
+ <comment>Global Shortcut</comment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Manual</name>
@@ -8094,6 +8104,10 @@ You can register them again.</source>
<source>Press to show button combination</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>&lt; Unknown Channel &gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>ShortcutTargetDialog</name>