mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-03-30 15:30:20 +00:00
Use /.flatpak-info instead of deprecated /run/user/$UID/flatpak-info Improve indentation in UseXDGDesktopPortal and IsAppIndicator Remove unneeded NeedTrayIconFile and rename IsAppIndicator to IsIndicatorApplication Include only needed part of QtDBus in main_window_linux.cpp Remove usage of QDBusInterface from SandboxAutostart and IsSNIAvailable Don't check dbus activatable services in IsIndicatorApplication Move XEmbed menu initialization to initTrayMenuHook, tray availability check to initHook Don't create unneeded file for tooltip icon, since indicator-application doesn't support tooltips Passthrough counter from updateIconCounters Suppress log errors for LastUserInputTime on GNOME Set applcation name and icon name for pulseaudio
80 lines
1.6 KiB
C++
80 lines
1.6 KiB
C++
/*
|
|
This file is part of Telegram Desktop,
|
|
the official desktop application for the Telegram messaging service.
|
|
|
|
For license and copyright information please follow this link:
|
|
https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|
*/
|
|
#pragma once
|
|
|
|
#include "platform/platform_main_window.h"
|
|
|
|
#include "ui/widgets/popup_menu.h"
|
|
|
|
#ifndef TDESKTOP_DISABLE_DBUS_INTEGRATION
|
|
#include "statusnotifieritem.h"
|
|
#include <QtCore/QTemporaryFile>
|
|
#endif
|
|
|
|
namespace Platform {
|
|
|
|
class MainWindow : public Window::MainWindow {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit MainWindow(not_null<Window::Controller*> controller);
|
|
|
|
virtual QImage iconWithCounter(
|
|
int size,
|
|
int count,
|
|
style::color bg,
|
|
style::color fg,
|
|
bool smallIcon) = 0;
|
|
|
|
static void LibsLoaded();
|
|
|
|
~MainWindow();
|
|
|
|
public slots:
|
|
void psShowTrayMenu();
|
|
|
|
protected:
|
|
void initHook() override;
|
|
void unreadCounterChangedHook() override;
|
|
|
|
void initTrayMenuHook() override;
|
|
bool hasTrayIcon() const override;
|
|
|
|
void workmodeUpdated(DBIWorkMode mode) override;
|
|
|
|
QSystemTrayIcon *trayIcon = nullptr;
|
|
QMenu *trayIconMenu = nullptr;
|
|
|
|
void psTrayMenuUpdated();
|
|
void psSetupTrayIcon();
|
|
|
|
virtual void placeSmallCounter(
|
|
QImage &img,
|
|
int size,
|
|
int count,
|
|
style::color bg,
|
|
const QPoint &shift,
|
|
style::color color) = 0;
|
|
|
|
private:
|
|
Ui::PopupMenu *_trayIconMenuXEmbed = nullptr;
|
|
|
|
void updateIconCounters();
|
|
|
|
#ifndef TDESKTOP_DISABLE_DBUS_INTEGRATION
|
|
StatusNotifierItem *_sniTrayIcon = nullptr;
|
|
std::unique_ptr<QTemporaryFile> _trayIconFile = nullptr;
|
|
|
|
void setSNITrayIcon(int counter, bool muted);
|
|
void attachToSNITrayIcon();
|
|
#endif // !TDESKTOP_DISABLE_DBUS_INTEGRATION
|
|
|
|
};
|
|
|
|
} // namespace Platform
|