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
|
||||
|
||||
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
|
||||
|
||||
|
|
13
Telegram.sln
13
Telegram.sln
|
@ -1,7 +1,7 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 2013
|
||||
VisualStudioVersion = 12.0.30110.0
|
||||
VisualStudioVersion = 12.0.30501.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Telegram", "Telegram\Telegram.vcxproj", "{B12702AD-ABFB-343A-A199-8E24837244A3}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
|
@ -16,8 +16,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MetaEmoji", "Telegram\MetaE
|
|||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Updater", "Telegram\Updater.vcxproj", "{6B4BA3BE-7B15-4B4C-B200-81ABFDEF2C76}"
|
||||
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}"
|
||||
EndProject
|
||||
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.Build.0 = 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.Build.0 = 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
|
||||
|
||||
set "AppVersionStrSmall=0.7.16"
|
||||
set "AppVersionStr=0.7.16"
|
||||
set "AppVersionStrFull=0.7.16.0"
|
||||
set "AppVersion=7017"
|
||||
set "AppVersionStrSmall=0.7.17"
|
||||
set "AppVersionStr=0.7.17"
|
||||
set "AppVersionStrFull=0.7.17.0"
|
||||
set "DevChannel=0"
|
||||
|
||||
if %DevChannel% neq 0 goto preparedev
|
||||
|
@ -22,6 +23,10 @@ echo.
|
|||
echo Preparing version %AppVersionStr%%DevPostfix%..
|
||||
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"
|
||||
cd ..\Win32\Deploy
|
||||
|
||||
|
@ -37,12 +42,21 @@ if %errorlevel% neq 0 goto error1
|
|||
call ..\..\..\TelegramPrivate\Sign.bat tsetup.%AppVersionStr%%DevPostfix%.exe
|
||||
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 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%
|
||||
mkdir Telegram
|
||||
move Telegram.exe Telegram\
|
||||
7z a -mx9 tportable.%AppVersionStr%%DevPostfix%.zip Telegram\
|
||||
if %errorlevel% neq 0 goto error2
|
||||
|
||||
|
@ -60,4 +74,16 @@ cd ..\..\Telegram
|
|||
echo ERROR occured!
|
||||
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
|
||||
|
|
|
@ -253,7 +253,12 @@ int main(int argc, char *argv[])
|
|||
|
||||
size_t compressedLen = compressed.size() - hSize;
|
||||
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) {
|
||||
cout << "Error in compression: " << res << "\n";
|
||||
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 "fileuploader.h"
|
||||
#include "mainwidget.h"
|
||||
#include "supporttl.h"
|
||||
|
||||
#include "lang.h"
|
||||
#include "boxes/confirmbox.h"
|
||||
|
@ -674,7 +673,6 @@ void Application::startApp() {
|
|||
window->init();
|
||||
|
||||
DEBUG_LOG(("Application Info: window created.."));
|
||||
readSupportTemplates();
|
||||
|
||||
MTP::start();
|
||||
|
||||
|
@ -706,8 +704,8 @@ void Application::startApp() {
|
|||
QString versionFeatures;
|
||||
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");
|
||||
} else if (!DevChannel && Local::oldMapVersion() < 7016) {
|
||||
versionFeatures = lang(lng_new_version7016).trimmed();
|
||||
} else if (!DevChannel && Local::oldMapVersion() < 7017) {
|
||||
versionFeatures = lang(lng_new_version_minor).trimmed();
|
||||
}
|
||||
if (!versionFeatures.isEmpty()) {
|
||||
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
|
||||
|
||||
static const int32 AppVersion = 7016;
|
||||
static const wchar_t *AppVersionStr = L"0.7.16";
|
||||
static const int32 AppVersion = 7017;
|
||||
static const wchar_t *AppVersionStr = L"0.7.17";
|
||||
static const bool DevChannel = false;
|
||||
|
||||
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 "window.h"
|
||||
#include "fileuploader.h"
|
||||
#include "supporttl.h"
|
||||
|
||||
#include "localstorage.h"
|
||||
|
||||
|
@ -1585,7 +1584,6 @@ HistoryWidget::HistoryWidget(QWidget *parent) : QWidget(parent)
|
|||
connect(&_attachPhoto, SIGNAL(clicked()), this, SLOT(onPhotoSelect()));
|
||||
connect(&_field, SIGNAL(submitted(bool)), this, SLOT(onSend(bool)));
|
||||
connect(&_field, SIGNAL(cancelled()), this, SLOT(onCancel()));
|
||||
connect(&_field, SIGNAL(tabbed()), this, SLOT(onFieldTabbed()));
|
||||
connect(&_field, SIGNAL(resized()), this, SLOT(onFieldResize()));
|
||||
connect(&_field, SIGNAL(focused()), this, SLOT(onFieldFocused()));
|
||||
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) {
|
||||
if (!hist || !sticker) return;
|
||||
|
||||
|
|
|
@ -382,7 +382,6 @@ public slots:
|
|||
void activate();
|
||||
void onTextChange();
|
||||
|
||||
void onFieldTabbed();
|
||||
void onStickerSend(DocumentData *sticker);
|
||||
|
||||
void onVisibleChanged();
|
||||
|
|
|
@ -69,8 +69,10 @@ _saveMsgStarted(0), _saveMsgOpacity(0)
|
|||
setAttribute(Qt::WA_NoSystemBackground, true);
|
||||
setAttribute(Qt::WA_TranslucentBackground, true);
|
||||
setMouseTracking(true);
|
||||
hide();
|
||||
|
||||
hide();
|
||||
createWinId();
|
||||
|
||||
connect(&_close, SIGNAL(clicked()), this, SLOT(onClose()));
|
||||
connect(&_save, SIGNAL(clicked()), this, SLOT(onDownload()));
|
||||
connect(&_forward, SIGNAL(clicked()), this, SLOT(onForward()));
|
||||
|
@ -528,7 +530,7 @@ void MediaView::showPhoto(PhotoData *photo) {
|
|||
void MediaView::paintEvent(QPaintEvent *e) {
|
||||
QPainter p(this);
|
||||
QRect r(e->rect());
|
||||
|
||||
|
||||
QPainter::CompositionMode m = p.compositionMode();
|
||||
p.setCompositionMode(QPainter::CompositionMode_Source);
|
||||
|
||||
|
|
|
@ -20,6 +20,9 @@ Copyright (c) 2014 John Preston, https://desktop.telegram.org
|
|||
#include "types.h"
|
||||
#include <zlib.h>
|
||||
|
||||
#undef min
|
||||
#undef max
|
||||
|
||||
//#define DEBUG_MTPPRIME
|
||||
|
||||
#ifdef DEBUG_MTPPRIME
|
||||
|
|
|
@ -1786,7 +1786,7 @@ bool psSkipAudioNotify() {
|
|||
bool psSkipDesktopNotify() {
|
||||
QUERY_USER_NOTIFICATION_STATE 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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
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),
|
||||
_connecting(0), _clearManager(0), dragging(false), _inactivePress(false), _mediaView(0) {
|
||||
|
||||
|
@ -1034,6 +1034,8 @@ TitleWidget *Window::getTitle() {
|
|||
}
|
||||
|
||||
void Window::resizeEvent(QResizeEvent *e) {
|
||||
if (!title) return;
|
||||
|
||||
bool wideMode = (width() >= st::wideModeWidth);
|
||||
if (wideMode != cWideMode()) {
|
||||
cSetWideMode(wideMode);
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>0.7.16</string>
|
||||
<string>0.7.17</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
|
|
|
@ -99,7 +99,6 @@ SOURCES += \
|
|||
./SourceFiles/mainwidget.cpp \
|
||||
./SourceFiles/settings.cpp \
|
||||
./SourceFiles/settingswidget.cpp \
|
||||
./SourceFiles/supporttl.cpp \
|
||||
./SourceFiles/sysbuttons.cpp \
|
||||
./SourceFiles/title.cpp \
|
||||
./SourceFiles/types.cpp \
|
||||
|
@ -179,7 +178,6 @@ HEADERS += \
|
|||
./SourceFiles/settings.h \
|
||||
./SourceFiles/settingswidget.h \
|
||||
./SourceFiles/style.h \
|
||||
./SourceFiles/supporttl.h \
|
||||
./SourceFiles/sysbuttons.h \
|
||||
./SourceFiles/title.h \
|
||||
./SourceFiles/types.h \
|
||||
|
|
Binary file not shown.
|
@ -914,7 +914,6 @@
|
|||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Deploy|Win32'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="SourceFiles\supporttl.cpp" />
|
||||
<ClCompile Include="SourceFiles\sysbuttons.cpp" />
|
||||
<ClCompile Include="SourceFiles\title.cpp" />
|
||||
<ClCompile Include="SourceFiles\types.cpp" />
|
||||
|
@ -1749,7 +1748,6 @@
|
|||
<ClInclude Include="SourceFiles\pspecific.h" />
|
||||
<ClInclude Include="SourceFiles\settings.h" />
|
||||
<ClInclude Include="SourceFiles\style.h" />
|
||||
<ClInclude Include="SourceFiles\supporttl.h" />
|
||||
<CustomBuild Include="SourceFiles\sysbuttons.h">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing sysbuttons.h...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||
|
@ -1819,4 +1817,4 @@
|
|||
<UserProperties UicDir=".\GeneratedFiles" MocDir=".\GeneratedFiles\$(ConfigurationName)" MocOptions="" RccDir=".\GeneratedFiles" lupdateOnBuild="1" lupdateOptions="" lreleaseOptions="" Qt5Version_x0020_Win32="$(DefaultQtVersion)" />
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
||||
</Project>
|
||||
|
|
|
@ -150,9 +150,6 @@
|
|||
<ClCompile Include="SourceFiles\gui\style_core.cpp">
|
||||
<Filter>gui</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="SourceFiles\supporttl.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="SourceFiles\gui\boxshadow.cpp">
|
||||
<Filter>gui</Filter>
|
||||
</ClCompile>
|
||||
|
@ -839,9 +836,6 @@
|
|||
<ClInclude Include="SourceFiles\gui\style_core.h">
|
||||
<Filter>gui</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="SourceFiles\supporttl.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="SourceFiles\gui\boxshadow.h">
|
||||
<Filter>gui</Filter>
|
||||
</ClInclude>
|
||||
|
@ -1079,4 +1073,4 @@
|
|||
<Filter>langs</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
|
|
|
@ -127,7 +127,6 @@
|
|||
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 = (); }; };
|
||||
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 */; };
|
||||
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 = (); }; };
|
||||
|
@ -311,7 +310,6 @@
|
|||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
|
@ -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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
|
@ -891,7 +888,6 @@
|
|||
047DAFB0A7DE92C63033A43C /* mainwidget.cpp */,
|
||||
8A28F7789408AA839F48A5F2 /* settings.cpp */,
|
||||
8CCCACE96535180FEB557712 /* settingswidget.cpp */,
|
||||
0B2F770F53FBB0DBF738D89B /* supporttl.cpp */,
|
||||
6B90F69947805586A6FAE80E /* sysbuttons.cpp */,
|
||||
2BB2A1BB8DB0993F78F4E3C7 /* title.cpp */,
|
||||
7D075A915E8739C1B6BC5F43 /* types.cpp */,
|
||||
|
@ -927,7 +923,6 @@
|
|||
2EA58EF6CDF368B0132BAEB9 /* settings.h */,
|
||||
F80095A026AF9453E9C2B8BD /* settingswidget.h */,
|
||||
C913E6A1001E07EE7C13CE93 /* style.h */,
|
||||
42FA90460B1A91C414157EAC /* supporttl.h */,
|
||||
3BE70E2A82DC2BF402165ED5 /* sysbuttons.h */,
|
||||
4D504A849F15EB58E53A4E5F /* title.h */,
|
||||
1DC02F674A7192FF8BE391A7 /* types.h */,
|
||||
|
@ -1476,7 +1471,6 @@
|
|||
E3194392BD6D0726F75FA72E /* mainwidget.cpp in Compile Sources */,
|
||||
DF36EA42D67ED39E58CB7DF9 /* settings.cpp in Compile Sources */,
|
||||
B99CCE43EEFCD3E18F6D16D1 /* settingswidget.cpp in Compile Sources */,
|
||||
878DCAF0C5B0DB2EB4EDFD3D /* supporttl.cpp in Compile Sources */,
|
||||
B8DA82DA1B195A933A0805E7 /* sysbuttons.cpp in Compile Sources */,
|
||||
5CE57D44510AB2A11886AB52 /* title.cpp in Compile Sources */,
|
||||
4078D5D614EB3ECF7F1848C7 /* types.cpp in Compile Sources */,
|
||||
|
@ -1633,7 +1627,7 @@
|
|||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
CURRENT_PROJECT_VERSION = 0.7.16;
|
||||
CURRENT_PROJECT_VERSION = 0.7.17;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
|
@ -1651,7 +1645,7 @@
|
|||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
COPY_PHASE_STRIP = YES;
|
||||
CURRENT_PROJECT_VERSION = 0.7.16;
|
||||
CURRENT_PROJECT_VERSION = 0.7.17;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = fast;
|
||||
GCC_PREFIX_HEADER = ./SourceFiles/stdafx.h;
|
||||
|
@ -1677,10 +1671,10 @@
|
|||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
CURRENT_PROJECT_VERSION = 0.7.16;
|
||||
CURRENT_PROJECT_VERSION = 0.7.17;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DYLIB_COMPATIBILITY_VERSION = 0.7;
|
||||
DYLIB_CURRENT_VERSION = 0.7.16;
|
||||
DYLIB_CURRENT_VERSION = 0.7.17;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = "";
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||
|
@ -1818,10 +1812,10 @@
|
|||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
CURRENT_PROJECT_VERSION = 0.7.16;
|
||||
CURRENT_PROJECT_VERSION = 0.7.17;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
DYLIB_COMPATIBILITY_VERSION = 0.7;
|
||||
DYLIB_CURRENT_VERSION = 0.7.16;
|
||||
DYLIB_CURRENT_VERSION = 0.7.17;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = "";
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
echo 7016 0.7.16 0
|
||||
echo 7017 0.7.17 0
|
||||
# AppVersion AppVersionStr DevChannel
|
||||
|
|
|
@ -137,6 +137,31 @@ index 312320c..5e82318 100644
|
|||
}
|
||||
|
||||
// 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
|
||||
index 1e0ab9b..47972d3 100644
|
||||
--- 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.
|
||||
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
|
||||
+++ b/qtbase/src/plugins/platforms/windows/qwindowskeymapper.cpp
|
||||
@@ -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();
|
||||
|
||||
// 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
|
||||
index 8a80729..16fda26 100644
|
||||
--- 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];
|
||||
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;
|
||||
|
|
Loading…
Reference in New Issue