mirror of https://github.com/procxx/kepka.git
Merge branch 'master' of https://github.com/telegramdesktop/tdesktop
This commit is contained in:
commit
46722cb6b1
2
MSVC.md
2
MSVC.md
|
@ -142,7 +142,7 @@ There go to Qt directory
|
||||||
|
|
||||||
and after that run configure
|
and after that run configure
|
||||||
|
|
||||||
configure -debug-and-release -opensource -confirm-license -static -I "D:\TBuild\Libraries\OpenSSL-Win32\include" -L "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib" -l Gdi32 -opengl desktop -openssl-linked OPENSSL_LIBS_DEBUG="D:\TBuild\Libraries\OpenSSL-Win32\lib\VC\static\ssleay32MTd.lib D:\TBuild\Libraries\OpenSSL-Win32\lib\VC\static\libeay32MTd.lib" OPENSSL_LIBS_RELEASE="D:\TBuild\Libraries\OpenSSL-Win32\lib\VC\static\ssleay32MT.lib D:\TBuild\Libraries\OpenSSL-Win32\lib\VC\static\libeay32MT.lib" -mp -nomake examples -nomake tests -platform win32-msvc2013
|
configure -debug-and-release -opensource -confirm-license -static -I "D:\TBuild\Libraries\OpenSSL-Win32\include" -L "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib" -l Gdi32 -no-opengl -openssl-linked OPENSSL_LIBS_DEBUG="D:\TBuild\Libraries\OpenSSL-Win32\lib\VC\static\ssleay32MTd.lib D:\TBuild\Libraries\OpenSSL-Win32\lib\VC\static\libeay32MTd.lib" OPENSSL_LIBS_RELEASE="D:\TBuild\Libraries\OpenSSL-Win32\lib\VC\static\ssleay32MT.lib D:\TBuild\Libraries\OpenSSL-Win32\lib\VC\static\libeay32MT.lib" -mp -nomake examples -nomake tests -platform win32-msvc2013
|
||||||
|
|
||||||
to configure Qt build. After configuration is complete run
|
to configure Qt build. After configuration is complete run
|
||||||
|
|
||||||
|
|
13
Telegram.sln
13
Telegram.sln
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio 2013
|
# Visual Studio 2013
|
||||||
VisualStudioVersion = 12.0.30110.0
|
VisualStudioVersion = 12.0.30501.0
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Telegram", "Telegram\Telegram.vcxproj", "{B12702AD-ABFB-343A-A199-8E24837244A3}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Telegram", "Telegram\Telegram.vcxproj", "{B12702AD-ABFB-343A-A199-8E24837244A3}"
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
|
@ -16,8 +16,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MetaEmoji", "Telegram\MetaE
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Updater", "Telegram\Updater.vcxproj", "{6B4BA3BE-7B15-4B4C-B200-81ABFDEF2C76}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Updater", "Telegram\Updater.vcxproj", "{6B4BA3BE-7B15-4B4C-B200-81ABFDEF2C76}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Prepare", "Telegram\Prepare.vcxproj", "{88AB1138-143A-4CFB-A0E6-79B646B5E1B0}"
|
|
||||||
EndProject
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MetaLang", "Telegram\MetaLang.vcxproj", "{E417CAA4-259B-4C99-88E3-805F1300E8EB}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MetaLang", "Telegram\MetaLang.vcxproj", "{E417CAA4-259B-4C99-88E3-805F1300E8EB}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2F863EAD-33C9-4014-A573-93F085BA9CB1}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2F863EAD-33C9-4014-A573-93F085BA9CB1}"
|
||||||
|
@ -71,15 +69,6 @@ Global
|
||||||
{6B4BA3BE-7B15-4B4C-B200-81ABFDEF2C76}.Release|Win32.ActiveCfg = Release|Win32
|
{6B4BA3BE-7B15-4B4C-B200-81ABFDEF2C76}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{6B4BA3BE-7B15-4B4C-B200-81ABFDEF2C76}.Release|Win32.Build.0 = Release|Win32
|
{6B4BA3BE-7B15-4B4C-B200-81ABFDEF2C76}.Release|Win32.Build.0 = Release|Win32
|
||||||
{6B4BA3BE-7B15-4B4C-B200-81ABFDEF2C76}.Release|x64.ActiveCfg = Release|Win32
|
{6B4BA3BE-7B15-4B4C-B200-81ABFDEF2C76}.Release|x64.ActiveCfg = Release|Win32
|
||||||
{88AB1138-143A-4CFB-A0E6-79B646B5E1B0}.Debug|Win32.ActiveCfg = Debug|Win32
|
|
||||||
{88AB1138-143A-4CFB-A0E6-79B646B5E1B0}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{88AB1138-143A-4CFB-A0E6-79B646B5E1B0}.Debug|x64.ActiveCfg = Debug|Win32
|
|
||||||
{88AB1138-143A-4CFB-A0E6-79B646B5E1B0}.Deploy|Win32.ActiveCfg = Deploy|Win32
|
|
||||||
{88AB1138-143A-4CFB-A0E6-79B646B5E1B0}.Deploy|Win32.Build.0 = Deploy|Win32
|
|
||||||
{88AB1138-143A-4CFB-A0E6-79B646B5E1B0}.Deploy|x64.ActiveCfg = Release|Win32
|
|
||||||
{88AB1138-143A-4CFB-A0E6-79B646B5E1B0}.Release|Win32.ActiveCfg = Release|Win32
|
|
||||||
{88AB1138-143A-4CFB-A0E6-79B646B5E1B0}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{88AB1138-143A-4CFB-A0E6-79B646B5E1B0}.Release|x64.ActiveCfg = Release|Win32
|
|
||||||
{E417CAA4-259B-4C99-88E3-805F1300E8EB}.Debug|Win32.ActiveCfg = Debug|Win32
|
{E417CAA4-259B-4C99-88E3-805F1300E8EB}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{E417CAA4-259B-4C99-88E3-805F1300E8EB}.Debug|Win32.Build.0 = Debug|Win32
|
{E417CAA4-259B-4C99-88E3-805F1300E8EB}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{E417CAA4-259B-4C99-88E3-805F1300E8EB}.Debug|x64.ActiveCfg = Debug|Win32
|
{E417CAA4-259B-4C99-88E3-805F1300E8EB}.Debug|x64.ActiveCfg = Debug|Win32
|
||||||
|
|
|
@ -1,126 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="Debug|Win32">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Deploy|Win32">
|
|
||||||
<Configuration>Deploy</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Win32">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="SourceFiles\_other\prepare.cpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="SourceFiles\_other\prepare.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{88AB1138-143A-4CFB-A0E6-79B646B5E1B0}</ProjectGuid>
|
|
||||||
<Keyword>Qt4VSv1.0</Keyword>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<PlatformToolset>v120_xp</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<PlatformToolset>v120_xp</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Deploy|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
|
||||||
<PlatformToolset>v120_xp</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Deploy|Win32'" Label="PropertySheets">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<_ProjectFileVersion>11.0.61030.0</_ProjectFileVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)$(Platform)\$(Configuration)IntermediatePrepare\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)$(Platform)\$(Configuration)IntermediatePrepare\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Deploy|Win32'">
|
|
||||||
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
|
|
||||||
<IntDir>$(SolutionDir)$(Platform)\$(Configuration)IntermediatePrepare\</IntDir>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>UNICODE;WIN32;WIN64;QT_CORE_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
<AdditionalIncludeDirectories>.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
|
|
||||||
<AdditionalLibraryDirectories>$(QTDIR)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
<AdditionalDependencies>kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;qtmaind.lib;Qt5Cored.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>UNICODE;WIN32;WIN64;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<DebugInformationFormat />
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<AdditionalIncludeDirectories>.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
|
|
||||||
<AdditionalLibraryDirectories>$(QTDIR)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
<AdditionalDependencies>kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;qtmain.lib;Qt5Core.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Deploy|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<PreprocessorDefinitions>UNICODE;WIN32;WIN64;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<DebugInformationFormat>
|
|
||||||
</DebugInformationFormat>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<AdditionalIncludeDirectories>.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<SubSystem>Console</SubSystem>
|
|
||||||
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
|
|
||||||
<AdditionalLibraryDirectories>$(QTDIR)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
<AdditionalDependencies>kernel32.lib;user32.lib;shell32.lib;uuid.lib;ole32.lib;advapi32.lib;ws2_32.lib;qtmain.lib;Qt5Core.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
<ProjectExtensions>
|
|
||||||
<VisualStudio>
|
|
||||||
<UserProperties UicDir=".\GeneratedFiles" MocDir=".\GeneratedFiles\$(ConfigurationName)" MocOptions="" RccDir=".\GeneratedFiles" lupdateOnBuild="0" lupdateOptions="" lreleaseOptions="" Qt5Version_x0020_Win32="$(DefaultQtVersion)" />
|
|
||||||
</VisualStudio>
|
|
||||||
</ProjectExtensions>
|
|
||||||
</Project>
|
|
|
@ -1,33 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="Source Files">
|
|
||||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
|
||||||
<Extensions>cpp;cxx;c;def</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Header Files">
|
|
||||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
|
||||||
<Extensions>h</Extensions>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Resource Files">
|
|
||||||
<UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
|
|
||||||
<Extensions>qrc;*</Extensions>
|
|
||||||
<ParseFiles>false</ParseFiles>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="Generated Files">
|
|
||||||
<UniqueIdentifier>{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}</UniqueIdentifier>
|
|
||||||
<Extensions>moc;h;cpp</Extensions>
|
|
||||||
<SourceControlFiles>False</SourceControlFiles>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="SourceFiles\_other\prepare.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="SourceFiles\_other\prepare.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
|
@ -1,8 +1,9 @@
|
||||||
@echo OFF
|
@echo OFF
|
||||||
|
|
||||||
set "AppVersionStrSmall=0.7.16"
|
set "AppVersion=7017"
|
||||||
set "AppVersionStr=0.7.16"
|
set "AppVersionStrSmall=0.7.17"
|
||||||
set "AppVersionStrFull=0.7.16.0"
|
set "AppVersionStr=0.7.17"
|
||||||
|
set "AppVersionStrFull=0.7.17.0"
|
||||||
set "DevChannel=0"
|
set "DevChannel=0"
|
||||||
|
|
||||||
if %DevChannel% neq 0 goto preparedev
|
if %DevChannel% neq 0 goto preparedev
|
||||||
|
@ -22,6 +23,10 @@ echo.
|
||||||
echo Preparing version %AppVersionStr%%DevPostfix%..
|
echo Preparing version %AppVersionStr%%DevPostfix%..
|
||||||
echo.
|
echo.
|
||||||
|
|
||||||
|
if exist ..\Win32\Deploy\deploy\%AppVersionStr%\ goto error_exist1
|
||||||
|
if exist ..\Win32\Deploy\deploy\%AppVersionStr%.dev\ goto error_exist2
|
||||||
|
if exist ..\Win32\Deploy\tupdate%AppVersion% goto error_exist3
|
||||||
|
|
||||||
set "PATH=%PATH%;C:\Program Files\7-Zip;C:\Program Files (x86)\Inno Setup 5"
|
set "PATH=%PATH%;C:\Program Files\7-Zip;C:\Program Files (x86)\Inno Setup 5"
|
||||||
cd ..\Win32\Deploy
|
cd ..\Win32\Deploy
|
||||||
|
|
||||||
|
@ -37,12 +42,21 @@ if %errorlevel% neq 0 goto error1
|
||||||
call ..\..\..\TelegramPrivate\Sign.bat tsetup.%AppVersionStr%%DevPostfix%.exe
|
call ..\..\..\TelegramPrivate\Sign.bat tsetup.%AppVersionStr%%DevPostfix%.exe
|
||||||
if %errorlevel% neq 0 goto error1
|
if %errorlevel% neq 0 goto error1
|
||||||
|
|
||||||
call Prepare.exe -path Telegram.exe -path Updater.exe %DevParam%
|
call Packer.exe -version %AppVersion% -path Telegram.exe -path Updater.exe %DevParam%
|
||||||
if %errorlevel% neq 0 goto error1
|
if %errorlevel% neq 0 goto error1
|
||||||
|
|
||||||
|
if not exist deploy mkdir deploy
|
||||||
|
mkdir deploy\%AppVersionStr%%DevPostfix%
|
||||||
|
mkdir deploy\%AppVersionStr%%DevPostfix%\Telegram
|
||||||
|
|
||||||
|
move Telegram.exe deploy\%AppVersionStr%%DevPostfix%\Telegram\
|
||||||
|
move Updater.exe deploy\%AppVersionStr%%DevPostfix%\
|
||||||
|
move Telegram.pdb deploy\%AppVersionStr%%DevPostfix%\
|
||||||
|
move Updater.pdb deploy\%AppVersionStr%%DevPostfix%\
|
||||||
|
move tsetup.%AppVersionStr%%DevPostfix%.exe deploy\%AppVersionStr%%DevPostfix%\
|
||||||
|
move tupdate%AppVersion% deploy\%AppVersionStr%%DevPostfix%\
|
||||||
|
|
||||||
cd deploy\%AppVersionStr%%DevPostfix%
|
cd deploy\%AppVersionStr%%DevPostfix%
|
||||||
mkdir Telegram
|
|
||||||
move Telegram.exe Telegram\
|
|
||||||
7z a -mx9 tportable.%AppVersionStr%%DevPostfix%.zip Telegram\
|
7z a -mx9 tportable.%AppVersionStr%%DevPostfix%.zip Telegram\
|
||||||
if %errorlevel% neq 0 goto error2
|
if %errorlevel% neq 0 goto error2
|
||||||
|
|
||||||
|
@ -60,4 +74,16 @@ cd ..\..\Telegram
|
||||||
echo ERROR occured!
|
echo ERROR occured!
|
||||||
exit /b %errorlevel%
|
exit /b %errorlevel%
|
||||||
|
|
||||||
|
:error_exist1
|
||||||
|
echo Deploy folder for version %AppVersionStr% already exists!
|
||||||
|
exit /b 1
|
||||||
|
|
||||||
|
:error_exist2
|
||||||
|
echo Deploy folder for version %AppVersionStr%.dev already exists!
|
||||||
|
exit /b 1
|
||||||
|
|
||||||
|
:error_exist3
|
||||||
|
echo Update file for version %AppVersion% already exists!
|
||||||
|
exit /b 1
|
||||||
|
|
||||||
:eof
|
:eof
|
||||||
|
|
|
@ -253,7 +253,12 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
size_t compressedLen = compressed.size() - hSize;
|
size_t compressedLen = compressed.size() - hSize;
|
||||||
size_t outPropsSize = LZMA_PROPS_SIZE;
|
size_t outPropsSize = LZMA_PROPS_SIZE;
|
||||||
int res = LzmaCompress((uchar*)(compressed.data() + hSize), &compressedLen, (const uchar*)(result.constData()), result.size(), (uchar*)(compressed.data() + hSigLen + hShaLen), &outPropsSize, 9, 64 * 1024 * 1024, 0, 0, 0, 0, 0);
|
uchar *_dest = (uchar*)(compressed.data() + hSize);
|
||||||
|
size_t *_destLen = &compressedLen;
|
||||||
|
const uchar *_src = (const uchar*)(result.constData());
|
||||||
|
size_t _srcLen = result.size();
|
||||||
|
uchar *_outProps = (uchar*)(compressed.data() + hSigLen + hShaLen);
|
||||||
|
int res = LzmaCompress(_dest, _destLen, _src, _srcLen, _outProps, &outPropsSize, 9, 64 * 1024 * 1024, 4, 0, 2, 273, 2);
|
||||||
if (res != SZ_OK) {
|
if (res != SZ_OK) {
|
||||||
cout << "Error in compression: " << res << "\n";
|
cout << "Error in compression: " << res << "\n";
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
@ -1,106 +0,0 @@
|
||||||
/*
|
|
||||||
This file is part of Telegram Desktop,
|
|
||||||
the official desktop version of Telegram messaging app, see https://telegram.org
|
|
||||||
|
|
||||||
Telegram Desktop is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
It is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE
|
|
||||||
Copyright (c) 2014 John Preston, https://desktop.telegram.org
|
|
||||||
*/
|
|
||||||
#include "prepare.h"
|
|
||||||
|
|
||||||
bool DevChannel = false;
|
|
||||||
|
|
||||||
int prepare(QFileInfo f, QStringList paths) {
|
|
||||||
if (paths.isEmpty()) {
|
|
||||||
cout << "No -path args were passed :(\n";
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int lastVersion = 0;
|
|
||||||
QString lastVersionStr;
|
|
||||||
QFileInfo last;
|
|
||||||
QFileInfoList l = f.absoluteDir().entryInfoList(QDir::Files);
|
|
||||||
for (QFileInfoList::iterator i = l.begin(), e = l.end(); i != e; ++i) {
|
|
||||||
QRegularExpressionMatch m = QRegularExpression("/tsetup\\.((\\d+)\\.(\\d+)\\.(\\d+))(?:\\.dev)?\\.exe$").match(i->absoluteFilePath());
|
|
||||||
if (!m.hasMatch()) continue;
|
|
||||||
|
|
||||||
int version = m.captured(2).toInt() * 1000000 + m.captured(3).toInt() * 1000 + m.captured(4).toInt();
|
|
||||||
if (version > lastVersion) {
|
|
||||||
lastVersion = version;
|
|
||||||
lastVersionStr = m.captured(1);
|
|
||||||
last = *i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!lastVersion) {
|
|
||||||
cout << "No tsetup.X.Y.Z.exe or tsetup.X.Y.Z.dev.exe found :(\n";
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
cout << "Last version: " << (lastVersionStr + (DevChannel ? ".dev" : "")).toUtf8().constData() << " (" << lastVersion << "), executing packer..\n";
|
|
||||||
|
|
||||||
QDir dir("deploy/" + lastVersionStr + (DevChannel ? ".dev" : ""));
|
|
||||||
if (dir.exists()) {
|
|
||||||
cout << "Version " << (lastVersionStr + (DevChannel ? ".dev" : "")).toUtf8().constData() << " already exists in /deploy..\n";
|
|
||||||
return -1;
|
|
||||||
} else if (QDir("deploy/" + lastVersionStr + (DevChannel ? "" : ".dev")).exists()) {
|
|
||||||
cout << "Version " << (lastVersionStr + (DevChannel ? "" : ".dev")).toUtf8().constData() << " already exists in /deploy..\n";
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString packer = QString("Packer.exe -version %1").arg(lastVersion);
|
|
||||||
for (QStringList::iterator i = paths.begin(), e = paths.end(); i != e; ++i) {
|
|
||||||
packer += " -path " + *i;
|
|
||||||
}
|
|
||||||
if (DevChannel) packer += " -dev";
|
|
||||||
|
|
||||||
int res = system(packer.toUtf8().constData());
|
|
||||||
|
|
||||||
if (res) return res;
|
|
||||||
|
|
||||||
dir.mkpath(".");
|
|
||||||
|
|
||||||
paths.push_back("Telegram.pdb");
|
|
||||||
paths.push_back("Updater.pdb");
|
|
||||||
paths.push_back("tsetup." + lastVersionStr + (DevChannel ? ".dev" : "") + ".exe");
|
|
||||||
paths.push_back(QString("tupdate%1").arg(lastVersion));
|
|
||||||
for (QStringList::iterator i = paths.begin(), e = paths.end(); i != e; ++i) {
|
|
||||||
if (!QFile::copy(*i, "deploy/" + lastVersionStr + (DevChannel ? ".dev" : "") + "/" + *i)) {
|
|
||||||
cout << "Could not copy " << i->toUtf8().constData() << " to deploy/" << (lastVersionStr + (DevChannel ? ".dev" : "")).toUtf8().constData() << "\n";
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
cout << "Copied " << i->toUtf8().constData() << "..\n";
|
|
||||||
}
|
|
||||||
for (QStringList::iterator i = paths.begin(), e = paths.end(); i != e; ++i) {
|
|
||||||
QFile::remove(*i);
|
|
||||||
}
|
|
||||||
|
|
||||||
cout << "Update created in deploy/" << (lastVersionStr + (DevChannel ? ".dev" : "")).toUtf8().constData() << "\n";
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
QFileInfo f(argv[0]);
|
|
||||||
|
|
||||||
QStringList paths;
|
|
||||||
for (int i = 1; i < argc; ++i) {
|
|
||||||
if (string(argv[i]) == "-path" && i + 1 < argc) {
|
|
||||||
paths.push_back(QString(argv[i + 1]));
|
|
||||||
} else if (string(argv[i]) == "-dev") {
|
|
||||||
DevChannel = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
int res = prepare(f, paths);
|
|
||||||
return res;
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
/*
|
|
||||||
This file is part of Telegram Desktop,
|
|
||||||
the official desktop version of Telegram messaging app, see https://telegram.org
|
|
||||||
|
|
||||||
Telegram Desktop is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
It is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE
|
|
||||||
Copyright (c) 2014 John Preston, https://desktop.telegram.org
|
|
||||||
*/
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <QtCore/QCoreApplication>
|
|
||||||
#include <QtCore/QFileInfo>
|
|
||||||
#include <QtCore/QFile>
|
|
||||||
#include <QtCore/QDir>
|
|
||||||
#include <QtCore/QStringList>
|
|
||||||
#include <QtCore/QBuffer>
|
|
||||||
#include <QtCore/QRegularExpression>
|
|
||||||
#include <QtCore/QVector>
|
|
||||||
|
|
||||||
#include <process.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
#include <string>
|
|
||||||
#include <iostream>
|
|
||||||
#include <exception>
|
|
||||||
using std::string;
|
|
||||||
using std::wstring;
|
|
||||||
using std::cout;
|
|
|
@ -22,7 +22,6 @@ Copyright (c) 2014 John Preston, https://desktop.telegram.org
|
||||||
#include "pspecific.h"
|
#include "pspecific.h"
|
||||||
#include "fileuploader.h"
|
#include "fileuploader.h"
|
||||||
#include "mainwidget.h"
|
#include "mainwidget.h"
|
||||||
#include "supporttl.h"
|
|
||||||
|
|
||||||
#include "lang.h"
|
#include "lang.h"
|
||||||
#include "boxes/confirmbox.h"
|
#include "boxes/confirmbox.h"
|
||||||
|
@ -674,7 +673,6 @@ void Application::startApp() {
|
||||||
window->init();
|
window->init();
|
||||||
|
|
||||||
DEBUG_LOG(("Application Info: window created.."));
|
DEBUG_LOG(("Application Info: window created.."));
|
||||||
readSupportTemplates();
|
|
||||||
|
|
||||||
MTP::start();
|
MTP::start();
|
||||||
|
|
||||||
|
@ -706,8 +704,8 @@ void Application::startApp() {
|
||||||
QString versionFeatures;
|
QString versionFeatures;
|
||||||
if (DevChannel && Local::oldMapVersion() < 7015) {
|
if (DevChannel && Local::oldMapVersion() < 7015) {
|
||||||
versionFeatures = QString::fromUtf8("\xe2\x80\x94 Some translation keys added\n\xe2\x80\x94 Linux: fixed semibold font\n\xe2\x80\x94 Linux: tray icon should work better in non-Unity environments");
|
versionFeatures = QString::fromUtf8("\xe2\x80\x94 Some translation keys added\n\xe2\x80\x94 Linux: fixed semibold font\n\xe2\x80\x94 Linux: tray icon should work better in non-Unity environments");
|
||||||
} else if (!DevChannel && Local::oldMapVersion() < 7016) {
|
} else if (!DevChannel && Local::oldMapVersion() < 7017) {
|
||||||
versionFeatures = lang(lng_new_version7016).trimmed();
|
versionFeatures = lang(lng_new_version_minor).trimmed();
|
||||||
}
|
}
|
||||||
if (!versionFeatures.isEmpty()) {
|
if (!versionFeatures.isEmpty()) {
|
||||||
versionFeatures = lng_new_version_wrap(lt_version, QString::fromStdWString(AppVersionStr), lt_changes, versionFeatures, lt_link, qsl("https://desktop.telegram.org/#changelog"));
|
versionFeatures = lng_new_version_wrap(lt_version, QString::fromStdWString(AppVersionStr), lt_changes, versionFeatures, lt_link, qsl("https://desktop.telegram.org/#changelog"));
|
||||||
|
|
|
@ -17,8 +17,8 @@ Copyright (c) 2014 John Preston, https://desktop.telegram.org
|
||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
static const int32 AppVersion = 7016;
|
static const int32 AppVersion = 7017;
|
||||||
static const wchar_t *AppVersionStr = L"0.7.16";
|
static const wchar_t *AppVersionStr = L"0.7.17";
|
||||||
static const bool DevChannel = false;
|
static const bool DevChannel = false;
|
||||||
|
|
||||||
static const wchar_t *AppNameOld = L"Telegram Win (Unofficial)";
|
static const wchar_t *AppNameOld = L"Telegram Win (Unofficial)";
|
||||||
|
|
|
@ -26,7 +26,6 @@ Copyright (c) 2014 John Preston, https://desktop.telegram.org
|
||||||
#include "mainwidget.h"
|
#include "mainwidget.h"
|
||||||
#include "window.h"
|
#include "window.h"
|
||||||
#include "fileuploader.h"
|
#include "fileuploader.h"
|
||||||
#include "supporttl.h"
|
|
||||||
|
|
||||||
#include "localstorage.h"
|
#include "localstorage.h"
|
||||||
|
|
||||||
|
@ -1585,7 +1584,6 @@ HistoryWidget::HistoryWidget(QWidget *parent) : QWidget(parent)
|
||||||
connect(&_attachPhoto, SIGNAL(clicked()), this, SLOT(onPhotoSelect()));
|
connect(&_attachPhoto, SIGNAL(clicked()), this, SLOT(onPhotoSelect()));
|
||||||
connect(&_field, SIGNAL(submitted(bool)), this, SLOT(onSend(bool)));
|
connect(&_field, SIGNAL(submitted(bool)), this, SLOT(onSend(bool)));
|
||||||
connect(&_field, SIGNAL(cancelled()), this, SLOT(onCancel()));
|
connect(&_field, SIGNAL(cancelled()), this, SLOT(onCancel()));
|
||||||
connect(&_field, SIGNAL(tabbed()), this, SLOT(onFieldTabbed()));
|
|
||||||
connect(&_field, SIGNAL(resized()), this, SLOT(onFieldResize()));
|
connect(&_field, SIGNAL(resized()), this, SLOT(onFieldResize()));
|
||||||
connect(&_field, SIGNAL(focused()), this, SLOT(onFieldFocused()));
|
connect(&_field, SIGNAL(focused()), this, SLOT(onFieldFocused()));
|
||||||
connect(&imageLoader, SIGNAL(imageReady()), this, SLOT(onPhotoReady()));
|
connect(&imageLoader, SIGNAL(imageReady()), this, SLOT(onPhotoReady()));
|
||||||
|
@ -3429,49 +3427,6 @@ void HistoryWidget::keyPressEvent(QKeyEvent *e) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HistoryWidget::onFieldTabbed() {
|
|
||||||
QString v = _field.getText(), t = supportTemplate(v);
|
|
||||||
if (!t.isEmpty()) {
|
|
||||||
bool isImg = t.startsWith(qsl("img:")), isFile = t.startsWith(qsl("file:")), isContact = t.startsWith(qsl("contact:"));
|
|
||||||
if (isImg || isFile) {
|
|
||||||
QString fname = t.mid(isImg ? 4 : 5).trimmed(), text;
|
|
||||||
int32 lineEnd = fname.indexOf(QChar('\n'));
|
|
||||||
if (lineEnd > 0) {
|
|
||||||
text = fname.mid(lineEnd + 1).trimmed();
|
|
||||||
fname = fname.mid(0, lineEnd).trimmed();
|
|
||||||
}
|
|
||||||
if (isImg) {
|
|
||||||
QImage img(cWorkingDir() + fname);
|
|
||||||
if (!img.isNull()) {
|
|
||||||
setFieldText(text);
|
|
||||||
uploadImage(img, !text.isEmpty());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
setFieldText(text);
|
|
||||||
uploadFile(cWorkingDir() + fname, !text.isEmpty());
|
|
||||||
}
|
|
||||||
} else if (isContact) {
|
|
||||||
QString contact = t.mid(8).trimmed(), text;
|
|
||||||
int32 lineEnd = contact.indexOf(QChar('\n'));
|
|
||||||
if (lineEnd > 0) {
|
|
||||||
text = contact.mid(lineEnd + 1).trimmed();
|
|
||||||
contact = contact.mid(0, lineEnd).trimmed();
|
|
||||||
}
|
|
||||||
QStringList data = contact.split(QChar(' '));
|
|
||||||
if (data.size() > 1) {
|
|
||||||
setFieldText(text);
|
|
||||||
QString phone = data.at(0).trimmed(), fname = data.at(1).trimmed(), lname = (data.size() > 2) ? static_cast<QStringList>(data.mid(2)).join(QChar(' ')).trimmed() : QString();
|
|
||||||
shareContactConfirmation(phone, fname, lname, !text.isEmpty());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
setFieldText(t);
|
|
||||||
QTextCursor c = _field.textCursor();
|
|
||||||
c.movePosition(QTextCursor::End);
|
|
||||||
_field.setTextCursor(c);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void HistoryWidget::onStickerSend(DocumentData *sticker) {
|
void HistoryWidget::onStickerSend(DocumentData *sticker) {
|
||||||
if (!hist || !sticker) return;
|
if (!hist || !sticker) return;
|
||||||
|
|
||||||
|
|
|
@ -382,7 +382,6 @@ public slots:
|
||||||
void activate();
|
void activate();
|
||||||
void onTextChange();
|
void onTextChange();
|
||||||
|
|
||||||
void onFieldTabbed();
|
|
||||||
void onStickerSend(DocumentData *sticker);
|
void onStickerSend(DocumentData *sticker);
|
||||||
|
|
||||||
void onVisibleChanged();
|
void onVisibleChanged();
|
||||||
|
|
|
@ -69,7 +69,9 @@ _saveMsgStarted(0), _saveMsgOpacity(0)
|
||||||
setAttribute(Qt::WA_NoSystemBackground, true);
|
setAttribute(Qt::WA_NoSystemBackground, true);
|
||||||
setAttribute(Qt::WA_TranslucentBackground, true);
|
setAttribute(Qt::WA_TranslucentBackground, true);
|
||||||
setMouseTracking(true);
|
setMouseTracking(true);
|
||||||
|
|
||||||
hide();
|
hide();
|
||||||
|
createWinId();
|
||||||
|
|
||||||
connect(&_close, SIGNAL(clicked()), this, SLOT(onClose()));
|
connect(&_close, SIGNAL(clicked()), this, SLOT(onClose()));
|
||||||
connect(&_save, SIGNAL(clicked()), this, SLOT(onDownload()));
|
connect(&_save, SIGNAL(clicked()), this, SLOT(onDownload()));
|
||||||
|
|
|
@ -20,6 +20,9 @@ Copyright (c) 2014 John Preston, https://desktop.telegram.org
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
#include <zlib.h>
|
#include <zlib.h>
|
||||||
|
|
||||||
|
#undef min
|
||||||
|
#undef max
|
||||||
|
|
||||||
//#define DEBUG_MTPPRIME
|
//#define DEBUG_MTPPRIME
|
||||||
|
|
||||||
#ifdef DEBUG_MTPPRIME
|
#ifdef DEBUG_MTPPRIME
|
||||||
|
|
|
@ -1786,7 +1786,7 @@ bool psSkipAudioNotify() {
|
||||||
bool psSkipDesktopNotify() {
|
bool psSkipDesktopNotify() {
|
||||||
QUERY_USER_NOTIFICATION_STATE state;
|
QUERY_USER_NOTIFICATION_STATE state;
|
||||||
if (useShellapi && SUCCEEDED(shQueryUserNotificationState(&state))) {
|
if (useShellapi && SUCCEEDED(shQueryUserNotificationState(&state))) {
|
||||||
if (state == QUNS_PRESENTATION_MODE || state == QUNS_RUNNING_D3D_FULL_SCREEN || state == QUNS_BUSY) return true;
|
if (state == QUNS_PRESENTATION_MODE || state == QUNS_RUNNING_D3D_FULL_SCREEN/* || state == QUNS_BUSY*/) return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,115 +0,0 @@
|
||||||
/*
|
|
||||||
This file is part of Telegram Desktop,
|
|
||||||
the official desktop version of Telegram messaging app, see https://telegram.org
|
|
||||||
|
|
||||||
Telegram Desktop is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
It is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE
|
|
||||||
Copyright (c) 2014 John Preston, https://desktop.telegram.org
|
|
||||||
*/
|
|
||||||
#include "stdafx.h"
|
|
||||||
#include "supporttl.h"
|
|
||||||
|
|
||||||
namespace {
|
|
||||||
typedef QMap<QString, QString> SupportTemplates;
|
|
||||||
SupportTemplates _supportTemplates;
|
|
||||||
|
|
||||||
void saveTemplate(QStringList &keys, QString &value) {
|
|
||||||
if (!keys.isEmpty() && !value.isEmpty()) {
|
|
||||||
if (value.at(value.size() - 1) == '\n') {
|
|
||||||
value = value.mid(0, value.size() - 1);
|
|
||||||
}
|
|
||||||
for (QStringList::const_iterator i = keys.cbegin(), e = keys.cend(); i != e; ++i) {
|
|
||||||
_supportTemplates[textSearchKey(*i)] = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
value = QString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void readSupportTemplates() {
|
|
||||||
QStringList files(cWorkingDir() + qsl("support_tl.txt"));
|
|
||||||
QDir supp(cWorkingDir() + qsl("tsupport"));
|
|
||||||
if (supp.exists()) {
|
|
||||||
QStringList all = supp.entryList(QDir::Files);
|
|
||||||
for (QStringList::const_iterator i = all.cbegin(), e = all.cend(); i != e; ++i) {
|
|
||||||
if (i->startsWith(qsl("tl_"))) {
|
|
||||||
files.push_back(cWorkingDir() + qsl("tsupport/") + *i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
typedef QList<QByteArray> TemplatesLines;
|
|
||||||
enum ReadingState {
|
|
||||||
ReadingNone = 0,
|
|
||||||
ReadingKeys = 1,
|
|
||||||
ReadingValue = 2,
|
|
||||||
ReadingMoreValue = 3,
|
|
||||||
};
|
|
||||||
|
|
||||||
for (QStringList::const_iterator i = files.cbegin(), e = files.cend(); i != e; ++i) {
|
|
||||||
QFile f(*i);
|
|
||||||
if (!f.open(QIODevice::ReadOnly)) continue;
|
|
||||||
|
|
||||||
TemplatesLines lines = f.readAll().split('\n');
|
|
||||||
|
|
||||||
f.close();
|
|
||||||
|
|
||||||
ReadingState state = ReadingNone;
|
|
||||||
QStringList keys;
|
|
||||||
QString value;
|
|
||||||
for (TemplatesLines::const_iterator i = lines.cbegin(), e = lines.cend(); i != e; ++i) {
|
|
||||||
QString line = QString::fromUtf8(*i).trimmed();
|
|
||||||
QRegularExpressionMatch m = QRegularExpression(qsl("^\\{([A-Z_]+)\\}$")).match(line);
|
|
||||||
if (m.hasMatch()) {
|
|
||||||
saveTemplate(keys, value);
|
|
||||||
|
|
||||||
QString token = m.captured(1);
|
|
||||||
if (token == qsl("KEYS")) {
|
|
||||||
keys.clear();
|
|
||||||
state = ReadingKeys;
|
|
||||||
} else if (token == qsl("VALUE")) {
|
|
||||||
state = ReadingValue;
|
|
||||||
} else {
|
|
||||||
keys.clear();
|
|
||||||
state = ReadingNone;
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (state) {
|
|
||||||
case ReadingKeys:
|
|
||||||
if (!line.isEmpty()) {
|
|
||||||
keys.push_back(line);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case ReadingMoreValue:
|
|
||||||
value += '\n';
|
|
||||||
case ReadingValue:
|
|
||||||
value += line;
|
|
||||||
state = ReadingMoreValue;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
saveTemplate(keys, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const QString &supportTemplate(const QString &key) {
|
|
||||||
SupportTemplates::const_iterator i = _supportTemplates.constFind(textSearchKey(key));
|
|
||||||
if (i != _supportTemplates.cend()) {
|
|
||||||
return *i;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const QString _tmp;
|
|
||||||
return _tmp;
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
/*
|
|
||||||
This file is part of Telegram Desktop,
|
|
||||||
the official desktop version of Telegram messaging app, see https://telegram.org
|
|
||||||
|
|
||||||
Telegram Desktop is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
It is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE
|
|
||||||
Copyright (c) 2014 John Preston, https://desktop.telegram.org
|
|
||||||
*/
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
void readSupportTemplates();
|
|
||||||
const QString &supportTemplate(const QString &key);
|
|
|
@ -329,7 +329,7 @@ NotifyWindow::~NotifyWindow() {
|
||||||
if (App::wnd()) App::wnd()->notifyShowNext(this);
|
if (App::wnd()) App::wnd()->notifyShowNext(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
Window::Window(QWidget *parent) : PsMainWindow(parent), _serviceHistoryRequest(0),
|
Window::Window(QWidget *parent) : PsMainWindow(parent), _serviceHistoryRequest(0), title(0),
|
||||||
intro(0), main(0), settings(0), layerBG(0), _isActive(false), _topWidget(0),
|
intro(0), main(0), settings(0), layerBG(0), _isActive(false), _topWidget(0),
|
||||||
_connecting(0), _clearManager(0), dragging(false), _inactivePress(false), _mediaView(0) {
|
_connecting(0), _clearManager(0), dragging(false), _inactivePress(false), _mediaView(0) {
|
||||||
|
|
||||||
|
@ -1034,6 +1034,8 @@ TitleWidget *Window::getTitle() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Window::resizeEvent(QResizeEvent *e) {
|
void Window::resizeEvent(QResizeEvent *e) {
|
||||||
|
if (!title) return;
|
||||||
|
|
||||||
bool wideMode = (width() >= st::wideModeWidth);
|
bool wideMode = (width() >= st::wideModeWidth);
|
||||||
if (wideMode != cWideMode()) {
|
if (wideMode != cWideMode()) {
|
||||||
cSetWideMode(wideMode);
|
cSetWideMode(wideMode);
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>0.7.16</string>
|
<string>0.7.17</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleURLTypes</key>
|
<key>CFBundleURLTypes</key>
|
||||||
|
|
|
@ -99,7 +99,6 @@ SOURCES += \
|
||||||
./SourceFiles/mainwidget.cpp \
|
./SourceFiles/mainwidget.cpp \
|
||||||
./SourceFiles/settings.cpp \
|
./SourceFiles/settings.cpp \
|
||||||
./SourceFiles/settingswidget.cpp \
|
./SourceFiles/settingswidget.cpp \
|
||||||
./SourceFiles/supporttl.cpp \
|
|
||||||
./SourceFiles/sysbuttons.cpp \
|
./SourceFiles/sysbuttons.cpp \
|
||||||
./SourceFiles/title.cpp \
|
./SourceFiles/title.cpp \
|
||||||
./SourceFiles/types.cpp \
|
./SourceFiles/types.cpp \
|
||||||
|
@ -179,7 +178,6 @@ HEADERS += \
|
||||||
./SourceFiles/settings.h \
|
./SourceFiles/settings.h \
|
||||||
./SourceFiles/settingswidget.h \
|
./SourceFiles/settingswidget.h \
|
||||||
./SourceFiles/style.h \
|
./SourceFiles/style.h \
|
||||||
./SourceFiles/supporttl.h \
|
|
||||||
./SourceFiles/sysbuttons.h \
|
./SourceFiles/sysbuttons.h \
|
||||||
./SourceFiles/title.h \
|
./SourceFiles/title.h \
|
||||||
./SourceFiles/types.h \
|
./SourceFiles/types.h \
|
||||||
|
|
Binary file not shown.
|
@ -914,7 +914,6 @@
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Deploy|Win32'">Create</PrecompiledHeader>
|
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Deploy|Win32'">Create</PrecompiledHeader>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="SourceFiles\supporttl.cpp" />
|
|
||||||
<ClCompile Include="SourceFiles\sysbuttons.cpp" />
|
<ClCompile Include="SourceFiles\sysbuttons.cpp" />
|
||||||
<ClCompile Include="SourceFiles\title.cpp" />
|
<ClCompile Include="SourceFiles\title.cpp" />
|
||||||
<ClCompile Include="SourceFiles\types.cpp" />
|
<ClCompile Include="SourceFiles\types.cpp" />
|
||||||
|
@ -1749,7 +1748,6 @@
|
||||||
<ClInclude Include="SourceFiles\pspecific.h" />
|
<ClInclude Include="SourceFiles\pspecific.h" />
|
||||||
<ClInclude Include="SourceFiles\settings.h" />
|
<ClInclude Include="SourceFiles\settings.h" />
|
||||||
<ClInclude Include="SourceFiles\style.h" />
|
<ClInclude Include="SourceFiles\style.h" />
|
||||||
<ClInclude Include="SourceFiles\supporttl.h" />
|
|
||||||
<CustomBuild Include="SourceFiles\sysbuttons.h">
|
<CustomBuild Include="SourceFiles\sysbuttons.h">
|
||||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing sysbuttons.h...</Message>
|
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing sysbuttons.h...</Message>
|
||||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||||
|
|
|
@ -150,9 +150,6 @@
|
||||||
<ClCompile Include="SourceFiles\gui\style_core.cpp">
|
<ClCompile Include="SourceFiles\gui\style_core.cpp">
|
||||||
<Filter>gui</Filter>
|
<Filter>gui</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="SourceFiles\supporttl.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="SourceFiles\gui\boxshadow.cpp">
|
<ClCompile Include="SourceFiles\gui\boxshadow.cpp">
|
||||||
<Filter>gui</Filter>
|
<Filter>gui</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
@ -839,9 +836,6 @@
|
||||||
<ClInclude Include="SourceFiles\gui\style_core.h">
|
<ClInclude Include="SourceFiles\gui\style_core.h">
|
||||||
<Filter>gui</Filter>
|
<Filter>gui</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="SourceFiles\supporttl.h">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="SourceFiles\gui\boxshadow.h">
|
<ClInclude Include="SourceFiles\gui\boxshadow.h">
|
||||||
<Filter>gui</Filter>
|
<Filter>gui</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
|
|
@ -127,7 +127,6 @@
|
||||||
830CB6F547B8C80A569A0271 /* addparticipantbox.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 40E88FBA282991C8CBDFE94D /* addparticipantbox.cpp */; settings = {ATTRIBUTES = (); }; };
|
830CB6F547B8C80A569A0271 /* addparticipantbox.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 40E88FBA282991C8CBDFE94D /* addparticipantbox.cpp */; settings = {ATTRIBUTES = (); }; };
|
||||||
832C50BFD7D09AF042A51D4F /* flatbutton.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = F1A04BDB750C2AE652797B04 /* flatbutton.cpp */; settings = {ATTRIBUTES = (); }; };
|
832C50BFD7D09AF042A51D4F /* flatbutton.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = F1A04BDB750C2AE652797B04 /* flatbutton.cpp */; settings = {ATTRIBUTES = (); }; };
|
||||||
8771A8C96E9C391044035D99 /* OpenGL.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D4B32C2222F82AC56BADEB21 /* OpenGL.framework */; };
|
8771A8C96E9C391044035D99 /* OpenGL.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D4B32C2222F82AC56BADEB21 /* OpenGL.framework */; };
|
||||||
878DCAF0C5B0DB2EB4EDFD3D /* supporttl.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 0B2F770F53FBB0DBF738D89B /* supporttl.cpp */; settings = {ATTRIBUTES = (); }; };
|
|
||||||
8883FF366F2623E89D90A9E6 /* qgenericbearer in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 9A55B8F7C143D66AD9EAE304 /* qgenericbearer */; };
|
8883FF366F2623E89D90A9E6 /* qgenericbearer in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 9A55B8F7C143D66AD9EAE304 /* qgenericbearer */; };
|
||||||
89ADB41E48A3B5E24ABB626C /* profilewidget.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = CF32DF59C7823E4F3397EF3C /* profilewidget.cpp */; settings = {ATTRIBUTES = (); }; };
|
89ADB41E48A3B5E24ABB626C /* profilewidget.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = CF32DF59C7823E4F3397EF3C /* profilewidget.cpp */; settings = {ATTRIBUTES = (); }; };
|
||||||
8B22E794EFF0EAFF964A3043 /* introsteps.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = C34459FA465B57DF4DB80D12 /* introsteps.cpp */; settings = {ATTRIBUTES = (); }; };
|
8B22E794EFF0EAFF964A3043 /* introsteps.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = C34459FA465B57DF4DB80D12 /* introsteps.cpp */; settings = {ATTRIBUTES = (); }; };
|
||||||
|
@ -311,7 +310,6 @@
|
||||||
098EA7CE256AAFAE4A17EB77 /* introcode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = introcode.h; path = SourceFiles/intro/introcode.h; sourceTree = "<absolute>"; };
|
098EA7CE256AAFAE4A17EB77 /* introcode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = introcode.h; path = SourceFiles/intro/introcode.h; sourceTree = "<absolute>"; };
|
||||||
09FD01F2BD652EB838A296D8 /* application.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = application.h; path = SourceFiles/application.h; sourceTree = "<absolute>"; };
|
09FD01F2BD652EB838A296D8 /* application.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = application.h; path = SourceFiles/application.h; sourceTree = "<absolute>"; };
|
||||||
0ABCEA8D0DD45589040B0AF2 /* /usr/local/Qt-5.4.0/mkspecs/common/unix.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.4.0/mkspecs/common/unix.conf"; sourceTree = "<absolute>"; };
|
0ABCEA8D0DD45589040B0AF2 /* /usr/local/Qt-5.4.0/mkspecs/common/unix.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.4.0/mkspecs/common/unix.conf"; sourceTree = "<absolute>"; };
|
||||||
0B2F770F53FBB0DBF738D89B /* supporttl.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = supporttl.cpp; path = SourceFiles/supporttl.cpp; sourceTree = "<absolute>"; };
|
|
||||||
0BDE09020E45EFA57DCB2E25 /* photosendbox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = photosendbox.h; path = SourceFiles/boxes/photosendbox.h; sourceTree = "<absolute>"; };
|
0BDE09020E45EFA57DCB2E25 /* photosendbox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = photosendbox.h; path = SourceFiles/boxes/photosendbox.h; sourceTree = "<absolute>"; };
|
||||||
0C0DC15EB416789673526AA5 /* moc_emojibox.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = moc_emojibox.cpp; path = GeneratedFiles/Debug/moc_emojibox.cpp; sourceTree = "<absolute>"; };
|
0C0DC15EB416789673526AA5 /* moc_emojibox.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = moc_emojibox.cpp; path = GeneratedFiles/Debug/moc_emojibox.cpp; sourceTree = "<absolute>"; };
|
||||||
0CAA815FFFEDCD84808E11F5 /* logs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = logs.h; path = SourceFiles/logs.h; sourceTree = "<absolute>"; };
|
0CAA815FFFEDCD84808E11F5 /* logs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = logs.h; path = SourceFiles/logs.h; sourceTree = "<absolute>"; };
|
||||||
|
@ -387,7 +385,6 @@
|
||||||
3F08D430CEC8D2117735CCB4 /* /usr/local/Qt-5.4.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.4.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri"; sourceTree = "<absolute>"; };
|
3F08D430CEC8D2117735CCB4 /* /usr/local/Qt-5.4.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.4.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri"; sourceTree = "<absolute>"; };
|
||||||
40E88FBA282991C8CBDFE94D /* addparticipantbox.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = addparticipantbox.cpp; path = SourceFiles/boxes/addparticipantbox.cpp; sourceTree = "<absolute>"; };
|
40E88FBA282991C8CBDFE94D /* addparticipantbox.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = addparticipantbox.cpp; path = SourceFiles/boxes/addparticipantbox.cpp; sourceTree = "<absolute>"; };
|
||||||
420A06A32B66D250142B4B6D /* style_core.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = style_core.cpp; path = SourceFiles/gui/style_core.cpp; sourceTree = "<absolute>"; };
|
420A06A32B66D250142B4B6D /* style_core.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = style_core.cpp; path = SourceFiles/gui/style_core.cpp; sourceTree = "<absolute>"; };
|
||||||
42FA90460B1A91C414157EAC /* supporttl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = supporttl.h; path = SourceFiles/supporttl.h; sourceTree = "<absolute>"; };
|
|
||||||
45B95DB3B70B47A910FC847B /* /usr/local/Qt-5.4.0/mkspecs/common/gcc-base.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.4.0/mkspecs/common/gcc-base.conf"; sourceTree = "<absolute>"; };
|
45B95DB3B70B47A910FC847B /* /usr/local/Qt-5.4.0/mkspecs/common/gcc-base.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.4.0/mkspecs/common/gcc-base.conf"; sourceTree = "<absolute>"; };
|
||||||
45DB132B756499D4DF38430E /* /usr/local/Qt-5.4.0/mkspecs/modules/qt_plugin_qjp2.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.4.0/mkspecs/modules/qt_plugin_qjp2.pri"; sourceTree = "<absolute>"; };
|
45DB132B756499D4DF38430E /* /usr/local/Qt-5.4.0/mkspecs/modules/qt_plugin_qjp2.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.4.0/mkspecs/modules/qt_plugin_qjp2.pri"; sourceTree = "<absolute>"; };
|
||||||
4604687EBA85611C9E8A9CDF /* button.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = button.h; path = SourceFiles/gui/button.h; sourceTree = "<absolute>"; };
|
4604687EBA85611C9E8A9CDF /* button.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = button.h; path = SourceFiles/gui/button.h; sourceTree = "<absolute>"; };
|
||||||
|
@ -891,7 +888,6 @@
|
||||||
047DAFB0A7DE92C63033A43C /* mainwidget.cpp */,
|
047DAFB0A7DE92C63033A43C /* mainwidget.cpp */,
|
||||||
8A28F7789408AA839F48A5F2 /* settings.cpp */,
|
8A28F7789408AA839F48A5F2 /* settings.cpp */,
|
||||||
8CCCACE96535180FEB557712 /* settingswidget.cpp */,
|
8CCCACE96535180FEB557712 /* settingswidget.cpp */,
|
||||||
0B2F770F53FBB0DBF738D89B /* supporttl.cpp */,
|
|
||||||
6B90F69947805586A6FAE80E /* sysbuttons.cpp */,
|
6B90F69947805586A6FAE80E /* sysbuttons.cpp */,
|
||||||
2BB2A1BB8DB0993F78F4E3C7 /* title.cpp */,
|
2BB2A1BB8DB0993F78F4E3C7 /* title.cpp */,
|
||||||
7D075A915E8739C1B6BC5F43 /* types.cpp */,
|
7D075A915E8739C1B6BC5F43 /* types.cpp */,
|
||||||
|
@ -927,7 +923,6 @@
|
||||||
2EA58EF6CDF368B0132BAEB9 /* settings.h */,
|
2EA58EF6CDF368B0132BAEB9 /* settings.h */,
|
||||||
F80095A026AF9453E9C2B8BD /* settingswidget.h */,
|
F80095A026AF9453E9C2B8BD /* settingswidget.h */,
|
||||||
C913E6A1001E07EE7C13CE93 /* style.h */,
|
C913E6A1001E07EE7C13CE93 /* style.h */,
|
||||||
42FA90460B1A91C414157EAC /* supporttl.h */,
|
|
||||||
3BE70E2A82DC2BF402165ED5 /* sysbuttons.h */,
|
3BE70E2A82DC2BF402165ED5 /* sysbuttons.h */,
|
||||||
4D504A849F15EB58E53A4E5F /* title.h */,
|
4D504A849F15EB58E53A4E5F /* title.h */,
|
||||||
1DC02F674A7192FF8BE391A7 /* types.h */,
|
1DC02F674A7192FF8BE391A7 /* types.h */,
|
||||||
|
@ -1476,7 +1471,6 @@
|
||||||
E3194392BD6D0726F75FA72E /* mainwidget.cpp in Compile Sources */,
|
E3194392BD6D0726F75FA72E /* mainwidget.cpp in Compile Sources */,
|
||||||
DF36EA42D67ED39E58CB7DF9 /* settings.cpp in Compile Sources */,
|
DF36EA42D67ED39E58CB7DF9 /* settings.cpp in Compile Sources */,
|
||||||
B99CCE43EEFCD3E18F6D16D1 /* settingswidget.cpp in Compile Sources */,
|
B99CCE43EEFCD3E18F6D16D1 /* settingswidget.cpp in Compile Sources */,
|
||||||
878DCAF0C5B0DB2EB4EDFD3D /* supporttl.cpp in Compile Sources */,
|
|
||||||
B8DA82DA1B195A933A0805E7 /* sysbuttons.cpp in Compile Sources */,
|
B8DA82DA1B195A933A0805E7 /* sysbuttons.cpp in Compile Sources */,
|
||||||
5CE57D44510AB2A11886AB52 /* title.cpp in Compile Sources */,
|
5CE57D44510AB2A11886AB52 /* title.cpp in Compile Sources */,
|
||||||
4078D5D614EB3ECF7F1848C7 /* types.cpp in Compile Sources */,
|
4078D5D614EB3ECF7F1848C7 /* types.cpp in Compile Sources */,
|
||||||
|
@ -1633,7 +1627,7 @@
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
CURRENT_PROJECT_VERSION = 0.7.16;
|
CURRENT_PROJECT_VERSION = 0.7.17;
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||||
GCC_OPTIMIZATION_LEVEL = 0;
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
@ -1651,7 +1645,7 @@
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
COPY_PHASE_STRIP = YES;
|
COPY_PHASE_STRIP = YES;
|
||||||
CURRENT_PROJECT_VERSION = 0.7.16;
|
CURRENT_PROJECT_VERSION = 0.7.17;
|
||||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||||
GCC_OPTIMIZATION_LEVEL = fast;
|
GCC_OPTIMIZATION_LEVEL = fast;
|
||||||
GCC_PREFIX_HEADER = ./SourceFiles/stdafx.h;
|
GCC_PREFIX_HEADER = ./SourceFiles/stdafx.h;
|
||||||
|
@ -1677,10 +1671,10 @@
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
CODE_SIGN_IDENTITY = "";
|
CODE_SIGN_IDENTITY = "";
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
CURRENT_PROJECT_VERSION = 0.7.16;
|
CURRENT_PROJECT_VERSION = 0.7.17;
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
DYLIB_COMPATIBILITY_VERSION = 0.7;
|
DYLIB_COMPATIBILITY_VERSION = 0.7;
|
||||||
DYLIB_CURRENT_VERSION = 0.7.16;
|
DYLIB_CURRENT_VERSION = 0.7.17;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
FRAMEWORK_SEARCH_PATHS = "";
|
FRAMEWORK_SEARCH_PATHS = "";
|
||||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||||
|
@ -1818,10 +1812,10 @@
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
CODE_SIGN_IDENTITY = "";
|
CODE_SIGN_IDENTITY = "";
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
CURRENT_PROJECT_VERSION = 0.7.16;
|
CURRENT_PROJECT_VERSION = 0.7.17;
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
DYLIB_COMPATIBILITY_VERSION = 0.7;
|
DYLIB_COMPATIBILITY_VERSION = 0.7;
|
||||||
DYLIB_CURRENT_VERSION = 0.7.16;
|
DYLIB_CURRENT_VERSION = 0.7.17;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
FRAMEWORK_SEARCH_PATHS = "";
|
FRAMEWORK_SEARCH_PATHS = "";
|
||||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
echo 7016 0.7.16 0
|
echo 7017 0.7.17 0
|
||||||
# AppVersion AppVersionStr DevChannel
|
# AppVersion AppVersionStr DevChannel
|
||||||
|
|
|
@ -137,6 +137,31 @@ index 312320c..5e82318 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure we're inside the viewport.
|
// Make sure we're inside the viewport.
|
||||||
|
diff --git a/qtbase/src/gui/text/qtextlayout.cpp b/qtbase/src/gui/text/qtextlayout.cpp
|
||||||
|
index 1ac50d3..3c88caa 100644
|
||||||
|
--- a/qtbase/src/gui/text/qtextlayout.cpp
|
||||||
|
+++ b/qtbase/src/gui/text/qtextlayout.cpp
|
||||||
|
@@ -643,7 +643,10 @@ int QTextLayout::nextCursorPosition(int oldPos, CursorMode mode) const
|
||||||
|
while (oldPos < len && !attributes[oldPos].graphemeBoundary)
|
||||||
|
oldPos++;
|
||||||
|
} else {
|
||||||
|
- if (oldPos < len && d->atWordSeparator(oldPos)) {
|
||||||
|
+ while (oldPos < len && d->atSpace(oldPos))
|
||||||
|
+ oldPos++;
|
||||||
|
+
|
||||||
|
+ if (oldPos < len && d->atWordSeparator(oldPos)) {
|
||||||
|
oldPos++;
|
||||||
|
while (oldPos < len && d->atWordSeparator(oldPos))
|
||||||
|
oldPos++;
|
||||||
|
@@ -651,8 +654,6 @@ int QTextLayout::nextCursorPosition(int oldPos, CursorMode mode) const
|
||||||
|
while (oldPos < len && !d->atSpace(oldPos) && !d->atWordSeparator(oldPos))
|
||||||
|
oldPos++;
|
||||||
|
}
|
||||||
|
- while (oldPos < len && d->atSpace(oldPos))
|
||||||
|
- oldPos++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return oldPos;
|
||||||
diff --git a/qtbase/src/gui/text/qtextlayout.h b/qtbase/src/gui/text/qtextlayout.h
|
diff --git a/qtbase/src/gui/text/qtextlayout.h b/qtbase/src/gui/text/qtextlayout.h
|
||||||
index 1e0ab9b..47972d3 100644
|
index 1e0ab9b..47972d3 100644
|
||||||
--- a/qtbase/src/gui/text/qtextlayout.h
|
--- a/qtbase/src/gui/text/qtextlayout.h
|
||||||
|
@ -647,7 +672,7 @@ index f1f472b..97819dd 100644
|
||||||
{
|
{
|
||||||
m_data.setSelectedNameFilter(f); // Dialog cannot be updated at run-time.
|
m_data.setSelectedNameFilter(f); // Dialog cannot be updated at run-time.
|
||||||
diff --git a/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp b/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp
|
diff --git a/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp b/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp
|
||||||
index ff9ad18..ba423b4 100644
|
index ff9ad18..3fd0848 100644
|
||||||
--- a/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp
|
--- a/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp
|
||||||
+++ b/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp
|
+++ b/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp
|
||||||
@@ -537,17 +537,16 @@ static inline int toKeyOrUnicode(int vk, int scancode, unsigned char *kbdBuffer,
|
@@ -537,17 +537,16 @@ static inline int toKeyOrUnicode(int vk, int scancode, unsigned char *kbdBuffer,
|
||||||
|
@ -678,6 +703,18 @@ index ff9ad18..ba423b4 100644
|
||||||
code = unicodeBuffer[0].toUpper().unicode();
|
code = unicodeBuffer[0].toUpper().unicode();
|
||||||
|
|
||||||
// Qt::Key_*'s are not encoded below 0x20, so try again, and DEL keys (0x7f) is encoded with a
|
// Qt::Key_*'s are not encoded below 0x20, so try again, and DEL keys (0x7f) is encoded with a
|
||||||
|
@@ -833,7 +832,10 @@ bool QWindowsKeyMapper::translateMultimediaKeyEventInternal(QWindow *window, con
|
||||||
|
|
||||||
|
const int qtKey = CmdTbl[cmd];
|
||||||
|
sendExtendedPressRelease(receiver, qtKey, Qt::KeyboardModifier(state), 0, 0, 0);
|
||||||
|
- return true;
|
||||||
|
+ // QTBUG-43343: Make sure to return false if Qt does not handle the key, otherwise,
|
||||||
|
+ // the keys are not passed to the active media player.
|
||||||
|
+ const QKeySequence sequence(Qt::Modifier(state) + qtKey);
|
||||||
|
+ return QGuiApplicationPrivate::instance()->shortcutMap.hasShortcutForKeySequence(sequence);
|
||||||
|
#else
|
||||||
|
Q_UNREACHABLE();
|
||||||
|
return false;
|
||||||
diff --git a/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp b/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp
|
diff --git a/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp b/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp
|
||||||
index 8a80729..16fda26 100644
|
index 8a80729..16fda26 100644
|
||||||
--- a/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp
|
--- a/qtbase/src/plugins/platforms/windows/qwindowswindow.cpp
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -832,7 +832,10 @@ bool QWindowsKeyMapper::translateMultimediaKeyEventInternal(QWindow *window, con
|
||||||
|
|
||||||
const int qtKey = CmdTbl[cmd];
|
const int qtKey = CmdTbl[cmd];
|
||||||
sendExtendedPressRelease(receiver, qtKey, Qt::KeyboardModifier(state), 0, 0, 0);
|
sendExtendedPressRelease(receiver, qtKey, Qt::KeyboardModifier(state), 0, 0, 0);
|
||||||
return true;
|
// QTBUG-43343: Make sure to return false if Qt does not handle the key, otherwise,
|
||||||
|
// the keys are not passed to the active media player.
|
||||||
|
const QKeySequence sequence(Qt::Modifier(state) + qtKey);
|
||||||
|
return QGuiApplicationPrivate::instance()->shortcutMap.hasShortcutForKeySequence(sequence);
|
||||||
#else
|
#else
|
||||||
Q_UNREACHABLE();
|
Q_UNREACHABLE();
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue