From b74dea86627c2614ccc0c38df5d323359a517ade Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 12 May 2017 18:27:19 +0300 Subject: [PATCH] Move logo images to Messenger. Set call panel icon. --- Telegram/Resources/art/logo_256.png | Bin 0 -> 21094 bytes ...{iconbig256.png => logo_256_no_margin.png} | Bin Telegram/Resources/qrc/telegram.qrc | 4 +-- .../SourceFiles/boxes/notifications_box.cpp | 5 +-- Telegram/SourceFiles/calls/calls_panel.cpp | 7 ++++ Telegram/SourceFiles/calls/calls_panel.h | 1 + Telegram/SourceFiles/mainwindow.cpp | 30 ++++++++--------- Telegram/SourceFiles/mainwindow.h | 2 -- Telegram/SourceFiles/messenger.cpp | 8 +++-- Telegram/SourceFiles/messenger.h | 8 +++++ .../platform/linux/main_window_linux.cpp | 18 ++++------ .../platform/linux/main_window_linux.h | 3 -- .../platform/linux/specific_linux.cpp | 2 +- .../platform/mac/main_window_mac.h | 3 +- .../platform/mac/main_window_mac.mm | 8 ++--- .../platform/win/main_window_win.cpp | 10 ++---- .../platform/win/main_window_win.h | 2 -- Telegram/SourceFiles/structs.cpp | 2 +- Telegram/SourceFiles/window/main_window.cpp | 31 ++++++++++++++++++ Telegram/SourceFiles/window/main_window.h | 7 ++++ .../window/notifications_manager_default.cpp | 15 ++++++--- .../window/notifications_manager_default.h | 4 +++ .../window/notifications_utilities.cpp | 4 +-- 23 files changed, 111 insertions(+), 63 deletions(-) create mode 100644 Telegram/Resources/art/logo_256.png rename Telegram/Resources/art/{iconbig256.png => logo_256_no_margin.png} (100%) diff --git a/Telegram/Resources/art/logo_256.png b/Telegram/Resources/art/logo_256.png new file mode 100644 index 0000000000000000000000000000000000000000..2e818f1299670e24f7daf775c9a3bda92d1a3fe0 GIT binary patch literal 21094 zcma%jWmHt(8}5M_x(7r+V(9LWW@w~K7z6}F1f)wEh6ZV+8!3@)ly0P@JC%@@7@9l3 z|GM}4{WNFRI_vDc-~H_8ecm`HN?TKz0GA3E004p)Dhj#)fQGt61F$hsKPIkU-vIy= zc%dMx@0E4X=9xu3;KBOf|8nKCHK_>H(o+_~)Cnl@A;hrKKiR9v+y*pW)LAW9=hiWC z!li%8M7W8I4O-{!>aj3?{G@{MiplB|q<{hjVRC&H+P5uQM=Jhug-)t&YHF%3Z6$jp z-RS&jZoj6Xq2bK=x$lK;8@k`s$wp5E5uNn^$3-mOw+q0JOUg@>9I!+~=ria7&H#R2 zM+ad3f?Wf^EaWR!R}CSnCAYk+kvySeRra%Y=% zjl~}JUU87e31cnJ_C|7A5aR{0VF#nb&>|POU!ZjchvKNv=)Nne7T7+AFRI6Asj;(+ z?A81_&|dpGT~{K=N`(JvVLDR8?+v_=^s|9Ta>XCFlN#qM{5&*RmS96sonZ5i5{c!u z!{v#;Ie2n*<6_SzYVwVvnkrvzI#d*XwbhZ==yh)1-(O^ZeB>kK za|~pul~Kd7rA$aEGX5E5%lVmlI$Z1Ajzs3{->E;JuG(F7@Bx9P#Go9`4Bfy#lAUWU=p$2T(oKI{D#cueZ0%w4tJk2k0P@@uN#6c zFLrdHDw6{A8Y|>W&k*yR7%qgm=+H{JS1d858xQJhIfkUil1TT>3hUfq>a`ZLSH&;) zU2+^wC_4ohT5b2gkEX7CuseI=x%_OeZTA&(`!@nz7zI_KRV7=n3~3}MR2bOAEgy+V zk@B!He1oiu*Xp?ZttW_Ow#Kco^7VpZ9PlTsQ4M?X=~tG})_ zcCv5T@b94LI9ZfPDt<{bDMTN`1r0U*8ThYn5Kl%yL{K|~ctKyp<7$*ntM%m2Nxkh~ z58YqOdq!cJE!@yYDg%-Yf*q&V9%qkd?Xz|P+fRe{$G%4vhECKysCQ@+gYdwzCSm+y z^D-BIKd(_eo<65lJ@VdYctzw;)M*X8giT#$Rvk8PfjVa0_bQHcHn}V0hUGHa@me#W zl?V(*Vx?Ji8m~j;0xkcπw!Ega6zBhx#P@3mdMx1}QfL5FTe1XaYq3(t?gM8-;8{0XGIj>l@Z(Tu-_$YP)% zKq+gpa((1$*m3JAO||0MM%?^dv&m@XLj>3S+&qks?sNX98i@V z6f4?%`r30Q0~vV!`BcsEh7uc3?(9$_7SKgE@8T0+y*#A4nYDg&y<;Vk!QJ4sy9^!& zB#BV~u{gYayoxuj3OvSop%cQ8S!)#hSWg8K)3pwQs^}#8?Su_r(cTP?Ga=h|TZl|g z%xtmXP_o_Ds0tST}$t+!qd?Uk3cfBWf`5KfVpic^O(7H1+izP=?zn-ZJt~YnTLgb02_d_QN2Q{J>F~02A)(&SBX?Cnp^3e^xfCtO-^^A=X(vu z`5wieziwsrzlt?1PcK!d7-(1)U7`ROcI-QVW~e|-b4 zw(oHq&@s78o4##OtN3B%wl2+D z)l&xv&wk$4qrcN#hGqh!Tcq#}b#rDx03F)1vNX1KSA*5D;P=N=#?Ig zOEtecyZLQAF8x_e|HqftMajK@{Zlh2+5Aa<$MtPx?tO?Bp8VFNfSnW%T`Vp;JpsY5 zGoB7EpNE%*V+a1Hl$^rZow#q%IsZh@>-g8q&gRJYt*>QPww|>aykBhkcl(tJE=uUX zJHKifcot+fNbP$|BWe&UB47{
J@%Y5aJ2Rbe*uEOTlY)JzvBK}x1%TiG#6~~RG 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../fonts/OpenSans-Semibold.ttf ../art/bg.jpg ../art/bg_initial.jpg - ../art/icon256.png - ../art/iconbig256.png + ../art/logo_256.png + ../art/logo_256_no_margin.png ../art/sunrise.jpg diff --git a/Telegram/SourceFiles/boxes/notifications_box.cpp b/Telegram/SourceFiles/boxes/notifications_box.cpp index 46051c53e..fcbf0586b 100644 --- a/Telegram/SourceFiles/boxes/notifications_box.cpp +++ b/Telegram/SourceFiles/boxes/notifications_box.cpp @@ -26,10 +26,11 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org #include "styles/style_boxes.h" #include "styles/style_dialogs.h" #include "styles/style_window.h" -#include "mainwindow.h" +#include "messenger.h" #include "storage/localstorage.h" #include "auth_session.h" #include "window/notifications_manager.h" +#include "platform/platform_specific.h" namespace { @@ -259,7 +260,7 @@ void NotificationsBox::prepareNotificationSampleSmall() { void NotificationsBox::prepareNotificationSampleUserpic() { if (_notificationSampleUserpic.isNull()) { - _notificationSampleUserpic = App::pixmapFromImageInPlace(App::wnd()->iconLarge().scaled(st::notifyPhotoSize * cIntRetinaFactor(), st::notifyPhotoSize * cIntRetinaFactor(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); + _notificationSampleUserpic = App::pixmapFromImageInPlace(Messenger::Instance().logoNoMargin().scaled(st::notifyPhotoSize * cIntRetinaFactor(), st::notifyPhotoSize * cIntRetinaFactor(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); _notificationSampleUserpic.setDevicePixelRatio(cRetinaFactor()); } } diff --git a/Telegram/SourceFiles/calls/calls_panel.cpp b/Telegram/SourceFiles/calls/calls_panel.cpp index d47223b9c..a8a09da95 100644 --- a/Telegram/SourceFiles/calls/calls_panel.cpp +++ b/Telegram/SourceFiles/calls/calls_panel.cpp @@ -29,12 +29,14 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org #include "ui/effects/ripple_animation.h" #include "ui/effects/widget_fade_wrap.h" #include "messenger.h" +#include "mainwindow.h" #include "lang.h" #include "auth_session.h" #include "apiwrap.h" #include "observer_peer.h" #include "platform/platform_specific.h" #include "base/task_queue.h" +#include "window/main_window.h" namespace Calls { namespace { @@ -248,6 +250,7 @@ Panel::Panel(gsl::not_null call) , _name(this, st::callName) , _status(this, st::callStatus) { setMouseTracking(true); + setWindowIcon(Window::CreateIcon()); initControls(); initLayout(); showAndActivate(); @@ -641,6 +644,10 @@ void Panel::paintEvent(QPaintEvent *e) { } } +void Panel::closeEvent(QCloseEvent *e) { + _call->hangup(); +} + void Panel::mousePressEvent(QMouseEvent *e) { auto dragArea = myrtlrect(_padding.left(), _padding.top(), st::callWidth, st::callWidth); if (e->button() == Qt::LeftButton) { diff --git a/Telegram/SourceFiles/calls/calls_panel.h b/Telegram/SourceFiles/calls/calls_panel.h index ac99b7b11..5b7a52541 100644 --- a/Telegram/SourceFiles/calls/calls_panel.h +++ b/Telegram/SourceFiles/calls/calls_panel.h @@ -44,6 +44,7 @@ public: protected: void paintEvent(QPaintEvent *e) override; + void closeEvent(QCloseEvent *e) override; void resizeEvent(QResizeEvent *e) override; void mousePressEvent(QMouseEvent *e) override; void mouseReleaseEvent(QMouseEvent *e) override; diff --git a/Telegram/SourceFiles/mainwindow.cpp b/Telegram/SourceFiles/mainwindow.cpp index 2cf83d4c6..0536632f7 100644 --- a/Telegram/SourceFiles/mainwindow.cpp +++ b/Telegram/SourceFiles/mainwindow.cpp @@ -94,12 +94,15 @@ void ConnectingWidget::onReconnect() { } MainWindow::MainWindow() { - icon16 = icon256.scaledToWidth(16, Qt::SmoothTransformation); - icon32 = icon256.scaledToWidth(32, Qt::SmoothTransformation); - icon64 = icon256.scaledToWidth(64, Qt::SmoothTransformation); - iconbig16 = iconbig256.scaledToWidth(16, Qt::SmoothTransformation); - iconbig32 = iconbig256.scaledToWidth(32, Qt::SmoothTransformation); - iconbig64 = iconbig256.scaledToWidth(64, Qt::SmoothTransformation); + auto logo = Messenger::Instance().logo(); + icon16 = logo.scaledToWidth(16, Qt::SmoothTransformation); + icon32 = logo.scaledToWidth(32, Qt::SmoothTransformation); + icon64 = logo.scaledToWidth(64, Qt::SmoothTransformation); + + auto logoNoMargin = Messenger::Instance().logoNoMargin(); + iconbig16 = logoNoMargin.scaledToWidth(16, Qt::SmoothTransformation); + iconbig32 = logoNoMargin.scaledToWidth(32, Qt::SmoothTransformation); + iconbig64 = logoNoMargin.scaledToWidth(64, Qt::SmoothTransformation); resize(st::windowDefaultWidth, st::windowDefaultHeight); @@ -904,10 +907,6 @@ void MainWindow::app_activateClickHandler(ClickHandlerPtr handler, Qt::MouseButt handler->onClick(button); } -QImage MainWindow::iconLarge() const { - return iconbig256; -} - void MainWindow::placeSmallCounter(QImage &img, int size, int count, style::color bg, const QPoint &shift, style::color color) { QPainter p(&img); @@ -1040,15 +1039,12 @@ MainWindow::~MainWindow() { delete trayIconMenu; } -PreLaunchWindow *PreLaunchWindowInstance = 0; +PreLaunchWindow *PreLaunchWindowInstance = nullptr; -PreLaunchWindow::PreLaunchWindow(QString title) : TWidget(0) { +PreLaunchWindow::PreLaunchWindow(QString title) { Fonts::Start(); - QIcon icon(App::pixmapFromImageInPlace(QImage(cPlatform() == dbipMac ? qsl(":/gui/art/iconbig256.png") : qsl(":/gui/art/icon256.png")))); - if (cPlatform() == dbipLinux32 || cPlatform() == dbipLinux64) { - icon = QIcon::fromTheme("telegram", icon); - } + auto icon = Window::CreateIcon(); setWindowIcon(icon); setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint); @@ -1084,7 +1080,7 @@ PreLaunchWindow *PreLaunchWindow::instance() { PreLaunchWindow::~PreLaunchWindow() { if (PreLaunchWindowInstance == this) { - PreLaunchWindowInstance = 0; + PreLaunchWindowInstance = nullptr; } } diff --git a/Telegram/SourceFiles/mainwindow.h b/Telegram/SourceFiles/mainwindow.h index 736d987c2..0cded7d69 100644 --- a/Telegram/SourceFiles/mainwindow.h +++ b/Telegram/SourceFiles/mainwindow.h @@ -123,8 +123,6 @@ public: TempDirState localStorageState(); void tempDirDelete(int task); - QImage iconLarge() const; - void sendPaths(); void changingMsgId(HistoryItem *row, MsgId newId) override; diff --git a/Telegram/SourceFiles/messenger.cpp b/Telegram/SourceFiles/messenger.cpp index 3aa5d9403..ff4899d6d 100644 --- a/Telegram/SourceFiles/messenger.cpp +++ b/Telegram/SourceFiles/messenger.cpp @@ -66,8 +66,12 @@ struct Messenger::Private { Messenger::Messenger() : QObject() , _private(std::make_unique()) -, _audio(std::make_unique()) { - t_assert(SingleInstance == nullptr); +, _audio(std::make_unique()) +, _logo(Window::LoadLogo()) +, _logoNoMargin(Window::LoadLogoNoMargin()) { + Expects(!_logo.isNull()); + Expects(!_logoNoMargin.isNull()); + Expects(SingleInstance == nullptr); SingleInstance = this; Fonts::Start(); diff --git a/Telegram/SourceFiles/messenger.h b/Telegram/SourceFiles/messenger.h index 9d52d273a..eaafa9a0a 100644 --- a/Telegram/SourceFiles/messenger.h +++ b/Telegram/SourceFiles/messenger.h @@ -60,6 +60,12 @@ public: MainWindow *mainWindow(); QPoint getPointForCallPanelCenter() const; + QImage logo() const { + return _logo; + } + QImage logoNoMargin() const { + return _logoNoMargin; + } static Messenger *InstancePointer(); static Messenger &Instance() { @@ -192,5 +198,7 @@ private: base::Observable _passcodedChanged; std::unique_ptr _audio; + QImage _logo; + QImage _logoNoMargin; }; diff --git a/Telegram/SourceFiles/platform/linux/main_window_linux.cpp b/Telegram/SourceFiles/platform/linux/main_window_linux.cpp index 59a03792e..4555358b0 100644 --- a/Telegram/SourceFiles/platform/linux/main_window_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/main_window_linux.cpp @@ -25,6 +25,7 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org #include "platform/linux/linux_desktop_environment.h" #include "platform/platform_notifications_manager.h" #include "mainwindow.h" +#include "messenger.h" #include "application.h" #include "lang.h" #include "storage/localstorage.h" @@ -80,7 +81,7 @@ QImage _trayIconImageGen() { bool muted = App::histories().unreadOnlyMuted(); if (_trayIconImage.isNull() || _trayIconImage.width() != _trayIconSize || muted != _trayIconMuted || counterSlice != _trayIconCount) { if (_trayIconImageBack.isNull() || _trayIconImageBack.width() != _trayIconSize) { - _trayIconImageBack = App::wnd()->iconLarge().scaled(_trayIconSize, _trayIconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + _trayIconImageBack = Messenger::Instance().logo().scaled(_trayIconSize, _trayIconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); _trayIconImageBack = _trayIconImageBack.convertToFormat(QImage::Format_ARGB32); int w = _trayIconImageBack.width(), h = _trayIconImageBack.height(), perline = _trayIconImageBack.bytesPerLine(); uchar *bytes = _trayIconImageBack.bits(); @@ -182,10 +183,7 @@ UnityLauncherEntry *_psUnityLauncherEntry = nullptr; } // namespace -MainWindow::MainWindow() -: icon256(qsl(":/gui/art/icon256.png")) -, iconbig256(icon256) -, wndIcon(QIcon::fromTheme("telegram", QIcon(QPixmap::fromImage(icon256, Qt::ColorOnly)))) { +MainWindow::MainWindow() { connect(&_psCheckStatusIconTimer, SIGNAL(timeout()), this, SLOT(psStatusIconCheck())); _psCheckStatusIconTimer.setSingleShot(false); @@ -193,10 +191,6 @@ MainWindow::MainWindow() _psUpdateIndicatorTimer.setSingleShot(true); } -void MainWindow::initHook() { - setWindowIcon(wndIcon); -} - bool MainWindow::hasTrayIcon() const { return trayIcon || ((useAppIndicator || (useStatusIcon && trayIconChecked)) && (Global::WorkMode().value() != dbiwmWindowOnly)); } @@ -252,7 +246,7 @@ void MainWindow::psSetupTrayIcon() { QByteArray path = QFile::encodeName(iconFile.absoluteFilePath()); icon = QIcon(path.constData()); } else { - icon = QIcon(QPixmap::fromImage(App::wnd()->iconLarge(), Qt::ColorOnly)); + icon = Window::CreateIcon(); } trayIcon->setIcon(icon); @@ -323,9 +317,9 @@ void MainWindow::unreadCounterChangedHook() { } void MainWindow::updateIconCounters() { - setWindowIcon(wndIcon); + updateWindowIcon(); - int32 counter = App::histories().unreadBadge(); + auto counter = App::histories().unreadBadge(); #ifndef TDESKTOP_DISABLE_UNITY_INTEGRATION if (_psUnityLauncherEntry) { diff --git a/Telegram/SourceFiles/platform/linux/main_window_linux.h b/Telegram/SourceFiles/platform/linux/main_window_linux.h index d23f6ac07..10859223e 100644 --- a/Telegram/SourceFiles/platform/linux/main_window_linux.h +++ b/Telegram/SourceFiles/platform/linux/main_window_linux.h @@ -51,7 +51,6 @@ public slots: void psUpdateIndicator(); protected: - void initHook() override; void unreadCounterChangedHook() override; bool hasTrayIcon() const override; @@ -60,8 +59,6 @@ protected: QSystemTrayIcon *trayIcon = nullptr; QMenu *trayIconMenu = nullptr; - QImage icon256, iconbig256; - QIcon wndIcon; void psTrayMenuUpdated(); void psSetupTrayIcon(); diff --git a/Telegram/SourceFiles/platform/linux/specific_linux.cpp b/Telegram/SourceFiles/platform/linux/specific_linux.cpp index 3f2192f5c..41531aacb 100644 --- a/Telegram/SourceFiles/platform/linux/specific_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/specific_linux.cpp @@ -456,7 +456,7 @@ void psRegisterCustomScheme() { } } if (!iconExists) { - if (QFile(qsl(":/gui/art/icon256.png")).copy(icon)) { + if (QFile(qsl(":/gui/art/logo_256.png")).copy(icon)) { DEBUG_LOG(("App Info: Icon copied to 'tdata'")); } } diff --git a/Telegram/SourceFiles/platform/mac/main_window_mac.h b/Telegram/SourceFiles/platform/mac/main_window_mac.h index 911a19fa8..6470efeef 100644 --- a/Telegram/SourceFiles/platform/mac/main_window_mac.h +++ b/Telegram/SourceFiles/platform/mac/main_window_mac.h @@ -68,6 +68,7 @@ protected: void stateChangedHook(Qt::WindowState state) override; void initHook() override; + void updateWindowIcon() override; void titleVisibilityChangedHook() override; void unreadCounterChangedHook() override; @@ -82,8 +83,6 @@ protected: QSystemTrayIcon *trayIcon = nullptr; QMenu *trayIconMenu = nullptr; - QImage icon256, iconbig256; - QIcon wndIcon; QImage trayImg, trayImgSel; diff --git a/Telegram/SourceFiles/platform/mac/main_window_mac.mm b/Telegram/SourceFiles/platform/mac/main_window_mac.mm index eff6609be..748222a99 100644 --- a/Telegram/SourceFiles/platform/mac/main_window_mac.mm +++ b/Telegram/SourceFiles/platform/mac/main_window_mac.mm @@ -215,10 +215,7 @@ MainWindow::Private::~Private() { } MainWindow::MainWindow() -: icon256(qsl(":/gui/art/icon256.png")) -, iconbig256(qsl(":/gui/art/iconbig256.png")) -, wndIcon(QPixmap::fromImage(iconbig256, Qt::ColorOnly)) -, _private(std::make_unique(this)) { +: _private(std::make_unique(this)) { trayImg = st::macTrayIcon.instance(QColor(0, 0, 0, 180), dbisOne); trayImgSel = st::macTrayIcon.instance(QColor(255, 255, 255), dbisOne); @@ -255,6 +252,9 @@ void MainWindow::initHook() { } } +void MainWindow::updateWindowIcon() { +} + void MainWindow::titleVisibilityChangedHook() { updateTitleCounter(); } diff --git a/Telegram/SourceFiles/platform/win/main_window_win.cpp b/Telegram/SourceFiles/platform/win/main_window_win.cpp index 56206f6f2..6d1bec78b 100644 --- a/Telegram/SourceFiles/platform/win/main_window_win.cpp +++ b/Telegram/SourceFiles/platform/win/main_window_win.cpp @@ -25,6 +25,7 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org #include "platform/win/windows_dlls.h" #include "window/notifications_manager.h" #include "mainwindow.h" +#include "messenger.h" #include "application.h" #include "lang.h" #include "storage/localstorage.h" @@ -610,10 +611,7 @@ bool handleSessionNotification = false; UINT MainWindow::_taskbarCreatedMsgId = 0; MainWindow::MainWindow() -: icon256(qsl(":/gui/art/icon256.png")) -, iconbig256(qsl(":/gui/art/iconbig256.png")) -, wndIcon(QPixmap::fromImage(icon256, Qt::ColorOnly)) -, ps_tbHider_hWnd(createTaskbarHider()) { +: ps_tbHider_hWnd(createTaskbarHider()) { if (!_taskbarCreatedMsgId) { _taskbarCreatedMsgId = RegisterWindowMessage(L"TaskbarButtonCreated"); } @@ -682,7 +680,7 @@ void MainWindow::psSetupTrayIcon() { if (!trayIcon) { trayIcon = new QSystemTrayIcon(this); - QIcon icon(QPixmap::fromImage(App::wnd()->iconLarge(), Qt::ColorOnly)); + auto icon = QIcon(App::pixmapFromImageInPlace(Messenger::Instance().logoNoMargin())); trayIcon->setIcon(icon); trayIcon->setToolTip(str_const_toString(AppName)); @@ -796,8 +794,6 @@ void MainWindow::initHook() { } psInitSysMenu(); - - setWindowIcon(wndIcon); } Q_DECLARE_METATYPE(QMargins); diff --git a/Telegram/SourceFiles/platform/win/main_window_win.h b/Telegram/SourceFiles/platform/win/main_window_win.h index d718c6ed8..e72c20f3c 100644 --- a/Telegram/SourceFiles/platform/win/main_window_win.h +++ b/Telegram/SourceFiles/platform/win/main_window_win.h @@ -92,8 +92,6 @@ protected: QSystemTrayIcon *trayIcon = nullptr; Ui::PopupMenu *trayIconMenu = nullptr; - QImage icon256, iconbig256; - QIcon wndIcon; void psTrayMenuUpdated(); void psSetupTrayIcon(); diff --git a/Telegram/SourceFiles/structs.cpp b/Telegram/SourceFiles/structs.cpp index 3f45e9606..21813a1d5 100644 --- a/Telegram/SourceFiles/structs.cpp +++ b/Telegram/SourceFiles/structs.cpp @@ -418,7 +418,7 @@ void UserData::setPhoto(const MTPUserProfilePhoto &p) { // see Local::readPeer a newPhotoId = 0; if (id == ServiceUserId) { if (!_userpic) { - newPhoto = ImagePtr(App::pixmapFromImageInPlace(App::wnd()->iconLarge().scaledToWidth(160, Qt::SmoothTransformation)), "PNG"); + newPhoto = ImagePtr(App::pixmapFromImageInPlace(Messenger::Instance().logoNoMargin().scaledToWidth(160, Qt::SmoothTransformation)), "PNG"); } } else { newPhoto = ImagePtr(); diff --git a/Telegram/SourceFiles/window/main_window.cpp b/Telegram/SourceFiles/window/main_window.cpp index c75ed9003..154a71fc1 100644 --- a/Telegram/SourceFiles/window/main_window.cpp +++ b/Telegram/SourceFiles/window/main_window.cpp @@ -25,13 +25,39 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org #include "platform/platform_window_title.h" #include "window/themes/window_theme.h" #include "mediaview.h" +#include "messenger.h" #include "mainwindow.h" namespace Window { +QImage LoadLogo() { + return QImage(qsl(":/gui/art/logo_256.png")); +} + +QImage LoadLogoNoMargin() { + return QImage(qsl(":/gui/art/logo_256_no_margin.png")); +} + +QIcon CreateOfficialIcon() { + auto useNoMarginLogo = (cPlatform() == dbipMac); + if (auto messenger = Messenger::InstancePointer()) { + return QIcon(App::pixmapFromImageInPlace(useNoMarginLogo ? messenger->logoNoMargin() : messenger->logo())); + } + return QIcon(App::pixmapFromImageInPlace(useNoMarginLogo ? LoadLogoNoMargin() : LoadLogo())); +} + +QIcon CreateIcon() { + auto result = CreateOfficialIcon(); + if (cPlatform() == dbipLinux32 || cPlatform() == dbipLinux64) { + return QIcon::fromTheme("telegram", result); + } + return result; +} + MainWindow::MainWindow() : QWidget() , _positionUpdatedTimer(this) , _body(this) +, _icon(CreateIcon()) , _titleText(qsl("Telegram")) , _isActiveTimer(this) { subscribe(Theme::Background(), [this](const Theme::BackgroundUpdate &data) { @@ -156,8 +182,13 @@ void MainWindow::createMediaView() { _mediaView.create(nullptr); } +void MainWindow::updateWindowIcon() { + setWindowIcon(_icon); +} + void MainWindow::init() { initHook(); + updateWindowIcon(); _positionUpdatedTimer->setSingleShot(true); connect(_positionUpdatedTimer, SIGNAL(timeout()), this, SLOT(savePositionByTimer())); diff --git a/Telegram/SourceFiles/window/main_window.h b/Telegram/SourceFiles/window/main_window.h index b7f30e798..607cf5bb8 100644 --- a/Telegram/SourceFiles/window/main_window.h +++ b/Telegram/SourceFiles/window/main_window.h @@ -28,6 +28,10 @@ namespace Window { class TitleWidget; +QImage LoadLogo(); +QImage LoadLogoNoMargin(); +QIcon CreateIcon(); + class MainWindow : public QWidget, protected base::Subscriber { Q_OBJECT @@ -107,6 +111,8 @@ protected: virtual void clearWidgetsHook() { } + virtual void updateWindowIcon(); + virtual void stateChangedHook(Qt::WindowState state) { } @@ -164,6 +170,7 @@ private: object_ptr _body; object_ptr _rightColumn = { nullptr }; + QIcon _icon; QString _titleText; object_ptr _isActiveTimer; diff --git a/Telegram/SourceFiles/window/notifications_manager_default.cpp b/Telegram/SourceFiles/window/notifications_manager_default.cpp index 34736afbb..51a59b497 100644 --- a/Telegram/SourceFiles/window/notifications_manager_default.cpp +++ b/Telegram/SourceFiles/window/notifications_manager_default.cpp @@ -22,7 +22,7 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org #include "platform/platform_notifications_manager.h" #include "application.h" -#include "mainwindow.h" +#include "messenger.h" #include "lang.h" #include "ui/widgets/buttons.h" #include "ui/widgets/input_fields.h" @@ -33,6 +33,7 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org #include "styles/style_window.h" #include "storage/file_download.h" #include "auth_session.h" +#include "platform/platform_specific.h" namespace Window { namespace Notifications { @@ -75,6 +76,14 @@ Manager::Manager(System *system) : Notifications::Manager(system) { _inputCheckTimer.setTimeoutHandler([this] { checkLastInput(); }); } +QPixmap Manager::hiddenUserpicPlaceholder() const { + if (_hiddenUserpicPlaceholder.isNull()) { + _hiddenUserpicPlaceholder = App::pixmapFromImageInPlace(Messenger::Instance().logoNoMargin().scaled(st::notifyPhotoSize, st::notifyPhotoSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); + _hiddenUserpicPlaceholder.setDevicePixelRatio(cRetinaFactor()); + } + return _hiddenUserpicPlaceholder; +} + bool Manager::hasReplyingNotification() const { for_const (auto ¬ification, _notifications) { if (notification->isReplying()) { @@ -625,9 +634,7 @@ void Notification::updateNotifyDisplay() { _history->peer->loadUserpic(true, true); _history->peer->paintUserpicLeft(p, st::notifyPhotoPos.x(), st::notifyPhotoPos.y(), width(), st::notifyPhotoSize); } else { - static QPixmap icon = App::pixmapFromImageInPlace(App::wnd()->iconLarge().scaled(st::notifyPhotoSize, st::notifyPhotoSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); - icon.setDevicePixelRatio(cRetinaFactor()); - p.drawPixmap(st::notifyPhotoPos.x(), st::notifyPhotoPos.y(), icon); + p.drawPixmap(st::notifyPhotoPos.x(), st::notifyPhotoPos.y(), manager()->hiddenUserpicPlaceholder()); } int32 itemWidth = w - st::notifyPhotoPos.x() - st::notifyPhotoSize - st::notifyTextLeft - st::notifyClosePos.x() - st::notifyClose.width; diff --git a/Telegram/SourceFiles/window/notifications_manager_default.h b/Telegram/SourceFiles/window/notifications_manager_default.h index e8666b7a3..800b7c139 100644 --- a/Telegram/SourceFiles/window/notifications_manager_default.h +++ b/Telegram/SourceFiles/window/notifications_manager_default.h @@ -61,6 +61,8 @@ private: using Notification = internal::Notification; using HideAllButton = internal::HideAllButton; + QPixmap hiddenUserpicPlaceholder() const; + void doUpdateAll() override; void doShowNotification(HistoryItem *item, int forwardedCount) override; void doClearAll() override; @@ -111,6 +113,8 @@ private: Animation _demoMasterOpacity; + mutable QPixmap _hiddenUserpicPlaceholder; + }; namespace internal { diff --git a/Telegram/SourceFiles/window/notifications_utilities.cpp b/Telegram/SourceFiles/window/notifications_utilities.cpp index bf91b2190..9180d551a 100644 --- a/Telegram/SourceFiles/window/notifications_utilities.cpp +++ b/Telegram/SourceFiles/window/notifications_utilities.cpp @@ -21,7 +21,7 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org #include "window/notifications_utilities.h" #include "platform/platform_specific.h" -#include "mainwindow.h" +#include "messenger.h" #include "styles/style_window.h" namespace Window { @@ -62,7 +62,7 @@ QString CachedUserpics::get(const StorageKey &key, PeerData *peer) { peer->saveUserpic(v.path, st::notifyMacPhotoSize); } } else { - App::wnd()->iconLarge().save(v.path, "PNG"); + Messenger::Instance().logoNoMargin().save(v.path, "PNG"); } i = _images.insert(key, v); _someSavedFlag = true;