1 /*************************************************************************** 2 * Copyright (C) 2005-2020 by the Quassel Project * 3 * devel@quassel-irc.org * 4 * * 5 * This file is free software; you can redistribute it and/or modify * 6 * it under the terms of the GNU Library General Public License (LGPL) * 7 * as published by the Free Software Foundation; either version 2 of the * 8 * License, or (at your option) any later version. * 9 * * 10 * This program is distributed in the hope that it will be useful, * 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 13 * GNU General Public License for more details. * 14 * * 15 * You should have received a copy of the GNU General Public License * 16 * along with this program; if not, write to the * 17 * Free Software Foundation, Inc., * 18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * 19 ***************************************************************************/ 20 21 #pragma once 22 23 #ifndef QT_NO_SYSTEMTRAYICON 24 25 # include <QString> 26 # include <QSystemTrayIcon> 27 28 # include "systemtray.h" 29 30 class LegacySystemTray : public SystemTray 31 { 32 Q_OBJECT 33 34 public: 35 explicit LegacySystemTray(QWidget* parent); 36 37 bool isSystemTrayAvailable() const override; 38 39 public slots: 40 void showMessage(const QString& title, 41 const QString& message, 42 MessageIcon icon = Information, 43 int msTimeout = 10000, 44 uint notificationId = 0) override; 45 void closeMessage(uint notificationId) override; 46 47 private slots: 48 void onModeChanged(Mode mode); 49 void onVisibilityChanged(bool isVisible); 50 51 void onActivated(QSystemTrayIcon::ActivationReason); 52 void onMessageClicked(); 53 54 void updateIcon(); 55 void updateToolTip(); 56 57 private: 58 uint _lastMessageId{0}; 59 60 QSystemTrayIcon* _trayIcon; 61 }; 62 63 #endif /* QT_NO_SYSTEMTRAYICON */ 64