[Branding] App name and logo

Featuring macOS icon contributed by gershik.
This commit is contained in:
Eric Kotato 2022-08-08 04:39:58 +03:00 committed by Eric Kotato
parent 89069acc84
commit 875e5bdc96
82 changed files with 918 additions and 156 deletions

View file

@ -1587,7 +1587,7 @@ PRIVATE
qrc/telegram/iv.qrc
qrc/telegram/telegram.qrc
qrc/telegram/sounds.qrc
winrc/Telegram.rc
winrc/Kotatogram.rc
winrc/Telegram.manifest
langs/lang.strings
langs/cloud_lang.strings
@ -1704,10 +1704,15 @@ else()
endif()
endif()
set(bundle_identifier "io.github.kotatogram")
if (LINUX AND DESKTOP_APP_USE_PACKAGED)
set(output_name "kotatogram-desktop")
else()
set(output_name "Kotatogram")
endif()
if (build_macstore)
set(bundle_identifier "org.telegram.desktop")
set(bundle_entitlements "Telegram Lite.entitlements")
set(output_name "Telegram Lite")
set_target_properties(Telegram PROPERTIES
XCODE_ATTRIBUTE_FRAMEWORK_SEARCH_PATHS ${libs_loc}/breakpad/src/client/mac/build/Release
)
@ -1721,17 +1726,7 @@ if (build_macstore)
COMMAND rm -rf $<TARGET_FILE_DIR:Telegram>/../Frameworks/Breakpad.framework/Resources/Inspector
)
else()
if (CMAKE_GENERATOR STREQUAL Xcode)
set(bundle_identifier "com.tdesktop.Telegram$<$<CONFIG:Debug>:Debug>")
else()
set(bundle_identifier "com.tdesktop.Telegram")
endif()
set(bundle_entitlements "Telegram.entitlements")
if (LINUX AND DESKTOP_APP_USE_PACKAGED)
set(output_name "telegram-desktop")
else()
set(output_name "Telegram")
endif()
endif()
if (CMAKE_GENERATOR STREQUAL Xcode)
@ -1743,7 +1738,7 @@ endif()
set_target_properties(Telegram PROPERTIES
OUTPUT_NAME ${output_name}
MACOSX_BUNDLE_GUI_IDENTIFIER ${bundle_identifier}
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Telegram.plist
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Telegram.plist.in
XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "${CMAKE_CURRENT_SOURCE_DIR}/Telegram/${bundle_entitlements}"
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER ${bundle_identifier}
XCODE_ATTRIBUTE_CURRENT_PROJECT_VERSION ${desktop_app_version_string}
@ -1770,13 +1765,13 @@ target_compile_definitions(Telegram
PRIVATE
TDESKTOP_API_ID=${TDESKTOP_API_ID}
TDESKTOP_API_HASH=${TDESKTOP_API_HASH}
G_LOG_DOMAIN="Telegram"
G_LOG_DOMAIN="Kotatogram"
)
if (APPLE
OR "${CMAKE_GENERATOR}" STREQUAL "Ninja Multi-Config"
OR NOT CMAKE_EXECUTABLE_SUFFIX STREQUAL ""
OR NOT "${output_name}" STREQUAL "Telegram")
OR NOT "${output_name}" STREQUAL "Kotatogram")
set(output_folder ${CMAKE_BINARY_DIR})
else()
set(output_folder ${CMAKE_BINARY_DIR}/bin)
@ -1832,6 +1827,11 @@ if (NOT DESKTOP_APP_DISABLE_AUTOUPDATE AND NOT build_macstore AND NOT build_wins
_other/updater.h
)
nice_target_sources(Updater ${res_loc}
PRIVATE
winrc/KotatogramUpdater.rc
)
set_target_properties(Updater PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${output_folder}
)
@ -1908,19 +1908,19 @@ endif()
if (LINUX AND DESKTOP_APP_USE_PACKAGED)
include(GNUInstallDirs)
configure_file("../lib/xdg/org.telegram.desktop.service" "${CMAKE_CURRENT_BINARY_DIR}/org.telegram.desktop.service" @ONLY)
configure_file("../lib/xdg/org.telegram.desktop.metainfo.xml" "${CMAKE_CURRENT_BINARY_DIR}/org.telegram.desktop.metainfo.xml" @ONLY)
generate_appdata_changelog(Telegram "${CMAKE_SOURCE_DIR}/changelog.txt" "${CMAKE_CURRENT_BINARY_DIR}/org.telegram.desktop.metainfo.xml")
configure_file("../lib/xdg/io.github.kotatogram.service" "${CMAKE_CURRENT_BINARY_DIR}/io.github.kotatogram.service" @ONLY)
configure_file("../lib/xdg/io.github.kotatogram.metainfo.xml" "${CMAKE_CURRENT_BINARY_DIR}/io.github.kotatogram.metainfo.xml" @ONLY)
#generate_appdata_changelog(Telegram "${CMAKE_SOURCE_DIR}/changelog.txt" "${CMAKE_CURRENT_BINARY_DIR}/io.github.kotatogram.metainfo.xml")
install(TARGETS Telegram RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}")
install(FILES "Resources/art/icon16.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/16x16/apps" RENAME "telegram.png")
install(FILES "Resources/art/icon32.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/32x32/apps" RENAME "telegram.png")
install(FILES "Resources/art/icon48.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/48x48/apps" RENAME "telegram.png")
install(FILES "Resources/art/icon64.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/64x64/apps" RENAME "telegram.png")
install(FILES "Resources/art/icon128.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/128x128/apps" RENAME "telegram.png")
install(FILES "Resources/art/icon256.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/256x256/apps" RENAME "telegram.png")
install(FILES "Resources/art/icon512.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/512x512/apps" RENAME "telegram.png")
install(FILES "Resources/icons/tray_monochrome.svg" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/symbolic/apps" RENAME "telegram-symbolic.svg")
install(FILES "../lib/xdg/org.telegram.desktop.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/org.telegram.desktop.service" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/dbus-1/services")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/org.telegram.desktop.metainfo.xml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/metainfo")
install(FILES "Resources/art/icon16.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/16x16/apps" RENAME "kotatogram.png")
install(FILES "Resources/art/icon32.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/32x32/apps" RENAME "kotatogram.png")
install(FILES "Resources/art/icon48.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/48x48/apps" RENAME "kotatogram.png")
install(FILES "Resources/art/icon64.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/64x64/apps" RENAME "kotatogram.png")
install(FILES "Resources/art/icon128.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/128x128/apps" RENAME "kotatogram.png")
install(FILES "Resources/art/icon256.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/256x256/apps" RENAME "kotatogram.png")
install(FILES "Resources/art/icon512.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/512x512/apps" RENAME "kotatogram.png")
install(FILES "Resources/icons/tray_monochrome.svg" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/symbolic/apps" RENAME "kotatogram-symbolic.svg")
install(FILES "../lib/xdg/io.github.kotatogram.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/io.github.kotatogram.service" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/dbus-1/services")
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/io.github.kotatogram.metainfo.xml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/metainfo")
endif()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 401 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 452 B

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 884 B

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -1,6 +1,127 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="plane" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<path d="M1.3311718,6.36592184 C5.3576954,4.67244493 8.04267511,3.5560013 9.38611094,3.01659096 C13.2218932,1.47646481 14.0189359,1.2089284 14.5384372,1.2 C14.6526967,1.19815119 14.9081723,1.22548649 15.0736587,1.35511219 C15.2133922,1.4645656 15.2518384,1.61242159 15.2702362,1.71619544 C15.288634,1.81996929 15.3115436,2.05636876 15.2933322,2.24108442 C15.0854698,4.34939964 14.1860526,9.46572464 13.7284802,11.8270738 C13.5348641,12.8262491 13.1536281,13.1612675 12.7845475,13.1940535 C11.9824498,13.265305 11.3733733,12.6823476 10.5965026,12.190753 C9.3808532,11.4215044 8.69408865,10.9426448 7.51409044,10.1920004 C6.15039834,9.32450079 7.03442319,8.84770795 7.81158733,8.06849502 C8.01497489,7.86457129 11.5490353,4.7615061 11.6174372,4.48000946 C11.625992,4.44480359 11.6339313,4.31357282 11.5531696,4.24427815 C11.472408,4.17498349 11.3532107,4.19867957 11.2671947,4.21752527 C11.1452695,4.24423848 9.20325394,5.48334063 5.44114787,7.93483171 C4.88991321,8.30022994 4.39062196,8.47826423 3.94327414,8.46893456 C3.45010907,8.45864936 2.50145729,8.19975808 1.79623221,7.97846422 C0.931244952,7.70703829 0.243770289,7.56353344 0.303633888,7.10256824 C0.334814555,6.86246904 0.677327192,6.61692024 1.3311718,6.36592184 Z" id="Path-3" fill="#FFFFFF"></path>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="16"
height="16"
viewBox="0 0 16 16"
version="1.1"
id="svg37"
sodipodi:docname="tray_monochrome.svg"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<sodipodi:namedview
id="namedview39"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
showgrid="false"
inkscape:zoom="5.6171875"
inkscape:cx="-11.571627"
inkscape:cy="14.598053"
inkscape:window-width="1600"
inkscape:window-height="877"
inkscape:window-x="-8"
inkscape:window-y="621"
inkscape:window-maximized="1"
inkscape:current-layer="svg37" />
<title
id="title2">Kotato Logo</title>
<defs
id="defs27">
<linearGradient
x1="460"
y1="0"
x2="460"
y2="920"
id="linearGradient-1"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(52,49)">
<stop
stop-color="#8D6BBF"
offset="0%"
id="stop4" />
<stop
stop-color="#8668B8"
offset="21.9907407%"
id="stop6" />
<stop
stop-color="#7662A6"
offset="44.5925926%"
id="stop8" />
<stop
stop-color="#625990"
offset="65.75%"
id="stop10" />
<stop
stop-color="#4D507B"
offset="83.4074074%"
id="stop12" />
<stop
stop-color="#3D496A"
offset="95.5092593%"
id="stop14" />
<stop
stop-color="#374664"
offset="100%"
id="stop16" />
</linearGradient>
<path
d="M 671,601 C 545.854,601 517.479,518 460,518 402.52,518 374.146,601 249,601 123.854,601 63,468 63,468 c 0,0 42.698,34 85,34 89.326,0 124.093,-98 225,-98 66.574,0 87,-142 87,-142 0,0 20.426,142 87,142 100.907,0 135.674,98 225,98 42.303,0 85,-34 85,-34 0,0 -60.854,133 -186,133"
id="path-2" />
<filter
x="-0.007556675"
y="-0.017699115"
width="1.0151134"
height="1.0442477"
filterUnits="objectBoundingBox"
id="filter-3">
<feOffset
dx="0"
dy="3"
in="SourceAlpha"
result="shadowOffsetOuter1"
id="feOffset20" />
<feGaussianBlur
stdDeviation="2.5"
in="shadowOffsetOuter1"
result="shadowBlurOuter1"
id="feGaussianBlur22" />
<feColorMatrix
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.188811189 0"
type="matrix"
in="shadowBlurOuter1"
id="feColorMatrix24" />
</filter>
</defs>
<g
id="Fill-1"
transform="matrix(0.02015113,0,0,0.02015113,-1.2695212,-1.2795961)"
style="fill:none;fill-rule:evenodd;stroke:none;stroke-width:1">
<use
fill="#e7d7ff"
fill-rule="evenodd"
xlink:href="#path-2"
id="use32"
inkscape:label="use32"
style="fill:#ffffff;fill-opacity:1" />
</g>
<metadata
id="metadata1271">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:title>Kotato Logo</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View file

@ -58,6 +58,6 @@
</qresource>
<qresource prefix="/misc">
<file alias="default_shortcuts-custom.json">../../default_shortcuts-custom.json</file>
<file alias="org.telegram.desktop.desktop">../../../../lib/xdg/org.telegram.desktop.desktop</file>
<file alias="io.github.kotatogram.desktop">../../../../lib/xdg/io.github.kotatogram.desktop</file>
</qresource>
</RCC>

View file

@ -0,0 +1,67 @@
// Microsoft Visual C++ generated resource script.
//
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (United States) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_ICON1 ICON "..\\art\\icon256.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,4,9,0
PRODUCTVERSION 1,4,9,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x0L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Kotatogram"
VALUE "FileDescription", "Kotatogram Desktop"
VALUE "FileVersion", "1.4.9.0"
VALUE "LegalCopyright", "Copyright (C) 2019-2022"
VALUE "ProductName", "Kotatogram Desktop"
VALUE "ProductVersion", "1.4.9.0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
#endif // English (United States) resources
/////////////////////////////////////////////////////////////////////////////

View file

@ -0,0 +1,58 @@
// Microsoft Visual C++ generated resource script.
//
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (United States) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,4,9,0
PRODUCTVERSION 1,4,9,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x0L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Kotatogram"
VALUE "FileDescription", "Kotatogram Desktop Updater"
VALUE "FileVersion", "1.4.9.0"
VALUE "LegalCopyright", "Copyright (C) 2019-2022"
VALUE "ProductName", "Kotatogram Desktop"
VALUE "ProductVersion", "1.4.9.0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
#endif // English (United States) resources
/////////////////////////////////////////////////////////////////////////////

View file

@ -268,7 +268,7 @@ bool update() {
writeLog("Error: bad update, has Updater! '%s' equal '%s'", tofname.c_str(), updaterName.c_str());
delFolder();
return false;
} else if (equal(tofname, exePath + "Telegram") && exeName != "Telegram") {
} else if (equal(tofname, exePath + "Kotatogram") && exeName != "Kotatogram") {
string fullBinaryPath = exePath + exeName;
writeLog("Target binary found: '%s', changing to '%s'", tofname.c_str(), fullBinaryPath.c_str());
tofname = fullBinaryPath;
@ -398,7 +398,7 @@ int main(int argc, char *argv[]) {
}
}
if (exeName.empty() || exeName.find('/') != string::npos) {
exeName = "Telegram";
exeName = "Kotatogram";
}
openLog();
@ -430,6 +430,7 @@ int main(int argc, char *argv[]) {
customWorkingDir = false;
writeLog("No workdir, trying to figure it out");
/*
struct passwd *pw = getpwuid(getuid());
if (pw && pw->pw_dir && strlen(pw->pw_dir)) {
string tryDir = pw->pw_dir + string("/.TelegramDesktop/");
@ -443,6 +444,7 @@ int main(int argc, char *argv[]) {
}
}
}
*/
if (workDir.empty()) {
workDir = exePath;
@ -510,7 +512,7 @@ int main(int argc, char *argv[]) {
return 1;
}
writeLog("Executed Telegram, closing log and quitting..");
writeLog("Executed Kotatogram, closing log and quitting..");
}
closeLog();

View file

@ -8,7 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#import <Cocoa/Cocoa.h>
#include <sys/xattr.h>
NSString *appName = @"Telegram.app";
NSString *appName = @"Kotatogram.app";
NSString *appDir = nil;
NSString *workDir = nil;
@ -56,7 +56,7 @@ void RemoveQuarantineAttribute(NSString *path) {
void RemoveQuarantineFromBundle(NSString *path) {
RemoveQuarantineAttribute(path);
RemoveQuarantineAttribute([path stringByAppendingString:@"/Contents/MacOS/Telegram"]);
RemoveQuarantineAttribute([path stringByAppendingString:@"/Contents/MacOS/Kotatogram"]);
RemoveQuarantineAttribute([path stringByAppendingString:@"/Contents/Helpers/crashpad_handler"]);
RemoveQuarantineAttribute([path stringByAppendingString:@"/Contents/Frameworks/Updater"]);
}
@ -163,9 +163,9 @@ int main(int argc, const char * argv[]) {
writeLog([@"Starting update files iteration, path: " stringByAppendingString: srcEnum]);
// Take the Updater (this currently running binary) from the place where it was placed by Telegram
// Take the Updater (this currently running binary) from the place where it was placed by Kotatogram
// and copy it to the folder with the new version of the app (ready),
// so it won't be deleted when we will clear the "Telegram.app/Contents" folder.
// so it won't be deleted when we will clear the "Kotatogram.app/Contents" folder.
NSString *oldVersionUpdaterPath = [appDirFull stringByAppendingString: @"/Contents/Frameworks/Updater" ];
NSString *newVersionUpdaterPath = [srcEnum stringByAppendingString:[[NSArray arrayWithObjects:@"/", appName, @"/Contents/Frameworks/Updater", nil] componentsJoinedByString:@""]];
writeLog([[NSArray arrayWithObjects: @"Copying Updater from old path ", oldVersionUpdaterPath, @" to new path ", newVersionUpdaterPath, nil] componentsJoinedByString:@""]);

View file

@ -204,7 +204,7 @@ bool update() {
writeLog(L"Error: bad update, has Updater.exe! '" + tofname + L"' equal '" + updaterName + L"'");
delFolder();
return false;
} else if (equal(tofname, updateTo + L"Telegram.exe") && exeName != L"Telegram.exe") {
} else if (equal(tofname, updateTo + L"Kotatogram.exe") && exeName != L"Kotatogram.exe") {
wstring fullBinaryPath = updateTo + exeName;
writeLog(L"Target binary found: '" + tofname + L"', changing to '" + fullBinaryPath + L"'");
tofname = fullBinaryPath;
@ -261,7 +261,7 @@ bool update() {
if (!copyResult) {
writeLog(L"Error: failed to copy, asking to retry..");
WCHAR errMsg[2048];
wsprintf(errMsg, L"Failed to update Telegram :(\n%s is not accessible.", tofname.c_str());
wsprintf(errMsg, L"Failed to update Kotatogram :(\n%s is not accessible.", tofname.c_str());
if (MessageBox(0, errMsg, L"Update error!", MB_ICONERROR | MB_RETRYCANCEL) != IDRETRY) {
delFolder();
return false;
@ -280,7 +280,7 @@ void updateRegistry() {
writeLog(L"Updating registry..");
versionStr[versionLen / 2] = 0;
HKEY rkey;
LSTATUS status = RegOpenKeyEx(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{53F49750-6209-4FBF-9CA8-7A333C87D1ED}_is1", 0, KEY_QUERY_VALUE | KEY_SET_VALUE, &rkey);
LSTATUS status = RegOpenKeyEx(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{C4A4AE8F-B9F7-4CC7-8A6C-BF7EEE87ACA5}_is1", 0, KEY_QUERY_VALUE | KEY_SET_VALUE, &rkey);
if (status == ERROR_SUCCESS) {
writeLog(L"Checking registry install location..");
static const int bufSize = 4096;
@ -307,16 +307,16 @@ void updateRegistry() {
SYSTEMTIME stLocalTime;
GetLocalTime(&stLocalTime);
RegSetValueEx(rkey, L"DisplayVersion", 0, REG_SZ, (const BYTE*)versionStr, ((versionLen / 2) + 1) * sizeof(WCHAR));
wsprintf(nameStr, L"Telegram Desktop");
wsprintf(nameStr, L"Kotatogram Desktop");
RegSetValueEx(rkey, L"DisplayName", 0, REG_SZ, (const BYTE*)nameStr, (wcslen(nameStr) + 1) * sizeof(WCHAR));
wsprintf(publisherStr, L"Telegram FZ-LLC");
wsprintf(publisherStr, L"Kotatogram");
RegSetValueEx(rkey, L"Publisher", 0, REG_SZ, (const BYTE*)publisherStr, (wcslen(publisherStr) + 1) * sizeof(WCHAR));
wsprintf(icongroupStr, L"Telegram Desktop");
wsprintf(icongroupStr, L"Kotatogram Desktop");
RegSetValueEx(rkey, L"Inno Setup: Icon Group", 0, REG_SZ, (const BYTE*)icongroupStr, (wcslen(icongroupStr) + 1) * sizeof(WCHAR));
wsprintf(dateStr, L"%04d%02d%02d", stLocalTime.wYear, stLocalTime.wMonth, stLocalTime.wDay);
RegSetValueEx(rkey, L"InstallDate", 0, REG_SZ, (const BYTE*)dateStr, (wcslen(dateStr) + 1) * sizeof(WCHAR));
const WCHAR *appURL = L"https://desktop.telegram.org";
const WCHAR *appURL = L"https://t.me/kotatogram";
RegSetValueEx(rkey, L"HelpLink", 0, REG_SZ, (const BYTE*)appURL, (wcslen(appURL) + 1) * sizeof(WCHAR));
RegSetValueEx(rkey, L"URLInfoAbout", 0, REG_SZ, (const BYTE*)appURL, (wcslen(appURL) + 1) * sizeof(WCHAR));
RegSetValueEx(rkey, L"URLUpdateInfo", 0, REG_SZ, (const BYTE*)appURL, (wcslen(appURL) + 1) * sizeof(WCHAR));
@ -377,14 +377,14 @@ int APIENTRY wWinMain(HINSTANCE instance, HINSTANCE prevInstance, LPWSTR cmdPara
exeName = args[i];
for (int j = 0, l = exeName.size(); j < l; ++j) {
if (exeName[j] == L'/' || exeName[j] == L'\\') {
exeName = L"Telegram.exe";
exeName = L"Kotatogram.exe";
break;
}
}
}
}
if (exeName.empty()) {
exeName = L"Telegram.exe";
exeName = L"Kotatogram.exe";
}
if (needupdate) writeLog(L"Need to update!");
if (autostart) writeLog(L"From autostart!");
@ -491,7 +491,7 @@ int APIENTRY wWinMain(HINSTANCE instance, HINSTANCE prevInstance, LPWSTR cmdPara
return 0;
}
static const WCHAR *_programName = L"Telegram Desktop"; // folder in APPDATA, if current path is unavailable for writing
static const WCHAR *_programName = L"Kotatogram Desktop"; // folder in APPDATA, if current path is unavailable for writing
static const WCHAR *_exeName = L"Updater.exe";
LPTOP_LEVEL_EXCEPTION_FILTER _oldWndExceptionFilter = 0;

View file

@ -1803,7 +1803,7 @@ void Application::RegisterUrlScheme() {
: QString(),
.protocol = u"tg"_q,
.protocolName = u"Telegram Link"_q,
.shortAppName = u"tdesktop"_q,
.shortAppName = u"ktgdesktop"_q,
.longAppName = QCoreApplication::applicationName(),
.displayAppName = AppName.utf16(),
.displayAppDescription = AppName.utf16(),

View file

@ -35,7 +35,7 @@ PreLaunchWindow::PreLaunchWindow(QString title) {
setWindowIcon(Window::CreateIcon());
setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint);
setWindowTitle(title.isEmpty() ? u"Telegram"_q : title);
setWindowTitle(title.isEmpty() ? u"Kotatogram"_q : title);
QPalette p(palette());
p.setColor(QPalette::Window, QColor(255, 255, 255));
@ -200,7 +200,7 @@ NotStartedWindow::NotStartedWindow()
: _label(this)
, _log(this)
, _close(this) {
_label.setText(u"Could not start Telegram Desktop!\nYou can see complete log below:"_q);
_label.setText(u"Could not start Kotatogram Desktop!\nYou can see complete log below:"_q);
_log.setPlainText(Logs::full());
@ -342,9 +342,9 @@ LastCrashedWindow::LastCrashedWindow(
[=] { networkSettings(); });
if (_sendingState == SendingNoReport) {
_label.setText(u"Last time Telegram Desktop was not closed properly."_q);
_label.setText(u"Last time Kotatogram Desktop was not closed properly."_q);
} else {
_label.setText(u"Last time Telegram Desktop crashed :("_q);
_label.setText(u"Last time Kotatogram Desktop crashed :("_q);
}
if (_updaterData) {
@ -419,7 +419,7 @@ LastCrashedWindow::LastCrashedWindow(
}
}
_pleaseSendReport.setText(u"Please send us a crash report."_q);
_pleaseSendReport.setText(u"You can view and save your crash report here."_q);
_yourReportName.setText(u"Crash ID: %1"_q.arg(QString(_minidumpName).replace(".dmp", "")));
_yourReportName.setCursor(style::cur_text);
_yourReportName.setTextInteractionFlags(Qt::TextSelectableByMouse);
@ -435,15 +435,17 @@ LastCrashedWindow::LastCrashedWindow(
});
_saveReport.setText(u"SAVE TO FILE"_q);
connect(&_saveReport, &QPushButton::clicked, [=] { saveReport(); });
_getApp.setText(u"GET THE LATEST OFFICIAL VERSION OF TELEGRAM DESKTOP"_q);
_getApp.setText(u"GET THE LATEST OFFICIAL VERSION OF KOTATOGRAM DESKTOP"_q);
connect(&_getApp, &QPushButton::clicked, [=] {
QDesktopServices::openUrl(u"https://desktop.telegram.org"_q);
QDesktopServices::openUrl(u"https://kotatgram.github.io"_q);
});
/*
_send.setText(u"SEND CRASH REPORT"_q);
connect(&_send, &QPushButton::clicked, [=] { sendReport(); });
*/
_sendSkip.setText(u"SKIP"_q);
_sendSkip.setText(u"CLOSE AND START APP"_q);
connect(&_sendSkip, &QPushButton::clicked, [=] { processContinue(); });
_continue.setText(u"CONTINUE"_q);
connect(&_continue, &QPushButton::clicked, [=] { processContinue(); });
@ -570,12 +572,12 @@ void LastCrashedWindow::checkingFinished() {
LOG(("Crash report check for sending done, result: %1").arg(QString::fromUtf8(result)));
if (result == "Old") {
_pleaseSendReport.setText(u"This report is about some old version of Telegram Desktop."_q);
_pleaseSendReport.setText(u"This report is about some old version of Kotatogram Desktop."_q);
_sendingState = SendingTooOld;
updateControls();
return;
} else if (result == "Unofficial") {
_pleaseSendReport.setText(u"You use some custom version of Telegram Desktop."_q);
_pleaseSendReport.setText(u"You use some custom version of Kotatogram Desktop."_q);
_sendingState = SendingUnofficial;
updateControls();
return;
@ -652,6 +654,7 @@ void LastCrashedWindow::updateControls() {
int padding = _size, h = padding + _networkSettings.height() + padding;
_label.show();
_send.hide();
if (_updaterData) {
h += _networkSettings.height() + padding;
if (_updaterData->state == UpdatingFail && (_sendingState == SendingNoReport || _sendingState == SendingUpdateCheck)) {
@ -760,7 +763,7 @@ void LastCrashedWindow::updateControls() {
if (_sendingState == SendingProgress || _sendingState == SendingUploading) {
_send.hide();
} else {
_send.show();
//_send.show();
}
_sendSkip.show();
_continue.hide();
@ -847,7 +850,7 @@ void LastCrashedWindow::updateControls() {
if (_sendingState == SendingProgress || _sendingState == SendingUploading) {
_send.hide();
} else {
_send.show();
//_send.show();
}
_sendSkip.show();
if (_sendingState == SendingFail) {
@ -863,7 +866,7 @@ void LastCrashedWindow::updateControls() {
h += _networkSettings.height() + padding;
}
QSize s(2 * padding + QFontMetrics(_label.font()).horizontalAdvance(u"Last time Telegram Desktop was not closed properly."_q) + padding + _networkSettings.width(), h);
QSize s(2 * padding + QFontMetrics(_label.font()).horizontalAdvance(u"Last time Kotatogram Desktop was not closed properly."_q) + padding + _networkSettings.width(), h);
if (s == size()) {
resizeEvent(0);
} else {
@ -1044,12 +1047,15 @@ void LastCrashedWindow::resizeEvent(QResizeEvent *e) {
int padding = _size;
_label.move(padding, padding + (_networkSettings.height() - _label.height()) / 2);
/*
_send.move(width() - padding - _send.width(), height() - padding - _send.height());
if (_sendingState == SendingProgress || _sendingState == SendingUploading) {
_sendSkip.move(width() - padding - _sendSkip.width(), height() - padding - _sendSkip.height());
} else {
_sendSkip.move(width() - padding - _send.width() - padding - _sendSkip.width(), height() - padding - _sendSkip.height());
}
*/
_sendSkip.move(width() - padding - _sendSkip.width(), height() - padding - _sendSkip.height());
_updating.move(padding, padding * 2 + _networkSettings.height() + (_networkSettings.height() - _updating.height()) / 2);

View file

@ -414,7 +414,7 @@ StartResult Start() {
fclose(f);
LOG(("Opened '%1' for reading, the previous "
"Telegram Desktop launch was not finished properly :( "
"Kotatogram Desktop launch was not finished properly :( "
"Crash log size: %2").arg(ReportPath).arg(lastdump.size()));
return lastdump;

View file

@ -317,7 +317,7 @@ void Launcher::init() {
prepareSettings();
initQtMessageLogging();
QApplication::setApplicationName(u"TelegramDesktop"_q);
QApplication::setApplicationName(u"KotatogramDesktop"_q);
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
// fallback session management is useless for tdesktop since it doesn't have
@ -388,7 +388,7 @@ int Launcher::exec() {
ThirdParty::start();
auto result = executeApplication();
DEBUG_LOG(("Telegram finished, result: %1").arg(result));
DEBUG_LOG(("Kotatogram finished, result: %1").arg(result));
if (!UpdaterDisabled() && cRestartingUpdate()) {
DEBUG_LOG(("Sandbox Info: executing updater to install update."));
@ -396,7 +396,7 @@ int Launcher::exec() {
base::Platform::DeleteDirectory(cWorkingDir() + u"tupdates/temp"_q);
}
} else if (cRestarting()) {
DEBUG_LOG(("Sandbox Info: executing Telegram because of restart."));
DEBUG_LOG(("Sandbox Info: executing Kotatogram because of restart."));
launchUpdater(UpdaterLaunch::JustRelaunch);
}

View file

@ -443,7 +443,7 @@ void Manager::writeDefaultFile() {
return;
}
const char *defaultHeader = R"HEADER(
// This is a list of default shortcuts for Telegram Desktop
// This is a list of default shortcuts for Kotatogram Desktop
// Please don't modify it, its content is not used in any way
// You can place your own shortcuts in the 'shortcuts-custom.json' file

View file

@ -1554,7 +1554,7 @@ bool checkReadyUpdate() {
QFileInfo updater(cWorkingDir() + u"tupdates/temp/Updater.exe"_q);
#elif defined Q_OS_MAC // Q_OS_WIN
QString curUpdater = (cExeDir() + cExeName() + u"/Contents/Frameworks/Updater"_q);
QFileInfo updater(cWorkingDir() + u"tupdates/temp/Telegram.app/Contents/Frameworks/Updater"_q);
QFileInfo updater(cWorkingDir() + u"tupdates/temp/kotatogram.app/Contents/Frameworks/Updater"_q);
#else // Q_OS_MAC
QString curUpdater = (cExeDir() + u"Updater"_q);
QFileInfo updater(cWorkingDir() + u"tupdates/temp/Updater"_q);
@ -1639,11 +1639,11 @@ void UpdateApplication() {
return "https://itunes.apple.com/ae/app/telegram-desktop/id946399090";
#else // OS_WIN_STORE || OS_MAC_STORE
if (KSandbox::isFlatpak()) {
return "https://flathub.org/apps/details/org.telegram.desktop";
} else if (KSandbox::isSnap()) {
return "https://snapcraft.io/telegram-desktop";
return "https://flathub.org/apps/details/io.github.kotatogram";
//} else if (KSandbox::isSnap()) {
// return "https://snapcraft.io/telegram-desktop";
}
return "https://desktop.telegram.org";
return "https://github.com/kotatogram/kotatogram-desktop";
#endif // OS_WIN_STORE || OS_MAC_STORE
}();
UrlClickHandler::Open(url);

View file

@ -38,7 +38,7 @@ inline bool in_range(Value &&value, From &&from, Till &&till) {
inline QString IconName() {
static const auto Result = KSandbox::isFlatpak()
? qEnvironmentVariable("FLATPAK_ID")
: u"telegram"_q;
: u"kotatogram"_q;
return Result;
}
#endif

View file

@ -18,10 +18,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#endif // TDESKTOP_ALLOW_CLOSED_ALPHA
// used in Updater.cpp and Setup.iss for Windows
constexpr auto AppId = "{53F49750-6209-4FBF-9CA8-7A333C87D1ED}"_cs;
constexpr auto AppId = "{C4A4AE8F-B9F7-4CC7-8A6C-BF7EEE87ACA5}"_cs;
constexpr auto AppNameOld = "Telegram Win (Unofficial)"_cs;
constexpr auto AppName = "Telegram Desktop"_cs;
constexpr auto AppFile = "Telegram"_cs;
constexpr auto AppName = "Kotatogram Desktop"_cs;
constexpr auto AppFile = "Kotatogram"_cs;
constexpr auto AppVersion = 5000006;
constexpr auto AppVersionStr = "5.0.6";
constexpr auto AppBetaVersion = true;

View file

@ -167,8 +167,8 @@ Stats AbstractWriter::produceTestExample(
auto sessions = Data::SessionsList();
auto session = Data::Session();
session.applicationName = "Telegram Desktop";
session.applicationVersion = "1.3.8";
session.applicationName = "Kotatogram Desktop";
session.applicationVersion = "1.8.8";
session.country = "GB";
session.created = date();
session.deviceModel = "PC";

View file

@ -1044,7 +1044,7 @@ auto HtmlWriter::Wrap::pushMessage(
dialog,
basePath,
"This message is not supported by this version "
"of Telegram Desktop. Please update the application.") };
"of Kotatogram Desktop. Please update the application.") };
}
const auto wrapReplyToLink = [&](const QByteArray &text) {

View file

@ -21,6 +21,10 @@ introCoverIcon: icon {
{ "intro_plane_outer", introCoverPlaneOuter },
{ "intro_plane_top", introCoverPlaneTop },
};
introKotatoCoverIcon: icon {
{ "intro_kotato_trace", introCoverPlaneTrace },
{ "intro_kotato_top", introCoverPlaneTop },
};
introCoverIconLeft: 50px;
introCoverIconTop: 46px;

View file

@ -460,7 +460,7 @@ void Step::paintCover(QPainter &p, int top) {
st::introCoverLeft.paint(p, left, coverHeight - st::introCoverLeft.height(), width());
st::introCoverRight.paint(p, width() - right - st::introCoverRight.width(), coverHeight - st::introCoverRight.height(), width());
auto planeLeft = (width() - st::introCoverIcon.width()) / 2 - st::introCoverIconLeft;
auto planeLeft = (width() - st::introKotatoCoverIcon.width()) / 2 - st::introCoverIconLeft;
auto planeTop = top + st::introCoverIconTop;
if (top < 0 && !_hasCover) {
auto deltaLeft = -qRound(float64(st::introPlaneWidth / st::introPlaneHeight) * top);
@ -468,7 +468,7 @@ void Step::paintCover(QPainter &p, int top) {
planeLeft += deltaLeft;
// planeTop += top;
}
st::introCoverIcon.paint(p, planeLeft, planeTop, width());
st::introKotatoCoverIcon.paint(p, planeLeft, planeTop, width());
}
int Step::contentLeft() const {

View file

@ -252,7 +252,7 @@ void MainWindow::createGlobalMenu() {
});
auto quit = file->addAction(
tr::lng_mac_menu_quit_telegram(tr::now, lt_telegram, u"Telegram"_q),
tr::lng_mac_menu_quit_telegram(tr::now, lt_telegram, u"Kotatogram"_q),
this,
[=] { quitFromTray(); },
QKeySequence::Quit);
@ -422,7 +422,7 @@ void MainWindow::createGlobalMenu() {
tr::lng_mac_menu_about_telegram(
tr::now,
lt_telegram,
u"Telegram"_q),
u"Kotatogram"_q),
[=] {
ensureWindowShown();
controller().show(Box<AboutBox>());

View file

@ -83,7 +83,7 @@ void PortalAutostart(bool enabled, Fn<void(bool)> done) {
auto interface = XdpBackground::Background(*proxy);
const auto handleToken = "tdesktop"
const auto handleToken = "ktgdesktop"
+ std::to_string(base::RandomValue<uint>());
auto uniqueName = std::string(
@ -218,7 +218,7 @@ bool GenerateDesktopFile(
DEBUG_LOG(("App Info: placing .desktop file to %1").arg(targetPath));
if (!QDir(targetPath).exists()) QDir().mkpath(targetPath);
const auto sourceFile = u":/misc/org.telegram.desktop.desktop"_q;
const auto sourceFile = u":/misc/io.github.kotatogram.desktop"_q;
const auto targetFile = targetPath
+ QGuiApplication::desktopFileName()
+ u".desktop"_q;
@ -335,8 +335,8 @@ bool GenerateDesktopFile(
if (!Core::UpdaterDisabled()) {
DEBUG_LOG(("App Info: removing old .desktop files"));
QFile::remove(u"%1telegram.desktop"_q.arg(targetPath));
QFile::remove(u"%1telegramdesktop.desktop"_q.arg(targetPath));
QFile::remove(u"%1kotatogram.desktop"_q.arg(targetPath));
QFile::remove(u"%1kotatogramdesktop.desktop"_q.arg(targetPath));
const auto appimagePath = u"file://%1%2"_q.arg(
cExeDir(),
@ -357,7 +357,7 @@ bool GenerateDesktopFile(
hashMd5Hex(d.constData(), d.size(), md5Hash);
if (!Core::Launcher::Instance().customWorkingDir()) {
QFile::remove(u"%1org.telegram.desktop._%2.desktop"_q.arg(
QFile::remove(u"%1io.github.kotatogram._%2.desktop"_q.arg(
targetPath,
md5Hash));
@ -366,7 +366,7 @@ bool GenerateDesktopFile(
hashMd5Hex(exePath.constData(), exePath.size(), md5Hash);
}
QFile::remove(u"%1org.telegram.desktop.%2.desktop"_q.arg(
QFile::remove(u"%1io.github.kotatogram.%2.desktop"_q.arg(
targetPath,
md5Hash));
}
@ -425,7 +425,7 @@ bool GenerateServiceFile(bool silent = false) {
const auto d = QFile::encodeName(QDir(cWorkingDir()).absolutePath());
hashMd5Hex(d.constData(), d.size(), md5Hash);
QFile::remove(u"%1org.telegram.desktop._%2.service"_q.arg(
QFile::remove(u"%1io.github.kotatogram._%2.service"_q.arg(
targetPath,
md5Hash));
}
@ -598,8 +598,8 @@ QString ExecutablePathForShortcuts() {
} // namespace Platform
QString psAppDataPath() {
// Previously we used ~/.TelegramDesktop, so look there first.
// If we find data there, we should still use it.
// We should not use ~/.TelegramDesktop, since it's a fork.
/*
auto home = QDir::homePath();
if (!home.isEmpty()) {
auto oldPath = home + u"/.TelegramDesktop/"_q;
@ -610,6 +610,7 @@ QString psAppDataPath() {
return oldPath;
}
}
*/
return QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + '/';
}
@ -665,10 +666,10 @@ void start() {
md5Hash.data());
}
return u"org.telegram.desktop._%1"_q.arg(md5Hash.constData());
return u"io.github.kotatogram._%1"_q.arg(md5Hash.constData());
}
return u"org.telegram.desktop"_q;
return u"io.github.kotatogram"_q;
}());
LOG(("App ID: %1").arg(QGuiApplication::desktopFileName()));

View file

@ -27,9 +27,9 @@ namespace {
[[nodiscard]] QString PanelIconName(int counter, bool muted) {
return (counter > 0)
? (muted
? u"telegram-mute-panel"_q
: u"telegram-attention-panel"_q)
: u"telegram-panel"_q;
? u"kotatogram-mute-panel"_q
: u"kotatogram-attention-panel"_q)
: u"kotatogram-panel"_q;
}
} // namespace

View file

@ -351,7 +351,7 @@ void MainWindow::createGlobalMenu() {
}
};
auto main = psMainMenu.addMenu(u"Telegram"_q);
auto main = psMainMenu.addMenu(u"Kotatogram"_q);
{
auto callback = [=] {
ensureWindowShown();
@ -361,7 +361,7 @@ void MainWindow::createGlobalMenu() {
tr::lng_mac_menu_about_telegram(
tr::now,
lt_telegram,
u"Telegram"_q),
u"Kotatogram"_q),
std::move(callback))
->setMenuRole(QAction::AboutQtRole);
}

View file

@ -79,7 +79,7 @@ void PreviewWindowTitle(Painter &p, const style::palette &palette, QRect body, i
p.setPen(st::titleFgActive[palette]);
p.setFont(font);
p.drawText(titleRect, u"Telegram"_q, style::al_center);
p.drawText(titleRect, u"Kotatogram"_q, style::al_center);
auto isGraphite = ([NSColor currentControlTint] == NSGraphiteControlTint);
auto buttonSkip = 8;

View file

@ -239,7 +239,7 @@ QString psAppDataPath() {
if (GetEnvironmentVariable(L"APPDATA", wstrPath, maxFileLen)) {
QDir appData(QString::fromStdWString(std::wstring(wstrPath)));
#ifdef OS_WIN_STORE
return appData.absolutePath() + u"/Telegram Desktop UWP/"_q;
return appData.absolutePath() + u"/Kotatogram Desktop UWP/"_q;
#else // OS_WIN_STORE
return appData.absolutePath() + '/' + AppName.utf16() + '/';
#endif // OS_WIN_STORE
@ -320,10 +320,10 @@ void psDoFixPrevious() {
HRESULT userDesktopRes = SHGetFolderPath(0, CSIDL_DESKTOPDIRECTORY, 0, SHGFP_TYPE_CURRENT, userDesktopFolder);
HRESULT commonDesktopRes = SHGetFolderPath(0, CSIDL_COMMON_DESKTOPDIRECTORY, 0, SHGFP_TYPE_CURRENT, commonDesktopFolder);
if (SUCCEEDED(userDesktopRes)) {
userDesktopLnk = QString::fromWCharArray(userDesktopFolder) + "\\Telegram.lnk";
userDesktopLnk = QString::fromWCharArray(userDesktopFolder) + "\\Kotatogram.lnk";
}
if (SUCCEEDED(commonDesktopRes)) {
commonDesktopLnk = QString::fromWCharArray(commonDesktopFolder) + "\\Telegram.lnk";
commonDesktopLnk = QString::fromWCharArray(commonDesktopFolder) + "\\Kotatogram.lnk";
}
QFile userDesktopFile(userDesktopLnk), commonDesktopFile(commonDesktopLnk);
if (QFile::exists(userDesktopLnk) && QFile::exists(commonDesktopLnk) && userDesktopLnk != commonDesktopLnk) {
@ -464,8 +464,8 @@ void AutostartToggle(bool enabled, Fn<void(bool)> done) {
silent,
FOLDERID_Startup,
L"-autostart",
L"Telegram autorun link.\n"
"You can disable autorun in Telegram settings.");
L"Kotatogram autorun link.\n"
"You can disable autorun in Kotatogram settings.");
if (done) {
done(enabled && success);
}
@ -668,8 +668,8 @@ void psSendToMenu(bool send, bool silent) {
silent,
FOLDERID_SendTo,
L"-sendpath",
L"Telegram send to link.\n"
"You can disable send to menu item in Telegram settings.");
L"Kotatogram send to link.\n"
"You can disable send to menu item in Kotatogram settings.");
}
bool psLaunchMaps(const Data::LocationPoint &point) {

View file

@ -26,9 +26,9 @@ const PROPERTYKEY pkey_AppUserModel_StartPinOption = { { 0x9F4C2855, 0x9F79, 0x4
const PROPERTYKEY pkey_AppUserModel_ToastActivator = { { 0x9F4C2855, 0x9F79, 0x4B39, { 0xA8, 0xD0, 0xE1, 0xD4, 0x2D, 0xE1, 0xD5, 0xF3 } }, 26 };
#ifdef OS_WIN_STORE
const WCHAR AppUserModelIdBase[] = L"Telegram.TelegramDesktop.Store";
const WCHAR AppUserModelIdBase[] = L"Kotatogram.KotatogramDesktop.Store";
#else // OS_WIN_STORE
const WCHAR AppUserModelIdBase[] = L"Telegram.TelegramDesktop";
const WCHAR AppUserModelIdBase[] = L"Kotatogram.KotatogramDesktop";
#endif // OS_WIN_STORE
[[nodiscard]] QString PinnedIconsPath() {
@ -213,7 +213,7 @@ void CleanupShortcut() {
return;
}
QString path = systemShortcutPath() + u"Telegram.lnk"_q;
QString path = systemShortcutPath() + u"Kotatogram.lnk"_q;
std::wstring p = QDir::toNativeSeparators(path).toStdWString();
DWORD attributes = GetFileAttributes(p.c_str());
@ -345,10 +345,10 @@ bool checkInstalled(QString path = {}) {
}
}
const auto installed = u"Telegram Desktop/Telegram.lnk"_q;
const auto old = u"Telegram Win (Unofficial)/Telegram.lnk"_q;
return validateShortcutAt(path + installed)
|| validateShortcutAt(path + old);
const auto installed = u"Kotatogram Desktop/Telegram.lnk"_q;
//const auto old = u"Telegram Win (Unofficial)/Telegram.lnk"_q;
return validateShortcutAt(path + installed);
// || validateShortcutAt(path + old);
}
bool ValidateShortcut() {
@ -358,7 +358,7 @@ bool ValidateShortcut() {
}
if (cAlphaVersion()) {
path += u"TelegramAlpha.lnk"_q;
path += u"KotatogramAlpha.lnk"_q;
if (validateShortcutAt(path)) {
return true;
}
@ -367,7 +367,7 @@ bool ValidateShortcut() {
return true;
}
path += u"Telegram.lnk"_q;
path += u"Kotatogram.lnk"_q;
if (validateShortcutAt(path)) {
return true;
}

View file

@ -470,7 +470,7 @@ void NotificationsCount::prepareNotificationSampleLarge() {
p.setPen(st::dialogsNameFg);
p.setFont(st::msgNameFont);
auto notifyTitle = st::msgNameFont->elided(u"Telegram Desktop"_q, rectForName.width());
auto notifyTitle = st::msgNameFont->elided(u"Kotatogram Desktop"_q, rectForName.width());
p.drawText(rectForName.left(), rectForName.top() + st::msgNameFont->ascent, notifyTitle);
st::notifyClose.icon.paint(p, w - st::notifyClosePos.x() - st::notifyClose.width + st::notifyClose.iconPosition.x(), st::notifyClosePos.y() + st::notifyClose.iconPosition.y(), w);

View file

@ -854,7 +854,7 @@ void MainWindow::updateTitle() {
: Dialogs::Key();
const auto thread = key ? key.thread() : nullptr;
if (!thread) {
setTitle((user.isEmpty() ? u"Telegram"_q : user) + added);
setTitle((user.isEmpty() ? u"Kotatogram"_q : user) + added);
return;
}
const auto history = thread->owningHistory();

View file

@ -988,7 +988,7 @@ void Notification::updateNotifyDisplay() {
: TextWithEntities{ name };
};
auto title = options.hideNameAndPhoto
? TextWithEntities{ u"Telegram Desktop"_q }
? TextWithEntities{ u"Kotatogram Desktop"_q }
: reminder
? tr::lng_notification_reminder(tr::now, Ui::Text::WithEntities)
: topicWithChat();

View file

@ -448,29 +448,14 @@ MainMenu::MainMenu(
parentResized();
_telegram->setMarkedText(Ui::Text::Link(
u"Telegram Desktop"_q,
u"https://desktop.telegram.org"_q));
_telegram->setLinksTrusted();
_version->setMarkedText(
Ui::Text::Link(
tr::lng_settings_current_version(
tr::now,
lt_version,
currentVersionText()),
1) // Link 1.
.append(QChar(' '))
.append(QChar(8211))
.append(QChar(' '))
.append(Ui::Text::Link(tr::lng_menu_about(tr::now), 2))); // Link 2.
_version->setLink(
_telegram->setMarkedText(Ui::Text::Link(u"Kotatogram Desktop"_q, 1));
_telegram->setLink(
1,
std::make_shared<UrlClickHandler>(Core::App().changelogLink()));
_version->setLink(
2,
std::make_shared<LambdaClickHandler>([=] {
controller->show(Box<AboutBox>());
}));
_version->setMarkedText(Ui::Text::Link(currentVersionText(), 1));
_version->setLink(1, std::make_shared<UrlClickHandler>(qsl("https://github.com/kotatogram/kotatogram-desktop")));
rpl::combine(
_toggleAccounts->rightSkipValue(),

View file

@ -5,7 +5,7 @@
<key>CFBundleExecutable</key>
<string>@output_name@</string>
<key>CFBundleGetInfoString</key>
<string>Telegram Desktop messaging app</string>
<string>Kotatogram Desktop messaging app</string>
<key>CFBundleIconFile</key>
<string>Icon.icns</string>
<key>CFBundleIconName</key>
@ -24,7 +24,7 @@
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>CFBundleURLIconFile</key>
<string>Icon.icns</string>
<string>AppIcon.icns</string>
<key>CFBundleURLName</key>
<string>@bundle_identifier_plist@</string>
<key>CFBundleURLSchemes</key>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 763 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 806 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 763 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 806 KiB

View file

@ -1,9 +1,9 @@
#define MyAppShortName "Telegram"
#define MyAppName "Telegram Desktop"
#define MyAppPublisher "Telegram FZ-LLC"
#define MyAppURL "https://desktop.telegram.org"
#define MyAppExeName "Telegram.exe"
#define MyAppId "53F49750-6209-4FBF-9CA8-7A333C87D1ED"
#define MyAppShortName "Kotatogram"
#define MyAppName "Kotatogram Desktop"
#define MyAppPublisher "Kotatogram"
#define MyAppURL "https://kotatogram.github.io"
#define MyAppExeName "Kotatogram.exe"
#define MyAppId "C4A4AE8F-B9F7-4CC7-8A6C-BF7EEE87ACA5"
#define CurrentYear GetDateTimeString('yyyy','','')
[Setup]
@ -24,7 +24,7 @@ AllowNoIcons=yes
OutputDir={#ReleasePath}
SetupIconFile={#SourcePath}..\Resources\art\icon256.ico
UninstallDisplayName={#MyAppName}
UninstallDisplayIcon={app}\Telegram.exe
UninstallDisplayIcon={app}\Kotatogram.exe
Compression=lzma
SolidCompression=yes
DisableStartupPrompt=yes
@ -39,11 +39,11 @@ SignTool=sha256
#if MyBuildTarget == "win64"
ArchitecturesAllowed="x64 arm64"
ArchitecturesInstallIn64BitMode="x64 arm64"
OutputBaseFilename=tsetup-x64.{#MyAppVersionFull}
OutputBaseFilename=ksetup-x64.{#MyAppVersionFull}
#define ArchModulesFolder "x64"
AppVerName={#MyAppName} {#MyAppVersion} 64bit
#else
OutputBaseFilename=tsetup.{#MyAppVersionFull}
OutputBaseFilename=ksetup.{#MyAppVersionFull}
#define ArchModulesFolder "x86"
AppVerName={#MyAppName} {#MyAppVersion} 32bit
#endif
@ -66,7 +66,7 @@ Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; OnlyBelowVersion: 0,6.1
[Files]
Source: "{#ReleasePath}\Telegram.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "{#ReleasePath}\Kotatogram.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "{#ReleasePath}\Updater.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "{#ReleasePath}\{#ModulesFolder}\d3d\d3dcompiler_47.dll"; DestDir: "{app}\{#ModulesFolder}\d3d"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

View file

@ -0,0 +1,22 @@
[Desktop Entry]
Name=Kotatogram
Comment=Experimental Telegram Desktop fork
TryExec=kotatogram-desktop
Exec=kotatogram-desktop -- %u
Icon=kotatogram
Terminal=false
StartupWMClass=KotatogramDesktop
Type=Application
Categories=Chat;Network;InstantMessaging;Qt;
MimeType=x-scheme-handler/tg;
Keywords=tg;chat;im;messaging;messenger;sms;tdesktop;kotatogram;
Actions=quit;
DBusActivatable=true
SingleMainWindow=true
X-GNOME-UsesNotifications=true
X-GNOME-SingleWindow=true
[Desktop Action quit]
Exec=kotatogram-desktop -quit
Name=Quit Kotatogram
Icon=application-exit

View file

@ -0,0 +1,493 @@
<?xml version="1.0" encoding="utf-8"?>
<component type="desktop">
<id>io.github.kotatogram</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0</project_license>
<name>Kotatogram</name>
<summary>Experimental Telegram messenger</summary>
<description>
<p>Unofficial messaging app based on Telegram Desktop.</p>
<p>Telegram is a popular messaging protocol with encryption and security as its key focus.</p>
</description>
<categories>
<category>Network</category>
<category>InstantMessaging</category>
</categories>
<developer_name>Eric Kotato</developer_name>
<url type="homepage">https://kotatogram.github.io/</url>
<url type="bugtracker">https://github.com/kotatogram/kotatogram-desktop/issues</url>
<url type="translate">https://crowdin.com/project/kotatogram-desktop</url>
<url type="contribute">https://github.com/kotatogram/kotatogram-desktop/blob/dev/.github/CONTRIBUTING.md</url>
<branding>
<color type="primary" scheme_preference="light">#e1ccff</color>
<color type="primary" scheme_preference="dark">#35244d</color>
</branding>
<screenshots>
<screenshot type="default">
<caption>Main window with default settings.</caption>
<image>https://raw.githubusercontent.com/kotatogram/kotatogram-desktop/dev/docs/assets/flatpak_screenshots/main_window.png</image>
</screenshot>
<screenshot>
<caption>Menu with Kotatogram-specific settings.</caption>
<image>https://raw.githubusercontent.com/kotatogram/kotatogram-desktop/dev/docs/assets/flatpak_screenshots/kotatogram_settings.png</image>
</screenshot>
<screenshot>
<caption>Main window with compact folders and adaptive chat bubbles enabled. Also features profile pictures rounding (currently set in JSON file).</caption>
<image>https://raw.githubusercontent.com/kotatogram/kotatogram-desktop/dev/docs/assets/flatpak_screenshots/customized.png</image>
</screenshot>
</screenshots>
<keywords>
<keyword>tg</keyword>
<keyword>telegram</keyword>
<keyword>kotatogram</keyword>
<keyword>tdesktop</keyword>
<keyword>messaging</keyword>
<keyword>messenger</keyword>
<keyword>chat</keyword>
<keyword>sms</keyword>
<keyword>im</keyword>
</keywords>
<requires>
<!-- windowMinHeight from Telegram/SourceFiles/window/window.style -->
<display_length compare="ge">480</display_length>
<internet>always</internet>
<!-- on-screen keyboards are too big for current minimal display height -->
<control>keyboard</control>
</requires>
<supports>
<control>pointing</control>
<control>touch</control>
</supports>
<releases>
<release version="1.4.9" date="2022-03-08">
<description>
<p>TDesktop sources were updated to 3.5.2.</p>
<p>Also in this update:</p>
<ul>
<li>Internal rework of Kotatogram Settings.</li>
<li>Allow select time when jumping to date in chat.</li>
<li>Always show TDesktop's experimental settings and allow their translation.</li>
<li>Make message icon color same as name color.</li>
<li>Fix avatar cropping in Windows system notifications.</li>
<li>Warn when trying to unquoted forward a quiz (by blank-x).</li>
<li>Show "Copy callback data" only for callback buttons (by blank-x).</li>
<li>Go to chat on Shift+Enter in Forward box (by blank-x).</li>
<li>Fix name icons (by blank-x).</li>
<li>Fix tg://user?id links for 64-bit IDs (by blank-x).</li>
<li>Fix showing "Mention user" for channels (by blank-x).</li>
<li>Fix profile pictures rounding (by blank-x).</li>
<li>Fix chat status filters by admin rights (by blank-x).</li>
<li>New Kotatogram macOS icon (by gershik).</li>
</ul>
</description>
</release>
<release version="1.4.8" date="2021-12-31">
<description>
<p>In this update:</p>
<ul>
<li>Better font settings.</li>
<li>Fixed severe crash in Saved Messages.</li>
<li>Fixed non-clickable part of message author name if there an icon near it.</li>
</ul>
</description>
</release>
<release version="1.4.7" date="2021-12-30">
<description>
<p>In this update:</p>
<ul>
<li>Ability to switch accounts by hotkeys.</li>
<li>Added icon near the author name in message.</li>
<li>Fixed ranks in admin list.</li>
</ul>
</description>
</release>
<release version="1.4.6" date="2021-12-18">
<description>
<p>TDesktop sources were updated to 3.3.</p>
<p>Also in this update:</p>
<ul>
<li>Ability to disable remembering image compression when sending.</li>
<li>Custom auto-replaces now work without emoji replacement enabled.</li>
<li>Removed window size restiction.</li>
<li>Fixed tg:// link protocol in system.</li>
<li>Fixed "External video player" option.</li>
</ul>
</description>
</release>
<release version="1.4.5" date="2021-12-04">
<description>
<p>TDesktop sources were updated to 3.1.1.</p>
<p>Also in this update:</p>
<ul>
<li>Fixed caption sending modes in unquoted forward.</li>
<li>Fixed "Qt scaling" option.</li>
<li>Removed duplicate of GIF button in shared media.</li>
<li>Fixed animated emoji size.</li>
<li>Fix custom font size scale.</li>
</ul>
</description>
</release>
<release version="1.4.4" date="2021-09-22">
<description>
<p>TDesktop sources were updated to 3.1.</p>
<p>Also in this update:</p>
<ul>
<li>Added option to remember forward mode.</li>
<li>Added ability to set default forward mode.</li>
<li>Replaced unquoted forward method with option to restore the old one.</li>
<li>Added option to disable per-chat themes.</li>
<li>Removed GTK integration option, since it's not needed anymore.</li>
<li>Fixed missing sending inline bot response preview option.</li>
<li>Fixed missing sending inline bot response preview in comments and scheduled messages.</li>
<li>Fixed option "Disable edit by Up key" in comments and scheduled messages.</li>
<li>GIF section in shared media and forwarded sticker info are now same as in TDesktop.</li>
</ul>
</description>
</release>
<release version="1.4.3" date="2021-08-26">
<description>
<p>In this update:</p>
<ul>
<li>Reworked sending without "via @bot" tag.</li>
<li>Optional hotkeys to restart application and to reload Kotatogram translation.</li>
<li>Fixed blocking user in "Recent Actions".</li>
<li>Updated translations, including phrases from previous version.</li>
<li>Fixed errors and crashes in AppImage related to gdk-pixbuf.</li>
</ul>
</description>
</release>
<release version="1.4.2" date="2021-08-21">
<description>
<p>TDesktop sources were updated to 2.8.11.</p>
<p>Also in this update:</p>
<ul>
<li>Manually choose notification mute time.</li>
<li>Auto-login option for Telegram sites.</li>
<li>Multi-threaded video decoding option.</li>
<li>External video player.</li>
<li>Sending without "via @bot" mark.</li>
<li>Font size JSON option.</li>
<li>Backported message self-destruct 1 month option.</li>
<li>Localized self-destruct messages button to Russian.</li>
<li>Fixed missing "Copy Share Link" in forward window when a single album is selected.</li>
<li>Fixed applying of some bundled Kotatogram translations.</li>
</ul>
</description>
</release>
<release version="1.4.1" date="2021-04-29">
<description>
<p>TDesktop sources were updated to 2.7.4.</p>
<p>Also in this update:</p>
<ul>
<li>Separate Kotatogram's MPRIS and TDesktop's MPRIS.</li>
<li>Fix crash on right clicking emoji button.</li>
<li>Attempt to fix repeating changelogs.</li>
<li>Smaller font for options with radio buttons.</li>
<li>Don't show top notification switch in own profile.</li>
<li>Remove unnecessary separator in own profile.</li>
<li>Fix dependent separated "Send stickers and GIFs" restriction.</li>
<li>Updated translations.</li>
</ul>
</description>
</release>
<release version="1.4" date="2021-04-13">
<description>
<p>TDesktop sources were updated to 2.7.1.</p>
<p>Also in this update:</p>
<ul>
<li>Ability to forward messages without author.</li>
<li>Local folders.</li>
<li>Ability to set API ID and hash by start parameter or environment variable.</li>
<li>Use checkboxes in polls with multiple answers.</li>
<li>Reworked admins info.</li>
<li>Show group type in chat lists.</li>
<li>Show star icon for groups where you're an admin.</li>
<li>Do not notify when pinning by default.</li>
<li>Ability to mention user from context menu in members list.</li>
<li>Improved theme keys search.</li>
<li>Experimental top bar customization.</li>
<li>Reworked changning time when scheduling messages.</li>
<li>Improved keyboard navigation for calendar.</li>
<li>Ability to jump to date in chat (Ctrl+H by default).</li>
<li>Use ghost icon from Android app.</li>
<li>Hide Edit and All Chats from context menu.</li>
<li>Show button to remove recent sticker.</li>
<li>Option to retain selection after forward.</li>
<li>Hide account name in notification if it's the current one.</li>
<li>Possible fix for crash on Permissions click in profile.</li>
<li>Fix for crash on profile double open in blocked users list.</li>
<li>Option to disable monospace bubbles expansion (user-contributed).</li>
<li>Click-to-copy for ID, phone and username in profile.</li>
<li>Revoke messages by default.</li>
<li>Additional info for chats in folders.</li>
<li>Manage buttons in profile.</li>
<li>Forward to multiple chats.</li>
<li>Allow add up to 10 accounts in 32-bit build and up to 100 in 64 bit builds.</li>
<li>Do not share phone number by default (from 64Gram).</li>
<li>GIFs shared media section (from 64Gram).</li>
<li>Uwrapped "Stickers and GIFs" permission (from 64Gram).</li>
<li>Option to disable emoji panel on hover.</li>
<li>Option to use native window frame on Windows and macOS.</li>
<li>Option to disable tray counter.</li>
<li>Option to use Telegram tray icon on Linux panels.</li>
<li>Set media clear limit down to 1 day.</li>
<li>Many translations from Crowdin page.</li>
</ul>
</description>
</release>
<release version="1.3.9" date="2020-09-09">
<description>
<p>TDesktop sources were updated to 2.3.2.</p>
<p>Also in this update:</p>
<ul>
<li>Ability to forward messages without author.</li>
<li>Local folders.</li>
<li>Ability to set API ID and hash by start parameter or environment variable.</li>
<li>Use checkboxes in polls with multiple answers.</li>
<li>Reworked admins info.</li>
<li>Show group type in chat lists.</li>
<li>Show star icon for groups where you're an admin.</li>
<li>Do not notify when pinning by default.</li>
<li>Ability to mention user from context menu in members list.</li>
<li>Open pop-up emoji panel on RMB when disabled by hover.</li>
<li>Improved theme keys search.</li>
<li>Experimental top bar customization.</li>
<li>Reworked changning time when scheduling messages.</li>
<li>Improved keyboard navigation for calendar.</li>
<li>Italian translation (by alsoGAMER and CrisMystik).</li>
<li>Ability to jump to date in chat (Ctrl+J by default).</li>
<li>Use ghost icon from Android app.</li>
<li>Hide Edit and All Chats from context menu.</li>
<li>Show button to remove recent sticker.</li>
<li>Portuguese (Brasil) translation (by lipetst).</li>
</ul>
</description>
</release>
<release version="1.3.8" date="2020-07-10">
<description>
<p>TDesktop sources were updated to 2.1.18.</p>
<p>Also in this update:</p>
<ul>
<li>Restored one-click forward to Saved Messages.</li>
<li>Ability to go to chat from forward when selecting one.</li>
<li>Make retaining selection after forward optional.</li>
<li>Option to open chat on click in forward.</li>
<li>Hide account name in notification if it's the current one.</li>
<li>Possible fix for crash on Permissions click in profile.</li>
<li>Turkish translation (by disk3).</li>
<li>Polish translation (by Sebek).</li>
</ul>
</description>
</release>
<release version="1.3.7" date="2020-07-03">
<description>
<p>TDesktop sources were updated to 2.1.17.</p>
<p>Also in this update:</p>
<ul>
<li>Option to disable monospace bubbles expansion (user-contributed).</li>
<li>Click-to-copy for ID, phone and username in profile.</li>
<li>Revoke messages by default.</li>
<li>Additional info for chats in folders.</li>
<li>Manage buttons in profile.</li>
<li>Forward to multiple chats.</li>
<li>Allow add up to 10 accounts.</li>
<li>Do not share phone number by default (from TDesktop-x64).</li>
<li>GIFs shared media section (from TDesktop-x64).</li>
<li>Uwrapped "Stickers and GIFs" permission (from TDesktop-x64).</li>
<li>Ukranian translation (by winqooq).</li>
</ul>
</description>
</release>
<release version="1.3.6" date="2020-05-22">
<description>
<p>TDesktop sources were updated to 2.1.6.</p>
<p>Also in this update:</p>
<ul>
<li>Option to disable emoji panel on hover.</li>
<li>Option to use native window frame on Windows and macOS.</li>
<li>Option to disable tray counter.</li>
<li>Option to use Telegram tray icon on Linux panels.</li>
<li>Set media clear limit down to 1 day.</li>
</ul>
</description>
</release>
<release version="1.3.5" date="2020-05-10">
<description>
<p>TDesktop sources were updated to 2.1.4.</p>
</description>
</release>
<release version="1.3.4" date="2020-05-06">
<description>
<p>TDesktop sources were updated to 2.1.2.</p>
<p>Also in this update:</p>
<ul>
<li>Optional Bot API chat ID format.</li>
<li>Message ID in date tooltip.</li>
<li>Option to scale sticker width along with height.</li>
<li>Show time of service message.</li>
</ul>
</description>
</release>
<release version="1.3.3" date="2020-05-03">
<description>
<p>TDesktop sources were updated to 2.1.1.</p>
<p>1.3.2 had crash with "All chats" enabled, so there is 1.3.3.</p>
</description>
</release>
<release version="1.3.2" date="2020-05-02">
<description>
<p>TDesktop sources were updated to 2.1.1.</p>
</description>
</release>
<release version="1.3.1" date="2020-04-27">
<description>
<p>Some post-release bugfixes, including folder names.</p>
</description>
</release>
<release version="1.3" date="2020-04-25">
<description>
<p>TDesktop sources were updated to 2.1.</p>
<p>Also in this update:</p>
<ul>
<li>Search messages from user from context menu.</li>
<li>"query" parameter for tg://resolve and t.me links to set search query.</li>
<li>Select and copy text in link open box and bot button click.</li>
<li>Select and copy text of poll explanation, showing it in box.</li>
<li>Added two existed options to menu: tray icon and profile picture rounding.</li>
<li>Suggest to hide pinned message when unpinning.</li>
<li>Show Discuss button even if you haven't subscribed to channel.</li>
</ul>
</description>
</release>
<release version="1.2.2" date="2020-04-02">
<description>
<p>TDesktop sources were updated to 2.0.1.</p>
<p>Also in this update:</p>
<ul>
<li>Option to hide All chats folder.</li>
</ul>
</description>
</release>
<release version="1.2.1" date="2020-03-31">
<description>
<p>TDesktop sources were updated to 2.0.</p>
<p>Also in this update:</p>
<ul>
<li>Option to set default folder. Also added context menu to All chats filter.</li>
<li>Option to show only unmuted chats in folder counter.</li>
<li>Option to hide Edit button in folder sidebar.</li>
<li>Compact folder sidebar option.</li>
<li>Restored unreleased notification toggle as option.</li>
<li>tg://settings/kotato link to open Kotatogram Settings. Also added three-dots menu there.</li>
</ul>
</description>
</release>
<release version="1.2" date="2020-03-19">
<description>
<p>TDesktop sources were updated to 1.9.21.</p>
<p>Also in this update:</p>
<ul>
<li>New logo and option to choose alternative icons.</li>
<li>Support for taskbar flashing alert.</li>
<li>Bot privacy status in members list.</li>
<li>Custom tray and taskbar icon.</li>
<li>Show working dir in tray icon tooltip.</li>
<li>Option to change rounding of profile pictures.</li>
<li>Option to always show profile picture in top bar.</li>
<li>Ban members option in Recent Actions.</li>
<li>Control notification sound from tray menu.</li>
<li>Option to change recent stickers show limit (up to 200 or disable at all).</li>
<li>Show video playback controls for GIFs.</li>
<li>Allow up to 64px as minimal sticker size.</li>
<li>Optional confirmation before calling.</li>
<li>"Disable Up to edit" now in options menu.</li>
<li>Option to use original font height.</li>
</ul>
</description>
</release>
<release version="1.1.9" date="2020-03-15">
<description>
<p>TDesktop sources were updated to 1.9.20 beta.</p>
<p>Also in this update:</p>
<ul>
<li>Support for taskbar flashing alert.</li>
<li>Bot privacy status in members list.</li>
<li>Custom tray and taskbar icon.</li>
<li>Show working dir in tray icon tooltip.</li>
<li>Option to change rounding of profile pictures.</li>
<li>Option to always show profile picture in top bar.</li>
<li>Ban members option in Recent Actions.</li>
</ul>
</description>
</release>
<release version="1.1.8" date="2020-02-26">
<description>
<p>TDesktop sources were updated to 1.9.19 beta.</p>
<p>Also in this update:</p>
<ul>
<li>Control notification sound from tray menu.</li>
<li>Option to change recent stickers show limit (up to 200 or disable at all).</li>
<li>Show video playback controls for GIFs.</li>
</ul>
</description>
</release>
<release version="1.1.7" date="2020-02-08">
<description>
<p>TDesktop sources were updated to 1.9.10 beta.</p>
<p>Also in this update:</p>
<ul>
<li>Allow up to 64px as minimal sticker size.</li>
<li>Optional confirmation before calling.</li>
<li>"Disable Up to edit" now in options menu.</li>
<li>Option to use original font height.</li>
</ul>
</description>
</release>
<release version="1.1.6" date="2020-01-31">
<description>
<p>TDesktop sources were updated to 1.9.9.</p>
<p>Also in this update:</p>
<ul>
<li>Custom instant replaces in JSON settings.</li>
<li>Ability to use system font (user-contributed).</li>
</ul>
</description>
</release>
</releases>
<content_rating type="oars-1.1">
<content_attribute id="violence-cartoon">none</content_attribute>
<content_attribute id="violence-fantasy">none</content_attribute>
<content_attribute id="violence-realistic">none</content_attribute>
<content_attribute id="violence-bloodshed">none</content_attribute>
<content_attribute id="violence-sexual">none</content_attribute>
<content_attribute id="violence-desecration">none</content_attribute>
<content_attribute id="violence-slavery">none</content_attribute>
<content_attribute id="violence-worship">none</content_attribute>
<content_attribute id="drugs-alcohol">none</content_attribute>
<content_attribute id="drugs-narcotics">none</content_attribute>
<content_attribute id="drugs-tobacco">none</content_attribute>
<content_attribute id="sex-nudity">none</content_attribute>
<content_attribute id="sex-themes">none</content_attribute>
<content_attribute id="sex-homosexuality">none</content_attribute>
<content_attribute id="sex-prostitution">none</content_attribute>
<content_attribute id="sex-adultery">none</content_attribute>
<content_attribute id="sex-appearance">none</content_attribute>
<content_attribute id="language-profanity">none</content_attribute>
<content_attribute id="language-humor">none</content_attribute>
<content_attribute id="language-discrimination">none</content_attribute>
<content_attribute id="social-chat">intense</content_attribute>
<content_attribute id="social-info">none</content_attribute>
<content_attribute id="social-audio">intense</content_attribute>
<content_attribute id="social-location">none</content_attribute>
<content_attribute id="social-contacts">intense</content_attribute>
<content_attribute id="money-purchasing">intense</content_attribute>
<content_attribute id="money-gambling">none</content_attribute>
<content_attribute id="money-advertising">moderate</content_attribute>
</content_rating>
<launchable type="desktop-id">io.github.kotatogram.desktop</launchable>
<provides>
<binary>kotatogram-desktop</binary>
<dbus type="session">io.github.kotatogram</dbus>
<mediatype>x-scheme-handler/tg</mediatype>
</provides>
</component>

View file

@ -0,0 +1,3 @@
[D-BUS Service]
Name=io.github.kotatogram
Exec=@CMAKE_INSTALL_FULL_BINDIR@/kotatogram-desktop