From 00f35bdb8e6bd84903883125a5c0e429c5af4557 Mon Sep 17 00:00:00 2001 From: Hartmnt Date: Fri, 7 Jun 2024 13:00:36 +0000 Subject: [PATCH] REFAC(client): Remove old tray icon code The existing code for the tray icon was ancient, buggy and possibly entirely broken in more than one place. This commit removes all tray related code, such that it can be completely written from scratch. --- src/mumble/CMakeLists.txt | 4 - src/mumble/Log.cpp | 22 +----- src/mumble/Log.h | 2 - src/mumble/Log_macx.mm | 105 ------------------------- src/mumble/Log_unix.cpp | 68 ---------------- src/mumble/Log_win.cpp | 10 --- src/mumble/LookConfig.cpp | 5 -- src/mumble/MainWindow.cpp | 159 +------------------------------------- src/mumble/MainWindow.h | 7 -- src/mumble/MainWindow.ui | 19 ----- src/mumble/Messages.cpp | 6 -- 11 files changed, 2 insertions(+), 405 deletions(-) delete mode 100644 src/mumble/Log_macx.mm delete mode 100644 src/mumble/Log_unix.cpp delete mode 100644 src/mumble/Log_win.cpp diff --git a/src/mumble/CMakeLists.txt b/src/mumble/CMakeLists.txt index 9ca258469bc..117eddd6520 100644 --- a/src/mumble/CMakeLists.txt +++ b/src/mumble/CMakeLists.txt @@ -572,7 +572,6 @@ if(WIN32) target_sources(mumble_client_object_lib PRIVATE "GlobalShortcut_win.cpp" "GlobalShortcut_win.h" - "Log_win.cpp" "SharedMemory_win.cpp" "TaskList.cpp" "UserLockFile_win.cpp" @@ -657,7 +656,6 @@ else() PRIVATE "GlobalShortcut_unix.cpp" "GlobalShortcut_unix.h" - "Log_unix.cpp" "os_unix.cpp" ) @@ -681,7 +679,6 @@ else() "AppNap.mm" "GlobalShortcut_macx.h" "GlobalShortcut_macx.mm" - "Log_macx.mm" "os_macx.mm" ) @@ -1101,7 +1098,6 @@ if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0") set_source_files_properties( "AppNap.mm" "GlobalShortcut_macx.mm" - "Log_macx.mm" "os_macx.mm" "TextToSpeech_macx.mm" "Overlay_macx.mm" diff --git a/src/mumble/Log.cpp b/src/mumble/Log.cpp index ce7216503f9..201e2fcc955 100644 --- a/src/mumble/Log.cpp +++ b/src/mumble/Log.cpp @@ -818,7 +818,7 @@ void Log::log(MsgType mt, const QString &console, const QString &terse, bool own // Message notification with balloon tooltips if (flags & Settings::LogBalloon) { // Replace any instances of a "Object Replacement Character" from QTextDocumentFragment::toPlainText - postNotification(mt, plain.replace("\xEF\xBF\xBC", tr("[embedded content]"))); + // FIXME } } @@ -910,26 +910,6 @@ void Log::processDeferredLogs() { } } -// Post a notification using the MainWindow's QSystemTrayIcon. -void Log::postQtNotification(MsgType mt, const QString &plain) { - if (Global::get().mw->qstiIcon->isSystemTrayAvailable() && Global::get().mw->qstiIcon->supportsMessages()) { - QSystemTrayIcon::MessageIcon msgIcon; - switch (mt) { - case DebugInfo: - case CriticalError: - msgIcon = QSystemTrayIcon::Critical; - break; - case Warning: - msgIcon = QSystemTrayIcon::Warning; - break; - default: - msgIcon = QSystemTrayIcon::Information; - break; - } - Global::get().mw->qstiIcon->showMessage(msgName(mt), plain, msgIcon); - } -} - LogMessage::LogMessage(Log::MsgType mt, const QString &console, const QString &terse, bool ownMessage, const QString &overrideTTS, bool ignoreTTS) : mt(mt), console(console), terse(terse), ownMessage(ownMessage), overrideTTS(overrideTTS), ignoreTTS(ignoreTTS) { diff --git a/src/mumble/Log.h b/src/mumble/Log.h index 375751066e7..edd8952ff65 100644 --- a/src/mumble/Log.h +++ b/src/mumble/Log.h @@ -133,8 +133,6 @@ class Log : public QObject { unsigned int uiLastId; QDate qdDate; static const QStringList allowedSchemes(); - void postNotification(MsgType mt, const QString &plain); - void postQtNotification(MsgType mt, const QString &plain); public: Log(QObject *p = nullptr); diff --git a/src/mumble/Log_macx.mm b/src/mumble/Log_macx.mm deleted file mode 100644 index bedad610622..00000000000 --- a/src/mumble/Log_macx.mm +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright 2012-2023 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 . - -#include "Log.h" - -#include - -#include - -#include "Global.h" - -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 - -@interface MUUserNotificationCenterDelegate : NSObject -@end - -@implementation MUUserNotificationCenterDelegate -- (void) userNotificationCenter:(NSUserNotificationCenter *)center didDeliverNotification:(NSUserNotification *)notification { - Q_UNUSED(center); - Q_UNUSED(notification); -} - -- (void) userNotificationCenter:(NSUserNotificationCenter *)center didActivateNotification:(NSUserNotification *)notification { - [center removeDeliveredNotification:notification]; -} - -- (BOOL) userNotificationCenter:(NSUserNotificationCenter *)center shouldPresentNotification:(NSUserNotification *)notification { - Q_UNUSED(center); - Q_UNUSED(notification); - - return NO; -} -@end - -static NSString *Log_QString_to_NSString(const QString& string) { - return const_cast(reinterpret_cast(CFStringCreateWithCharacters(kCFAllocatorDefault, - reinterpret_cast(string.unicode()), string.length()))); -} - -#endif - -#if QT_VERSION < 0x050800 -extern bool qt_mac_execute_apple_script(const QString &script, AEDesc *ret); - -static bool growl_available() { - static int isAvailable = -1; - if (isAvailable == -1) { - OSStatus err = LSFindApplicationForInfo('GRRR', CFSTR("com.Growl.GrowlHelperApp"), CFSTR("GrowlHelperApp.app"), nullptr, nullptr); - isAvailable = (err != kLSApplicationNotFoundErr) ? 1 : 0; - if (isAvailable) { - QStringList qslAllEvents; - for (int i = Log::firstMsgType; i <= Log::lastMsgType; ++i) { - Log::MsgType t = static_cast(i); - qslAllEvents << QString::fromLatin1("\"%1\"").arg(Global::get().l->msgName(t)); - } - QString qsScript = QString::fromLatin1( - "tell application \"GrowlHelperApp\"\n" - " set the allNotificationsList to {%1}\n" - " set the enabledNotificationsList to {%1}\n" - " register as application \"Mumble\"" - " all notifications allNotificationsList" - " default notifications enabledNotificationsList" - " icon of application \"Mumble\"\n" - "end tell\n").arg(qslAllEvents.join(QLatin1String(","))); - qt_mac_execute_apple_script(qsScript, nullptr); - } - } - return isAvailable == 1; -} -#endif // QT_VERSION - -void Log::postNotification(MsgType mt, const QString &plain) { - QString title = msgName(mt); -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 -# if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0) - const QOperatingSystemVersion current = QOperatingSystemVersion::current(); - if (current.majorVersion() > 10 || (current.majorVersion() == 10 && current.minorVersion() >= 8)) { -# else - if (QSysInfo::MacintoshVersion >= QSysInfo::MV_MOUNTAINLION) { -# endif - NSUserNotificationCenter *userNotificationCenter = [NSUserNotificationCenter defaultUserNotificationCenter]; - if (userNotificationCenter.delegate == nil) { - // We hand the delegate property a delegate with a retain count of 1. We don't keep - // a reference to the delegate anywhere else, so it's not really a leak. - userNotificationCenter.delegate = [[MUUserNotificationCenterDelegate alloc] init]; - } - NSUserNotification *userNotification = [[[NSUserNotification alloc] init] autorelease]; - userNotification.title = [Log_QString_to_NSString(title) autorelease]; - userNotification.informativeText = [Log_QString_to_NSString(plain) autorelease]; - [userNotificationCenter scheduleNotification:userNotification]; - } else -#endif - { -#if QT_VERSION < 0x050800 - QString qsScript = QString::fromLatin1( - "tell application \"GrowlHelperApp\"\n" - " notify with name \"%1\" title \"%1\" description \"%2\" application name \"Mumble\"\n" - "end tell\n").arg(title).arg(plain); - if (growl_available()) - qt_mac_execute_apple_script(qsScript, nullptr); -#endif - } -} diff --git a/src/mumble/Log_unix.cpp b/src/mumble/Log_unix.cpp deleted file mode 100644 index 8e775ff3dea..00000000000 --- a/src/mumble/Log_unix.cpp +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2012-2023 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 . - -#include "Log.h" -#include "MainWindow.h" -#include "Settings.h" - -#include - -void Log::postNotification(MsgType mt, const QString &plain) { - // Message notification with balloon tooltips - QString qsIcon; - switch (mt) { - case DebugInfo: - case CriticalError: - qsIcon = QLatin1String("dialog-error"); - break; - case Warning: - qsIcon = QLatin1String("dialog-warning"); - break; - case TextMessage: - qsIcon = QLatin1String("accessories-text-editor"); - break; - default: - qsIcon = QLatin1String("dialog-information"); - break; - } - - QDBusMessage response; - QVariantMap hints; - hints.insert(QLatin1String("desktop-entry"), QLatin1String("mumble")); - - { - QDBusInterface kde(QLatin1String("org.kde.VisualNotifications"), QLatin1String("/VisualNotifications"), - QLatin1String("org.kde.VisualNotifications")); - if (kde.isValid()) { - QList< QVariant > args; - args.append(QLatin1String("mumble")); - args.append(uiLastId); - args.append(QString()); - args.append(QLatin1String("mumble")); - args.append(msgName(mt)); - args.append(plain); - args.append(QStringList()); - args.append(hints); - args.append(5000); - - response = kde.callWithArgumentList(QDBus::AutoDetect, QLatin1String("Notify"), args); - } - } - - if (response.type() != QDBusMessage::ReplyMessage || response.arguments().at(0).toUInt() == 0) { - QDBusInterface gnome(QLatin1String("org.freedesktop.Notifications"), - QLatin1String("/org/freedesktop/Notifications"), - QLatin1String("org.freedesktop.Notifications")); - if (gnome.isValid()) - response = gnome.call(QLatin1String("Notify"), QLatin1String("Mumble"), uiLastId, qsIcon, msgName(mt), - plain, QStringList(), hints, -1); - } - - if (response.type() == QDBusMessage::ReplyMessage && response.arguments().count() == 1) { - uiLastId = response.arguments().at(0).toUInt(); - } else { - postQtNotification(mt, plain); - } -} diff --git a/src/mumble/Log_win.cpp b/src/mumble/Log_win.cpp deleted file mode 100644 index d9a80b61c22..00000000000 --- a/src/mumble/Log_win.cpp +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2012-2023 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 . - -#include "Log.h" - -void Log::postNotification(MsgType mt, const QString &plain) { - postQtNotification(mt, plain); -} diff --git a/src/mumble/LookConfig.cpp b/src/mumble/LookConfig.cpp index 50c11ab4550..f54cc96eb7f 100644 --- a/src/mumble/LookConfig.cpp +++ b/src/mumble/LookConfig.cpp @@ -27,11 +27,6 @@ static ConfigRegistrar registrar(1100, LookConfigNew); LookConfig::LookConfig(Settings &st) : ConfigWidget(st) { setupUi(this); -#ifndef Q_OS_MAC - if (!QSystemTrayIcon::isSystemTrayAvailable()) -#endif - qgbTray->hide(); - qcbLanguage->addItem(tr("System default")); QDir d(QLatin1String(":"), QLatin1String("mumble_*.qm"), QDir::Name, QDir::Files); foreach (const QString &key, d.entryList()) { diff --git a/src/mumble/MainWindow.cpp b/src/mumble/MainWindow.cpp index f32428a4f40..bb54772bba0 100644 --- a/src/mumble/MainWindow.cpp +++ b/src/mumble/MainWindow.cpp @@ -172,10 +172,6 @@ MainWindow::MainWindow(QWidget *p) connect(qteChat, &ChatbarTextEdit::ctrlEnterPressed, [this](const QString &msg) { sendChatbarText(msg, true); }); connect(qteChat, SIGNAL(pastedImage(QString)), this, SLOT(sendChatbarMessage(QString))); - // Tray - connect(qstiIcon, SIGNAL(messageClicked()), this, SLOT(showRaiseWindow())); - connect(qaShow, SIGNAL(triggered()), this, SLOT(showRaiseWindow())); - QObject::connect(this, &MainWindow::transmissionModeChanged, this, &MainWindow::updateTransmitModeComboBox); // Explicitly add actions to mainwindow so their shortcuts are available @@ -265,10 +261,6 @@ void MainWindow::createActions() { 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, GlobalShortcutType::Whisper_Shout, tr("Whisper/Shout"), QVariant::fromValue(ShortcutTarget())); gsWhisper->setObjectName(QLatin1String("gsWhisper")); @@ -412,10 +404,6 @@ void MainWindow::createActions() { new GlobalShortcut(this, GlobalShortcutType::HelpVersionCheck, tr("Check for update", "Global Shortcut")); gsHelpVersionCheck->setObjectName(QLatin1String("gsHelpVersionCheck")); gsHelpVersionCheck->qsWhatsThis = tr("This will check if mumble is up to date"); - -#ifndef Q_OS_MAC - qstiIcon->show(); -#endif } void MainWindow::setupGui() { @@ -548,13 +536,6 @@ void MainWindow::setupGui() { setupView(false); - qmTray = new QMenu(this); - connect(qmTray, SIGNAL(aboutToShow()), this, SLOT(trayAboutToShow())); - trayAboutToShow(); - qstiIcon->setContextMenu(qmTray); - - updateTrayIcon(); - #ifdef Q_OS_MAC setWindowOpacity(1.0f); #endif @@ -711,43 +692,16 @@ void MainWindow::hideEvent(QHideEvent *e) { e->ignore(); return; } -#endif -#ifndef Q_OS_MAC -# ifdef Q_OS_UNIX - if (!qApp->activeModalWidget() && !qApp->activePopupWidget()) -# endif - if (Global::get().s.bHideInTray && qstiIcon->isSystemTrayAvailable() && e->spontaneous()) - QMetaObject::invokeMethod(this, "hide", Qt::QueuedConnection); #endif QMainWindow::hideEvent(e); } void MainWindow::showEvent(QShowEvent *e) { -#ifndef Q_OS_MAC -# ifdef Q_OS_UNIX - if (!qApp->activeModalWidget() && !qApp->activePopupWidget()) -# endif - if (Global::get().s.bHideInTray && qstiIcon->isSystemTrayAvailable() && e->spontaneous()) - QMetaObject::invokeMethod(this, "show", Qt::QueuedConnection); -#endif QMainWindow::showEvent(e); } void MainWindow::changeEvent(QEvent *e) { QWidget::changeEvent(e); - -#ifdef Q_OS_MAC - // On modern macOS/Qt combinations, the code below causes Mumble's - // MainWindow to not be interactive after returning from being minimized. - // (See issue mumble-voip/mumble#2171) - // So, let's not do it on macOS. - -#else - if (isMinimized() && qstiIcon->isSystemTrayAvailable() && Global::get().s.bHideInTray) { - // Workaround https://forum.qt.io/topic/4327/minimizing-application-to-tray/24 - QTimer::singleShot(0, this, SLOT(hide())); - } -#endif } void MainWindow::keyPressEvent(QKeyEvent *e) { @@ -809,43 +763,6 @@ void MainWindow::updateAudioToolTips() { qaAudioDeaf->setToolTip(tr("Deafen yourself")); } -void MainWindow::updateTrayIcon() { - ClientUser *p = ClientUser::get(Global::get().uiSession); - - if (Global::get().s.bDeaf) { - qstiIcon->setIcon(qiIconDeafSelf); - } else if (p && p->bDeaf) { - qstiIcon->setIcon(qiIconDeafServer); - } else if (Global::get().s.bMute) { - qstiIcon->setIcon(qiIconMuteSelf); - } else if (p && p->bMute) { - qstiIcon->setIcon(qiIconMuteServer); - } else if (p && p->bSuppress) { - qstiIcon->setIcon(qiIconMuteSuppressed); - } else if (Global::get().s.bStateInTray && Global::get().bPushToMute) { - qstiIcon->setIcon(qiIconMutePushToMute); - } else if (p && Global::get().s.bStateInTray) { - switch (p->tsState) { - case Settings::Talking: - case Settings::MutedTalking: - qstiIcon->setIcon(qiTalkingOn); - break; - case Settings::Whispering: - qstiIcon->setIcon(qiTalkingWhisper); - break; - case Settings::Shouting: - qstiIcon->setIcon(qiTalkingShout); - break; - case Settings::Passive: - default: - qstiIcon->setIcon(qiTalkingOff); - break; - } - } else { - qstiIcon->setIcon(qiIcon); - } -} - void MainWindow::updateUserModel() { UserModel *um = static_cast< UserModel * >(qtvUsers->model()); um->forceVisualUpdate(); @@ -1599,13 +1516,6 @@ void MainWindow::on_qmServer_aboutToShow() { qmServer->addAction(qaServerUserList); qmServer->addAction(qaServerBanList); qmServer->addSeparator(); -#if !defined(Q_OS_MAC) - // Don't add qaHide on macOS. - // There is no way to bring the window back (no 'tray' for Mumble on macOS), - // and the system has built-in hide functionality via Cmd-H. - if (qstiIcon->isSystemTrayAvailable()) - qmServer->addAction(qaHide); -#endif qmServer->addAction(qaQuit); qaServerBanList->setEnabled(Global::get().pPermissions & (ChanACL::Ban | ChanACL::Write)); @@ -2118,10 +2028,6 @@ void MainWindow::on_qaUserInformation_triggered() { Global::get().sh->requestUserStats(p->uiSession, false); } -void MainWindow::on_qaHide_triggered() { - hide(); -} - void MainWindow::on_qaQuit_triggered() { forceQuit = true; this->close(); @@ -2626,10 +2532,6 @@ void MainWindow::updateMenuPermissions() { } void MainWindow::userStateChanged() { - if (Global::get().s.bStateInTray) { - updateTrayIcon(); - } - ClientUser *user = ClientUser::get(Global::get().uiSession); if (!user) { Global::get().bAttenuateOthers = false; @@ -2700,7 +2602,6 @@ void MainWindow::on_qaAudioMute_triggered() { } updateAudioToolTips(); - updateTrayIcon(); } void MainWindow::setAudioMute(bool mute) { @@ -2745,7 +2646,6 @@ void MainWindow::on_qaAudioDeaf_triggered() { } updateAudioToolTips(); - updateTrayIcon(); } void MainWindow::setAudioDeaf(bool deaf) { @@ -2857,7 +2757,6 @@ void MainWindow::pttReleased() { void MainWindow::on_PushToMute_triggered(bool down, QVariant) { Global::get().bPushToMute = down; - updateTrayIcon(); updateUserModel(); } @@ -3139,13 +3038,7 @@ void MainWindow::on_gsCycleTransmitMode_triggered(bool down, QVariant) { } void MainWindow::on_gsToggleMainWindowVisibility_triggered(bool down, QVariant) { - if (down) { - if (Global::get().mw->isVisible()) { - Global::get().mw->hide(); - } else { - Global::get().mw->show(); - } - } + // FIXME } void MainWindow::on_gsListenChannel_triggered(bool down, QVariant scdata) { @@ -3472,7 +3365,6 @@ void MainWindow::serverDisconnected(QAbstractSocket::SocketError err, QString re qaServerBanList->setEnabled(false); qtvUsers->setCurrentIndex(QModelIndex()); qteChat->setEnabled(false); - updateTrayIcon(); #ifdef Q_OS_MAC // Remove App Nap suppression now that we're disconnected. @@ -3675,7 +3567,6 @@ void MainWindow::serverDisconnected(QAbstractSocket::SocketError err, QString re } } } - qstiIcon->setToolTip(tr("Mumble -- %1").arg(Version::getRelease())); AudioInput::setMaxBandwidth(-1); if (Global::get().s.bMinimalView) { @@ -3698,38 +3589,6 @@ void MainWindow::resolverError(QAbstractSocket::SocketError, QString reason) { } } -void MainWindow::trayAboutToShow() { - bool top = false; - - QPoint p = qstiIcon->geometry().center(); - if (p.isNull()) { - p = QCursor::pos(); - } - - QScreen *screen = Mumble::Screen::screenAt(p); - if (screen) { - QRect qr = screen->geometry(); - - if (p.y() < (qr.height() / 2)) - top = true; - - qmTray->clear(); - if (top) { - qmTray->addAction(qaQuit); - qmTray->addAction(qaShow); - qmTray->addSeparator(); - qmTray->addAction(qaAudioDeaf); - qmTray->addAction(qaAudioMute); - } else { - qmTray->addAction(qaAudioMute); - qmTray->addAction(qaAudioDeaf); - qmTray->addSeparator(); - qmTray->addAction(qaShow); - qmTray->addAction(qaQuit); - } - } -} - void MainWindow::showRaiseWindow() { if (isMinimized()) { setWindowState((windowState() & ~Qt::WindowMinimized) | Qt::WindowActive); @@ -3740,21 +3599,6 @@ void MainWindow::showRaiseWindow() { activateWindow(); } -void MainWindow::on_Icon_activated(QSystemTrayIcon::ActivationReason reason) { - switch (reason) { - case QSystemTrayIcon::Trigger: - case QSystemTrayIcon::DoubleClick: - case QSystemTrayIcon::MiddleClick: - if (isMinimized()) { - showRaiseWindow(); - } else { - showMinimized(); - } - default: - break; - } -} - void MainWindow::on_qaTalkingUIToggle_triggered() { if (!Global::get().talkingUI) { qCritical("MainWindow: Attempting to show Talking UI before it has been created!"); @@ -4129,7 +3973,6 @@ void MainWindow::openConfigDialog() { if (dlg->exec() == QDialog::Accepted) { setupView(false); updateTransmitModeComboBox(Global::get().s.atTransmit); - updateTrayIcon(); updateUserModel(); if (Global::get().s.requireRestartToApply) { diff --git a/src/mumble/MainWindow.h b/src/mumble/MainWindow.h index e54eab71169..9c6c3d5ccaf 100644 --- a/src/mumble/MainWindow.h +++ b/src/mumble/MainWindow.h @@ -10,7 +10,6 @@ #include #include #include -#include #include "CustomElements.h" #include "MUComboBox.h" @@ -74,12 +73,10 @@ class MainWindow : public QMainWindow, public Ui::MainWindow { Q_DISABLE_COPY(MainWindow) public: UserModel *pmModel; - QSystemTrayIcon *qstiIcon; QMenu *qmUser; QMenu *qmChannel; QMenu *qmListener; QMenu *qmDeveloper; - QMenu *qmTray; QIcon qiIcon, qiIconMutePushToMute, qiIconMuteSelf, qiIconMuteServer, qiIconDeafSelf, qiIconDeafServer, qiIconMuteSuppressed; QIcon qiTalkingOn, qiTalkingWhisper, qiTalkingShout, qiTalkingOff; @@ -140,7 +137,6 @@ class MainWindow : public QMainWindow, public Ui::MainWindow { void setOnTop(bool top); void setShowDockTitleBars(bool doShow); void updateAudioToolTips(); - void updateTrayIcon(); void updateUserModel(); void focusNextMainWidget(); QPair< QByteArray, QImage > openImageFile(); @@ -291,7 +287,6 @@ public slots: void on_qaHelpAboutQt_triggered(); void on_qaHelpVersionCheck_triggered(); void on_qaQuit_triggered(); - void on_qaHide_triggered(); void on_qteChat_tabPressed(); void on_qteChat_backtabPressed(); void on_qteChat_ctrlSpacePressed(); @@ -340,7 +335,6 @@ public slots: void on_gsHelpVersionCheck_triggered(bool, QVariant); void on_Reconnect_timeout(); - void on_Icon_activated(QSystemTrayIcon::ActivationReason); void on_qaTalkingUIToggle_triggered(); void voiceRecorderDialog_finished(int); void qtvUserCurrentChanged(const QModelIndex &, const QModelIndex &); @@ -357,7 +351,6 @@ public slots: /// or priority speaker flag changes for the gui user void userStateChanged(); void destroyUserInformation(); - void trayAboutToShow(); void sendChatbarMessage(QString msg); void sendChatbarText(QString msg, bool plainText = false); void pttReleased(); diff --git a/src/mumble/MainWindow.ui b/src/mumble/MainWindow.ui index da034615394..acf48f829b4 100644 --- a/src/mumble/MainWindow.ui +++ b/src/mumble/MainWindow.ui @@ -257,17 +257,6 @@ Ctrl+Q - - - &Hide Mumble - - - Hides the main Mumble window. - - - Hides the main Mumble window. Restore by clicking on the tray icon or starting Mumble again. - - @@ -996,14 +985,6 @@ the channel's context menu. true - - - Show - - - Shows the main Mumble window. - - true diff --git a/src/mumble/Messages.cpp b/src/mumble/Messages.cpp index b531ef5ded4..86af69486a5 100644 --- a/src/mumble/Messages.cpp +++ b/src/mumble/Messages.cpp @@ -177,8 +177,6 @@ void MainWindow::msgServerSync(const MumbleProto::ServerSync &msg) { &AudioInput::onUserMuteDeafStateChanged); } - qstiIcon->setToolTip(tr("Mumble: %1").arg(Channel::get(Channel::ROOT_ID)->qsName.toHtmlEscaped())); - // Update QActions and menus on_qmServer_aboutToShow(); on_qmSelf_aboutToShow(); @@ -186,8 +184,6 @@ void MainWindow::msgServerSync(const MumbleProto::ServerSync &msg) { qmUser_aboutToShow(); on_qmConfig_aboutToShow(); - updateTrayIcon(); - Global::get().sh->setServerSynchronized(true); @@ -702,8 +698,6 @@ void MainWindow::msgUserState(const MumbleProto::UserState &msg) { tr("You were unsuppressed by %1.").arg(Log::formatClientUser(pSrc, Log::Source))); } } - - updateTrayIcon(); } else if (pSrc == pSelf) { if (msg.has_mute() && msg.has_deaf() && pDst->bMute && pDst->bDeaf) { Global::get().l->log(