mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2026-07-28 08:22:31 +00:00
Merge tag 'v5.13.1' into dev
This commit is contained in:
@@ -484,23 +484,45 @@ void InstallLauncher() {
|
||||
const auto icons = QStandardPaths::writableLocation(
|
||||
QStandardPaths::GenericDataLocation) + u"/icons/"_q;
|
||||
|
||||
if (!QDir(icons).exists()) QDir().mkpath(icons);
|
||||
const auto appIcons = icons + u"/hicolor/256x256/apps/"_q;
|
||||
if (!QDir(appIcons).exists()) QDir().mkpath(appIcons);
|
||||
|
||||
const auto icon = icons + base::IconName() + u".png"_q;
|
||||
const auto icon = appIcons + ApplicationIconName() + u".png"_q;
|
||||
QFile::remove(icon);
|
||||
QFile::remove(icons + u"telegram.png"_q);
|
||||
if (QFile::copy(u":/gui/art/logo_256.png"_q, icon)) {
|
||||
DEBUG_LOG(("App Info: Icon copied to '%1'").arg(icon));
|
||||
}
|
||||
|
||||
const auto symbolicIcons = icons + u"/hicolor/symbolic/apps/"_q;
|
||||
if (!QDir().exists(symbolicIcons)) QDir().mkpath(symbolicIcons);
|
||||
|
||||
const auto monochromeIcons = {
|
||||
QString(),
|
||||
u"attention"_q,
|
||||
u"mute"_q,
|
||||
};
|
||||
|
||||
for (const auto &icon : monochromeIcons) {
|
||||
QFile::copy(
|
||||
u":/gui/icons/tray/monochrome%1.svg"_q.arg(
|
||||
!icon.isEmpty() ? u"_"_q + icon : QString()),
|
||||
symbolicIcons
|
||||
+ ApplicationIconName()
|
||||
+ (!icon.isEmpty() ? u"-"_q + icon : QString())
|
||||
+ u"-symbolic.svg"_q);
|
||||
}
|
||||
|
||||
QProcess::execute("update-desktop-database", {
|
||||
applicationsPath
|
||||
});
|
||||
}
|
||||
|
||||
[[nodiscard]] QByteArray HashForSocketPath(const QByteArray &data) {
|
||||
[[nodiscard]] QByteArray HashForSocketPath() {
|
||||
constexpr auto kHashForSocketPathLength = 24;
|
||||
|
||||
const auto binary = openssl::Sha256(bytes::make_span(data));
|
||||
const auto binary = openssl::Sha256(
|
||||
bytes::make_span(Core::Launcher::Instance().instanceHash()));
|
||||
const auto base64 = QByteArray(
|
||||
reinterpret_cast<const char*>(binary.data()),
|
||||
binary.size()).toBase64(QByteArray::Base64UrlEncoding);
|
||||
@@ -656,10 +678,6 @@ int psFixPrevious() {
|
||||
namespace Platform {
|
||||
|
||||
void start() {
|
||||
const auto d = QFile::encodeName(QDir(cWorkingDir()).absolutePath());
|
||||
char h[33] = { 0 };
|
||||
hashMd5Hex(d.constData(), d.size(), h);
|
||||
|
||||
QGuiApplication::setDesktopFileName([&] {
|
||||
if (KSandbox::isFlatpak()) {
|
||||
return qEnvironmentVariable("FLATPAK_ID");
|
||||
@@ -672,18 +690,8 @@ void start() {
|
||||
}
|
||||
|
||||
if (!Core::UpdaterDisabled()) {
|
||||
QByteArray md5Hash(h);
|
||||
if (!Core::Launcher::Instance().customWorkingDir()) {
|
||||
const auto exePath = QFile::encodeName(
|
||||
cExeDir() + cExeName());
|
||||
|
||||
hashMd5Hex(
|
||||
exePath.constData(),
|
||||
exePath.size(),
|
||||
md5Hash.data());
|
||||
}
|
||||
|
||||
return u"com.ayugram.desktop._%1"_q.arg(md5Hash.constData());
|
||||
return u"com.ayugram.desktop._%1"_q.arg(
|
||||
Core::Launcher::Instance().instanceHash().constData());
|
||||
}
|
||||
|
||||
return u"com.ayugram.desktop"_q;
|
||||
@@ -697,14 +705,16 @@ void start() {
|
||||
}
|
||||
|
||||
qputenv("PULSE_PROP_application.name", AppName.utf8());
|
||||
qputenv("PULSE_PROP_application.icon_name", base::IconName().toLatin1());
|
||||
qputenv(
|
||||
"PULSE_PROP_application.icon_name",
|
||||
ApplicationIconName().toUtf8());
|
||||
|
||||
GLib::set_prgname(cExeName().toStdString());
|
||||
GLib::set_application_name(AppName.data());
|
||||
|
||||
Webview::WebKitGTK::SetSocketPath(u"%1/%2-%3-webview-%4"_q.arg(
|
||||
QDir::tempPath(),
|
||||
HashForSocketPath(d),
|
||||
HashForSocketPath(),
|
||||
u"TD"_q,//QCoreApplication::applicationName(), - make path smaller.
|
||||
u"%1"_q).toStdString());
|
||||
|
||||
@@ -768,6 +778,14 @@ QImage DefaultApplicationIcon() {
|
||||
return Window::Logo();
|
||||
}
|
||||
|
||||
QString ApplicationIconName() {
|
||||
static const auto Result = KSandbox::isSnap()
|
||||
? u"snap.%1."_q.arg(qEnvironmentVariable("SNAP_INSTANCE_NAME"))
|
||||
: QGuiApplication::desktopFileName().remove(
|
||||
u"._"_q + Core::Launcher::Instance().instanceHash());
|
||||
return Result;
|
||||
}
|
||||
|
||||
namespace ThirdParty {
|
||||
|
||||
void start() {
|
||||
|
||||
Reference in New Issue
Block a user