[Branding] App name and logo
Featuring macOS icon contributed by gershik.
|
|
@ -1432,7 +1432,7 @@ PRIVATE
|
|||
qrc/telegram/export.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
|
||||
|
|
@ -1465,7 +1465,39 @@ elseif (APPLE)
|
|||
endif()
|
||||
|
||||
set(icons_path ${CMAKE_CURRENT_SOURCE_DIR}/Telegram/Images.xcassets)
|
||||
target_add_resource(Telegram ${icons_path})
|
||||
set(appicon_path ${icons_path}/Icon.iconset)
|
||||
|
||||
find_program(ICONUTIL iconutil)
|
||||
find_program(PNG2ICNS png2icns)
|
||||
if (ICONUTIL)
|
||||
add_custom_command(
|
||||
OUTPUT AppIcon.icns
|
||||
COMMAND ${ICONUTIL}
|
||||
ARGS
|
||||
--convert icns
|
||||
--output AppIcon.icns
|
||||
${appicon_path}
|
||||
)
|
||||
elseif (PNG2ICNS)
|
||||
add_custom_command(
|
||||
OUTPUT AppIcon.icns
|
||||
COMMAND ${PNG2ICNS}
|
||||
ARGS
|
||||
AppIcon.icns
|
||||
${appicon_path}/icon_16x16.png
|
||||
${appicon_path}/icon_32x32.png
|
||||
${appicon_path}/icon_128x128.png
|
||||
${appicon_path}/icon_256x256.png
|
||||
${appicon_path}/icon_512x512.png
|
||||
)
|
||||
endif()
|
||||
|
||||
if (ICONUTIL OR PNG2ICNS)
|
||||
set_source_files_properties(AppIcon.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
||||
target_add_resource(Telegram AppIcon.icns)
|
||||
else()
|
||||
target_add_resource(Telegram ${icons_path})
|
||||
endif()
|
||||
|
||||
set(lang_packs
|
||||
en
|
||||
|
|
@ -1540,10 +1572,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
|
||||
)
|
||||
|
|
@ -1557,19 +1594,13 @@ if (build_macstore)
|
|||
COMMAND rm -rf $<TARGET_FILE_DIR:Telegram>/../Frameworks/Breakpad.framework/Resources/Inspector
|
||||
)
|
||||
else()
|
||||
set(bundle_identifier "com.tdesktop.Telegram$<$<CONFIG:Debug>:Debug>")
|
||||
set(bundle_entitlements "Telegram.entitlements")
|
||||
if (LINUX AND DESKTOP_APP_USE_PACKAGED)
|
||||
set(output_name "telegram-desktop")
|
||||
else()
|
||||
set(output_name "Telegram")
|
||||
endif()
|
||||
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}
|
||||
|
|
@ -1595,13 +1626,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)
|
||||
|
|
@ -1653,6 +1684,11 @@ if ((NOT DESKTOP_APP_DISABLE_AUTOUPDATE OR APPLE) AND NOT build_macstore AND NOT
|
|||
_other/updater.h
|
||||
)
|
||||
|
||||
nice_target_sources(Updater ${res_loc}
|
||||
PRIVATE
|
||||
winrc/KotatogramUpdater.rc
|
||||
)
|
||||
|
||||
set_target_properties(Updater PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY ${output_folder}
|
||||
)
|
||||
|
|
@ -1719,16 +1755,17 @@ endif()
|
|||
|
||||
if (LINUX AND DESKTOP_APP_USE_PACKAGED)
|
||||
include(GNUInstallDirs)
|
||||
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.desktop" "${CMAKE_CURRENT_BINARY_DIR}/io.github.kotatogram.desktop" @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 "../lib/xdg/org.telegram.desktop.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications")
|
||||
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 "../lib/xdg//io.github.kotatogram.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/io.github.kotatogram.metainfo.xml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/metainfo")
|
||||
endif()
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 401 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 14 KiB |
BIN
Telegram/Resources/icons/intro_kotato_top.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
Telegram/Resources/icons/intro_kotato_top@2x.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
Telegram/Resources/icons/intro_kotato_top@3x.png
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
BIN
Telegram/Resources/icons/intro_kotato_trace.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
Telegram/Resources/icons/intro_kotato_trace@2x.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
Telegram/Resources/icons/intro_kotato_trace@3x.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 452 B After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 884 B After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.9 KiB |
|
|
@ -54,6 +54,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>
|
||||
|
|
|
|||
67
Telegram/Resources/winrc/Kotatogram.rc
Normal 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
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
58
Telegram/Resources/winrc/KotatogramUpdater.rc
Normal 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
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
|
@ -267,7 +267,7 @@ bool update(bool writeprotected) {
|
|||
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;
|
||||
|
|
@ -394,7 +394,7 @@ int main(int argc, char *argv[]) {
|
|||
}
|
||||
}
|
||||
if (exeName.empty() || exeName.find('/') != string::npos) {
|
||||
exeName = "Telegram";
|
||||
exeName = "Kotatogram";
|
||||
}
|
||||
openLog();
|
||||
|
||||
|
|
@ -426,6 +426,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/");
|
||||
|
|
@ -439,6 +440,7 @@ int main(int argc, char *argv[]) {
|
|||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
if (workDir.empty()) {
|
||||
workDir = exePath;
|
||||
|
||||
|
|
@ -505,7 +507,7 @@ int main(int argc, char *argv[]) {
|
|||
}
|
||||
}
|
||||
|
||||
writeLog("Executed Telegram, closing log and quitting..");
|
||||
writeLog("Executed Kotatogram, closing log and quitting..");
|
||||
closeLog();
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -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:@""]);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -1768,7 +1768,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(),
|
||||
|
|
|
|||
|
|
@ -37,7 +37,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));
|
||||
|
|
@ -204,7 +204,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());
|
||||
|
||||
|
|
@ -346,9 +346,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) {
|
||||
|
|
@ -423,7 +423,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);
|
||||
|
|
@ -439,15 +439,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(); });
|
||||
|
|
@ -574,12 +576,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;
|
||||
|
|
@ -656,6 +658,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)) {
|
||||
|
|
@ -764,7 +767,7 @@ void LastCrashedWindow::updateControls() {
|
|||
if (_sendingState == SendingProgress || _sendingState == SendingUploading) {
|
||||
_send.hide();
|
||||
} else {
|
||||
_send.show();
|
||||
//_send.show();
|
||||
}
|
||||
_sendSkip.show();
|
||||
_continue.hide();
|
||||
|
|
@ -851,7 +854,7 @@ void LastCrashedWindow::updateControls() {
|
|||
if (_sendingState == SendingProgress || _sendingState == SendingUploading) {
|
||||
_send.hide();
|
||||
} else {
|
||||
_send.show();
|
||||
//_send.show();
|
||||
}
|
||||
_sendSkip.show();
|
||||
if (_sendingState == SendingFail) {
|
||||
|
|
@ -867,7 +870,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 {
|
||||
|
|
@ -1048,12 +1051,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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -305,7 +305,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
|
||||
|
|
@ -375,7 +375,7 @@ int Launcher::exec() {
|
|||
Platform::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."));
|
||||
|
|
@ -383,7 +383,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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -408,7 +408,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
|
||||
|
||||
|
|
|
|||
|
|
@ -1553,7 +1553,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);
|
||||
#elif defined Q_OS_UNIX // Q_OS_MAC
|
||||
QString curUpdater = (cExeDir() + u"Updater"_q);
|
||||
QFileInfo updater(cWorkingDir() + u"tupdates/temp/Updater"_q);
|
||||
|
|
@ -1638,11 +1638,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);
|
||||
|
|
|
|||
|
|
@ -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 = 4008004;
|
||||
constexpr auto AppVersionStr = "4.8.4";
|
||||
constexpr auto AppBetaVersion = false;
|
||||
|
|
|
|||
|
|
@ -165,8 +165,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";
|
||||
|
|
|
|||
|
|
@ -938,7 +938,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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -437,7 +437,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);
|
||||
|
|
@ -445,7 +445,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 {
|
||||
|
|
|
|||
|
|
@ -301,7 +301,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);
|
||||
|
|
@ -462,7 +462,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>());
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ using Platform::internal::WaylandIntegration;
|
|||
namespace Platform {
|
||||
namespace {
|
||||
|
||||
constexpr auto kDesktopFile = ":/misc/org.telegram.desktop.desktop"_cs;
|
||||
constexpr auto kDesktopFile = ":/misc/io.github.kotatogram.desktop"_cs;
|
||||
|
||||
bool PortalAutostart(bool start, bool silent) {
|
||||
if (cExeName().isEmpty()) {
|
||||
|
|
@ -78,7 +78,7 @@ bool PortalAutostart(bool start, bool silent) {
|
|||
activeWindow->widget()->windowHandle());
|
||||
}();
|
||||
|
||||
const auto handleToken = Glib::ustring("tdesktop")
|
||||
const auto handleToken = Glib::ustring("ktgdesktop")
|
||||
+ std::to_string(base::RandomValue<uint>());
|
||||
|
||||
std::vector<Glib::ustring> commandline;
|
||||
|
|
@ -287,8 +287,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(),
|
||||
|
|
@ -314,7 +314,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));
|
||||
}
|
||||
|
|
@ -461,8 +461,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;
|
||||
|
|
@ -473,6 +473,7 @@ QString psAppDataPath() {
|
|||
return oldPath;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
return QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + '/';
|
||||
}
|
||||
|
|
@ -529,11 +530,11 @@ void start() {
|
|||
md5Hash.data());
|
||||
}
|
||||
|
||||
return u"org.telegram.desktop._%1.desktop"_q.arg(
|
||||
return u"io.github.kotatogram._%1.desktop"_q.arg(
|
||||
md5Hash.constData());
|
||||
}
|
||||
|
||||
return u"org.telegram.desktop.desktop"_q;
|
||||
return u"io.github.kotatogram.desktop"_q;
|
||||
}());
|
||||
|
||||
LOG(("Launcher filename: %1").arg(QGuiApplication::desktopFileName()));
|
||||
|
|
|
|||
|
|
@ -70,9 +70,9 @@ private:
|
|||
};
|
||||
|
||||
IconGraphic::IconGraphic()
|
||||
: _panelTrayIconName("telegram-panel")
|
||||
, _mutePanelTrayIconName("telegram-mute-panel")
|
||||
, _attentionPanelTrayIconName("telegram-attention-panel")
|
||||
: _panelTrayIconName("kotatogram-panel")
|
||||
, _mutePanelTrayIconName("kotatogram-mute-panel")
|
||||
, _attentionPanelTrayIconName("kotatogram-attention-panel")
|
||||
, _iconSizes{ 16, 22, 24, 32, 48 } {
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -302,7 +302,7 @@ void MainWindow::createGlobalMenu() {
|
|||
}
|
||||
};
|
||||
|
||||
auto main = psMainMenu.addMenu(u"Telegram"_q);
|
||||
auto main = psMainMenu.addMenu(u"Kotatogram"_q);
|
||||
{
|
||||
auto callback = [=] {
|
||||
ensureWindowShown();
|
||||
|
|
@ -312,7 +312,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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -240,7 +240,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
|
||||
|
|
@ -321,10 +321,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) {
|
||||
|
|
@ -461,8 +461,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);
|
||||
}
|
||||
|
|
@ -665,8 +665,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) {
|
||||
|
|
|
|||
|
|
@ -25,11 +25,11 @@ 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 AppUserModelIdRelease[] = L"Telegram.TelegramDesktop.Store";
|
||||
const WCHAR AppUserModelIdRelease[] = L"Kotatogram.KotatogramDesktop.Store";
|
||||
#else // OS_WIN_STORE
|
||||
const WCHAR AppUserModelIdRelease[] = L"Telegram.TelegramDesktop";
|
||||
const WCHAR AppUserModelIdRelease[] = L"Kotatogram.KotatogramDesktop";
|
||||
#endif // OS_WIN_STORE
|
||||
const WCHAR AppUserModelIdAlpha[] = L"Telegram.TelegramDesktop.Alpha";
|
||||
const WCHAR AppUserModelIdAlpha[] = L"Kotatogram.KotatogramDesktop.Alpha";
|
||||
|
||||
} // namespace
|
||||
|
||||
|
|
@ -188,7 +188,7 @@ QString systemShortcutPath() {
|
|||
void cleanupShortcut() {
|
||||
static const int maxFileLen = MAX_PATH * 10;
|
||||
|
||||
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());
|
||||
|
|
@ -316,19 +316,17 @@ bool validateShortcut() {
|
|||
}
|
||||
|
||||
if (cAlphaVersion()) {
|
||||
path += u"TelegramAlpha.lnk"_q;
|
||||
path += u"KotatogramAlpha.lnk"_q;
|
||||
if (validateShortcutAt(path)) {
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
const auto installed = u"Telegram Desktop/Telegram.lnk"_q;
|
||||
const auto old = u"Telegram Win (Unofficial)/Telegram.lnk"_q;
|
||||
if (validateShortcutAt(path + installed)
|
||||
|| validateShortcutAt(path + old)) {
|
||||
const auto installed = u"Kotatogram Desktop/Kotatogram.lnk"_q;
|
||||
if (validateShortcutAt(path + installed)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
path += u"Telegram.lnk"_q;
|
||||
path += u"Kotatogram.lnk"_q;
|
||||
if (validateShortcutAt(path)) {
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -309,7 +309,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);
|
||||
|
|
|
|||
|
|
@ -859,7 +859,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();
|
||||
|
|
|
|||
|
|
@ -983,7 +983,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();
|
||||
|
|
|
|||
|
|
@ -457,29 +457,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(),
|
||||
|
|
|
|||
|
|
@ -3,15 +3,19 @@
|
|||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<string>@output_name@</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>Telegram Desktop messaging app</string>
|
||||
<string>Kotatogram Desktop messaging app</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>AppIcon.icns</string>
|
||||
<key>CFBundleIconName</key>
|
||||
<string>AppIcon.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<string>@bundle_identifier@</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<string>@desktop_app_version_string@</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
|
|
@ -20,9 +24,9 @@
|
|||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
<key>CFBundleURLIconFile</key>
|
||||
<string>Icon.icns</string>
|
||||
<string>AppIcon.icns</string>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<string>@bundle_identifier@</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>tg</string>
|
||||
|
|
@ -30,13 +34,13 @@
|
|||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<string>@desktop_app_version_string@</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.social-networking</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
|
||||
<string>@CMAKE_OSX_DEPLOYMENT_TARGET@</string>
|
||||
<key>LSFileQuarantineEnabled</key>
|
||||
<true/>
|
||||
<key>NOTE</key>
|
||||
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 763 B After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 806 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 763 B After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 806 KiB |
|
|
@ -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
|
||||
|
|
@ -37,11 +37,11 @@ DisableProgramGroupPage=no
|
|||
#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
|
||||
|
|
@ -64,7 +64,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
|
||||
|
|
|
|||
21
lib/xdg/io.github.kotatogram.desktop
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
[Desktop Entry]
|
||||
Name=Kotatogram Desktop
|
||||
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;
|
||||
SingleMainWindow=true
|
||||
X-GNOME-UsesNotifications=true
|
||||
X-GNOME-SingleWindow=true
|
||||
|
||||
[Desktop Action quit]
|
||||
Exec=kotatogram-desktop -quit
|
||||
Name=Quit Kotatogram
|
||||
Icon=application-exit
|
||||
465
lib/xdg/io.github.kotatogram.metainfo.xml
Normal file
|
|
@ -0,0 +1,465 @@
|
|||
<?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 Desktop</name>
|
||||
<summary>Kotatogram Desktop messenger</summary>
|
||||
<description>
|
||||
<p>Kotatogram Desktop is unofficial messaging 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>
|
||||
<update_contact></update_contact>
|
||||
<developer_name>RadRussianRus</developer_name>
|
||||
<url type="homepage">https://kotatogram.github.io/</url>
|
||||
<url type="bugtracker">https://github.com/kotatogram/kotatogram-desktop/issues</url>
|
||||
<url type="help">https://github.com/kotatogram/kotatogram-desktop/issues</url>
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<image>https://raw.githubusercontent.com/kotatogram/kotatogram-desktop/dev/docs/assets/ktg_preview.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>
|
||||
<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">none</content_attribute>
|
||||
<content_attribute id="money-gambling">none</content_attribute>
|
||||
</content_rating>
|
||||
<provides>
|
||||
<binary>kotatogram-desktop</binary>
|
||||
</provides>
|
||||
</component>
|
||||
|
|
@ -1,90 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component type="desktop">
|
||||
<id>org.telegram.desktop</id>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<project_license>GPL-3.0</project_license>
|
||||
<name>Telegram Desktop</name>
|
||||
<summary>Fast. Secure. Powerful.</summary>
|
||||
<description>
|
||||
<p>Pure instant messaging — simple, fast, secure, and synced across all your devices. One of the world's top 10 most downloaded apps with over 500 million active users.</p>
|
||||
<p>FAST: Telegram is the fastest messaging app on the market, connecting people via a unique, distributed network of data centers around the globe.</p>
|
||||
<p>SYNCED: You can access your messages from all your phones, tablets and computers at once. Telegram apps are standalone, so you don’t need to keep your phone connected. Start typing on one device and finish the message from another. Never lose your data again.</p>
|
||||
<p>UNLIMITED: You can send media and files, without any limits on their type and size. Your entire chat history will require no disk space on your device, and will be securely stored in the Telegram cloud for as long as you need it.</p>
|
||||
<p>SECURE: We made it our mission to provide the best security combined with ease of use. Everything on Telegram, including chats, groups, media, etc. is encrypted using a combination of 256-bit symmetric AES encryption, 2048-bit RSA encryption, and Diffie–Hellman secure key exchange.</p>
|
||||
<p>100% FREE & OPEN: Telegram has a fully documented and free API for developers, open source apps and verifiable builds to prove the app you download is built from the exact same source code that is published.</p>
|
||||
<p>POWERFUL: You can create group chats with up to 200,000 members, share large videos, documents of any type (.DOCX, .MP3, .ZIP, etc.) up to 2 GB each, and even set up bots for specific tasks. Telegram is the perfect tool for hosting online communities and coordinating teamwork.</p>
|
||||
<p>RELIABLE: Built to deliver your messages using as little data as possible, Telegram is the most reliable messaging system ever made. It works even on the weakest mobile connections.</p>
|
||||
<p>FUN: Telegram has powerful photo and video editing tools, animated stickers and emoji, fully customizable themes to change the appearance of your app, and an open sticker/GIF platform to cater to all your expressive needs.</p>
|
||||
<p>SIMPLE: While providing an unprecedented array of features, we take great care to keep the interface clean. Telegram is so simple you already know how to use it.</p>
|
||||
<p>PRIVATE: We take your privacy seriously and will never give any third parties access to your data. You can delete any message you ever sent or received for both sides, at any time and without a trace. Telegram will never use your data to show you ads.</p>
|
||||
<p>We keep expanding the boundaries of what you can do with a messaging app. Don’t wait years for older messengers to catch up with Telegram — join the revolution today.</p>
|
||||
</description>
|
||||
<categories>
|
||||
<category>Network</category>
|
||||
<category>InstantMessaging</category>
|
||||
</categories>
|
||||
<update_contact>johnprestonmail_at_gmail.com</update_contact>
|
||||
<developer_name>John Preston</developer_name>
|
||||
<url type="homepage">https://desktop.telegram.org/</url>
|
||||
<url type="bugtracker">https://github.com/telegramdesktop/tdesktop/issues</url>
|
||||
<url type="translate">https://translations.telegram.org/</url>
|
||||
<url type="contribute">https://github.com/telegramdesktop/tdesktop/blob/dev/.github/CONTRIBUTING.md</url>
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<image>https://raw.githubusercontent.com/telegramdesktop/tdesktop/dev/docs/assets/preview.png</image>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
<keywords>
|
||||
<keyword>tg</keyword>
|
||||
<keyword>telegram</keyword>
|
||||
<keyword>tdesktop</keyword>
|
||||
<keyword>messaging</keyword>
|
||||
<keyword>messenger</keyword>
|
||||
<keyword>chat</keyword>
|
||||
<keyword>sms</keyword>
|
||||
<keyword>im</keyword>
|
||||
</keywords>
|
||||
<requires>
|
||||
<display_length compare="ge">medium</display_length>
|
||||
<internet>always</internet>
|
||||
</requires>
|
||||
<supports>
|
||||
<control>pointing</control>
|
||||
<control>keyboard</control>
|
||||
<control>touch</control>
|
||||
</supports>
|
||||
<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">org.telegram.desktop.desktop</launchable>
|
||||
<provides>
|
||||
<binary>telegram-desktop</binary>
|
||||
</provides>
|
||||
</component>
|
||||