[Branding] App name and logo
Featuring macOS icon contributed by gershik.
|
|
@ -1265,7 +1265,7 @@ PRIVATE
|
||||||
qrc/emoji_preview.qrc
|
qrc/emoji_preview.qrc
|
||||||
qrc/telegram/telegram.qrc
|
qrc/telegram/telegram.qrc
|
||||||
qrc/telegram/sounds.qrc
|
qrc/telegram/sounds.qrc
|
||||||
winrc/Telegram.rc
|
winrc/Kotatogram.rc
|
||||||
winrc/Telegram.manifest
|
winrc/Telegram.manifest
|
||||||
langs/lang.strings
|
langs/lang.strings
|
||||||
langs/cloud_lang.strings
|
langs/cloud_lang.strings
|
||||||
|
|
@ -1290,8 +1290,20 @@ elseif (APPLE)
|
||||||
target_link_libraries(Telegram PRIVATE desktop-app::external_iconv)
|
target_link_libraries(Telegram PRIVATE desktop-app::external_iconv)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(icons_path ${CMAKE_CURRENT_SOURCE_DIR}/Telegram/Images.xcassets)
|
set(appicon_path ${CMAKE_CURRENT_SOURCE_DIR}/Telegram/Images.xcassets/Icon.iconset)
|
||||||
target_add_resource(Telegram ${icons_path})
|
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT AppIcon.icns
|
||||||
|
COMMAND iconutil
|
||||||
|
ARGS
|
||||||
|
--convert icns
|
||||||
|
--output AppIcon.icns
|
||||||
|
${appicon_path}
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
set_source_files_properties(AppIcon.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
||||||
|
target_add_resource(Telegram AppIcon.icns)
|
||||||
|
|
||||||
set(lang_packs
|
set(lang_packs
|
||||||
en
|
en
|
||||||
|
|
@ -1361,10 +1373,15 @@ else()
|
||||||
endif()
|
endif()
|
||||||
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)
|
if (build_macstore)
|
||||||
set(bundle_identifier "org.telegram.desktop")
|
|
||||||
set(bundle_entitlements "Telegram Lite.entitlements")
|
set(bundle_entitlements "Telegram Lite.entitlements")
|
||||||
set(output_name "Telegram Lite")
|
|
||||||
set_target_properties(Telegram PROPERTIES
|
set_target_properties(Telegram PROPERTIES
|
||||||
XCODE_ATTRIBUTE_FRAMEWORK_SEARCH_PATHS ${libs_loc}/breakpad/src/client/mac/build/Release
|
XCODE_ATTRIBUTE_FRAMEWORK_SEARCH_PATHS ${libs_loc}/breakpad/src/client/mac/build/Release
|
||||||
)
|
)
|
||||||
|
|
@ -1378,19 +1395,13 @@ if (build_macstore)
|
||||||
COMMAND rm -rf $<TARGET_FILE_DIR:Telegram>/../Frameworks/Breakpad.framework/Resources/Inspector
|
COMMAND rm -rf $<TARGET_FILE_DIR:Telegram>/../Frameworks/Breakpad.framework/Resources/Inspector
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
set(bundle_identifier "com.tdesktop.Telegram$<$<CONFIG:Debug>:Debug>")
|
|
||||||
set(bundle_entitlements "Telegram.entitlements")
|
set(bundle_entitlements "Telegram.entitlements")
|
||||||
if (LINUX AND DESKTOP_APP_USE_PACKAGED)
|
|
||||||
set(output_name "telegram-desktop")
|
|
||||||
else()
|
|
||||||
set(output_name "Telegram")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set_target_properties(Telegram PROPERTIES
|
set_target_properties(Telegram PROPERTIES
|
||||||
OUTPUT_NAME ${output_name}
|
OUTPUT_NAME ${output_name}
|
||||||
MACOSX_BUNDLE_GUI_IDENTIFIER ${bundle_identifier}
|
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_CODE_SIGN_ENTITLEMENTS "${CMAKE_CURRENT_SOURCE_DIR}/Telegram/${bundle_entitlements}"
|
||||||
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER ${bundle_identifier}
|
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER ${bundle_identifier}
|
||||||
XCODE_ATTRIBUTE_CURRENT_PROJECT_VERSION ${desktop_app_version_string}
|
XCODE_ATTRIBUTE_CURRENT_PROJECT_VERSION ${desktop_app_version_string}
|
||||||
|
|
@ -1416,13 +1427,13 @@ target_compile_definitions(Telegram
|
||||||
PRIVATE
|
PRIVATE
|
||||||
TDESKTOP_API_ID=${TDESKTOP_API_ID}
|
TDESKTOP_API_ID=${TDESKTOP_API_ID}
|
||||||
TDESKTOP_API_HASH=${TDESKTOP_API_HASH}
|
TDESKTOP_API_HASH=${TDESKTOP_API_HASH}
|
||||||
G_LOG_DOMAIN="Telegram"
|
G_LOG_DOMAIN="Kotatogram"
|
||||||
)
|
)
|
||||||
|
|
||||||
if (APPLE
|
if (APPLE
|
||||||
OR "${CMAKE_GENERATOR}" STREQUAL "Ninja Multi-Config"
|
OR "${CMAKE_GENERATOR}" STREQUAL "Ninja Multi-Config"
|
||||||
OR NOT CMAKE_EXECUTABLE_SUFFIX STREQUAL ""
|
OR NOT CMAKE_EXECUTABLE_SUFFIX STREQUAL ""
|
||||||
OR NOT "${output_name}" STREQUAL "Telegram")
|
OR NOT "${output_name}" STREQUAL "Kotatogram")
|
||||||
set(output_folder ${CMAKE_BINARY_DIR})
|
set(output_folder ${CMAKE_BINARY_DIR})
|
||||||
else()
|
else()
|
||||||
set(output_folder ${CMAKE_BINARY_DIR}/bin)
|
set(output_folder ${CMAKE_BINARY_DIR}/bin)
|
||||||
|
|
@ -1472,6 +1483,11 @@ if ((NOT DESKTOP_APP_DISABLE_AUTOUPDATE OR APPLE) AND NOT build_macstore AND NOT
|
||||||
_other/updater.h
|
_other/updater.h
|
||||||
)
|
)
|
||||||
|
|
||||||
|
nice_target_sources(Updater ${res_loc}
|
||||||
|
PRIVATE
|
||||||
|
winrc/KotatogramUpdater.rc
|
||||||
|
)
|
||||||
|
|
||||||
set_target_properties(Updater PROPERTIES
|
set_target_properties(Updater PROPERTIES
|
||||||
RUNTIME_OUTPUT_DIRECTORY ${output_folder}
|
RUNTIME_OUTPUT_DIRECTORY ${output_folder}
|
||||||
)
|
)
|
||||||
|
|
@ -1538,16 +1554,16 @@ endif()
|
||||||
|
|
||||||
if (LINUX AND DESKTOP_APP_USE_PACKAGED)
|
if (LINUX AND DESKTOP_APP_USE_PACKAGED)
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
configure_file("../lib/xdg/telegramdesktop.metainfo.xml.in" "${CMAKE_CURRENT_BINARY_DIR}/telegramdesktop.metainfo.xml" @ONLY)
|
configure_file("../lib/xdg/kotatogramdesktop.metainfo.xml.in" "${CMAKE_CURRENT_BINARY_DIR}/kotatogramdesktop.metainfo.xml" @ONLY)
|
||||||
generate_appdata_changelog(Telegram "${CMAKE_SOURCE_DIR}/changelog.txt" "${CMAKE_CURRENT_BINARY_DIR}/telegramdesktop.metainfo.xml")
|
# generate_appdata_changelog(Telegram "${CMAKE_SOURCE_DIR}/changelog.txt" "${CMAKE_CURRENT_BINARY_DIR}/kotatogramdesktop.metainfo.xml")
|
||||||
install(TARGETS Telegram RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
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/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 "telegram.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 "telegram.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 "telegram.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 "telegram.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 "telegram.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 "telegram.png")
|
install(FILES "Resources/art/icon512.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/512x512/apps" RENAME "kotatogram.png")
|
||||||
install(FILES "../lib/xdg/telegramdesktop.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications" RENAME "${TDESKTOP_LAUNCHER_BASENAME}.desktop")
|
install(FILES "../lib/xdg/kotatogramdesktop.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications" RENAME "${TDESKTOP_LAUNCHER_BASENAME}.desktop")
|
||||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/telegramdesktop.metainfo.xml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/metainfo" RENAME "${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml")
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/kotatogramdesktop.metainfo.xml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/metainfo" RENAME "${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml")
|
||||||
endif()
|
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 |
|
|
@ -85,6 +85,6 @@
|
||||||
</qresource>
|
</qresource>
|
||||||
<qresource prefix="/misc">
|
<qresource prefix="/misc">
|
||||||
<file alias="default_shortcuts-custom.json">../../default_shortcuts-custom.json</file>
|
<file alias="default_shortcuts-custom.json">../../default_shortcuts-custom.json</file>
|
||||||
<file alias="telegramdesktop.desktop">../../../../lib/xdg/telegramdesktop.desktop</file>
|
<file alias="kotatogramdesktop.desktop">../../../../lib/xdg/kotatogramdesktop.desktop</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</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
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
@ -266,7 +266,7 @@ bool update(bool writeprotected) {
|
||||||
writeLog("Error: bad update, has Updater! '%s' equal '%s'", tofname.c_str(), updaterName.c_str());
|
writeLog("Error: bad update, has Updater! '%s' equal '%s'", tofname.c_str(), updaterName.c_str());
|
||||||
delFolder();
|
delFolder();
|
||||||
return false;
|
return false;
|
||||||
} else if (equal(tofname, exePath + "Telegram") && exeName != "Telegram") {
|
} else if (equal(tofname, exePath + "Kotatogram") && exeName != "Kotatogram") {
|
||||||
string fullBinaryPath = exePath + exeName;
|
string fullBinaryPath = exePath + exeName;
|
||||||
writeLog("Target binary found: '%s', changing to '%s'", tofname.c_str(), fullBinaryPath.c_str());
|
writeLog("Target binary found: '%s', changing to '%s'", tofname.c_str(), fullBinaryPath.c_str());
|
||||||
tofname = fullBinaryPath;
|
tofname = fullBinaryPath;
|
||||||
|
|
@ -391,7 +391,7 @@ int main(int argc, char *argv[]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (exeName.empty() || exeName.find('/') != string::npos) {
|
if (exeName.empty() || exeName.find('/') != string::npos) {
|
||||||
exeName = "Telegram";
|
exeName = "Kotatogram";
|
||||||
}
|
}
|
||||||
openLog();
|
openLog();
|
||||||
|
|
||||||
|
|
@ -423,6 +423,7 @@ int main(int argc, char *argv[]) {
|
||||||
customWorkingDir = false;
|
customWorkingDir = false;
|
||||||
|
|
||||||
writeLog("No workdir, trying to figure it out");
|
writeLog("No workdir, trying to figure it out");
|
||||||
|
/*
|
||||||
struct passwd *pw = getpwuid(getuid());
|
struct passwd *pw = getpwuid(getuid());
|
||||||
if (pw && pw->pw_dir && strlen(pw->pw_dir)) {
|
if (pw && pw->pw_dir && strlen(pw->pw_dir)) {
|
||||||
string tryDir = pw->pw_dir + string("/.TelegramDesktop/");
|
string tryDir = pw->pw_dir + string("/.TelegramDesktop/");
|
||||||
|
|
@ -436,6 +437,7 @@ int main(int argc, char *argv[]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
if (workDir.empty()) {
|
if (workDir.empty()) {
|
||||||
workDir = exePath;
|
workDir = exePath;
|
||||||
|
|
||||||
|
|
@ -503,7 +505,7 @@ int main(int argc, char *argv[]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
writeLog("Executed Telegram, closing log and quitting..");
|
writeLog("Executed Kotatogram, closing log and quitting..");
|
||||||
closeLog();
|
closeLog();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#import <Cocoa/Cocoa.h>
|
#import <Cocoa/Cocoa.h>
|
||||||
#include <sys/xattr.h>
|
#include <sys/xattr.h>
|
||||||
|
|
||||||
NSString *appName = @"Telegram.app";
|
NSString *appName = @"Kotatogram.app";
|
||||||
NSString *appDir = nil;
|
NSString *appDir = nil;
|
||||||
NSString *workDir = nil;
|
NSString *workDir = nil;
|
||||||
|
|
||||||
|
|
@ -54,7 +54,7 @@ void RemoveQuarantineAttribute(NSString *path) {
|
||||||
|
|
||||||
void RemoveQuarantineFromBundle(NSString *path) {
|
void RemoveQuarantineFromBundle(NSString *path) {
|
||||||
RemoveQuarantineAttribute(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/Helpers/crashpad_handler"]);
|
||||||
RemoveQuarantineAttribute([path stringByAppendingString:@"/Contents/Frameworks/Updater"]);
|
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]);
|
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),
|
// 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 *oldVersionUpdaterPath = [appDirFull stringByAppendingString: @"/Contents/Frameworks/Updater" ];
|
||||||
NSString *newVersionUpdaterPath = [srcEnum stringByAppendingString:[[NSArray arrayWithObjects:@"/", appName, @"/Contents/Frameworks/Updater", nil] componentsJoinedByString:@""]];
|
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:@""]);
|
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"'");
|
writeLog(L"Error: bad update, has Updater.exe! '" + tofname + L"' equal '" + updaterName + L"'");
|
||||||
delFolder();
|
delFolder();
|
||||||
return false;
|
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;
|
wstring fullBinaryPath = updateTo + exeName;
|
||||||
writeLog(L"Target binary found: '" + tofname + L"', changing to '" + fullBinaryPath + L"'");
|
writeLog(L"Target binary found: '" + tofname + L"', changing to '" + fullBinaryPath + L"'");
|
||||||
tofname = fullBinaryPath;
|
tofname = fullBinaryPath;
|
||||||
|
|
@ -261,7 +261,7 @@ bool update() {
|
||||||
if (!copyResult) {
|
if (!copyResult) {
|
||||||
writeLog(L"Error: failed to copy, asking to retry..");
|
writeLog(L"Error: failed to copy, asking to retry..");
|
||||||
WCHAR errMsg[2048];
|
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) {
|
if (MessageBox(0, errMsg, L"Update error!", MB_ICONERROR | MB_RETRYCANCEL) != IDRETRY) {
|
||||||
delFolder();
|
delFolder();
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -280,7 +280,7 @@ void updateRegistry() {
|
||||||
writeLog(L"Updating registry..");
|
writeLog(L"Updating registry..");
|
||||||
versionStr[versionLen / 2] = 0;
|
versionStr[versionLen / 2] = 0;
|
||||||
HKEY rkey;
|
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) {
|
if (status == ERROR_SUCCESS) {
|
||||||
writeLog(L"Checking registry install location..");
|
writeLog(L"Checking registry install location..");
|
||||||
static const int bufSize = 4096;
|
static const int bufSize = 4096;
|
||||||
|
|
@ -307,16 +307,16 @@ void updateRegistry() {
|
||||||
SYSTEMTIME stLocalTime;
|
SYSTEMTIME stLocalTime;
|
||||||
GetLocalTime(&stLocalTime);
|
GetLocalTime(&stLocalTime);
|
||||||
RegSetValueEx(rkey, L"DisplayVersion", 0, REG_SZ, (const BYTE*)versionStr, ((versionLen / 2) + 1) * sizeof(WCHAR));
|
RegSetValueEx(rkey, L"DisplayVersion", 0, REG_SZ, (const BYTE*)versionStr, ((versionLen / 2) + 1) * sizeof(WCHAR));
|
||||||
wsprintf(nameStr, L"Telegram Desktop version %s", versionStr);
|
wsprintf(nameStr, L"Kotatogram Desktop version %s", versionStr);
|
||||||
RegSetValueEx(rkey, L"DisplayName", 0, REG_SZ, (const BYTE*)nameStr, (wcslen(nameStr) + 1) * sizeof(WCHAR));
|
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));
|
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));
|
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);
|
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));
|
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"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"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));
|
RegSetValueEx(rkey, L"URLUpdateInfo", 0, REG_SZ, (const BYTE*)appURL, (wcslen(appURL) + 1) * sizeof(WCHAR));
|
||||||
|
|
@ -379,14 +379,14 @@ int APIENTRY wWinMain(HINSTANCE instance, HINSTANCE prevInstance, LPWSTR cmdPara
|
||||||
exeName = args[i];
|
exeName = args[i];
|
||||||
for (int j = 0, l = exeName.size(); j < l; ++j) {
|
for (int j = 0, l = exeName.size(); j < l; ++j) {
|
||||||
if (exeName[j] == L'/' || exeName[j] == L'\\') {
|
if (exeName[j] == L'/' || exeName[j] == L'\\') {
|
||||||
exeName = L"Telegram.exe";
|
exeName = L"Kotatogram.exe";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (exeName.empty()) {
|
if (exeName.empty()) {
|
||||||
exeName = L"Telegram.exe";
|
exeName = L"Kotatogram.exe";
|
||||||
}
|
}
|
||||||
if (needupdate) writeLog(L"Need to update!");
|
if (needupdate) writeLog(L"Need to update!");
|
||||||
if (autostart) writeLog(L"From autostart!");
|
if (autostart) writeLog(L"From autostart!");
|
||||||
|
|
@ -494,7 +494,7 @@ int APIENTRY wWinMain(HINSTANCE instance, HINSTANCE prevInstance, LPWSTR cmdPara
|
||||||
return 0;
|
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";
|
static const WCHAR *_exeName = L"Updater.exe";
|
||||||
|
|
||||||
LPTOP_LEVEL_EXCEPTION_FILTER _oldWndExceptionFilter = 0;
|
LPTOP_LEVEL_EXCEPTION_FILTER _oldWndExceptionFilter = 0;
|
||||||
|
|
|
||||||
|
|
@ -1274,7 +1274,7 @@ void Application::RegisterUrlScheme() {
|
||||||
.arguments = qsl("-workdir \"%1\"").arg(cWorkingDir()),
|
.arguments = qsl("-workdir \"%1\"").arg(cWorkingDir()),
|
||||||
.protocol = qsl("tg"),
|
.protocol = qsl("tg"),
|
||||||
.protocolName = qsl("Telegram Link"),
|
.protocolName = qsl("Telegram Link"),
|
||||||
.shortAppName = qsl("tdesktop"),
|
.shortAppName = qsl("ktgdesktop"),
|
||||||
.longAppName = QCoreApplication::applicationName(),
|
.longAppName = QCoreApplication::applicationName(),
|
||||||
.displayAppName = AppName.utf16(),
|
.displayAppName = AppName.utf16(),
|
||||||
.displayAppDescription = AppName.utf16(),
|
.displayAppDescription = AppName.utf16(),
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ PreLaunchWindow::PreLaunchWindow(QString title) {
|
||||||
setWindowIcon(Window::CreateIcon());
|
setWindowIcon(Window::CreateIcon());
|
||||||
setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint);
|
setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint);
|
||||||
|
|
||||||
setWindowTitle(title.isEmpty() ? qsl("Telegram") : title);
|
setWindowTitle(title.isEmpty() ? qsl("Kotatogram") : title);
|
||||||
|
|
||||||
QPalette p(palette());
|
QPalette p(palette());
|
||||||
p.setColor(QPalette::Window, QColor(255, 255, 255));
|
p.setColor(QPalette::Window, QColor(255, 255, 255));
|
||||||
|
|
@ -179,7 +179,7 @@ NotStartedWindow::NotStartedWindow()
|
||||||
: _label(this)
|
: _label(this)
|
||||||
, _log(this)
|
, _log(this)
|
||||||
, _close(this) {
|
, _close(this) {
|
||||||
_label.setText(qsl("Could not start Telegram Desktop!\nYou can see complete log below:"));
|
_label.setText(qsl("Could not start Kotatogram Desktop!\nYou can see complete log below:"));
|
||||||
|
|
||||||
_log.setPlainText(Logs::full());
|
_log.setPlainText(Logs::full());
|
||||||
|
|
||||||
|
|
@ -322,9 +322,9 @@ LastCrashedWindow::LastCrashedWindow(
|
||||||
[=] { networkSettings(); });
|
[=] { networkSettings(); });
|
||||||
|
|
||||||
if (_sendingState == SendingNoReport) {
|
if (_sendingState == SendingNoReport) {
|
||||||
_label.setText(qsl("Last time Telegram Desktop was not closed properly."));
|
_label.setText(qsl("Last time Kotatogram Desktop was not closed properly."));
|
||||||
} else {
|
} else {
|
||||||
_label.setText(qsl("Last time Telegram Desktop crashed :("));
|
_label.setText(qsl("Last time Kotatogram Desktop crashed :("));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_updaterData) {
|
if (_updaterData) {
|
||||||
|
|
@ -399,7 +399,7 @@ LastCrashedWindow::LastCrashedWindow(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_pleaseSendReport.setText(qsl("Please send us a crash report."));
|
_pleaseSendReport.setText(qsl("You can view and save your crash report here."));
|
||||||
_yourReportName.setText(qsl("Your Report Tag: %1\nYour User Tag: %2").arg(QString(_minidumpName).replace(".dmp", "")).arg(launcher->installationTag(), 0, 16));
|
_yourReportName.setText(qsl("Your Report Tag: %1\nYour User Tag: %2").arg(QString(_minidumpName).replace(".dmp", "")).arg(launcher->installationTag(), 0, 16));
|
||||||
_yourReportName.setCursor(style::cur_text);
|
_yourReportName.setCursor(style::cur_text);
|
||||||
_yourReportName.setTextInteractionFlags(Qt::TextSelectableByMouse);
|
_yourReportName.setTextInteractionFlags(Qt::TextSelectableByMouse);
|
||||||
|
|
@ -415,15 +415,17 @@ LastCrashedWindow::LastCrashedWindow(
|
||||||
});
|
});
|
||||||
_saveReport.setText(qsl("SAVE TO FILE"));
|
_saveReport.setText(qsl("SAVE TO FILE"));
|
||||||
connect(&_saveReport, &QPushButton::clicked, [=] { saveReport(); });
|
connect(&_saveReport, &QPushButton::clicked, [=] { saveReport(); });
|
||||||
_getApp.setText(qsl("GET THE LATEST OFFICIAL VERSION OF TELEGRAM DESKTOP"));
|
_getApp.setText(qsl("GET THE LATEST OFFICIAL VERSION OF KOTATOGRAM DESKTOP"));
|
||||||
connect(&_getApp, &QPushButton::clicked, [=] {
|
connect(&_getApp, &QPushButton::clicked, [=] {
|
||||||
QDesktopServices::openUrl(qsl("https://desktop.telegram.org"));
|
QDesktopServices::openUrl(qsl("https://kotatgram.github.io"));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
_send.setText(qsl("SEND CRASH REPORT"));
|
_send.setText(qsl("SEND CRASH REPORT"));
|
||||||
connect(&_send, &QPushButton::clicked, [=] { sendReport(); });
|
connect(&_send, &QPushButton::clicked, [=] { sendReport(); });
|
||||||
|
*/
|
||||||
|
|
||||||
_sendSkip.setText(qsl("SKIP"));
|
_sendSkip.setText(qsl("CLOSE AND START APP"));
|
||||||
connect(&_sendSkip, &QPushButton::clicked, [=] { processContinue(); });
|
connect(&_sendSkip, &QPushButton::clicked, [=] { processContinue(); });
|
||||||
_continue.setText(qsl("CONTINUE"));
|
_continue.setText(qsl("CONTINUE"));
|
||||||
connect(&_continue, &QPushButton::clicked, [=] { processContinue(); });
|
connect(&_continue, &QPushButton::clicked, [=] { processContinue(); });
|
||||||
|
|
@ -550,12 +552,12 @@ void LastCrashedWindow::checkingFinished() {
|
||||||
LOG(("Crash report check for sending done, result: %1").arg(QString::fromUtf8(result)));
|
LOG(("Crash report check for sending done, result: %1").arg(QString::fromUtf8(result)));
|
||||||
|
|
||||||
if (result == "Old") {
|
if (result == "Old") {
|
||||||
_pleaseSendReport.setText(qsl("This report is about some old version of Telegram Desktop."));
|
_pleaseSendReport.setText(qsl("This report is about some old version of Kotatogram Desktop."));
|
||||||
_sendingState = SendingTooOld;
|
_sendingState = SendingTooOld;
|
||||||
updateControls();
|
updateControls();
|
||||||
return;
|
return;
|
||||||
} else if (result == "Unofficial") {
|
} else if (result == "Unofficial") {
|
||||||
_pleaseSendReport.setText(qsl("You use some custom version of Telegram Desktop."));
|
_pleaseSendReport.setText(qsl("You use some custom version of Kotatogram Desktop."));
|
||||||
_sendingState = SendingUnofficial;
|
_sendingState = SendingUnofficial;
|
||||||
updateControls();
|
updateControls();
|
||||||
return;
|
return;
|
||||||
|
|
@ -632,6 +634,7 @@ void LastCrashedWindow::updateControls() {
|
||||||
int padding = _size, h = padding + _networkSettings.height() + padding;
|
int padding = _size, h = padding + _networkSettings.height() + padding;
|
||||||
|
|
||||||
_label.show();
|
_label.show();
|
||||||
|
_send.hide();
|
||||||
if (_updaterData) {
|
if (_updaterData) {
|
||||||
h += _networkSettings.height() + padding;
|
h += _networkSettings.height() + padding;
|
||||||
if (_updaterData->state == UpdatingFail && (_sendingState == SendingNoReport || _sendingState == SendingUpdateCheck)) {
|
if (_updaterData->state == UpdatingFail && (_sendingState == SendingNoReport || _sendingState == SendingUpdateCheck)) {
|
||||||
|
|
@ -740,7 +743,7 @@ void LastCrashedWindow::updateControls() {
|
||||||
if (_sendingState == SendingProgress || _sendingState == SendingUploading) {
|
if (_sendingState == SendingProgress || _sendingState == SendingUploading) {
|
||||||
_send.hide();
|
_send.hide();
|
||||||
} else {
|
} else {
|
||||||
_send.show();
|
//_send.show();
|
||||||
}
|
}
|
||||||
_sendSkip.show();
|
_sendSkip.show();
|
||||||
_continue.hide();
|
_continue.hide();
|
||||||
|
|
@ -827,7 +830,7 @@ void LastCrashedWindow::updateControls() {
|
||||||
if (_sendingState == SendingProgress || _sendingState == SendingUploading) {
|
if (_sendingState == SendingProgress || _sendingState == SendingUploading) {
|
||||||
_send.hide();
|
_send.hide();
|
||||||
} else {
|
} else {
|
||||||
_send.show();
|
//_send.show();
|
||||||
}
|
}
|
||||||
_sendSkip.show();
|
_sendSkip.show();
|
||||||
if (_sendingState == SendingFail) {
|
if (_sendingState == SendingFail) {
|
||||||
|
|
@ -843,7 +846,7 @@ void LastCrashedWindow::updateControls() {
|
||||||
h += _networkSettings.height() + padding;
|
h += _networkSettings.height() + padding;
|
||||||
}
|
}
|
||||||
|
|
||||||
QSize s(2 * padding + QFontMetrics(_label.font()).horizontalAdvance(qsl("Last time Telegram Desktop was not closed properly.")) + padding + _networkSettings.width(), h);
|
QSize s(2 * padding + QFontMetrics(_label.font()).horizontalAdvance(qsl("Last time Kotatogram Desktop was not closed properly.")) + padding + _networkSettings.width(), h);
|
||||||
if (s == size()) {
|
if (s == size()) {
|
||||||
resizeEvent(0);
|
resizeEvent(0);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -1024,12 +1027,15 @@ void LastCrashedWindow::resizeEvent(QResizeEvent *e) {
|
||||||
int padding = _size;
|
int padding = _size;
|
||||||
_label.move(padding, padding + (_networkSettings.height() - _label.height()) / 2);
|
_label.move(padding, padding + (_networkSettings.height() - _label.height()) / 2);
|
||||||
|
|
||||||
|
/*
|
||||||
_send.move(width() - padding - _send.width(), height() - padding - _send.height());
|
_send.move(width() - padding - _send.width(), height() - padding - _send.height());
|
||||||
if (_sendingState == SendingProgress || _sendingState == SendingUploading) {
|
if (_sendingState == SendingProgress || _sendingState == SendingUploading) {
|
||||||
_sendSkip.move(width() - padding - _sendSkip.width(), height() - padding - _sendSkip.height());
|
_sendSkip.move(width() - padding - _sendSkip.width(), height() - padding - _sendSkip.height());
|
||||||
} else {
|
} else {
|
||||||
_sendSkip.move(width() - padding - _send.width() - padding - _sendSkip.width(), height() - padding - _sendSkip.height());
|
_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);
|
_updating.move(padding, padding * 2 + _networkSettings.height() + (_networkSettings.height() - _updating.height()) / 2);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -402,7 +402,7 @@ StartResult Start() {
|
||||||
fclose(f);
|
fclose(f);
|
||||||
|
|
||||||
LOG(("Opened '%1' for reading, the previous "
|
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()));
|
"Crash log size: %2").arg(ReportPath).arg(lastdump.size()));
|
||||||
|
|
||||||
return lastdump;
|
return lastdump;
|
||||||
|
|
|
||||||
|
|
@ -292,7 +292,7 @@ void Launcher::init() {
|
||||||
prepareSettings();
|
prepareSettings();
|
||||||
initQtMessageLogging();
|
initQtMessageLogging();
|
||||||
|
|
||||||
QApplication::setApplicationName(qsl("TelegramDesktop"));
|
QApplication::setApplicationName(qsl("KotatogramDesktop"));
|
||||||
QApplication::setAttribute(Qt::AA_DisableHighDpiScaling, true);
|
QApplication::setAttribute(Qt::AA_DisableHighDpiScaling, true);
|
||||||
QApplication::setHighDpiScaleFactorRoundingPolicy(
|
QApplication::setHighDpiScaleFactorRoundingPolicy(
|
||||||
Qt::HighDpiScaleFactorRoundingPolicy::Floor);
|
Qt::HighDpiScaleFactorRoundingPolicy::Floor);
|
||||||
|
|
@ -344,7 +344,7 @@ int Launcher::exec() {
|
||||||
Platform::start();
|
Platform::start();
|
||||||
auto result = executeApplication();
|
auto result = executeApplication();
|
||||||
|
|
||||||
DEBUG_LOG(("Telegram finished, result: %1").arg(result));
|
DEBUG_LOG(("Kotatogram finished, result: %1").arg(result));
|
||||||
|
|
||||||
if (!UpdaterDisabled() && cRestartingUpdate()) {
|
if (!UpdaterDisabled() && cRestartingUpdate()) {
|
||||||
DEBUG_LOG(("Sandbox Info: executing updater to install update."));
|
DEBUG_LOG(("Sandbox Info: executing updater to install update."));
|
||||||
|
|
@ -352,7 +352,7 @@ int Launcher::exec() {
|
||||||
base::Platform::DeleteDirectory(cWorkingDir() + qsl("tupdates/temp"));
|
base::Platform::DeleteDirectory(cWorkingDir() + qsl("tupdates/temp"));
|
||||||
}
|
}
|
||||||
} else if (cRestarting()) {
|
} else if (cRestarting()) {
|
||||||
DEBUG_LOG(("Sandbox Info: executing Telegram because of restart."));
|
DEBUG_LOG(("Sandbox Info: executing Kotatogram because of restart."));
|
||||||
launchUpdater(UpdaterLaunch::JustRelaunch);
|
launchUpdater(UpdaterLaunch::JustRelaunch);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -396,7 +396,7 @@ void Manager::writeDefaultFile() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const char *defaultHeader = R"HEADER(
|
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
|
// 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
|
// You can place your own shortcuts in the 'shortcuts-custom.json' file
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1550,7 +1550,7 @@ bool checkReadyUpdate() {
|
||||||
QFileInfo updater(cWorkingDir() + qsl("tupdates/temp/Updater.exe"));
|
QFileInfo updater(cWorkingDir() + qsl("tupdates/temp/Updater.exe"));
|
||||||
#elif defined Q_OS_MAC // Q_OS_WIN
|
#elif defined Q_OS_MAC // Q_OS_WIN
|
||||||
QString curUpdater = (cExeDir() + cExeName() + qsl("/Contents/Frameworks/Updater"));
|
QString curUpdater = (cExeDir() + cExeName() + qsl("/Contents/Frameworks/Updater"));
|
||||||
QFileInfo updater(cWorkingDir() + qsl("tupdates/temp/Telegram.app/Contents/Frameworks/Updater"));
|
QFileInfo updater(cWorkingDir() + qsl("tupdates/temp/Kotatogram.app/Contents/Frameworks/Updater"));
|
||||||
#elif defined Q_OS_UNIX // Q_OS_MAC
|
#elif defined Q_OS_UNIX // Q_OS_MAC
|
||||||
QString curUpdater = (cExeDir() + qsl("Updater"));
|
QString curUpdater = (cExeDir() + qsl("Updater"));
|
||||||
QFileInfo updater(cWorkingDir() + qsl("tupdates/temp/Updater"));
|
QFileInfo updater(cWorkingDir() + qsl("tupdates/temp/Updater"));
|
||||||
|
|
@ -1635,13 +1635,13 @@ void UpdateApplication() {
|
||||||
return "https://itunes.apple.com/ae/app/telegram-desktop/id946399090";
|
return "https://itunes.apple.com/ae/app/telegram-desktop/id946399090";
|
||||||
#elif defined Q_OS_UNIX && !defined Q_OS_MAC // OS_WIN_STORE || OS_MAC_STORE
|
#elif defined Q_OS_UNIX && !defined Q_OS_MAC // OS_WIN_STORE || OS_MAC_STORE
|
||||||
if (Platform::InFlatpak()) {
|
if (Platform::InFlatpak()) {
|
||||||
return "https://flathub.org/apps/details/org.telegram.desktop";
|
return "https://flathub.org/apps/details/io.github.kotatogram";
|
||||||
} else if (Platform::InSnap()) {
|
//} else if (Platform::InSnap()) {
|
||||||
return "https://snapcraft.io/telegram-desktop";
|
// return "https://snapcraft.io/telegram-desktop";
|
||||||
}
|
}
|
||||||
return "https://desktop.telegram.org";
|
return "https://github.com/kotatogram/kotatogram-desktop";
|
||||||
#else // OS_WIN_STORE || OS_MAC_STORE || (defined Q_OS_UNIX && !defined Q_OS_MAC)
|
#else // OS_WIN_STORE || OS_MAC_STORE || (defined Q_OS_UNIX && !defined Q_OS_MAC)
|
||||||
return "https://desktop.telegram.org";
|
return "https://github.com/kotatogram/kotatogram-desktop";
|
||||||
#endif // OS_WIN_STORE || OS_MAC_STORE || (defined Q_OS_UNIX && !defined Q_OS_MAC)
|
#endif // OS_WIN_STORE || OS_MAC_STORE || (defined Q_OS_UNIX && !defined Q_OS_MAC)
|
||||||
}();
|
}();
|
||||||
UrlClickHandler::Open(url);
|
UrlClickHandler::Open(url);
|
||||||
|
|
|
||||||
|
|
@ -18,10 +18,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#endif // TDESKTOP_ALLOW_CLOSED_ALPHA
|
#endif // TDESKTOP_ALLOW_CLOSED_ALPHA
|
||||||
|
|
||||||
// used in Updater.cpp and Setup.iss for Windows
|
// 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 AppNameOld = "Telegram Win (Unofficial)"_cs;
|
||||||
constexpr auto AppName = "Telegram Desktop"_cs;
|
constexpr auto AppName = "Kotatogram Desktop"_cs;
|
||||||
constexpr auto AppFile = "Telegram"_cs;
|
constexpr auto AppFile = "Kotatogram"_cs;
|
||||||
constexpr auto AppVersion = 3005002;
|
constexpr auto AppVersion = 3005002;
|
||||||
constexpr auto AppVersionStr = "3.5.2";
|
constexpr auto AppVersionStr = "3.5.2";
|
||||||
constexpr auto AppBetaVersion = false;
|
constexpr auto AppBetaVersion = false;
|
||||||
|
|
|
||||||
|
|
@ -165,8 +165,8 @@ Stats AbstractWriter::produceTestExample(
|
||||||
|
|
||||||
auto sessions = Data::SessionsList();
|
auto sessions = Data::SessionsList();
|
||||||
auto session = Data::Session();
|
auto session = Data::Session();
|
||||||
session.applicationName = "Telegram Desktop";
|
session.applicationName = "Kotatogram Desktop";
|
||||||
session.applicationVersion = "1.3.8";
|
session.applicationVersion = "1.8.8";
|
||||||
session.country = "GB";
|
session.country = "GB";
|
||||||
session.created = date();
|
session.created = date();
|
||||||
session.deviceModel = "PC";
|
session.deviceModel = "PC";
|
||||||
|
|
|
||||||
|
|
@ -928,7 +928,7 @@ auto HtmlWriter::Wrap::pushMessage(
|
||||||
dialog,
|
dialog,
|
||||||
basePath,
|
basePath,
|
||||||
"This message is not supported by this version "
|
"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) {
|
const auto wrapReplyToLink = [&](const QByteArray &text) {
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,10 @@ introCoverIcon: icon {
|
||||||
{ "intro_plane_outer", introCoverPlaneOuter },
|
{ "intro_plane_outer", introCoverPlaneOuter },
|
||||||
{ "intro_plane_top", introCoverPlaneTop },
|
{ "intro_plane_top", introCoverPlaneTop },
|
||||||
};
|
};
|
||||||
|
introKotatoCoverIcon: icon {
|
||||||
|
{ "intro_kotato_trace", introCoverPlaneTrace },
|
||||||
|
{ "intro_kotato_top", introCoverPlaneTop },
|
||||||
|
};
|
||||||
introCoverIconLeft: 50px;
|
introCoverIconLeft: 50px;
|
||||||
introCoverIconTop: 46px;
|
introCoverIconTop: 46px;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -390,7 +390,7 @@ void Step::paintCover(Painter &p, int top) {
|
||||||
st::introCoverLeft.paint(p, left, coverHeight - st::introCoverLeft.height(), width());
|
st::introCoverLeft.paint(p, left, coverHeight - st::introCoverLeft.height(), width());
|
||||||
st::introCoverRight.paint(p, width() - right - st::introCoverRight.width(), coverHeight - st::introCoverRight.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;
|
auto planeTop = top + st::introCoverIconTop;
|
||||||
if (top < 0 && !_hasCover) {
|
if (top < 0 && !_hasCover) {
|
||||||
auto deltaLeft = -qRound(float64(st::introPlaneWidth / st::introPlaneHeight) * top);
|
auto deltaLeft = -qRound(float64(st::introPlaneWidth / st::introPlaneHeight) * top);
|
||||||
|
|
@ -398,7 +398,7 @@ void Step::paintCover(Painter &p, int top) {
|
||||||
planeLeft += deltaLeft;
|
planeLeft += deltaLeft;
|
||||||
// planeTop += top;
|
// planeTop += top;
|
||||||
}
|
}
|
||||||
st::introCoverIcon.paint(p, planeLeft, planeTop, width());
|
st::introKotatoCoverIcon.paint(p, planeLeft, planeTop, width());
|
||||||
}
|
}
|
||||||
|
|
||||||
int Step::contentLeft() const {
|
int Step::contentLeft() const {
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ SystemMediaControlsManager::SystemMediaControlsManager(
|
||||||
base::Platform::SystemMediaControls::PlaybackStatus;
|
base::Platform::SystemMediaControls::PlaybackStatus;
|
||||||
using Command = base::Platform::SystemMediaControls::Command;
|
using Command = base::Platform::SystemMediaControls::Command;
|
||||||
|
|
||||||
_controls->setServiceName(qsl("org.mpris.MediaPlayer2.tdesktop"));
|
_controls->setServiceName(qsl("org.mpris.MediaPlayer2.Kotatogram"));
|
||||||
_controls->setApplicationName(AppName.utf16());
|
_controls->setApplicationName(AppName.utf16());
|
||||||
const auto inited = _controls->init(controller->widget());
|
const auto inited = _controls->init(controller->widget());
|
||||||
if (!inited) {
|
if (!inited) {
|
||||||
|
|
|
||||||
|
|
@ -60,9 +60,9 @@ namespace {
|
||||||
using internal::WaylandIntegration;
|
using internal::WaylandIntegration;
|
||||||
using WorkMode = Core::Settings::WorkMode;
|
using WorkMode = Core::Settings::WorkMode;
|
||||||
|
|
||||||
constexpr auto kPanelTrayIconName = "telegram-panel"_cs;
|
constexpr auto kPanelTrayIconName = "kotatogram-panel"_cs;
|
||||||
constexpr auto kMutePanelTrayIconName = "telegram-mute-panel"_cs;
|
constexpr auto kMutePanelTrayIconName = "kotatogram-mute-panel"_cs;
|
||||||
constexpr auto kAttentionPanelTrayIconName = "telegram-attention-panel"_cs;
|
constexpr auto kAttentionPanelTrayIconName = "kotatogram-attention-panel"_cs;
|
||||||
|
|
||||||
bool TrayIconMuted = true;
|
bool TrayIconMuted = true;
|
||||||
int32 TrayIconCount = 0;
|
int32 TrayIconCount = 0;
|
||||||
|
|
@ -614,7 +614,7 @@ void MainWindow::createGlobalMenu() {
|
||||||
});
|
});
|
||||||
|
|
||||||
auto quit = file->addAction(
|
auto quit = file->addAction(
|
||||||
tr::lng_mac_menu_quit_telegram(tr::now, lt_telegram, qsl("Telegram")),
|
tr::lng_mac_menu_quit_telegram(tr::now, lt_telegram, qsl("Kotatogram")),
|
||||||
this,
|
this,
|
||||||
[=] { quitFromTray(); },
|
[=] { quitFromTray(); },
|
||||||
QKeySequence::Quit);
|
QKeySequence::Quit);
|
||||||
|
|
@ -775,7 +775,7 @@ void MainWindow::createGlobalMenu() {
|
||||||
tr::lng_mac_menu_about_telegram(
|
tr::lng_mac_menu_about_telegram(
|
||||||
tr::now,
|
tr::now,
|
||||||
lt_telegram,
|
lt_telegram,
|
||||||
qsl("Telegram")),
|
qsl("Kotatogram")),
|
||||||
[=] {
|
[=] {
|
||||||
ensureWindowShown();
|
ensureWindowShown();
|
||||||
controller().show(Box<AboutBox>());
|
controller().show(Box<AboutBox>());
|
||||||
|
|
|
||||||
|
|
@ -65,14 +65,14 @@ using Platform::internal::WaylandIntegration;
|
||||||
namespace Platform {
|
namespace Platform {
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
constexpr auto kDesktopFile = ":/misc/telegramdesktop.desktop"_cs;
|
constexpr auto kDesktopFile = ":/misc/kotatogramdesktop.desktop"_cs;
|
||||||
constexpr auto kIconName = "telegram"_cs;
|
constexpr auto kIconName = "kotatogram"_cs;
|
||||||
constexpr auto kDarkColorLimit = 192;
|
constexpr auto kDarkColorLimit = 192;
|
||||||
|
|
||||||
constexpr auto kXDGDesktopPortalService = "org.freedesktop.portal.Desktop"_cs;
|
constexpr auto kXDGDesktopPortalService = "org.freedesktop.portal.Desktop"_cs;
|
||||||
constexpr auto kXDGDesktopPortalObjectPath = "/org/freedesktop/portal/desktop"_cs;
|
constexpr auto kXDGDesktopPortalObjectPath = "/org/freedesktop/portal/desktop"_cs;
|
||||||
constexpr auto kIBusPortalService = "org.freedesktop.portal.IBus"_cs;
|
constexpr auto kIBusPortalService = "org.freedesktop.portal.IBus"_cs;
|
||||||
constexpr auto kWebviewService = "org.telegram.desktop.GtkIntegration.WebviewHelper-%1-%2"_cs;
|
constexpr auto kWebviewService = "io.github.kotatogram.GtkIntegration.WebviewHelper-%1-%2"_cs;
|
||||||
|
|
||||||
#ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION
|
#ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION
|
||||||
void PortalAutostart(bool start, bool silent) {
|
void PortalAutostart(bool start, bool silent) {
|
||||||
|
|
@ -308,7 +308,7 @@ bool GenerateDesktopFile(
|
||||||
|
|
||||||
fileText = fileText.replace(
|
fileText = fileText.replace(
|
||||||
QRegularExpression(
|
QRegularExpression(
|
||||||
qsl("^Exec=telegram-desktop(.*)$"),
|
qsl("^Exec=kotatogram-desktop(.*)$"),
|
||||||
QRegularExpression::MultilineOption),
|
QRegularExpression::MultilineOption),
|
||||||
qsl("Exec=%1 -workdir %2\\1").arg(
|
qsl("Exec=%1 -workdir %2\\1").arg(
|
||||||
EscapeShellInLauncher(cExeDir() + cExeName()),
|
EscapeShellInLauncher(cExeDir() + cExeName()),
|
||||||
|
|
@ -326,8 +326,8 @@ bool GenerateDesktopFile(
|
||||||
|
|
||||||
if (!Core::UpdaterDisabled()) {
|
if (!Core::UpdaterDisabled()) {
|
||||||
DEBUG_LOG(("App Info: removing old .desktop files"));
|
DEBUG_LOG(("App Info: removing old .desktop files"));
|
||||||
QFile::remove(qsl("%1telegram.desktop").arg(targetPath));
|
QFile::remove(qsl("%1kotatogram.desktop").arg(targetPath));
|
||||||
QFile::remove(qsl("%1telegramdesktop.desktop").arg(targetPath));
|
QFile::remove(qsl("%1kotatogramdesktop.desktop").arg(targetPath));
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -621,14 +621,14 @@ void HaikuAutostart(bool start) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
QFile file(home + "/config/settings/boot/launch/telegram-desktop");
|
QFile file(home + "/config/settings/boot/launch/kotatogram-desktop");
|
||||||
if (start) {
|
if (start) {
|
||||||
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
|
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
|
||||||
QTextStream out(&file);
|
QTextStream out(&file);
|
||||||
out
|
out
|
||||||
<< "#!/bin/bash" << Qt::endl
|
<< "#!/bin/bash" << Qt::endl
|
||||||
<< "cd /system/apps" << Qt::endl
|
<< "cd /system/apps" << Qt::endl
|
||||||
<< "./Telegram -autostart" << " &" << Qt::endl;
|
<< "./Kotatogram -autostart" << " &" << Qt::endl;
|
||||||
file.close();
|
file.close();
|
||||||
file.setPermissions(file.permissions()
|
file.setPermissions(file.permissions()
|
||||||
| QFileDevice::ExeOwner
|
| QFileDevice::ExeOwner
|
||||||
|
|
@ -644,8 +644,8 @@ void HaikuAutostart(bool start) {
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
QString psAppDataPath() {
|
QString psAppDataPath() {
|
||||||
// Previously we used ~/.TelegramDesktop, so look there first.
|
// We should not use ~/.TelegramDesktop, since it's a fork.
|
||||||
// If we find data there, we should still use it.
|
/*
|
||||||
auto home = QDir::homePath();
|
auto home = QDir::homePath();
|
||||||
if (!home.isEmpty()) {
|
if (!home.isEmpty()) {
|
||||||
auto oldPath = home + qsl("/.TelegramDesktop/");
|
auto oldPath = home + qsl("/.TelegramDesktop/");
|
||||||
|
|
@ -656,6 +656,7 @@ QString psAppDataPath() {
|
||||||
return oldPath;
|
return oldPath;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
return QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + '/';
|
return QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + '/';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -432,7 +432,7 @@ void MainWindow::createGlobalMenu() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
auto main = psMainMenu.addMenu(qsl("Telegram"));
|
auto main = psMainMenu.addMenu(qsl("Kotatogram"));
|
||||||
{
|
{
|
||||||
auto callback = [=] {
|
auto callback = [=] {
|
||||||
ensureWindowShown();
|
ensureWindowShown();
|
||||||
|
|
@ -442,7 +442,7 @@ void MainWindow::createGlobalMenu() {
|
||||||
tr::lng_mac_menu_about_telegram(
|
tr::lng_mac_menu_about_telegram(
|
||||||
tr::now,
|
tr::now,
|
||||||
lt_telegram,
|
lt_telegram,
|
||||||
qsl("Telegram")),
|
qsl("Kotatogram")),
|
||||||
std::move(callback))
|
std::move(callback))
|
||||||
->setMenuRole(QAction::AboutQtRole);
|
->setMenuRole(QAction::AboutQtRole);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ void PreviewWindowTitle(Painter &p, const style::palette &palette, QRect body, i
|
||||||
p.setPen(st::titleFgActive[palette]);
|
p.setPen(st::titleFgActive[palette]);
|
||||||
p.setFont(font);
|
p.setFont(font);
|
||||||
|
|
||||||
p.drawText(titleRect, qsl("Telegram"), style::al_center);
|
p.drawText(titleRect, qsl("Kotatogram"), style::al_center);
|
||||||
|
|
||||||
auto isGraphite = ([NSColor currentControlTint] == NSGraphiteControlTint);
|
auto isGraphite = ([NSColor currentControlTint] == NSGraphiteControlTint);
|
||||||
auto buttonSkip = 8;
|
auto buttonSkip = 8;
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,7 @@ BOOL CALLBACK ActivateProcessByPid(HWND hWnd, LPARAM lParam) {
|
||||||
WCHAR nameBuf[nameBufSize];
|
WCHAR nameBuf[nameBufSize];
|
||||||
int32 len = GetWindowText(hWnd, nameBuf, nameBufSize);
|
int32 len = GetWindowText(hWnd, nameBuf, nameBufSize);
|
||||||
if (len && len < nameBufSize) {
|
if (len && len < nameBufSize) {
|
||||||
if (QRegularExpression(qsl("^Telegram(\\s*\\(\\d+\\))?$")).match(QString::fromStdWString(nameBuf)).hasMatch()) {
|
if (QRegularExpression(qsl("^Kotatogram(\\s*\\(\\d+\\))?$")).match(QString::fromStdWString(nameBuf)).hasMatch()) {
|
||||||
BOOL res = ::SetForegroundWindow(hWnd);
|
BOOL res = ::SetForegroundWindow(hWnd);
|
||||||
::SetFocus(hWnd);
|
::SetFocus(hWnd);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
@ -203,7 +203,7 @@ QString psAppDataPath() {
|
||||||
if (GetEnvironmentVariable(L"APPDATA", wstrPath, maxFileLen)) {
|
if (GetEnvironmentVariable(L"APPDATA", wstrPath, maxFileLen)) {
|
||||||
QDir appData(QString::fromStdWString(std::wstring(wstrPath)));
|
QDir appData(QString::fromStdWString(std::wstring(wstrPath)));
|
||||||
#ifdef OS_WIN_STORE
|
#ifdef OS_WIN_STORE
|
||||||
return appData.absolutePath() + qsl("/Telegram Desktop UWP/");
|
return appData.absolutePath() + qsl("/Kotatogram Desktop UWP/");
|
||||||
#else // OS_WIN_STORE
|
#else // OS_WIN_STORE
|
||||||
return appData.absolutePath() + '/' + AppName.utf16() + '/';
|
return appData.absolutePath() + '/' + AppName.utf16() + '/';
|
||||||
#endif // OS_WIN_STORE
|
#endif // OS_WIN_STORE
|
||||||
|
|
@ -284,10 +284,10 @@ void psDoFixPrevious() {
|
||||||
HRESULT userDesktopRes = SHGetFolderPath(0, CSIDL_DESKTOPDIRECTORY, 0, SHGFP_TYPE_CURRENT, userDesktopFolder);
|
HRESULT userDesktopRes = SHGetFolderPath(0, CSIDL_DESKTOPDIRECTORY, 0, SHGFP_TYPE_CURRENT, userDesktopFolder);
|
||||||
HRESULT commonDesktopRes = SHGetFolderPath(0, CSIDL_COMMON_DESKTOPDIRECTORY, 0, SHGFP_TYPE_CURRENT, commonDesktopFolder);
|
HRESULT commonDesktopRes = SHGetFolderPath(0, CSIDL_COMMON_DESKTOPDIRECTORY, 0, SHGFP_TYPE_CURRENT, commonDesktopFolder);
|
||||||
if (SUCCEEDED(userDesktopRes)) {
|
if (SUCCEEDED(userDesktopRes)) {
|
||||||
userDesktopLnk = QString::fromWCharArray(userDesktopFolder) + "\\Telegram.lnk";
|
userDesktopLnk = QString::fromWCharArray(userDesktopFolder) + "\\Kotatogram.lnk";
|
||||||
}
|
}
|
||||||
if (SUCCEEDED(commonDesktopRes)) {
|
if (SUCCEEDED(commonDesktopRes)) {
|
||||||
commonDesktopLnk = QString::fromWCharArray(commonDesktopFolder) + "\\Telegram.lnk";
|
commonDesktopLnk = QString::fromWCharArray(commonDesktopFolder) + "\\Kotatogram.lnk";
|
||||||
}
|
}
|
||||||
QFile userDesktopFile(userDesktopLnk), commonDesktopFile(commonDesktopLnk);
|
QFile userDesktopFile(userDesktopLnk), commonDesktopFile(commonDesktopLnk);
|
||||||
if (QFile::exists(userDesktopLnk) && QFile::exists(commonDesktopLnk) && userDesktopLnk != commonDesktopLnk) {
|
if (QFile::exists(userDesktopLnk) && QFile::exists(commonDesktopLnk) && userDesktopLnk != commonDesktopLnk) {
|
||||||
|
|
@ -411,7 +411,7 @@ void AutostartToggle(bool enabled, Fn<void(bool)> done) {
|
||||||
done ? Fn<void(bool)>(callback) : nullptr);
|
done ? Fn<void(bool)>(callback) : nullptr);
|
||||||
#else // OS_WIN_STORE
|
#else // OS_WIN_STORE
|
||||||
const auto silent = !done;
|
const auto silent = !done;
|
||||||
ManageAppLink(enabled, silent, CSIDL_STARTUP, L"-autostart", L"Telegram autorun link.\nYou can disable autorun in Telegram settings.");
|
ManageAppLink(enabled, silent, CSIDL_STARTUP, L"-autostart", L"Kotatogram autorun link.\nYou can disable autorun in Kotatogram settings.");
|
||||||
if (done) {
|
if (done) {
|
||||||
done(enabled);
|
done(enabled);
|
||||||
}
|
}
|
||||||
|
|
@ -583,7 +583,7 @@ void psNewVersion() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void psSendToMenu(bool send, bool silent) {
|
void psSendToMenu(bool send, bool silent) {
|
||||||
ManageAppLink(send, silent, CSIDL_SENDTO, L"-sendpath", L"Telegram send to link.\nYou can disable send to menu item in Telegram settings.");
|
ManageAppLink(send, silent, CSIDL_SENDTO, L"-sendpath", L"Kotatogram send to link.\nYou can disable send to menu item in Kotatogram settings.");
|
||||||
}
|
}
|
||||||
|
|
||||||
bool psLaunchMaps(const Data::LocationPoint &point) {
|
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 };
|
const PROPERTYKEY pkey_AppUserModel_ToastActivator = { { 0x9F4C2855, 0x9F79, 0x4B39, { 0xA8, 0xD0, 0xE1, 0xD4, 0x2D, 0xE1, 0xD5, 0xF3 } }, 26 };
|
||||||
|
|
||||||
#ifdef OS_WIN_STORE
|
#ifdef OS_WIN_STORE
|
||||||
const WCHAR AppUserModelIdRelease[] = L"Telegram.TelegramDesktop.Store";
|
const WCHAR AppUserModelIdRelease[] = L"Kotatogram.KotatogramDesktop.Store";
|
||||||
#else // OS_WIN_STORE
|
#else // OS_WIN_STORE
|
||||||
const WCHAR AppUserModelIdRelease[] = L"Telegram.TelegramDesktop";
|
const WCHAR AppUserModelIdRelease[] = L"Kotatogram.KotatogramDesktop";
|
||||||
#endif // OS_WIN_STORE
|
#endif // OS_WIN_STORE
|
||||||
const WCHAR AppUserModelIdAlpha[] = L"Telegram.TelegramDesktop.Alpha";
|
const WCHAR AppUserModelIdAlpha[] = L"Kotatogram.KotatogramDesktop.Alpha";
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
|
|
@ -188,7 +188,7 @@ QString systemShortcutPath() {
|
||||||
void cleanupShortcut() {
|
void cleanupShortcut() {
|
||||||
static const int maxFileLen = MAX_PATH * 10;
|
static const int maxFileLen = MAX_PATH * 10;
|
||||||
|
|
||||||
QString path = systemShortcutPath() + qsl("Telegram.lnk");
|
QString path = systemShortcutPath() + qsl("Kotatogram.lnk");
|
||||||
std::wstring p = QDir::toNativeSeparators(path).toStdWString();
|
std::wstring p = QDir::toNativeSeparators(path).toStdWString();
|
||||||
|
|
||||||
DWORD attributes = GetFileAttributes(p.c_str());
|
DWORD attributes = GetFileAttributes(p.c_str());
|
||||||
|
|
@ -316,19 +316,17 @@ bool validateShortcut() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cAlphaVersion()) {
|
if (cAlphaVersion()) {
|
||||||
path += u"TelegramAlpha.lnk"_q;
|
path += u"KotatogramAlpha.lnk"_q;
|
||||||
if (validateShortcutAt(path)) {
|
if (validateShortcutAt(path)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
const auto installed = u"Telegram Desktop/Telegram.lnk"_q;
|
const auto installed = u"Kotatogram Desktop/Kotatogram.lnk"_q;
|
||||||
const auto old = u"Telegram Win (Unofficial)/Telegram.lnk"_q;
|
if (validateShortcutAt(path + installed)) {
|
||||||
if (validateShortcutAt(path + installed)
|
|
||||||
|| validateShortcutAt(path + old)) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
path += u"Telegram.lnk"_q;
|
path += u"Kotatogram.lnk"_q;
|
||||||
if (validateShortcutAt(path)) {
|
if (validateShortcutAt(path)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -298,7 +298,7 @@ void NotificationsCount::prepareNotificationSampleLarge() {
|
||||||
p.setPen(st::dialogsNameFg);
|
p.setPen(st::dialogsNameFg);
|
||||||
p.setFont(st::msgNameFont);
|
p.setFont(st::msgNameFont);
|
||||||
|
|
||||||
auto notifyTitle = st::msgNameFont->elided(qsl("Telegram Desktop"), rectForName.width());
|
auto notifyTitle = st::msgNameFont->elided(qsl("Kotatogram Desktop"), rectForName.width());
|
||||||
p.drawText(rectForName.left(), rectForName.top() + st::msgNameFont->ascent, notifyTitle);
|
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);
|
st::notifyClose.icon.paint(p, w - st::notifyClosePos.x() - st::notifyClose.width + st::notifyClose.iconPosition.x(), st::notifyClosePos.y() + st::notifyClose.iconPosition.y(), w);
|
||||||
|
|
|
||||||
|
|
@ -808,7 +808,7 @@ void MainWindow::updateUnreadCounter() {
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto counter = Core::App().unreadBadge();
|
const auto counter = Core::App().unreadBadge();
|
||||||
setTitle((counter > 0) ? qsl("Telegram (%1)").arg(counter) : qsl("Telegram"));
|
setTitle((counter > 0) ? qsl("Kotatogram (%1)").arg(counter) : qsl("Kotatogram"));
|
||||||
|
|
||||||
unreadCounterChangedHook();
|
unreadCounterChangedHook();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -954,7 +954,7 @@ void NativeManager::doShowNotification(NotificationFields &&fields) {
|
||||||
&& (item->out() || peer->isSelf())
|
&& (item->out() || peer->isSelf())
|
||||||
&& item->isFromScheduled();
|
&& item->isFromScheduled();
|
||||||
const auto title = options.hideNameAndPhoto
|
const auto title = options.hideNameAndPhoto
|
||||||
? qsl("Telegram Desktop")
|
? qsl("Kotatogram Desktop")
|
||||||
: (scheduled && peer->isSelf())
|
: (scheduled && peer->isSelf())
|
||||||
? tr::lng_notification_reminder(tr::now)
|
? tr::lng_notification_reminder(tr::now)
|
||||||
: peer->name;
|
: peer->name;
|
||||||
|
|
|
||||||
|
|
@ -868,7 +868,7 @@ void Notification::updateNotifyDisplay() {
|
||||||
p.setPen(st::dialogsNameFg);
|
p.setPen(st::dialogsNameFg);
|
||||||
Ui::Text::String titleText;
|
Ui::Text::String titleText;
|
||||||
const auto title = options.hideNameAndPhoto
|
const auto title = options.hideNameAndPhoto
|
||||||
? qsl("Telegram Desktop")
|
? qsl("Kotatogram Desktop")
|
||||||
: reminder
|
: reminder
|
||||||
? tr::lng_notification_reminder(tr::now)
|
? tr::lng_notification_reminder(tr::now)
|
||||||
: _history->peer->nameText().toString();
|
: _history->peer->nameText().toString();
|
||||||
|
|
|
||||||
|
|
@ -642,29 +642,14 @@ MainMenu::MainMenu(
|
||||||
refreshMenu();
|
refreshMenu();
|
||||||
refreshBackground();
|
refreshBackground();
|
||||||
|
|
||||||
_telegram->setMarkedText(Ui::Text::Link(
|
_telegram->setMarkedText(Ui::Text::Link(qsl("Kotatogram Desktop"), 1));
|
||||||
qsl("Telegram Desktop"),
|
_telegram->setLink(
|
||||||
qsl("https://desktop.telegram.org")));
|
|
||||||
_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(
|
|
||||||
1,
|
1,
|
||||||
std::make_shared<UrlClickHandler>(Core::App().changelogLink()));
|
|
||||||
_version->setLink(
|
|
||||||
2,
|
|
||||||
std::make_shared<LambdaClickHandler>([=] {
|
std::make_shared<LambdaClickHandler>([=] {
|
||||||
controller->show(Box<AboutBox>());
|
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")));
|
||||||
|
|
||||||
_controller->session().downloaderTaskFinished(
|
_controller->session().downloaderTaskFinished(
|
||||||
) | rpl::start_with_next([=] {
|
) | rpl::start_with_next([=] {
|
||||||
|
|
|
||||||
|
|
@ -3,15 +3,19 @@
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>$(PRODUCT_NAME)</string>
|
<string>@output_name@</string>
|
||||||
<key>CFBundleGetInfoString</key>
|
<key>CFBundleGetInfoString</key>
|
||||||
<string>Telegram Desktop messaging app</string>
|
<string>Telegram Desktop messaging app</string>
|
||||||
|
<key>CFBundleIconFile</key>
|
||||||
|
<string>AppIcon</string>
|
||||||
|
<key>CFBundleIconName</key>
|
||||||
|
<string>AppIcon</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
<string>@bundle_identifier@</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
<string>@desktop_app_version_string@</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleURLTypes</key>
|
<key>CFBundleURLTypes</key>
|
||||||
|
|
@ -20,9 +24,9 @@
|
||||||
<key>CFBundleTypeRole</key>
|
<key>CFBundleTypeRole</key>
|
||||||
<string>Viewer</string>
|
<string>Viewer</string>
|
||||||
<key>CFBundleURLIconFile</key>
|
<key>CFBundleURLIconFile</key>
|
||||||
<string>Icon.icns</string>
|
<string>AppIcon</string>
|
||||||
<key>CFBundleURLName</key>
|
<key>CFBundleURLName</key>
|
||||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
<string>@bundle_identifier@</string>
|
||||||
<key>CFBundleURLSchemes</key>
|
<key>CFBundleURLSchemes</key>
|
||||||
<array>
|
<array>
|
||||||
<string>tg</string>
|
<string>tg</string>
|
||||||
|
|
@ -30,11 +34,11 @@
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
<string>@desktop_app_version_string@</string>
|
||||||
<key>LSApplicationCategoryType</key>
|
<key>LSApplicationCategoryType</key>
|
||||||
<string>public.app-category.social-networking</string>
|
<string>public.app-category.social-networking</string>
|
||||||
<key>LSMinimumSystemVersion</key>
|
<key>LSMinimumSystemVersion</key>
|
||||||
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
|
<string>@CMAKE_OSX_DEPLOYMENT_TARGET@</string>
|
||||||
<key>LSFileQuarantineEnabled</key>
|
<key>LSFileQuarantineEnabled</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>NOTE</key>
|
<key>NOTE</key>
|
||||||
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 806 KiB |
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 806 KiB |
|
|
@ -1,9 +1,9 @@
|
||||||
#define MyAppShortName "Telegram"
|
#define MyAppShortName "Kotatogram"
|
||||||
#define MyAppName "Telegram Desktop"
|
#define MyAppName "Kotatogram Desktop"
|
||||||
#define MyAppPublisher "Telegram FZ-LLC"
|
#define MyAppPublisher "Kotatogram"
|
||||||
#define MyAppURL "https://desktop.telegram.org"
|
#define MyAppURL "https://kotatogram.github.io"
|
||||||
#define MyAppExeName "Telegram.exe"
|
#define MyAppExeName "Kotatogram.exe"
|
||||||
#define MyAppId "53F49750-6209-4FBF-9CA8-7A333C87D1ED"
|
#define MyAppId "C4A4AE8F-B9F7-4CC7-8A6C-BF7EEE87ACA5"
|
||||||
|
|
||||||
[Setup]
|
[Setup]
|
||||||
; NOTE: The value of AppId uniquely identifies this application.
|
; NOTE: The value of AppId uniquely identifies this application.
|
||||||
|
|
@ -22,7 +22,7 @@ AllowNoIcons=yes
|
||||||
OutputDir={#ReleasePath}
|
OutputDir={#ReleasePath}
|
||||||
SetupIconFile={#SourcePath}..\Resources\art\icon256.ico
|
SetupIconFile={#SourcePath}..\Resources\art\icon256.ico
|
||||||
UninstallDisplayName={#MyAppName}
|
UninstallDisplayName={#MyAppName}
|
||||||
UninstallDisplayIcon={app}\Telegram.exe
|
UninstallDisplayIcon={app}\Kotatogram.exe
|
||||||
Compression=lzma
|
Compression=lzma
|
||||||
SolidCompression=yes
|
SolidCompression=yes
|
||||||
DisableStartupPrompt=yes
|
DisableStartupPrompt=yes
|
||||||
|
|
@ -35,10 +35,10 @@ DisableProgramGroupPage=no
|
||||||
#if MyBuildTarget == "win64"
|
#if MyBuildTarget == "win64"
|
||||||
ArchitecturesAllowed="x64 arm64"
|
ArchitecturesAllowed="x64 arm64"
|
||||||
ArchitecturesInstallIn64BitMode="x64 arm64"
|
ArchitecturesInstallIn64BitMode="x64 arm64"
|
||||||
OutputBaseFilename=tsetup-x64.{#MyAppVersionFull}
|
OutputBaseFilename=ksetup-x64.{#MyAppVersionFull}
|
||||||
#define ArchModulesFolder "x64"
|
#define ArchModulesFolder "x64"
|
||||||
#else
|
#else
|
||||||
OutputBaseFilename=tsetup.{#MyAppVersionFull}
|
OutputBaseFilename=ksetup.{#MyAppVersionFull}
|
||||||
#define ArchModulesFolder "x86"
|
#define ArchModulesFolder "x86"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -60,7 +60,7 @@ Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{
|
||||||
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; OnlyBelowVersion: 0,6.1
|
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; OnlyBelowVersion: 0,6.1
|
||||||
|
|
||||||
[Files]
|
[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}\Updater.exe"; DestDir: "{app}"; Flags: ignoreversion
|
||||||
Source: "{#ReleasePath}\{#ModulesFolder}\d3d\d3dcompiler_47.dll"; DestDir: "{app}\{#ModulesFolder}\d3d"; 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
|
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,6 @@ if (DESKTOP_APP_SPECIAL_TARGET)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT TDESKTOP_LAUNCHER_BASENAME)
|
if (NOT TDESKTOP_LAUNCHER_BASENAME)
|
||||||
set(TDESKTOP_LAUNCHER_BASENAME "telegramdesktop")
|
set(TDESKTOP_LAUNCHER_BASENAME "kotatogramdesktop")
|
||||||
endif()
|
endif()
|
||||||
target_compile_definitions(Telegram PRIVATE TDESKTOP_LAUNCHER_BASENAME=${TDESKTOP_LAUNCHER_BASENAME})
|
target_compile_definitions(Telegram PRIVATE TDESKTOP_LAUNCHER_BASENAME=${TDESKTOP_LAUNCHER_BASENAME})
|
||||||
|
|
|
||||||
20
lib/xdg/kotatogramdesktop.desktop
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
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;
|
||||||
|
X-GNOME-UsesNotifications=true
|
||||||
|
|
||||||
|
[Desktop Action Quit]
|
||||||
|
Exec=kotatogram-desktop -quit
|
||||||
|
Name=Quit Kotatogram
|
||||||
|
Icon=application-exit
|
||||||
466
lib/xdg/kotatogramdesktop.metainfo.xml.in
Normal file
|
|
@ -0,0 +1,466 @@
|
||||||
|
<?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>
|
||||||
|
<launchable type="desktop-id">@TDESKTOP_LAUNCHER_BASENAME@.desktop</launchable>
|
||||||
|
<provides>
|
||||||
|
<binary>kotatogram-desktop</binary>
|
||||||
|
</provides>
|
||||||
|
</component>
|
||||||