Custom tray and taskbar icon
This commit is contained in:
parent
64266cd7f5
commit
1cf2a336b7
4 changed files with 51 additions and 12 deletions
|
|
@ -78,15 +78,28 @@ void FeedLangTestingKey(int key) {
|
||||||
|
|
||||||
MainWindow::MainWindow(not_null<Window::Controller*> controller)
|
MainWindow::MainWindow(not_null<Window::Controller*> controller)
|
||||||
: Platform::MainWindow(controller) {
|
: Platform::MainWindow(controller) {
|
||||||
auto logo = Core::App().logo();
|
QString iconFilename(cWorkingDir() + "tdata/icon.png");
|
||||||
icon16 = logo.scaledToWidth(16, Qt::SmoothTransformation);
|
auto iconImage = App::readImage(iconFilename, nullptr, false);
|
||||||
icon32 = logo.scaledToWidth(32, Qt::SmoothTransformation);
|
|
||||||
icon64 = logo.scaledToWidth(64, Qt::SmoothTransformation);
|
|
||||||
|
|
||||||
auto logoNoMargin = Core::App().logoNoMargin();
|
if (iconImage.isNull()) {
|
||||||
iconbig16 = logoNoMargin.scaledToWidth(16, Qt::SmoothTransformation);
|
auto logo = Core::App().logo();
|
||||||
iconbig32 = logoNoMargin.scaledToWidth(32, Qt::SmoothTransformation);
|
icon16 = logo.scaledToWidth(16, Qt::SmoothTransformation);
|
||||||
iconbig64 = logoNoMargin.scaledToWidth(64, Qt::SmoothTransformation);
|
icon32 = logo.scaledToWidth(32, Qt::SmoothTransformation);
|
||||||
|
icon64 = logo.scaledToWidth(64, Qt::SmoothTransformation);
|
||||||
|
|
||||||
|
auto logoNoMargin = Core::App().logoNoMargin();
|
||||||
|
iconbig16 = logoNoMargin.scaledToWidth(16, Qt::SmoothTransformation);
|
||||||
|
iconbig32 = logoNoMargin.scaledToWidth(32, Qt::SmoothTransformation);
|
||||||
|
iconbig64 = logoNoMargin.scaledToWidth(64, Qt::SmoothTransformation);
|
||||||
|
} else {
|
||||||
|
icon16 = iconImage.scaledToWidth(16, Qt::SmoothTransformation);
|
||||||
|
icon32 = iconImage.scaledToWidth(32, Qt::SmoothTransformation);
|
||||||
|
icon64 = iconImage.scaledToWidth(64, Qt::SmoothTransformation);
|
||||||
|
|
||||||
|
iconbig16 = iconImage.scaledToWidth(16, Qt::SmoothTransformation);
|
||||||
|
iconbig32 = iconImage.scaledToWidth(32, Qt::SmoothTransformation);
|
||||||
|
iconbig64 = iconImage.scaledToWidth(64, Qt::SmoothTransformation);
|
||||||
|
}
|
||||||
|
|
||||||
resize(st::windowDefaultWidth, st::windowDefaultHeight);
|
resize(st::windowDefaultWidth, st::windowDefaultHeight);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -143,7 +143,11 @@ QIcon TrayIconGen() {
|
||||||
.toImage();
|
.toImage();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
currentImageBack = Core::App().logo();
|
QString iconFilename(cWorkingDir() + "tdata/icon.png");
|
||||||
|
currentImageBack = App::readImage(iconFilename, nullptr, false);
|
||||||
|
if (currentImageBack.isNull()) {
|
||||||
|
currentImageBack = Core::App().logo();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentImageBack.size() != desiredSize) {
|
if (currentImageBack.size() != desiredSize) {
|
||||||
|
|
|
||||||
|
|
@ -563,9 +563,25 @@ void MainWindow::psTrayMenuUpdated() {
|
||||||
void MainWindow::psSetupTrayIcon() {
|
void MainWindow::psSetupTrayIcon() {
|
||||||
if (!trayIcon) {
|
if (!trayIcon) {
|
||||||
trayIcon = new QSystemTrayIcon(this);
|
trayIcon = new QSystemTrayIcon(this);
|
||||||
|
QIcon icon;
|
||||||
|
QString iconFilename(cWorkingDir() + "tdata/icon.png");
|
||||||
|
QString iconFilenameSelected(cWorkingDir() + "tdata/icon_selected.png");
|
||||||
|
|
||||||
QIcon icon(QPixmap::fromImage(psTrayIcon(), Qt::ColorOnly));
|
auto iconImage = App::readImage(iconFilename, nullptr, false);
|
||||||
icon.addPixmap(QPixmap::fromImage(psTrayIcon(true), Qt::ColorOnly), QIcon::Selected);
|
|
||||||
|
if (iconImage.isNull()) {
|
||||||
|
iconImage = psTrayIcon();
|
||||||
|
}
|
||||||
|
|
||||||
|
icon = QIcon(QPixmap::fromImage(iconImage, Qt::ColorOnly));
|
||||||
|
|
||||||
|
auto iconImageSelected = App::readImage(iconFilenameSelected, nullptr, false);
|
||||||
|
|
||||||
|
if (iconImageSelected.isNull()) {
|
||||||
|
iconImageSelected = psTrayIcon(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
icon.addPixmap(QPixmap::fromImage(iconImageSelected, Qt::ColorOnly), QIcon::Selected);
|
||||||
|
|
||||||
trayIcon->setIcon(icon);
|
trayIcon->setIcon(icon);
|
||||||
attachToTrayIcon(trayIcon);
|
attachToTrayIcon(trayIcon);
|
||||||
|
|
|
||||||
|
|
@ -684,8 +684,14 @@ void MainWindow::psTrayMenuUpdated() {
|
||||||
void MainWindow::psSetupTrayIcon() {
|
void MainWindow::psSetupTrayIcon() {
|
||||||
if (!trayIcon) {
|
if (!trayIcon) {
|
||||||
trayIcon = new QSystemTrayIcon(this);
|
trayIcon = new QSystemTrayIcon(this);
|
||||||
|
QString iconFilename(cWorkingDir() + "tdata/icon.png");
|
||||||
|
auto iconImage = App::readImage(iconFilename, nullptr, false);
|
||||||
|
|
||||||
auto icon = QIcon(App::pixmapFromImageInPlace(Core::App().logoNoMargin()));
|
if (iconImage.isNull()) {
|
||||||
|
iconImage = Core::App().logoNoMargin();
|
||||||
|
}
|
||||||
|
|
||||||
|
auto icon = QIcon(App::pixmapFromImageInPlace(std::move(iconImage)));
|
||||||
|
|
||||||
trayIcon->setIcon(icon);
|
trayIcon->setIcon(icon);
|
||||||
connect(trayIcon, SIGNAL(messageClicked()), this, SLOT(showFromTray()));
|
connect(trayIcon, SIGNAL(messageClicked()), this, SLOT(showFromTray()));
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue