mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Merge branch 'dev'
Merging os x build version to master.
This commit is contained in:
commit
ce84c603c2
117 changed files with 6605 additions and 1497 deletions
113
MSVC.md
Normal file
113
MSVC.md
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
##Build instructions for Visual Studio 2013
|
||||||
|
|
||||||
|
###Prepare folder
|
||||||
|
|
||||||
|
Choose a folder for the future build, for example **D:\TBuild\**. There you will have two folders, **Libraries** for third-party libs and **tdesktop** (or **tdesktop-master**) for the app.
|
||||||
|
|
||||||
|
###Clone source code
|
||||||
|
|
||||||
|
By git – in [Git Bash](http://git-scm.com/downloads) go to **/d/tbuild** and run
|
||||||
|
|
||||||
|
git clone https://github.com/telegramdesktop/tdesktop.git
|
||||||
|
|
||||||
|
or download in ZIP and extract to **D:\TBuild\**, rename **tdesktop-master** to **tdesktop** to have **D:\TBuild\tdesktop\Telegram.sln** solution
|
||||||
|
|
||||||
|
###Prepare libraries
|
||||||
|
|
||||||
|
####OpenSSL 1.0.1g
|
||||||
|
|
||||||
|
https://www.openssl.org/related/binaries.html > **OpenSSL for Windows** > Download [**Win32 OpenSSL v1.0.1g** (16 Mb)](http://slproweb.com/download/Win32OpenSSL-1_0_1g.exe)
|
||||||
|
|
||||||
|
Install to **D:\TBuild\Libraries\OpenSSL-Win32**, while installing **Copy OpenSSL DLLs to** choose **The OpenSSL binaries (/bin) directory**
|
||||||
|
|
||||||
|
####LZMA SDK 9.20
|
||||||
|
|
||||||
|
http://www.7-zip.org/sdk.html > Download [**LZMA SDK (C, C++, C#, Java)** 9.20](http://downloads.sourceforge.net/sevenzip/lzma920.tar.bz2)
|
||||||
|
|
||||||
|
Extract to **D:\TBuild\Libraries**
|
||||||
|
|
||||||
|
#####Building library
|
||||||
|
|
||||||
|
* Open in VS2013 **D:\TBuild\Libraries\lzma\C\Util\LzmaLib\LzmaLib.dsw** > One-way upgrade – **OK**
|
||||||
|
* For **Debug** and **Release** configurations
|
||||||
|
* LzmaLib Properties > General > Configuration Type = **Static library (.lib)** – **OK**
|
||||||
|
* LzmaLib Properties > Librarian > General > Target Machine = **MachineX86 (/MACHINE:X86)** – **OK**
|
||||||
|
* Build Debug configuration
|
||||||
|
* Build Release configuration
|
||||||
|
|
||||||
|
####zlib 1.2.8
|
||||||
|
|
||||||
|
http://www.zlib.net/ > Download [**zlib source code, version 1.2.8, zipfile format**](http://zlib.net/zlib128.zip)
|
||||||
|
|
||||||
|
Extract to **D:\TBuild\Libraries\**
|
||||||
|
|
||||||
|
#####Building library
|
||||||
|
|
||||||
|
* Open in VS2013 **D:\TBuild\Libraries\zlib-1.2.8\contrib\vstudio\vc11\zlibvc.sln** > One-way upgrade – **OK**
|
||||||
|
* We are interested only in **zlibstat** project, but it depends on some custom pre-build step, so build all
|
||||||
|
* For **Debug** configuration
|
||||||
|
* zlibstat Properties > C/C++ > Code Generation > Runtime Library = **Multi-threaded Debug (/MTd)** – **OK**
|
||||||
|
* For **Release** configuration
|
||||||
|
* zlibstat Properties > C/C++ > Code Generation > Runtime Library = **Multi-threaded (/MT)** – **OK**
|
||||||
|
* Build Solution for Debug configuration – only **zlibstat** project builds successfully
|
||||||
|
* Build Solution for Release configuration – only **zlibstat** project builds successfully
|
||||||
|
|
||||||
|
####libexif 0.6.20
|
||||||
|
|
||||||
|
Get sources from https://github.com/telegramdesktop/libexif-0.6.20, by git – in [Git Bash](http://git-scm.com/downloads) go to **/d/tbuild/libraries** and run
|
||||||
|
|
||||||
|
git clone https://github.com/telegramdesktop/libexif-0.6.20.git
|
||||||
|
|
||||||
|
or download in ZIP and extract to **D:\TBuild\Libraries\**, rename **libexif-0.6.20-master** to **libexif-0.6.20** to have **D:\TBuild\Libraries\libexif-0.6.20\win32\lib_exif.sln** solution
|
||||||
|
|
||||||
|
#####Building library
|
||||||
|
|
||||||
|
* Open in VS2013 **D:\TBuild\Libraries\libexif-0.6.20\win32\lib_exif.sln**
|
||||||
|
* Build Debug configuration
|
||||||
|
* Build Release configuration
|
||||||
|
|
||||||
|
####Qt 5.3.0, slightly patched
|
||||||
|
|
||||||
|
http://download.qt-project.org/official_releases/qt/5.3/5.3.0/single/qt-everywhere-opensource-src-5.3.0.zip
|
||||||
|
|
||||||
|
Extract to **D:\TBuild\Libraries\**, rename **qt-everywhere-opensource-src-5.3.0** to **QtStatic** to have **D:\TBuild\Libraries\QtStatic\qtbase\** folder
|
||||||
|
|
||||||
|
Apply patch – copy (with overwrite!) everything from **D:\TBuild\tdesktop\\\_qt\_5\_3\_0\_patch\** to **D:\TBuild\Libraries\QtStatic\**
|
||||||
|
|
||||||
|
#####Building library
|
||||||
|
|
||||||
|
* Install Python 3.3.2 from https://www.python.org/download/releases/3.3.2 > [**Windows x86 MSI Installer (3.3.2)**](https://www.python.org/ftp/python/3.3.2/python-3.3.2.msi)
|
||||||
|
* Open **VS2013 x86 Native Tools Command Prompt.bat** (should be in **\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts\** folder)
|
||||||
|
|
||||||
|
There go to Qt directory
|
||||||
|
|
||||||
|
D:
|
||||||
|
cd TBuild\Libraries\QtStatic
|
||||||
|
|
||||||
|
and after that run configure
|
||||||
|
|
||||||
|
configure -debug-and-release -opensource -static -opengl desktop -mp -nomake examples -platform win32-msvc2013
|
||||||
|
y
|
||||||
|
|
||||||
|
to configure Qt build. After configuration is complete run
|
||||||
|
|
||||||
|
nmake
|
||||||
|
nmake install
|
||||||
|
|
||||||
|
building (**nmake** command) will take really long time.
|
||||||
|
|
||||||
|
####Qt Visual Studio Addin 1.2.3
|
||||||
|
|
||||||
|
http://download.qt-project.org/official_releases/vsaddin/qt-vs-addin-1.2.3-opensource.exe
|
||||||
|
|
||||||
|
Close all VS2013 instances and install to default location
|
||||||
|
|
||||||
|
###Building Telegram Desktop
|
||||||
|
|
||||||
|
* Launch VS2013 for configuring Qt Addin
|
||||||
|
* QT5 > Qt Options > Add
|
||||||
|
* Version name: **QtStatic.5.3.0**
|
||||||
|
* Path: **D:\TBuild\Libraries\QtStatic\qtbase**
|
||||||
|
* Default Qt/Win version: **QtStatic.5.3.0** – **OK**
|
||||||
|
* File > Open > Project/Solution > **D:\TBuild\tdesktop\Telegram.sln**
|
||||||
|
* Build \ Build Solution (Debug and Release configurations)
|
126
README.md
126
README.md
|
@ -6,13 +6,15 @@ Source code is published under GPL v3, license is available [here](https://githu
|
||||||
|
|
||||||
###Supported systems
|
###Supported systems
|
||||||
|
|
||||||
Only Windows systems are supported at this moment, OS X and Linux builds are on their way.
|
Only Windows and OS X systems are supported at this moment, Linux builds are on their way.
|
||||||
|
|
||||||
* Windows XP
|
* Windows XP
|
||||||
* Windows Vista
|
* Windows Vista
|
||||||
* Windows 7
|
* Windows 7
|
||||||
* Windows 8 (**not** RT)
|
* Windows 8 (**not** RT)
|
||||||
* Windows 8.1 (**not** RT)
|
* Windows 8.1 (**not** RT)
|
||||||
|
* OS X 10.9
|
||||||
|
* OS X 10.7-10.8 (not tested)
|
||||||
|
|
||||||
###Third-party
|
###Third-party
|
||||||
|
|
||||||
|
@ -21,121 +23,12 @@ Only Windows systems are supported at this moment, OS X and Linux builds are on
|
||||||
* zlib 1.2.8 ([zlib License](http://www.zlib.net/zlib_license.html))
|
* zlib 1.2.8 ([zlib License](http://www.zlib.net/zlib_license.html))
|
||||||
* libexif 0.6.20 ([LGPL](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html))
|
* libexif 0.6.20 ([LGPL](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html))
|
||||||
* LZMA SDK 9.20 ([public domain](http://www.7-zip.org/sdk.html))
|
* LZMA SDK 9.20 ([public domain](http://www.7-zip.org/sdk.html))
|
||||||
|
* liblzma ([public domain](http://tukaani.org/xz/))
|
||||||
* Open Sans font ([Apache License](http://www.apache.org/licenses/LICENSE-2.0.html))
|
* Open Sans font ([Apache License](http://www.apache.org/licenses/LICENSE-2.0.html))
|
||||||
|
|
||||||
##Build instructions for Visual Studio 2013
|
###[Build instructions for Visual Studio 2013](https://github.com/telegramdesktop/tdesktop/blob/master/MSVC.md)
|
||||||
|
|
||||||
###Prepare folder
|
###[Build instructions for XCode 5.1.1](https://github.com/telegramdesktop/tdesktop/blob/master/XCODE.md)
|
||||||
|
|
||||||
Choose a folder for the future build, for example **D:\TBuild\**. There you will have two folders, **Libraries** for third-party libs and **tdesktop** (or **tdesktop-master**) for the app.
|
|
||||||
|
|
||||||
###Clone source code
|
|
||||||
|
|
||||||
By git – in [Git Bash](http://git-scm.com/downloads) go to **/d/tbuild** and run
|
|
||||||
|
|
||||||
git clone https://github.com/telegramdesktop/tdesktop.git
|
|
||||||
|
|
||||||
or download in ZIP and extract to **D:\TBuild\**, rename **tdesktop-master** to **tdesktop** to have **D:\TBuild\tdesktop\Telegram.sln** solution
|
|
||||||
|
|
||||||
###Prepare libraries
|
|
||||||
|
|
||||||
####OpenSSL 1.0.1g
|
|
||||||
|
|
||||||
https://www.openssl.org/related/binaries.html > **OpenSSL for Windows** > Download [**Win32 OpenSSL v1.0.1g** (16 Mb)](http://slproweb.com/download/Win32OpenSSL-1_0_1g.exe)
|
|
||||||
|
|
||||||
Install to **D:\TBuild\Libraries\OpenSSL-Win32**, while installing **Copy OpenSSL DLLs to** choose **The OpenSSL binaries (/bin) directory**
|
|
||||||
|
|
||||||
####LZMA SDK 9.20
|
|
||||||
|
|
||||||
http://www.7-zip.org/sdk.html > Download [**LZMA SDK (C, C++, C#, Java)** 9.20](http://downloads.sourceforge.net/sevenzip/lzma920.tar.bz2)
|
|
||||||
|
|
||||||
Extract to **D:\TBuild\Libraries**
|
|
||||||
|
|
||||||
#####Building library
|
|
||||||
|
|
||||||
* Open in VS2013 **D:\TBuild\Libraries\lzma\C\Util\LzmaLib\LzmaLib.dsw** > One-way upgrade – **OK**
|
|
||||||
* For **Debug** and **Release** configurations
|
|
||||||
* LzmaLib Properties > General > Configuration Type = **Static library (.lib)** – **OK**
|
|
||||||
* LzmaLib Properties > Librarian > General > Target Machine = **MachineX86 (/MACHINE:X86)** – **OK**
|
|
||||||
* Build Debug configuration
|
|
||||||
* Build Release configuration
|
|
||||||
|
|
||||||
####zlib 1.2.8
|
|
||||||
|
|
||||||
http://www.zlib.net/ > Download [**zlib source code, version 1.2.8, zipfile format**](http://zlib.net/zlib128.zip)
|
|
||||||
|
|
||||||
Extract to **D:\TBuild\Libraries\**
|
|
||||||
|
|
||||||
#####Building library
|
|
||||||
|
|
||||||
* Open in VS2013 **D:\TBuild\Libraries\zlib-1.2.8\contrib\vstudio\vc11\zlibvc.sln** > One-way upgrade – **OK**
|
|
||||||
* We are interested only in **zlibstat** project, but it depends on some custom pre-build step, so build all
|
|
||||||
* For **Debug** configuration
|
|
||||||
* zlibstat Properties > C/C++ > Code Generation > Runtime Library = **Multi-threaded Debug (/MTd)** – **OK**
|
|
||||||
* For **Release** configuration
|
|
||||||
* zlibstat Properties > C/C++ > Code Generation > Runtime Library = **Multi-threaded (/MT)** – **OK**
|
|
||||||
* Build Solution for Debug configuration – only **zlibstat** project builds successfully
|
|
||||||
* Build Solution for Release configuration – only **zlibstat** project builds successfully
|
|
||||||
|
|
||||||
####libexif 0.6.20
|
|
||||||
|
|
||||||
Get sources from https://github.com/telegramdesktop/libexif-0.6.20, by git – in [Git Bash](http://git-scm.com/downloads) go to **/d/tbuild/libraries** and run
|
|
||||||
|
|
||||||
git clone https://github.com/telegramdesktop/libexif-0.6.20.git
|
|
||||||
|
|
||||||
or download in ZIP and extract to **D:\TBuild\Libraries\**, rename **libexif-0.6.20-master** to **libexif-0.6.20** to have **D:\TBuild\Libraries\libexif-0.6.20\win32\lib_exif.sln** solution
|
|
||||||
|
|
||||||
#####Building library
|
|
||||||
|
|
||||||
* Open in VS2013 **D:\TBuild\Libraries\libexif-0.6.20\win32\lib_exif.sln**
|
|
||||||
* Build Debug configuration
|
|
||||||
* Build Release configuration
|
|
||||||
|
|
||||||
####Qt 5.3.0, slightly patched
|
|
||||||
|
|
||||||
http://download.qt-project.org/official_releases/qt/5.3/5.3.0/single/qt-everywhere-opensource-src-5.3.0.zip
|
|
||||||
|
|
||||||
Extract to **D:\TBuild\Libraries\**, rename **qt-everywhere-opensource-src-5.3.0** to **QtStatic** to have **D:\TBuild\Libraries\QtStatic\qtbase\** folder
|
|
||||||
|
|
||||||
Apply patch – copy (with overwrite!) everything from **D:\TBuild\tdesktop\\\_qt\_5\_3\_0\_patch\** to **D:\TBuild\Libraries\QtStatic\**
|
|
||||||
|
|
||||||
#####Building library
|
|
||||||
|
|
||||||
* Install Python 3.3.2 from https://www.python.org/download/releases/3.3.2 > [**Windows x86 MSI Installer (3.3.2)**](https://www.python.org/ftp/python/3.3.2/python-3.3.2.msi)
|
|
||||||
* Open **VS2013 x86 Native Tools Command Prompt.bat** (should be in **\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts\** folder)
|
|
||||||
|
|
||||||
There go to Qt directory
|
|
||||||
|
|
||||||
D:
|
|
||||||
cd TBuild\Libraries\QtStatic
|
|
||||||
|
|
||||||
and after that run configure
|
|
||||||
|
|
||||||
configure -debug-and-release -opensource -static -opengl desktop -mp -nomake examples -platform win32-msvc2013
|
|
||||||
y
|
|
||||||
|
|
||||||
to configure Qt build. After configuration is complete run
|
|
||||||
|
|
||||||
nmake
|
|
||||||
nmake install
|
|
||||||
|
|
||||||
building (**nmake** command) will take really long time.
|
|
||||||
|
|
||||||
####Qt Visual Studio Addin 1.2.3
|
|
||||||
|
|
||||||
http://download.qt-project.org/official_releases/vsaddin/qt-vs-addin-1.2.3-opensource.exe
|
|
||||||
|
|
||||||
Close all VS2013 instances and install to default location
|
|
||||||
|
|
||||||
###Building Telegram Desktop
|
|
||||||
|
|
||||||
* Launch VS2013 for configuring Qt Addin
|
|
||||||
* QT5 > Qt Options > Add
|
|
||||||
* Version name: **QtStatic.5.3.0**
|
|
||||||
* Path: **D:\TBuild\Libraries\QtStatic\qtbase**
|
|
||||||
* Default Qt/Win version: **QtStatic.5.3.0** – **OK**
|
|
||||||
* File > Open > Project/Solution > **D:\TBuild\tdesktop\Telegram.sln**
|
|
||||||
* Build \ Build Solution (Debug and Release configurations)
|
|
||||||
|
|
||||||
##Projects in Telegram solution
|
##Projects in Telegram solution
|
||||||
|
|
||||||
|
@ -153,12 +46,17 @@ compiles given files to single update file, compresses it with lzma and signs wi
|
||||||
|
|
||||||
####Prepare
|
####Prepare
|
||||||
|
|
||||||
prepares a release for deployment, puts all files to deploy/{version} folder
|
prepares a release for deployment, puts all files to deploy/{version} folder, for Win:
|
||||||
* current tsetup{version}exe installer
|
* current tsetup{version}exe installer
|
||||||
* current Telegram.exe
|
* current Telegram.exe
|
||||||
* current Telegram.pdb (debug info for crash minidumps view)
|
* current Telegram.pdb (debug info for crash minidumps view)
|
||||||
* current tupdate{updversion} binary lzma update archive
|
* current tupdate{updversion} binary lzma update archive
|
||||||
|
|
||||||
|
for Mac:
|
||||||
|
* current tsetup{version}dmg
|
||||||
|
* current Telegram.app
|
||||||
|
* current tmacupd{updversion} binary lzma update archive
|
||||||
|
|
||||||
####MetaEmoji
|
####MetaEmoji
|
||||||
|
|
||||||
from two folders
|
from two folders
|
||||||
|
|
20
Telegram/Emoji.plist
Normal file
20
Telegram/Emoji.plist
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>MetaEmoji</string>
|
||||||
|
<key>CFBundleGetInfoString</key>
|
||||||
|
<string>MetaEmoji compiler</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>com.tdesktop.${PRODUCT_NAME:rfc1034identifier}</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>APPL</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>NOTE</key>
|
||||||
|
<string></string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string>NSApplication</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
31
Telegram/MetaEmoji.pro
Normal file
31
Telegram/MetaEmoji.pro
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
QT += core
|
||||||
|
|
||||||
|
CONFIG(debug, debug|release) {
|
||||||
|
DEFINES += _DEBUG
|
||||||
|
OBJECTS_DIR = ./../Mac/DebugIntermediateEmoji
|
||||||
|
MOC_DIR = ./GeneratedFiles/Debug
|
||||||
|
DESTDIR = ./../Mac/DebugEmoji
|
||||||
|
}
|
||||||
|
CONFIG(release, debug|release) {
|
||||||
|
OBJECTS_DIR = ./../Mac/ReleaseIntermediateEmoji
|
||||||
|
MOC_DIR = ./GeneratedFiles/Release
|
||||||
|
DESTDIR = ./../Mac/ReleaseEmoji
|
||||||
|
}
|
||||||
|
|
||||||
|
macx {
|
||||||
|
QMAKE_INFO_PLIST = ./SourceFiles/_other/Emoji.plist
|
||||||
|
QMAKE_LFLAGS += -framework Cocoa
|
||||||
|
}
|
||||||
|
|
||||||
|
SOURCES += \
|
||||||
|
./SourceFiles/_other/memain.cpp \
|
||||||
|
./SourceFiles/_other/genemoji.cpp \
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
./SourceFiles/_other/memain.h \
|
||||||
|
./SourceFiles/_other/genemoji.h \
|
||||||
|
|
||||||
|
INCLUDEPATH += ./../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui\
|
||||||
|
./../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore\
|
||||||
|
./../../Libraries/QtStatic/qtbase/include\
|
||||||
|
|
801
Telegram/MetaEmoji.xcodeproj/project.pbxproj
Normal file
801
Telegram/MetaEmoji.xcodeproj/project.pbxproj
Normal file
|
@ -0,0 +1,801 @@
|
||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
archiveVersion = 1;
|
||||||
|
classes = {
|
||||||
|
};
|
||||||
|
objectVersion = 46;
|
||||||
|
objects = {
|
||||||
|
|
||||||
|
/* Begin PBXAggregateTarget section */
|
||||||
|
D93715D85BD26B270C3CC80B /* Preprocess */ = {
|
||||||
|
isa = PBXAggregateTarget;
|
||||||
|
buildConfigurationList = 6CC3B5D2136C7CD6A5CF5A59 /* Build configuration list for PBXNativeTarget "MetaEmoji" */;
|
||||||
|
buildPhases = (
|
||||||
|
7EF0942E79C014DCEC8976BC /* Qt Preprocessors */,
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
);
|
||||||
|
name = Preprocess;
|
||||||
|
productName = "Qt Preprocess";
|
||||||
|
};
|
||||||
|
/* End PBXAggregateTarget section */
|
||||||
|
|
||||||
|
/* Begin PBXBuildFile section */
|
||||||
|
1A681B886F50EE30FBE62B4B /* Qt5PrintSupport in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = DBF506D10449BFABD45B82DA /* Qt5PrintSupport */; };
|
||||||
|
1BB705CDB741E2B7450201A5 /* Cocoa.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = AEA456A2F75ED9F5CDA7BCBE /* Cocoa.framework */; };
|
||||||
|
328FD74542F6E2C873EE4D4B /* ApplicationServices.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = DFD7912080BC557230093752 /* ApplicationServices.framework */; };
|
||||||
|
496FD9CEEB508016AFB9F928 /* qico in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 8F500B5166907B6D9A7C3E3D /* qico */; };
|
||||||
|
4B166C0FE4A3C31F5E3D05CE /* metaemoji_plugin_import.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = A9341A7B02F69BC5802268AA /* metaemoji_plugin_import.cpp */; settings = {ATTRIBUTES = (); }; };
|
||||||
|
59789101736112A570B8EFE6 /* qjp2 in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = F0681BC551FC8A2B132FC646 /* qjp2 */; };
|
||||||
|
668DDDA0C55405E7FCFD6CA5 /* CoreServices.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 9742F24EE18EA44D52824F1E /* CoreServices.framework */; };
|
||||||
|
7CA5405B8503BFFC60932D2B /* qicns in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 31120EDB269DFF13E1D49847 /* qicns */; };
|
||||||
|
7F76437B577F737145996DC3 /* qtga in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = DCEFD9167C239650120B0145 /* qtga */; };
|
||||||
|
83425F7776C9E52C29BE0E6F /* memain.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 3AC2626B26B65AA88F06BFB5 /* memain.cpp */; settings = {ATTRIBUTES = (); }; };
|
||||||
|
8771A8C96E9C391044035D99 /* OpenGL.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D4B32C2222F82AC56BADEB21 /* OpenGL.framework */; };
|
||||||
|
8D267F2E4776F0ECA2F49DC8 /* IOKit.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = A1A67BEAA744704B29168D39 /* IOKit.framework */; };
|
||||||
|
8D33FE22B9BBADC7FA46C15B /* qtharfbuzzng in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D6193B79CECC9DD0142D1200 /* qtharfbuzzng */; };
|
||||||
|
9F33AC0693BC81B27D8F518D /* Qt5Gui in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 04391BE7A8B9D811E255100A /* Qt5Gui */; };
|
||||||
|
A3F8F2284013928A02AE5C38 /* qwbmp in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 8CF51323544B886B8F4A2232 /* qwbmp */; };
|
||||||
|
A9563D9C9FD0D76FAAF1CA96 /* qdds in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D3D1BE0BEA3AEE0551AD39AC /* qdds */; };
|
||||||
|
B9ADD90C014EA3FBE351DF03 /* Qt5Core in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 5A80A1907B6CFFB524C1E57D /* Qt5Core */; };
|
||||||
|
BE6AB9DF1C4880624131C669 /* Qt5Widgets in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 4689C06178B60B84E7F3A3B7 /* Qt5Widgets */; };
|
||||||
|
C06DDE378A7AC1FA9E6FF69A /* qtiff in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = F2453BA07315EB9F34F1CD57 /* qtiff */; };
|
||||||
|
C4F1177BDAACCF1E50ACCED9 /* moc_genemoji.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 93E4BE1A02365B73BAF00B73 /* moc_genemoji.cpp */; settings = {ATTRIBUTES = (); }; };
|
||||||
|
C5357D951917482510CE3E54 /* genemoji.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = 1F47C130E1F45B4A5A91DB5E /* genemoji.cpp */; settings = {ATTRIBUTES = (); }; };
|
||||||
|
D1FA8AF31837B51C762A9D4D /* qcocoa in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D53D8E6A188E05078A114294 /* qcocoa */; };
|
||||||
|
D22929A2B8C5281567FCACDC /* Qt5PlatformSupport in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = E7B2F248E3F7970788F35BF5 /* Qt5PlatformSupport */; };
|
||||||
|
E45E51A644D5FC9F942ECE55 /* AGL.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 8D9815BDB5BD9F90D2BC05C5 /* AGL.framework */; };
|
||||||
|
F26454630C80841CBDCFE1CA /* Foundation.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = FCC237CA5AD60B9BA4447615 /* Foundation.framework */; };
|
||||||
|
F4D3747C3A03B25EDC9057BB /* qwebp in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = ADC6308023253CEA51F86E21 /* qwebp */; };
|
||||||
|
F8B465CE34D8DF87AAE95913 /* CoreFoundation.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 4D765E1B1EA6C757220C63E7 /* CoreFoundation.framework */; };
|
||||||
|
F8ED42CF8679BF83227DAFC4 /* Carbon.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 9DFF62A901D70814B8A323D4 /* Carbon.framework */; };
|
||||||
|
FBD56E2AC34F76BFFDB68619 /* qmng in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 83D37373949868693FB7816D /* qmng */; };
|
||||||
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
|
/* Begin PBXContainerItemProxy section */
|
||||||
|
0708466E1954218200B5AE3A /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 6DB9C3763D02B1415CD9D565 /* Project object */;
|
||||||
|
proxyType = 1;
|
||||||
|
remoteGlobalIDString = D93715D85BD26B270C3CC80B;
|
||||||
|
remoteInfo = "Qt Preprocess";
|
||||||
|
};
|
||||||
|
/* End PBXContainerItemProxy section */
|
||||||
|
|
||||||
|
/* Begin PBXFileReference section */
|
||||||
|
04391BE7A8B9D811E255100A /* Qt5Gui */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5Gui; path = "/usr/local/Qt-5.3.0/lib/libQt5Gui$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
060A694B42A4555240009936 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri"; sourceTree = "<absolute>"; };
|
||||||
|
075EB50EB07CF69FD62FB8DF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
0ABCEA8D0DD45589040B0AF2 /* /usr/local/Qt-5.3.0/mkspecs/common/unix.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/unix.conf"; sourceTree = "<absolute>"; };
|
||||||
|
111BBEE3D1432C3B517FD539 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdds.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdds.pri"; sourceTree = "<absolute>"; };
|
||||||
|
16DD53E17C65AC8B450CC6C3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick.pri"; sourceTree = "<absolute>"; };
|
||||||
|
1F47C130E1F45B4A5A91DB5E /* genemoji.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = genemoji.cpp; path = SourceFiles/_other/genemoji.cpp; sourceTree = "<absolute>"; };
|
||||||
|
1FAE75C970AA73F2DEDDB508 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfcamera.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfcamera.pri"; sourceTree = "<absolute>"; };
|
||||||
|
23BC8B0FC3279421D41CA268 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui.pri"; sourceTree = "<absolute>"; };
|
||||||
|
2440CD1D4CEF80443BCA1B8B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qgenericbearer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qgenericbearer.pri"; sourceTree = "<absolute>"; };
|
||||||
|
247D8DF3B1DDB665B80BBA25 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblequick.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblequick.pri"; sourceTree = "<absolute>"; };
|
||||||
|
24B6929EE3952310F2DAECB1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri"; sourceTree = "<absolute>"; };
|
||||||
|
28BD0D10214709D95B161E24 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets.pri"; sourceTree = "<absolute>"; };
|
||||||
|
293C8DEEE270847AC20E70F9 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network.pri"; sourceTree = "<absolute>"; };
|
||||||
|
2E48BB382B895A5ACD79AF9F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
2E6D9B1D2743D24E31B0B284 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns.pri"; sourceTree = "<absolute>"; };
|
||||||
|
311004331A04F3D69C98643C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
31120EDB269DFF13E1D49847 /* qicns */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qicns; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqicns$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
33F165B1DB8CBF182C56FAB5 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
346287C9E754E7C458153F03 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwbmp.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwbmp.pri"; sourceTree = "<absolute>"; };
|
||||||
|
360D4B3ED25D126430DE27D4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio.pri"; sourceTree = "<absolute>"; };
|
||||||
|
3685604BDB64DD6E92169B73 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdeclarativeview.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdeclarativeview.pri"; sourceTree = "<absolute>"; };
|
||||||
|
382E89A91A34F7898C25FD0D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
3AC2626B26B65AA88F06BFB5 /* memain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = memain.cpp; path = SourceFiles/_other/memain.cpp; sourceTree = "<absolute>"; };
|
||||||
|
3F08D430CEC8D2117735CCB4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri"; sourceTree = "<absolute>"; };
|
||||||
|
45B95DB3B70B47A910FC847B /* /usr/local/Qt-5.3.0/mkspecs/common/gcc-base.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/gcc-base.conf"; sourceTree = "<absolute>"; };
|
||||||
|
45DB132B756499D4DF38430E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qjp2.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qjp2.pri"; sourceTree = "<absolute>"; };
|
||||||
|
4689C06178B60B84E7F3A3B7 /* Qt5Widgets */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5Widgets; path = "/usr/local/Qt-5.3.0/lib/libQt5Widgets$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
4C6C71914B1926119120DACD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
4D765E1B1EA6C757220C63E7 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
|
||||||
|
4FB6657DA22BC68B819B64B3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmldevtools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmldevtools_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
5597304BEC94BFB9EAAEBC4B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
58308B26DE991A86E8589883 /* genemoji.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = genemoji.h; path = SourceFiles/_other/genemoji.h; sourceTree = "<absolute>"; };
|
||||||
|
5A80A1907B6CFFB524C1E57D /* Qt5Core */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5Core; path = "/usr/local/Qt-5.3.0/lib/libQt5Core$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
5B22E9E4EE9AAE42ABC24AB3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
5CEA7A2DB2136425A88D1254 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl.pri"; sourceTree = "<absolute>"; };
|
||||||
|
5F781C7FD8422D359EA1D2FE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
6102C69805B6398AF6FA5BEB /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
63E722139886C87BC82DBDF5 /* /usr/local/Qt-5.3.0/mkspecs/macx-clang/qmake.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/macx-clang/qmake.conf"; sourceTree = "<absolute>"; };
|
||||||
|
669FB007C4A3D58424D85EC8 /* /usr/local/Qt-5.3.0/mkspecs/common/shell-unix.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/shell-unix.conf"; sourceTree = "<absolute>"; };
|
||||||
|
69347C39E4D922E94D0860BF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designercomponents_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designercomponents_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
6C08BFC27C4C303A3A5181DB /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport.pri"; sourceTree = "<absolute>"; };
|
||||||
|
6E67D23B15FC4B628DB2E0B2 /* /usr/local/Qt-5.3.0/mkspecs/qdevice.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/qdevice.pri"; sourceTree = "<absolute>"; };
|
||||||
|
74C1C232DFAA71028A0412CA /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri"; sourceTree = "<absolute>"; };
|
||||||
|
77FF486B1F9BCD55A8A3F35D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent.pri"; sourceTree = "<absolute>"; };
|
||||||
|
7A94C7168B3FCBE5F04A013B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative.pri"; sourceTree = "<absolute>"; };
|
||||||
|
7C2F42B222EE88E26A6FED62 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
7D28E9003CE64D8A7F2E292E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
7DE30A90667C03C4F91A2A91 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql.pri"; sourceTree = "<absolute>"; };
|
||||||
|
7ECCC1F9442988B4F2707CC1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core.pri"; sourceTree = "<absolute>"; };
|
||||||
|
817A0F5A41B553A6DE67FDEB /* /usr/local/Qt-5.3.0/mkspecs/common/macx.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/macx.conf"; sourceTree = "<absolute>"; };
|
||||||
|
82E7DCFD95559532D8FC6CDD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickparticles_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickparticles_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
83D37373949868693FB7816D /* qmng */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qmng; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqmng$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
85061B1DA49D125991117950 /* /usr/local/Qt-5.3.0/mkspecs/macx-xcode/qmake.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/macx-xcode/qmake.conf"; sourceTree = "<absolute>"; };
|
||||||
|
85B6936EDBE61D9BB8F8B33B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors.pri"; sourceTree = "<absolute>"; };
|
||||||
|
87A4C1983FD641360BF80A02 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblewidgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblewidgets.pri"; sourceTree = "<absolute>"; };
|
||||||
|
87EEF25EE25CF21572D1438C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8849E60AEC7DB97A475C17EA /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
892D36BEF797BA4AF48D378A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_dummy.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_dummy.pri"; sourceTree = "<absolute>"; };
|
||||||
|
89863CCAF1D29037AE95755D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8A04A4A3625204D12A1207F6 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8B4BB4E74F8A4442EF563D7D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8C31D89BDFCDF466DAED19A0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8C5164D4E37556D40C5E6AA2 /* /usr/local/Qt-5.3.0/mkspecs/common/clang.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/clang.conf"; sourceTree = "<absolute>"; };
|
||||||
|
8CF51323544B886B8F4A2232 /* qwbmp */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qwbmp; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqwbmp$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
8D9815BDB5BD9F90D2BC05C5 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; };
|
||||||
|
8DDE1D26B3206CDB8B57FABE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8E9136256AFFBA6EF048AA55 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8F500B5166907B6D9A7C3E3D /* qico */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qico; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqico$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
8F572030CE9AB8CC5F672201 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_platformsupport_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_platformsupport_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8F97C9CAE38CA3AFAC0B3953 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets.pri"; sourceTree = "<absolute>"; };
|
||||||
|
93E4BE1A02365B73BAF00B73 /* moc_genemoji.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = moc_genemoji.cpp; path = GeneratedFiles/Debug/moc_genemoji.cpp; sourceTree = "<absolute>"; };
|
||||||
|
946BEA667170DC1A7A8F9DB0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmng.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmng.pri"; sourceTree = "<absolute>"; };
|
||||||
|
9742F24EE18EA44D52824F1E /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
|
||||||
|
9A0BDF67E013BB4FFB8685B0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qqt7engine.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qqt7engine.pri"; sourceTree = "<absolute>"; };
|
||||||
|
9DFF62A901D70814B8A323D4 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
|
||||||
|
A022AF919D1977534CA66BB8 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets.pri"; sourceTree = "<absolute>"; };
|
||||||
|
A1A67BEAA744704B29168D39 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
|
||||||
|
A4D8AC60897F435C1C3B9D02 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_generic.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_generic.pri"; sourceTree = "<absolute>"; };
|
||||||
|
A59F74CD76FDC2B4B9910E18 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
A5B17ABEFBA1C2F43443D644 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras.pri"; sourceTree = "<absolute>"; };
|
||||||
|
A9341A7B02F69BC5802268AA /* metaemoji_plugin_import.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = metaemoji_plugin_import.cpp; sourceTree = "<absolute>"; };
|
||||||
|
A9E30FA27827990C5F182223 /* /usr/local/Qt-5.3.0/mkspecs/common/gcc-base-mac.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/gcc-base-mac.conf"; sourceTree = "<absolute>"; };
|
||||||
|
AA73DC3C2901E2979FE8AD5B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml.pri"; sourceTree = "<absolute>"; };
|
||||||
|
AB1C02DDBD8E88DD9A9AFDDD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri"; sourceTree = "<absolute>"; };
|
||||||
|
AB745978DF0F41D1801ABDA6 /* .qmake.stash */ = {isa = PBXFileReference; lastKnownFileType = file; path = .qmake.stash; sourceTree = "<absolute>"; };
|
||||||
|
ABA9AB4619F09DCFD2D4A27F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
ACC8A73268E5D9AF64E97AF4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth.pri"; sourceTree = "<absolute>"; };
|
||||||
|
ADC6308023253CEA51F86E21 /* qwebp */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qwebp; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqwebp$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
ADFC79902C14A612AE93A89A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg.pri"; sourceTree = "<absolute>"; };
|
||||||
|
AEA456A2F75ED9F5CDA7BCBE /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
||||||
|
AFD721AA33A2F785E77B1698 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcocoa.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcocoa.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B064BF3B496A7BF7A449CA1E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsqlite.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsqlite.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B2246267D4C0D789259A86B0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B26239063A068F800A2C95F4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwebp.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwebp.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B382B645B34234E451AE5D94 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B518DA4EE7376002AFC71FD5 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B51B01657BFE9EAEF5590561 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B678DA730B4ECE863AD631AE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qminimal.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qminimal.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B8525798C5AA7D7C6D68E1B3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_qtquick2.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_qtquick2.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B8C1F6C965A7A14FBA8D4518 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri"; sourceTree = "<absolute>"; };
|
||||||
|
BD22EFEFCC02644B1883CE19 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtiff.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtiff.pri"; sourceTree = "<absolute>"; };
|
||||||
|
BD4D97801B547471B37A4CDC /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bootstrap_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bootstrap_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
BDC9ECADEE40D11E3C2EA93F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
BFF0C38FB0EC140C5F0304AE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport.pri"; sourceTree = "<absolute>"; };
|
||||||
|
C3345709A0BD182590087379 /* MetaEmoji.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MetaEmoji.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
C4295BE59CCEBCDD16268349 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qico.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qico.pri"; sourceTree = "<absolute>"; };
|
||||||
|
C505A18319B9B63C63877858 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
C84546C18DCBB04166195DCF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri"; sourceTree = "<absolute>"; };
|
||||||
|
CCF75CFFB857487FB18F99F9 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qoffscreen.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qoffscreen.pri"; sourceTree = "<absolute>"; };
|
||||||
|
CE829DD126DD2B97E8D70A7A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools.pri"; sourceTree = "<absolute>"; };
|
||||||
|
CF86CD5BB01B9011E6B6FD3E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_clucene_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_clucene_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
CFCB992BEC24B71BFB8A2F30 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script.pri"; sourceTree = "<absolute>"; };
|
||||||
|
CFFBE05DB004895080314289 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvgicon.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvgicon.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D0CDC87DAFDA7F18A7AF450F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D1FA7CAB5ACC09D563AE569F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D2FE4D909926A0D1656068C4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D3D1BE0BEA3AEE0551AD39AC /* qdds */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qdds; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqdds$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
D4B32C2222F82AC56BADEB21 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
|
||||||
|
D4DE537C1FBBD48BD989FAD1 /* /usr/local/Qt-5.3.0/mkspecs/qconfig.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/qconfig.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D5141F795670589C8CC41CBC /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_cocoaprintersupport.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_cocoaprintersupport.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D53D8E6A188E05078A114294 /* qcocoa */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qcocoa; path = "/usr/local/Qt-5.3.0/plugins/platforms/libqcocoa$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
D6193B79CECC9DD0142D1200 /* qtharfbuzzng */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qtharfbuzzng; path = "/usr/local/Qt-5.3.0/lib/libqtharfbuzzng$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
D7A0618DE39A427EBF41940E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D81E3D9A18202BE8EC3D0E2C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D948D4D8F949D45158F8DE35 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets.pri"; sourceTree = "<absolute>"; };
|
||||||
|
DB0A26DDC377B2004F61BFE3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib.pri"; sourceTree = "<absolute>"; };
|
||||||
|
DBF506D10449BFABD45B82DA /* Qt5PrintSupport */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5PrintSupport; path = "/usr/local/Qt-5.3.0/lib/libQt5PrintSupport$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
DCEFD9167C239650120B0145 /* qtga */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qtga; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqtga$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
DF8188E30892A4654B984221 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest.pri"; sourceTree = "<absolute>"; };
|
||||||
|
DFD7912080BC557230093752 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = "<absolute>"; };
|
||||||
|
E0F4563EA350EB65112A0EF4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
E37365B4489B4918BEBB707D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
E432DA897A5F027987342E8F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions.pri"; sourceTree = "<absolute>"; };
|
||||||
|
E50FA73B8A23BC179A642B27 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools.pri"; sourceTree = "<absolute>"; };
|
||||||
|
E66B9EC81C285CA9A7FB6A2E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
E7B2F248E3F7970788F35BF5 /* Qt5PlatformSupport */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5PlatformSupport; path = "/usr/local/Qt-5.3.0/lib/libQt5PlatformSupport$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
E7D67CB158408BB7DEA74764 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
E981470FA003A8DCE3C52E59 /* memain.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = memain.h; path = SourceFiles/_other/memain.h; sourceTree = "<absolute>"; };
|
||||||
|
EA5D4FF9DE4AC4215D7DCE0D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcorewlanbearer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcorewlanbearer.pri"; sourceTree = "<absolute>"; };
|
||||||
|
EB1F99FD112917157F3C3F6E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qicns.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qicns.pri"; sourceTree = "<absolute>"; };
|
||||||
|
EB29AC635054C09EFA749AE1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp.pri"; sourceTree = "<absolute>"; };
|
||||||
|
EBD39B69F368CEEAC360A16D /* /usr/local/Qt-5.3.0/mkspecs/common/mac.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/mac.conf"; sourceTree = "<absolute>"; };
|
||||||
|
F0681BC551FC8A2B132FC646 /* qjp2 */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qjp2; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqjp2$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
F0A58515945747E36783CC21 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_inspector.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_inspector.pri"; sourceTree = "<absolute>"; };
|
||||||
|
F13124A218B58585B027D96A /* MetaEmoji.pro */ = {isa = PBXFileReference; lastKnownFileType = text; path = MetaEmoji.pro; sourceTree = "<absolute>"; };
|
||||||
|
F2453BA07315EB9F34F1CD57 /* qtiff */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qtiff; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqtiff$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
F2F823087EA182CCBD5748B8 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer.pri"; sourceTree = "<absolute>"; };
|
||||||
|
F33BE16353DD1557A9AB3558 /* /usr/local/Qt-5.3.0/mkspecs/common/clang-mac.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/clang-mac.conf"; sourceTree = "<absolute>"; };
|
||||||
|
F4EB01857048DCFCFFAAC4D0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfmediaplayer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfmediaplayer.pri"; sourceTree = "<absolute>"; };
|
||||||
|
F7ADBF552F6B9A5982915164 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning.pri"; sourceTree = "<absolute>"; };
|
||||||
|
F83F87F8A60C9DF666911D42 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvg.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvg.pri"; sourceTree = "<absolute>"; };
|
||||||
|
F9BEAA743A908603687DA204 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
FCC237CA5AD60B9BA4447615 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
||||||
|
FD944B80F033DFE737D401A2 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help.pri"; sourceTree = "<absolute>"; };
|
||||||
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
D1C883685E82D5676953459A /* Link Binary With Libraries */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
1BB705CDB741E2B7450201A5 /* Cocoa.framework in Link Binary With Libraries */,
|
||||||
|
328FD74542F6E2C873EE4D4B /* ApplicationServices.framework in Link Binary With Libraries */,
|
||||||
|
668DDDA0C55405E7FCFD6CA5 /* CoreServices.framework in Link Binary With Libraries */,
|
||||||
|
F8B465CE34D8DF87AAE95913 /* CoreFoundation.framework in Link Binary With Libraries */,
|
||||||
|
F26454630C80841CBDCFE1CA /* Foundation.framework in Link Binary With Libraries */,
|
||||||
|
8771A8C96E9C391044035D99 /* OpenGL.framework in Link Binary With Libraries */,
|
||||||
|
E45E51A644D5FC9F942ECE55 /* AGL.framework in Link Binary With Libraries */,
|
||||||
|
D1FA8AF31837B51C762A9D4D /* qcocoa in Link Binary With Libraries */,
|
||||||
|
F8ED42CF8679BF83227DAFC4 /* Carbon.framework in Link Binary With Libraries */,
|
||||||
|
8D267F2E4776F0ECA2F49DC8 /* IOKit.framework in Link Binary With Libraries */,
|
||||||
|
1A681B886F50EE30FBE62B4B /* Qt5PrintSupport in Link Binary With Libraries */,
|
||||||
|
D22929A2B8C5281567FCACDC /* Qt5PlatformSupport in Link Binary With Libraries */,
|
||||||
|
BE6AB9DF1C4880624131C669 /* Qt5Widgets in Link Binary With Libraries */,
|
||||||
|
A9563D9C9FD0D76FAAF1CA96 /* qdds in Link Binary With Libraries */,
|
||||||
|
7CA5405B8503BFFC60932D2B /* qicns in Link Binary With Libraries */,
|
||||||
|
496FD9CEEB508016AFB9F928 /* qico in Link Binary With Libraries */,
|
||||||
|
59789101736112A570B8EFE6 /* qjp2 in Link Binary With Libraries */,
|
||||||
|
FBD56E2AC34F76BFFDB68619 /* qmng in Link Binary With Libraries */,
|
||||||
|
7F76437B577F737145996DC3 /* qtga in Link Binary With Libraries */,
|
||||||
|
C06DDE378A7AC1FA9E6FF69A /* qtiff in Link Binary With Libraries */,
|
||||||
|
A3F8F2284013928A02AE5C38 /* qwbmp in Link Binary With Libraries */,
|
||||||
|
F4D3747C3A03B25EDC9057BB /* qwebp in Link Binary With Libraries */,
|
||||||
|
9F33AC0693BC81B27D8F518D /* Qt5Gui in Link Binary With Libraries */,
|
||||||
|
8D33FE22B9BBADC7FA46C15B /* qtharfbuzzng in Link Binary With Libraries */,
|
||||||
|
B9ADD90C014EA3FBE351DF03 /* Qt5Core in Link Binary With Libraries */,
|
||||||
|
);
|
||||||
|
name = "Link Binary With Libraries";
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXGroup section */
|
||||||
|
25B08E2869634E9BCBA333A2 /* Generated Sources */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
D0B536A85E53302E4F66CE23 /* GeneratedFiles */,
|
||||||
|
);
|
||||||
|
name = "Generated Sources";
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
2EB56BE3C2D93CDAB0C52E67 /* Sources */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
73F2E45FDEB381A085D37A49 /* SourceFiles */,
|
||||||
|
A9341A7B02F69BC5802268AA /* metaemoji_plugin_import.cpp */,
|
||||||
|
);
|
||||||
|
name = Sources;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
31562E815E3DF5B1A777D3EF /* _other */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
3AC2626B26B65AA88F06BFB5 /* memain.cpp */,
|
||||||
|
1F47C130E1F45B4A5A91DB5E /* genemoji.cpp */,
|
||||||
|
E981470FA003A8DCE3C52E59 /* memain.h */,
|
||||||
|
58308B26DE991A86E8589883 /* genemoji.h */,
|
||||||
|
);
|
||||||
|
name = _other;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
73F2E45FDEB381A085D37A49 /* SourceFiles */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
31562E815E3DF5B1A777D3EF /* _other */,
|
||||||
|
);
|
||||||
|
name = SourceFiles;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
74B182DB50CB5611B5C1C297 /* Supporting Files */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
F13124A218B58585B027D96A /* MetaEmoji.pro */,
|
||||||
|
6E67D23B15FC4B628DB2E0B2 /* /usr/local/Qt-5.3.0/mkspecs/qdevice.pri */,
|
||||||
|
669FB007C4A3D58424D85EC8 /* /usr/local/Qt-5.3.0/mkspecs/common/shell-unix.conf */,
|
||||||
|
0ABCEA8D0DD45589040B0AF2 /* /usr/local/Qt-5.3.0/mkspecs/common/unix.conf */,
|
||||||
|
EBD39B69F368CEEAC360A16D /* /usr/local/Qt-5.3.0/mkspecs/common/mac.conf */,
|
||||||
|
817A0F5A41B553A6DE67FDEB /* /usr/local/Qt-5.3.0/mkspecs/common/macx.conf */,
|
||||||
|
45B95DB3B70B47A910FC847B /* /usr/local/Qt-5.3.0/mkspecs/common/gcc-base.conf */,
|
||||||
|
A9E30FA27827990C5F182223 /* /usr/local/Qt-5.3.0/mkspecs/common/gcc-base-mac.conf */,
|
||||||
|
8C5164D4E37556D40C5E6AA2 /* /usr/local/Qt-5.3.0/mkspecs/common/clang.conf */,
|
||||||
|
F33BE16353DD1557A9AB3558 /* /usr/local/Qt-5.3.0/mkspecs/common/clang-mac.conf */,
|
||||||
|
D4DE537C1FBBD48BD989FAD1 /* /usr/local/Qt-5.3.0/mkspecs/qconfig.pri */,
|
||||||
|
ACC8A73268E5D9AF64E97AF4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth.pri */,
|
||||||
|
2E48BB382B895A5ACD79AF9F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth_private.pri */,
|
||||||
|
BD4D97801B547471B37A4CDC /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bootstrap_private.pri */,
|
||||||
|
CF86CD5BB01B9011E6B6FD3E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_clucene_private.pri */,
|
||||||
|
77FF486B1F9BCD55A8A3F35D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent.pri */,
|
||||||
|
7D28E9003CE64D8A7F2E292E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent_private.pri */,
|
||||||
|
7ECCC1F9442988B4F2707CC1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core.pri */,
|
||||||
|
5F781C7FD8422D359EA1D2FE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core_private.pri */,
|
||||||
|
7A94C7168B3FCBE5F04A013B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative.pri */,
|
||||||
|
89863CCAF1D29037AE95755D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative_private.pri */,
|
||||||
|
F2F823087EA182CCBD5748B8 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer.pri */,
|
||||||
|
7C2F42B222EE88E26A6FED62 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer_private.pri */,
|
||||||
|
69347C39E4D922E94D0860BF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designercomponents_private.pri */,
|
||||||
|
360D4B3ED25D126430DE27D4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio.pri */,
|
||||||
|
4C6C71914B1926119120DACD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio_private.pri */,
|
||||||
|
23BC8B0FC3279421D41CA268 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui.pri */,
|
||||||
|
D81E3D9A18202BE8EC3D0E2C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui_private.pri */,
|
||||||
|
FD944B80F033DFE737D401A2 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help.pri */,
|
||||||
|
D7A0618DE39A427EBF41940E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help_private.pri */,
|
||||||
|
A5B17ABEFBA1C2F43443D644 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras.pri */,
|
||||||
|
33F165B1DB8CBF182C56FAB5 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras_private.pri */,
|
||||||
|
D2FE4D909926A0D1656068C4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia.pri */,
|
||||||
|
E7D67CB158408BB7DEA74764 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia_private.pri */,
|
||||||
|
28BD0D10214709D95B161E24 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets.pri */,
|
||||||
|
D1FA7CAB5ACC09D563AE569F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets_private.pri */,
|
||||||
|
293C8DEEE270847AC20E70F9 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network.pri */,
|
||||||
|
382E89A91A34F7898C25FD0D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network_private.pri */,
|
||||||
|
8A04A4A3625204D12A1207F6 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc.pri */,
|
||||||
|
B51B01657BFE9EAEF5590561 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc_private.pri */,
|
||||||
|
5CEA7A2DB2136425A88D1254 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl.pri */,
|
||||||
|
E0F4563EA350EB65112A0EF4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl_private.pri */,
|
||||||
|
E432DA897A5F027987342E8F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions.pri */,
|
||||||
|
5597304BEC94BFB9EAAEBC4B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions_private.pri */,
|
||||||
|
8F572030CE9AB8CC5F672201 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_platformsupport_private.pri */,
|
||||||
|
F7ADBF552F6B9A5982915164 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning.pri */,
|
||||||
|
E66B9EC81C285CA9A7FB6A2E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning_private.pri */,
|
||||||
|
6C08BFC27C4C303A3A5181DB /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport.pri */,
|
||||||
|
D0CDC87DAFDA7F18A7AF450F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport_private.pri */,
|
||||||
|
B382B645B34234E451AE5D94 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml.pri */,
|
||||||
|
6102C69805B6398AF6FA5BEB /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml_private.pri */,
|
||||||
|
4FB6657DA22BC68B819B64B3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmldevtools_private.pri */,
|
||||||
|
DF8188E30892A4654B984221 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest.pri */,
|
||||||
|
ABA9AB4619F09DCFD2D4A27F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest_private.pri */,
|
||||||
|
5B22E9E4EE9AAE42ABC24AB3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri */,
|
||||||
|
16DD53E17C65AC8B450CC6C3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick.pri */,
|
||||||
|
8C31D89BDFCDF466DAED19A0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick_private.pri */,
|
||||||
|
82E7DCFD95559532D8FC6CDD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickparticles_private.pri */,
|
||||||
|
D948D4D8F949D45158F8DE35 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets.pri */,
|
||||||
|
B2246267D4C0D789259A86B0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets_private.pri */,
|
||||||
|
CFCB992BEC24B71BFB8A2F30 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script.pri */,
|
||||||
|
C505A18319B9B63C63877858 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script_private.pri */,
|
||||||
|
CE829DD126DD2B97E8D70A7A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools.pri */,
|
||||||
|
A59F74CD76FDC2B4B9910E18 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools_private.pri */,
|
||||||
|
85B6936EDBE61D9BB8F8B33B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors.pri */,
|
||||||
|
BDC9ECADEE40D11E3C2EA93F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors_private.pri */,
|
||||||
|
BFF0C38FB0EC140C5F0304AE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport.pri */,
|
||||||
|
311004331A04F3D69C98643C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport_private.pri */,
|
||||||
|
7DE30A90667C03C4F91A2A91 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql.pri */,
|
||||||
|
075EB50EB07CF69FD62FB8DF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri */,
|
||||||
|
ADFC79902C14A612AE93A89A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg.pri */,
|
||||||
|
8DDE1D26B3206CDB8B57FABE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg_private.pri */,
|
||||||
|
DB0A26DDC377B2004F61BFE3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib.pri */,
|
||||||
|
8849E60AEC7DB97A475C17EA /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib_private.pri */,
|
||||||
|
E50FA73B8A23BC179A642B27 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools.pri */,
|
||||||
|
B518DA4EE7376002AFC71FD5 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools_private.pri */,
|
||||||
|
8F97C9CAE38CA3AFAC0B3953 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets.pri */,
|
||||||
|
87EEF25EE25CF21572D1438C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets_private.pri */,
|
||||||
|
A022AF919D1977534CA66BB8 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets.pri */,
|
||||||
|
8E9136256AFFBA6EF048AA55 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets_private.pri */,
|
||||||
|
AA73DC3C2901E2979FE8AD5B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml.pri */,
|
||||||
|
E37365B4489B4918BEBB707D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml_private.pri */,
|
||||||
|
2E6D9B1D2743D24E31B0B284 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns.pri */,
|
||||||
|
F9BEAA743A908603687DA204 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns_private.pri */,
|
||||||
|
D5141F795670589C8CC41CBC /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_cocoaprintersupport.pri */,
|
||||||
|
1FAE75C970AA73F2DEDDB508 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfcamera.pri */,
|
||||||
|
F4EB01857048DCFCFFAAC4D0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfmediaplayer.pri */,
|
||||||
|
AFD721AA33A2F785E77B1698 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcocoa.pri */,
|
||||||
|
EA5D4FF9DE4AC4215D7DCE0D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcorewlanbearer.pri */,
|
||||||
|
111BBEE3D1432C3B517FD539 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdds.pri */,
|
||||||
|
3685604BDB64DD6E92169B73 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdeclarativeview.pri */,
|
||||||
|
2440CD1D4CEF80443BCA1B8B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qgenericbearer.pri */,
|
||||||
|
EB1F99FD112917157F3C3F6E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qicns.pri */,
|
||||||
|
C4295BE59CCEBCDD16268349 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qico.pri */,
|
||||||
|
45DB132B756499D4DF38430E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qjp2.pri */,
|
||||||
|
B678DA730B4ECE863AD631AE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qminimal.pri */,
|
||||||
|
F0A58515945747E36783CC21 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_inspector.pri */,
|
||||||
|
B8525798C5AA7D7C6D68E1B3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_qtquick2.pri */,
|
||||||
|
EB29AC635054C09EFA749AE1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp.pri */,
|
||||||
|
3F08D430CEC8D2117735CCB4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri */,
|
||||||
|
946BEA667170DC1A7A8F9DB0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmng.pri */,
|
||||||
|
CCF75CFFB857487FB18F99F9 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qoffscreen.pri */,
|
||||||
|
9A0BDF67E013BB4FFB8685B0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qqt7engine.pri */,
|
||||||
|
B064BF3B496A7BF7A449CA1E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsqlite.pri */,
|
||||||
|
F83F87F8A60C9DF666911D42 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvg.pri */,
|
||||||
|
CFFBE05DB004895080314289 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvgicon.pri */,
|
||||||
|
247D8DF3B1DDB665B80BBA25 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblequick.pri */,
|
||||||
|
87A4C1983FD641360BF80A02 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblewidgets.pri */,
|
||||||
|
24B6929EE3952310F2DAECB1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri */,
|
||||||
|
060A694B42A4555240009936 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri */,
|
||||||
|
BD22EFEFCC02644B1883CE19 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtiff.pri */,
|
||||||
|
B8C1F6C965A7A14FBA8D4518 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri */,
|
||||||
|
74C1C232DFAA71028A0412CA /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri */,
|
||||||
|
C84546C18DCBB04166195DCF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri */,
|
||||||
|
AB1C02DDBD8E88DD9A9AFDDD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri */,
|
||||||
|
8B4BB4E74F8A4442EF563D7D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri */,
|
||||||
|
892D36BEF797BA4AF48D378A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_dummy.pri */,
|
||||||
|
A4D8AC60897F435C1C3B9D02 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_generic.pri */,
|
||||||
|
346287C9E754E7C458153F03 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwbmp.pri */,
|
||||||
|
B26239063A068F800A2C95F4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwebp.pri */,
|
||||||
|
63E722139886C87BC82DBDF5 /* /usr/local/Qt-5.3.0/mkspecs/macx-clang/qmake.conf */,
|
||||||
|
85061B1DA49D125991117950 /* /usr/local/Qt-5.3.0/mkspecs/macx-xcode/qmake.conf */,
|
||||||
|
AB745978DF0F41D1801ABDA6 /* .qmake.stash */,
|
||||||
|
);
|
||||||
|
name = "Supporting Files";
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
801973D3334D0FCA849CF485 /* Debug */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
93E4BE1A02365B73BAF00B73 /* moc_genemoji.cpp */,
|
||||||
|
);
|
||||||
|
name = Debug;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
AF39DD055C3EF8226FBE929D /* Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
AEA456A2F75ED9F5CDA7BCBE /* Cocoa.framework */,
|
||||||
|
DFD7912080BC557230093752 /* ApplicationServices.framework */,
|
||||||
|
9742F24EE18EA44D52824F1E /* CoreServices.framework */,
|
||||||
|
4D765E1B1EA6C757220C63E7 /* CoreFoundation.framework */,
|
||||||
|
FCC237CA5AD60B9BA4447615 /* Foundation.framework */,
|
||||||
|
D4B32C2222F82AC56BADEB21 /* OpenGL.framework */,
|
||||||
|
8D9815BDB5BD9F90D2BC05C5 /* AGL.framework */,
|
||||||
|
D53D8E6A188E05078A114294 /* qcocoa */,
|
||||||
|
9DFF62A901D70814B8A323D4 /* Carbon.framework */,
|
||||||
|
A1A67BEAA744704B29168D39 /* IOKit.framework */,
|
||||||
|
DBF506D10449BFABD45B82DA /* Qt5PrintSupport */,
|
||||||
|
E7B2F248E3F7970788F35BF5 /* Qt5PlatformSupport */,
|
||||||
|
4689C06178B60B84E7F3A3B7 /* Qt5Widgets */,
|
||||||
|
D3D1BE0BEA3AEE0551AD39AC /* qdds */,
|
||||||
|
31120EDB269DFF13E1D49847 /* qicns */,
|
||||||
|
8F500B5166907B6D9A7C3E3D /* qico */,
|
||||||
|
F0681BC551FC8A2B132FC646 /* qjp2 */,
|
||||||
|
83D37373949868693FB7816D /* qmng */,
|
||||||
|
DCEFD9167C239650120B0145 /* qtga */,
|
||||||
|
F2453BA07315EB9F34F1CD57 /* qtiff */,
|
||||||
|
8CF51323544B886B8F4A2232 /* qwbmp */,
|
||||||
|
ADC6308023253CEA51F86E21 /* qwebp */,
|
||||||
|
04391BE7A8B9D811E255100A /* Qt5Gui */,
|
||||||
|
D6193B79CECC9DD0142D1200 /* qtharfbuzzng */,
|
||||||
|
5A80A1907B6CFFB524C1E57D /* Qt5Core */,
|
||||||
|
);
|
||||||
|
name = Frameworks;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
D0B536A85E53302E4F66CE23 /* GeneratedFiles */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
801973D3334D0FCA849CF485 /* Debug */,
|
||||||
|
);
|
||||||
|
name = GeneratedFiles;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
E8C543AB96796ECAA2E65C57 /* MetaEmoji */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
2EB56BE3C2D93CDAB0C52E67 /* Sources */,
|
||||||
|
25B08E2869634E9BCBA333A2 /* Generated Sources */,
|
||||||
|
74B182DB50CB5611B5C1C297 /* Supporting Files */,
|
||||||
|
AF39DD055C3EF8226FBE929D /* Frameworks */,
|
||||||
|
FE0A091FDBFB3E9C31B7A1BD /* Products */,
|
||||||
|
);
|
||||||
|
name = MetaEmoji;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
FE0A091FDBFB3E9C31B7A1BD /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
C3345709A0BD182590087379 /* MetaEmoji.app */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
/* End PBXGroup section */
|
||||||
|
|
||||||
|
/* Begin PBXNativeTarget section */
|
||||||
|
E4122523B1AB28431125160A /* MetaEmoji */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = 6CC3B5D2136C7CD6A5CF5A59 /* Build configuration list for PBXNativeTarget "MetaEmoji" */;
|
||||||
|
buildPhases = (
|
||||||
|
F7E50F631C51CD5B5DC0BC43 /* Compile Sources */,
|
||||||
|
D1C883685E82D5676953459A /* Link Binary With Libraries */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
8F9AEC020DB94B2A3918B1FE /* PBXTargetDependency */,
|
||||||
|
);
|
||||||
|
name = MetaEmoji;
|
||||||
|
productInstallPath = ../Mac/DebugEmoji/;
|
||||||
|
productName = MetaEmoji;
|
||||||
|
productReference = C3345709A0BD182590087379 /* MetaEmoji.app */;
|
||||||
|
productType = "com.apple.product-type.application";
|
||||||
|
};
|
||||||
|
/* End PBXNativeTarget section */
|
||||||
|
|
||||||
|
/* Begin PBXProject section */
|
||||||
|
6DB9C3763D02B1415CD9D565 /* Project object */ = {
|
||||||
|
isa = PBXProject;
|
||||||
|
attributes = {
|
||||||
|
LastUpgradeCheck = 0510;
|
||||||
|
};
|
||||||
|
buildConfigurationList = DAC4C1AA5EDEA1C85E9CA5E6 /* Build configuration list for PBXProject "MetaEmoji" */;
|
||||||
|
compatibilityVersion = "Xcode 3.2";
|
||||||
|
developmentRegion = English;
|
||||||
|
hasScannedForEncodings = 1;
|
||||||
|
knownRegions = (
|
||||||
|
en,
|
||||||
|
);
|
||||||
|
mainGroup = E8C543AB96796ECAA2E65C57 /* MetaEmoji */;
|
||||||
|
productRefGroup = FE0A091FDBFB3E9C31B7A1BD /* Products */;
|
||||||
|
projectDirPath = "";
|
||||||
|
projectRoot = "";
|
||||||
|
targets = (
|
||||||
|
E4122523B1AB28431125160A /* MetaEmoji */,
|
||||||
|
D93715D85BD26B270C3CC80B /* Preprocess */,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
/* End PBXProject section */
|
||||||
|
|
||||||
|
/* Begin PBXShellScriptBuildPhase section */
|
||||||
|
7EF0942E79C014DCEC8976BC /* Qt Preprocessors */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
name = "Qt Preprocessors";
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "make -C . -f MetaEmoji.xcodeproj/qt_preprocess.mak";
|
||||||
|
};
|
||||||
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
F7E50F631C51CD5B5DC0BC43 /* Compile Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
83425F7776C9E52C29BE0E6F /* memain.cpp in Compile Sources */,
|
||||||
|
C5357D951917482510CE3E54 /* genemoji.cpp in Compile Sources */,
|
||||||
|
4B166C0FE4A3C31F5E3D05CE /* metaemoji_plugin_import.cpp in Compile Sources */,
|
||||||
|
C4F1177BDAACCF1E50ACCED9 /* moc_genemoji.cpp in Compile Sources */,
|
||||||
|
);
|
||||||
|
name = "Compile Sources";
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXSourcesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXTargetDependency section */
|
||||||
|
8F9AEC020DB94B2A3918B1FE /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
target = D93715D85BD26B270C3CC80B /* Preprocess */;
|
||||||
|
targetProxy = 0708466E1954218200B5AE3A /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
|
/* End PBXTargetDependency section */
|
||||||
|
|
||||||
|
/* Begin XCBuildConfiguration section */
|
||||||
|
339EE1B2CC4FC24589A0EA95 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)Emoji$(EFFECTIVE_PLATFORM_NAME)";
|
||||||
|
COPY_PHASE_STRIP = YES;
|
||||||
|
DYLIB_COMPATIBILITY_VERSION = 1.0;
|
||||||
|
DYLIB_CURRENT_VERSION = 1.0.0;
|
||||||
|
FRAMEWORK_SEARCH_PATHS = "";
|
||||||
|
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||||
|
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
HEADER_SEARCH_PATHS = (
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui,
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore,
|
||||||
|
../../Libraries/QtStatic/qtbase/include,
|
||||||
|
"/usr/local/Qt-5.3.0/include",
|
||||||
|
"/usr/local/Qt-5.3.0/include/QtGui",
|
||||||
|
"/usr/local/Qt-5.3.0/include/QtCore",
|
||||||
|
GeneratedFiles/Debug,
|
||||||
|
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers,
|
||||||
|
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/AGL.framework/Headers,
|
||||||
|
"/usr/local/Qt-5.3.0/mkspecs/macx-clang",
|
||||||
|
);
|
||||||
|
INFOPLIST_FILE = Emoji.plist;
|
||||||
|
INSTALL_DIR = ../Mac/ReleaseEmoji/;
|
||||||
|
LDPLUSPLUS = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++";
|
||||||
|
LIBRARY_SEARCH_PATHS = (
|
||||||
|
/System/Library/Frameworks/,
|
||||||
|
"/usr/local/Qt-5.3.0/lib",
|
||||||
|
"/usr/local/Qt-5.3.0/plugins/platforms",
|
||||||
|
"/usr/local/Qt-5.3.0/plugins/imageformats",
|
||||||
|
);
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||||
|
OBJROOT = ./../Mac/ReleaseIntermediateEmoji/;
|
||||||
|
OTHER_CFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
);
|
||||||
|
OTHER_CPLUSPLUSFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-std=c++11",
|
||||||
|
"-stdlib=libc++",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
);
|
||||||
|
OTHER_LDFLAGS = (
|
||||||
|
"-headerpad_max_install_names",
|
||||||
|
"-stdlib=libc++",
|
||||||
|
"-L/usr/local/Qt-5.3.0/lib",
|
||||||
|
"-L/usr/local/Qt-5.3.0/plugins/platforms",
|
||||||
|
"-lcups",
|
||||||
|
"-L/usr/local/Qt-5.3.0/plugins/imageformats",
|
||||||
|
"-lz",
|
||||||
|
"-lm",
|
||||||
|
);
|
||||||
|
PRODUCT_NAME = MetaEmoji;
|
||||||
|
QT_LIBRARY_SUFFIX = "";
|
||||||
|
SDKROOT = macosx;
|
||||||
|
SYMROOT = ./../Mac;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
3AA6C32AC930069E80220CF1 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)Emoji$(EFFECTIVE_PLATFORM_NAME)";
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
|
DYLIB_COMPATIBILITY_VERSION = 1.0;
|
||||||
|
DYLIB_CURRENT_VERSION = 1.0.0;
|
||||||
|
FRAMEWORK_SEARCH_PATHS = "";
|
||||||
|
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
HEADER_SEARCH_PATHS = (
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui,
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore,
|
||||||
|
../../Libraries/QtStatic/qtbase/include,
|
||||||
|
"/usr/local/Qt-5.3.0/include",
|
||||||
|
"/usr/local/Qt-5.3.0/include/QtGui",
|
||||||
|
"/usr/local/Qt-5.3.0/include/QtCore",
|
||||||
|
GeneratedFiles/Debug,
|
||||||
|
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers,
|
||||||
|
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/AGL.framework/Headers,
|
||||||
|
"/usr/local/Qt-5.3.0/mkspecs/macx-clang",
|
||||||
|
);
|
||||||
|
INFOPLIST_FILE = Emoji.plist;
|
||||||
|
INSTALL_DIR = ../Mac/DebugEmoji/;
|
||||||
|
LDPLUSPLUS = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++";
|
||||||
|
LIBRARY_SEARCH_PATHS = (
|
||||||
|
/System/Library/Frameworks/,
|
||||||
|
"/usr/local/Qt-5.3.0/lib",
|
||||||
|
"/usr/local/Qt-5.3.0/plugins/platforms",
|
||||||
|
"/usr/local/Qt-5.3.0/plugins/imageformats",
|
||||||
|
);
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||||
|
OBJROOT = ./../Mac/DebugIntermediateEmoji/;
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
|
OTHER_CFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
);
|
||||||
|
OTHER_CPLUSPLUSFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-std=c++11",
|
||||||
|
"-stdlib=libc++",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
);
|
||||||
|
OTHER_LDFLAGS = (
|
||||||
|
"-headerpad_max_install_names",
|
||||||
|
"-stdlib=libc++",
|
||||||
|
"-L/usr/local/Qt-5.3.0/lib",
|
||||||
|
"-L/usr/local/Qt-5.3.0/plugins/platforms",
|
||||||
|
"-lcups",
|
||||||
|
"-L/usr/local/Qt-5.3.0/plugins/imageformats",
|
||||||
|
"-lz",
|
||||||
|
"-lm",
|
||||||
|
);
|
||||||
|
PRODUCT_NAME = MetaEmoji;
|
||||||
|
QT_LIBRARY_SUFFIX = _debug;
|
||||||
|
SDKROOT = macosx;
|
||||||
|
SYMROOT = ./../Mac;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
6666AA5E688052234F6758D8 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
COPY_PHASE_STRIP = YES;
|
||||||
|
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||||
|
PRODUCT_NAME = MetaEmoji;
|
||||||
|
QT_LIBRARY_SUFFIX = "";
|
||||||
|
SDKROOT = macosx;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
77418F46922677BB04ED38DD /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
|
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
PRODUCT_NAME = MetaEmoji;
|
||||||
|
QT_LIBRARY_SUFFIX = _debug;
|
||||||
|
SDKROOT = macosx;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
/* End XCBuildConfiguration section */
|
||||||
|
|
||||||
|
/* Begin XCConfigurationList section */
|
||||||
|
6CC3B5D2136C7CD6A5CF5A59 /* Build configuration list for PBXNativeTarget "MetaEmoji" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
77418F46922677BB04ED38DD /* Debug */,
|
||||||
|
6666AA5E688052234F6758D8 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Debug;
|
||||||
|
};
|
||||||
|
DAC4C1AA5EDEA1C85E9CA5E6 /* Build configuration list for PBXProject "MetaEmoji" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
3AA6C32AC930069E80220CF1 /* Debug */,
|
||||||
|
339EE1B2CC4FC24589A0EA95 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Debug;
|
||||||
|
};
|
||||||
|
/* End XCConfigurationList section */
|
||||||
|
};
|
||||||
|
rootObject = 6DB9C3763D02B1415CD9D565 /* Project object */;
|
||||||
|
}
|
345
Telegram/MetaEmoji.xcodeproj/qt_makeqmake.mak
Normal file
345
Telegram/MetaEmoji.xcodeproj/qt_makeqmake.mak
Normal file
|
@ -0,0 +1,345 @@
|
||||||
|
#############################################################################
|
||||||
|
# Makefile for building: ../Mac/DebugEmoji/MetaEmoji.app/Contents/MacOS/MetaEmoji
|
||||||
|
# Generated by qmake (3.0) (Qt 5.3.0)
|
||||||
|
# Project: MetaEmoji.pro
|
||||||
|
# Template: app
|
||||||
|
# Command: /usr/local/Qt-5.3.0/bin/qmake -spec macx-xcode -o MetaEmoji.xcodeproj/project.pbxproj MetaEmoji.pro
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
MAKEFILE = project.pbxproj
|
||||||
|
|
||||||
|
QMAKE = /usr/local/Qt-5.3.0/bin/qmake
|
||||||
|
MetaEmoji.xcodeproj/project.pbxproj: MetaEmoji.pro /usr/local/Qt-5.3.0/mkspecs/macx-clang/qmake.conf /usr/local/Qt-5.3.0/mkspecs/features/spec_pre.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/qdevice.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/device_config.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/common/shell-unix.conf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/common/unix.conf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/common/mac.conf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/common/macx.conf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/common/gcc-base.conf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/common/gcc-base-mac.conf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/common/clang.conf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/common/clang-mac.conf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/qconfig.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bootstrap_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_clucene_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designercomponents_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_platformsupport_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmldevtools_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickparticles_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns_private.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_cocoaprintersupport.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfcamera.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfmediaplayer.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcocoa.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcorewlanbearer.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdds.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdeclarativeview.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qgenericbearer.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qicns.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qico.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qjp2.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qminimal.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_inspector.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_qtquick2.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmng.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qoffscreen.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qqt7engine.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsqlite.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvg.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvgicon.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblequick.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblewidgets.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtiff.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_dummy.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_generic.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwbmp.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwebp.pri \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/qt_functions.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/qt_config.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/macx-clang/qmake.conf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/macx-xcode/qmake.conf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/spec_post.prf \
|
||||||
|
.qmake.stash \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/exclusive_builds.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/default_pre.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/mac/default_pre.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/resolve_config.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/default_post.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/mac/sdk.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/mac/default_post.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/c++11.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/mac/objective_c.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/warn_on.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/qt.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/resources.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/moc.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/unix/opengl.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/unix/thread.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/mac/rez.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/testcase_targets.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/exceptions.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/yacc.prf \
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/lex.prf \
|
||||||
|
MetaEmoji.pro \
|
||||||
|
/usr/local/Qt-5.3.0/lib/libQt5Gui_debug.prl \
|
||||||
|
/usr/local/Qt-5.3.0/lib/libQt5Core_debug.prl \
|
||||||
|
/usr/local/Qt-5.3.0/lib/libqtharfbuzzng_debug.prl \
|
||||||
|
/usr/local/Qt-5.3.0/plugins/platforms/libqcocoa_debug.prl \
|
||||||
|
/usr/local/Qt-5.3.0/lib/libQt5PrintSupport_debug.prl \
|
||||||
|
/usr/local/Qt-5.3.0/lib/libQt5Widgets_debug.prl \
|
||||||
|
/usr/local/Qt-5.3.0/lib/libQt5PlatformSupport_debug.prl \
|
||||||
|
/usr/local/Qt-5.3.0/plugins/imageformats/libqdds_debug.prl \
|
||||||
|
/usr/local/Qt-5.3.0/plugins/imageformats/libqicns_debug.prl \
|
||||||
|
/usr/local/Qt-5.3.0/plugins/imageformats/libqico_debug.prl \
|
||||||
|
/usr/local/Qt-5.3.0/plugins/imageformats/libqjp2_debug.prl \
|
||||||
|
/usr/local/Qt-5.3.0/plugins/imageformats/libqmng_debug.prl \
|
||||||
|
/usr/local/Qt-5.3.0/plugins/imageformats/libqtga_debug.prl \
|
||||||
|
/usr/local/Qt-5.3.0/plugins/imageformats/libqtiff_debug.prl \
|
||||||
|
/usr/local/Qt-5.3.0/plugins/imageformats/libqwbmp_debug.prl \
|
||||||
|
/usr/local/Qt-5.3.0/plugins/imageformats/libqwebp_debug.prl
|
||||||
|
$(QMAKE) -spec macx-xcode -o MetaEmoji.xcodeproj/project.pbxproj MetaEmoji.pro
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/spec_pre.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/qdevice.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/device_config.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/common/shell-unix.conf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/common/unix.conf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/common/mac.conf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/common/macx.conf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/common/gcc-base.conf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/common/gcc-base-mac.conf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/common/clang.conf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/common/clang-mac.conf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/qconfig.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bootstrap_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_clucene_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designercomponents_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_platformsupport_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmldevtools_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickparticles_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns_private.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_cocoaprintersupport.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfcamera.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfmediaplayer.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcocoa.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcorewlanbearer.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdds.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdeclarativeview.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qgenericbearer.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qicns.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qico.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qjp2.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qminimal.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_inspector.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_qtquick2.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmng.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qoffscreen.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qqt7engine.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsqlite.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvg.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvgicon.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblequick.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblewidgets.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtiff.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_dummy.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_generic.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwbmp.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwebp.pri:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/qt_functions.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/qt_config.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/macx-clang/qmake.conf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/macx-xcode/qmake.conf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/spec_post.prf:
|
||||||
|
.qmake.stash:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/exclusive_builds.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/default_pre.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/mac/default_pre.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/resolve_config.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/default_post.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/mac/sdk.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/mac/default_post.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/c++11.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/mac/objective_c.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/warn_on.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/qt.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/resources.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/moc.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/unix/opengl.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/unix/thread.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/mac/rez.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/testcase_targets.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/exceptions.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/yacc.prf:
|
||||||
|
/usr/local/Qt-5.3.0/mkspecs/features/lex.prf:
|
||||||
|
MetaEmoji.pro:
|
||||||
|
/usr/local/Qt-5.3.0/lib/libQt5Gui_debug.prl:
|
||||||
|
/usr/local/Qt-5.3.0/lib/libQt5Core_debug.prl:
|
||||||
|
/usr/local/Qt-5.3.0/lib/libqtharfbuzzng_debug.prl:
|
||||||
|
/usr/local/Qt-5.3.0/plugins/platforms/libqcocoa_debug.prl:
|
||||||
|
/usr/local/Qt-5.3.0/lib/libQt5PrintSupport_debug.prl:
|
||||||
|
/usr/local/Qt-5.3.0/lib/libQt5Widgets_debug.prl:
|
||||||
|
/usr/local/Qt-5.3.0/lib/libQt5PlatformSupport_debug.prl:
|
||||||
|
/usr/local/Qt-5.3.0/plugins/imageformats/libqdds_debug.prl:
|
||||||
|
/usr/local/Qt-5.3.0/plugins/imageformats/libqicns_debug.prl:
|
||||||
|
/usr/local/Qt-5.3.0/plugins/imageformats/libqico_debug.prl:
|
||||||
|
/usr/local/Qt-5.3.0/plugins/imageformats/libqjp2_debug.prl:
|
||||||
|
/usr/local/Qt-5.3.0/plugins/imageformats/libqmng_debug.prl:
|
||||||
|
/usr/local/Qt-5.3.0/plugins/imageformats/libqtga_debug.prl:
|
||||||
|
/usr/local/Qt-5.3.0/plugins/imageformats/libqtiff_debug.prl:
|
||||||
|
/usr/local/Qt-5.3.0/plugins/imageformats/libqwbmp_debug.prl:
|
||||||
|
/usr/local/Qt-5.3.0/plugins/imageformats/libqwebp_debug.prl:
|
||||||
|
qmake: FORCE
|
||||||
|
@$(QMAKE) -spec macx-xcode -o MetaEmoji.xcodeproj/project.pbxproj MetaEmoji.pro
|
||||||
|
|
||||||
|
qmake_all: FORCE
|
||||||
|
|
70
Telegram/MetaEmoji.xcodeproj/qt_preprocess.mak
Normal file
70
Telegram/MetaEmoji.xcodeproj/qt_preprocess.mak
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
#############################################################################
|
||||||
|
# Makefile for building: ../Mac/DebugEmoji/MetaEmoji.app/Contents/MacOS/MetaEmoji
|
||||||
|
# Generated by qmake (3.0) (Qt 5.3.0)
|
||||||
|
# Project: MetaEmoji.pro
|
||||||
|
# Template: app
|
||||||
|
# Command: /usr/local/Qt-5.3.0/bin/qmake -spec macx-xcode -o MetaEmoji.xcodeproj/project.pbxproj MetaEmoji.pro
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
MAKEFILE = project.pbxproj
|
||||||
|
|
||||||
|
MOC = /usr/local/Qt-5.3.0/bin/moc
|
||||||
|
UIC =
|
||||||
|
LEX = flex
|
||||||
|
LEXFLAGS =
|
||||||
|
YACC = yacc
|
||||||
|
YACCFLAGS = -d
|
||||||
|
DEFINES = -D_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB
|
||||||
|
INCPATH = -I/usr/local/Qt-5.3.0/mkspecs/macx-clang -I. -I../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui -I../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore -I../../Libraries/QtStatic/qtbase/include -I/usr/local/Qt-5.3.0/include -I/usr/local/Qt-5.3.0/include/QtGui -I/usr/local/Qt-5.3.0/include/QtCore -IGeneratedFiles/Debug -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/AGL.framework/Headers
|
||||||
|
DEL_FILE = rm -f
|
||||||
|
MOVE = mv -f
|
||||||
|
|
||||||
|
IMAGES =
|
||||||
|
PARSERS =
|
||||||
|
preprocess: $(PARSERS) compilers
|
||||||
|
clean preprocess_clean: parser_clean compiler_clean
|
||||||
|
|
||||||
|
parser_clean:
|
||||||
|
mocclean: compiler_moc_header_clean compiler_moc_source_clean
|
||||||
|
|
||||||
|
mocables: compiler_moc_header_make_all compiler_moc_source_make_all
|
||||||
|
|
||||||
|
check: first
|
||||||
|
|
||||||
|
compilers: GeneratedFiles/Debug/moc_genemoji.cpp
|
||||||
|
compiler_objective_c_make_all:
|
||||||
|
compiler_objective_c_clean:
|
||||||
|
compiler_rcc_make_all:
|
||||||
|
compiler_rcc_clean:
|
||||||
|
compiler_moc_header_make_all: GeneratedFiles/Debug/moc_genemoji.cpp
|
||||||
|
compiler_moc_header_clean:
|
||||||
|
-$(DEL_FILE) GeneratedFiles/Debug/moc_genemoji.cpp
|
||||||
|
GeneratedFiles/Debug/moc_genemoji.cpp: ../../Libraries/QtStatic/qtbase/include/QtCore/QMap \
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtCore/QVector \
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtCore/QFile \
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtCore/QFileInfo \
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtCore/QBuffer \
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtCore/QDir \
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtCore/QRegularExpression \
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtGui/QImage \
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtGui/QPixmap \
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtGui/QPainter \
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtCore/QTextStream \
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtCore/QString \
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtCore/QCoreApplication \
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtGui/QGuiApplication \
|
||||||
|
SourceFiles/_other/genemoji.h
|
||||||
|
/usr/local/Qt-5.3.0/bin/moc $(DEFINES) -D__APPLE__ -D__GNUC__=4 -I/usr/local/Qt-5.3.0/mkspecs/macx-clang -I. -I/usr/local/Qt-5.3.0/include/QtGui/5.3.0/QtGui -I/usr/local/Qt-5.3.0/include/QtCore/5.3.0/QtCore -I/usr/local/Qt-5.3.0/include -I/usr/local/Qt-5.3.0/include/QtGui -I/usr/local/Qt-5.3.0/include/QtCore -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1/backward -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/5.1/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include SourceFiles/_other/genemoji.h -o GeneratedFiles/Debug/moc_genemoji.cpp
|
||||||
|
|
||||||
|
compiler_moc_source_make_all:
|
||||||
|
compiler_moc_source_clean:
|
||||||
|
compiler_rez_source_make_all:
|
||||||
|
compiler_rez_source_clean:
|
||||||
|
compiler_yacc_decl_make_all:
|
||||||
|
compiler_yacc_decl_clean:
|
||||||
|
compiler_yacc_impl_make_all:
|
||||||
|
compiler_yacc_impl_clean:
|
||||||
|
compiler_lex_make_all:
|
||||||
|
compiler_lex_clean:
|
||||||
|
compiler_clean: compiler_moc_header_clean
|
||||||
|
|
|
@ -599,6 +599,7 @@
|
||||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
CLANG_WARN_INT_CONVERSION = YES;
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)Lang$(EFFECTIVE_PLATFORM_NAME)";
|
||||||
COPY_PHASE_STRIP = YES;
|
COPY_PHASE_STRIP = YES;
|
||||||
DYLIB_COMPATIBILITY_VERSION = 1.0;
|
DYLIB_COMPATIBILITY_VERSION = 1.0;
|
||||||
DYLIB_CURRENT_VERSION = 1.0.0;
|
DYLIB_CURRENT_VERSION = 1.0.0;
|
||||||
|
@ -633,7 +634,7 @@
|
||||||
"/usr/local/Qt-5.3.0/plugins/imageformats",
|
"/usr/local/Qt-5.3.0/plugins/imageformats",
|
||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||||
OBJROOT = ../Mac/DebugIntermediateLang/;
|
OBJROOT = ./../Mac/ReleaseIntermediateLang;
|
||||||
OTHER_CFLAGS = (
|
OTHER_CFLAGS = (
|
||||||
"-pipe",
|
"-pipe",
|
||||||
"-g",
|
"-g",
|
||||||
|
@ -669,7 +670,7 @@
|
||||||
PRODUCT_NAME = MetaLang;
|
PRODUCT_NAME = MetaLang;
|
||||||
QT_LIBRARY_SUFFIX = "";
|
QT_LIBRARY_SUFFIX = "";
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
SYMROOT = ../Mac/ReleaseLang;
|
SYMROOT = ./../Mac;
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
};
|
};
|
||||||
|
@ -683,6 +684,7 @@
|
||||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
CLANG_WARN_INT_CONVERSION = YES;
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)Lang$(EFFECTIVE_PLATFORM_NAME)";
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
DYLIB_COMPATIBILITY_VERSION = 1.0;
|
DYLIB_COMPATIBILITY_VERSION = 1.0;
|
||||||
|
@ -719,7 +721,7 @@
|
||||||
"/usr/local/Qt-5.3.0/plugins/imageformats",
|
"/usr/local/Qt-5.3.0/plugins/imageformats",
|
||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||||
OBJROOT = ../Mac/DebugIntermediateLang/;
|
OBJROOT = ./../Mac/DebugIntermediateLang;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
OTHER_CFLAGS = (
|
OTHER_CFLAGS = (
|
||||||
"-pipe",
|
"-pipe",
|
||||||
|
@ -756,7 +758,7 @@
|
||||||
PRODUCT_NAME = MetaLang;
|
PRODUCT_NAME = MetaLang;
|
||||||
QT_LIBRARY_SUFFIX = _debug;
|
QT_LIBRARY_SUFFIX = _debug;
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
SYMROOT = ../Mac/DebugLang;
|
SYMROOT = ./../Mac;
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
};
|
};
|
||||||
|
@ -764,7 +766,6 @@
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)Lang$(EFFECTIVE_PLATFORM_NAME)";
|
|
||||||
COPY_PHASE_STRIP = YES;
|
COPY_PHASE_STRIP = YES;
|
||||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||||
HEADER_SEARCH_PATHS = (
|
HEADER_SEARCH_PATHS = (
|
||||||
|
@ -779,11 +780,9 @@
|
||||||
"/usr/local/Qt-5.3.0/mkspecs/macx-clang",
|
"/usr/local/Qt-5.3.0/mkspecs/macx-clang",
|
||||||
);
|
);
|
||||||
INSTALL_DIR = ../Mac/ReleaseLang/;
|
INSTALL_DIR = ../Mac/ReleaseLang/;
|
||||||
OBJROOT = ../Mac/ReleaseIntermediateLang;
|
|
||||||
PRODUCT_NAME = MetaLang;
|
PRODUCT_NAME = MetaLang;
|
||||||
QT_LIBRARY_SUFFIX = "";
|
QT_LIBRARY_SUFFIX = "";
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
SYMROOT = ./../Mac;
|
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
};
|
};
|
||||||
|
@ -791,7 +790,6 @@
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
COMBINE_HIDPI_IMAGES = YES;
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)Lang$(EFFECTIVE_PLATFORM_NAME)";
|
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||||
|
@ -808,11 +806,9 @@
|
||||||
"/usr/local/Qt-5.3.0/mkspecs/macx-clang",
|
"/usr/local/Qt-5.3.0/mkspecs/macx-clang",
|
||||||
);
|
);
|
||||||
INSTALL_DIR = ../Mac/DebugLang/;
|
INSTALL_DIR = ../Mac/DebugLang/;
|
||||||
OBJROOT = ../Mac/DebugIntermediateLang;
|
|
||||||
PRODUCT_NAME = MetaLang;
|
PRODUCT_NAME = MetaLang;
|
||||||
QT_LIBRARY_SUFFIX = _debug;
|
QT_LIBRARY_SUFFIX = _debug;
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
SYMROOT = ./../Mac;
|
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
};
|
};
|
||||||
|
|
|
@ -519,6 +519,7 @@
|
||||||
6DB9C3763D02B1415CD9D565 /* Project object */ = {
|
6DB9C3763D02B1415CD9D565 /* Project object */ = {
|
||||||
isa = PBXProject;
|
isa = PBXProject;
|
||||||
attributes = {
|
attributes = {
|
||||||
|
LastUpgradeCheck = 0510;
|
||||||
};
|
};
|
||||||
buildConfigurationList = DAC4C1AA5EDEA1C85E9CA5E6 /* Build configuration list for PBXProject "MetaStyle" */;
|
buildConfigurationList = DAC4C1AA5EDEA1C85E9CA5E6 /* Build configuration list for PBXProject "MetaStyle" */;
|
||||||
compatibilityVersion = "Xcode 3.2";
|
compatibilityVersion = "Xcode 3.2";
|
||||||
|
@ -591,14 +592,26 @@
|
||||||
339EE1B2CC4FC24589A0EA95 /* Release */ = {
|
339EE1B2CC4FC24589A0EA95 /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ARCHS = x86_64;
|
|
||||||
CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang;
|
CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)Style$(EFFECTIVE_PLATFORM_NAME)";
|
||||||
COPY_PHASE_STRIP = YES;
|
COPY_PHASE_STRIP = YES;
|
||||||
DYLIB_COMPATIBILITY_VERSION = 1.0;
|
DYLIB_COMPATIBILITY_VERSION = 1.0;
|
||||||
DYLIB_CURRENT_VERSION = 1.0.0;
|
DYLIB_CURRENT_VERSION = 1.0.0;
|
||||||
FRAMEWORK_SEARCH_PATHS = "";
|
FRAMEWORK_SEARCH_PATHS = "";
|
||||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||||
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
HEADER_SEARCH_PATHS = (
|
HEADER_SEARCH_PATHS = (
|
||||||
../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui,
|
../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui,
|
||||||
../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore,
|
../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore,
|
||||||
|
@ -621,7 +634,7 @@
|
||||||
"/usr/local/Qt-5.3.0/plugins/imageformats",
|
"/usr/local/Qt-5.3.0/plugins/imageformats",
|
||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||||
OBJROOT = ../Mac/DebugIntermediateStyle/;
|
OBJROOT = ./../Mac/ReleaseIntermediateStyle;
|
||||||
OTHER_CFLAGS = (
|
OTHER_CFLAGS = (
|
||||||
"-pipe",
|
"-pipe",
|
||||||
"-g",
|
"-g",
|
||||||
|
@ -657,15 +670,21 @@
|
||||||
PRODUCT_NAME = MetaStyle;
|
PRODUCT_NAME = MetaStyle;
|
||||||
QT_LIBRARY_SUFFIX = "";
|
QT_LIBRARY_SUFFIX = "";
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
SYMROOT = ../Mac/ReleaseStyle;
|
SYMROOT = ./../Mac;
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
};
|
};
|
||||||
3AA6C32AC930069E80220CF1 /* Debug */ = {
|
3AA6C32AC930069E80220CF1 /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ARCHS = x86_64;
|
|
||||||
CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang;
|
CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)Style$(EFFECTIVE_PLATFORM_NAME)";
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
DYLIB_COMPATIBILITY_VERSION = 1.0;
|
DYLIB_COMPATIBILITY_VERSION = 1.0;
|
||||||
|
@ -674,6 +693,12 @@
|
||||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||||
GCC_OPTIMIZATION_LEVEL = 0;
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
HEADER_SEARCH_PATHS = (
|
HEADER_SEARCH_PATHS = (
|
||||||
../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui,
|
../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui,
|
||||||
../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore,
|
../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore,
|
||||||
|
@ -696,7 +721,8 @@
|
||||||
"/usr/local/Qt-5.3.0/plugins/imageformats",
|
"/usr/local/Qt-5.3.0/plugins/imageformats",
|
||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||||
OBJROOT = ../Mac/DebugIntermediateStyle/;
|
OBJROOT = ./../Mac/DebugIntermediateStyle;
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
OTHER_CFLAGS = (
|
OTHER_CFLAGS = (
|
||||||
"-pipe",
|
"-pipe",
|
||||||
"-g",
|
"-g",
|
||||||
|
@ -732,14 +758,14 @@
|
||||||
PRODUCT_NAME = MetaStyle;
|
PRODUCT_NAME = MetaStyle;
|
||||||
QT_LIBRARY_SUFFIX = _debug;
|
QT_LIBRARY_SUFFIX = _debug;
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
SYMROOT = ../Mac/DebugStyle;
|
SYMROOT = ./../Mac;
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
};
|
};
|
||||||
6666AA5E688052234F6758D8 /* Release */ = {
|
6666AA5E688052234F6758D8 /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)Style$(EFFECTIVE_PLATFORM_NAME)";
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
COPY_PHASE_STRIP = YES;
|
COPY_PHASE_STRIP = YES;
|
||||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||||
HEADER_SEARCH_PATHS = (
|
HEADER_SEARCH_PATHS = (
|
||||||
|
@ -754,18 +780,16 @@
|
||||||
"/usr/local/Qt-5.3.0/mkspecs/macx-clang",
|
"/usr/local/Qt-5.3.0/mkspecs/macx-clang",
|
||||||
);
|
);
|
||||||
INSTALL_DIR = ./../Mac/ReleaseStyle/;
|
INSTALL_DIR = ./../Mac/ReleaseStyle/;
|
||||||
OBJROOT = ./../Mac/ReleaseIntermediateStyle;
|
|
||||||
PRODUCT_NAME = MetaStyle;
|
PRODUCT_NAME = MetaStyle;
|
||||||
QT_LIBRARY_SUFFIX = "";
|
QT_LIBRARY_SUFFIX = "";
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
SYMROOT = ./../Mac;
|
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
};
|
};
|
||||||
77418F46922677BB04ED38DD /* Debug */ = {
|
77418F46922677BB04ED38DD /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)Style$(EFFECTIVE_PLATFORM_NAME)";
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||||
|
@ -782,11 +806,9 @@
|
||||||
"/usr/local/Qt-5.3.0/mkspecs/macx-clang",
|
"/usr/local/Qt-5.3.0/mkspecs/macx-clang",
|
||||||
);
|
);
|
||||||
INSTALL_DIR = ./../Mac/DebugStyle/;
|
INSTALL_DIR = ./../Mac/DebugStyle/;
|
||||||
OBJROOT = ./../Mac/DebugIntermediateStyle;
|
|
||||||
PRODUCT_NAME = MetaStyle;
|
PRODUCT_NAME = MetaStyle;
|
||||||
QT_LIBRARY_SUFFIX = _debug;
|
QT_LIBRARY_SUFFIX = _debug;
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
SYMROOT = ./../Mac;
|
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,21 +2,21 @@
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
<key>NSPrincipalClass</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>NSApplication</string>
|
<string>Packer</string>
|
||||||
|
<key>CFBundleGetInfoString</key>
|
||||||
|
<string>Update packer utility for tdesktop</string>
|
||||||
<key>CFBundleIconFile</key>
|
<key>CFBundleIconFile</key>
|
||||||
<string></string>
|
<string></string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>com.ddesktop.${PRODUCT_NAME:rfc1034identifier}</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleGetInfoString</key>
|
|
||||||
<string>Created by Qt/QMake</string>
|
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>MetaStyle</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>com.yourcompany.${PRODUCT_NAME:rfc1034identifier}</string>
|
|
||||||
<key>NOTE</key>
|
<key>NOTE</key>
|
||||||
<string>This file was generated by Qt/QMake.</string>
|
<string></string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string>NSApplication</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
32
Telegram/Packer.pro
Normal file
32
Telegram/Packer.pro
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
QT += core
|
||||||
|
|
||||||
|
CONFIG(debug, debug|release) {
|
||||||
|
DEFINES += _DEBUG
|
||||||
|
OBJECTS_DIR = ./../Mac/DebugIntermediatePacker
|
||||||
|
MOC_DIR = ./GeneratedFiles/Debug
|
||||||
|
DESTDIR = ./../Mac/DebugPacker
|
||||||
|
}
|
||||||
|
CONFIG(release, debug|release) {
|
||||||
|
OBJECTS_DIR = ./../Mac/ReleaseIntermediatePacker
|
||||||
|
MOC_DIR = ./GeneratedFiles/Release
|
||||||
|
DESTDIR = ./../Mac/ReleasePacker
|
||||||
|
}
|
||||||
|
|
||||||
|
macx {
|
||||||
|
QMAKE_INFO_PLIST = ./SourceFiles/_other/Packer.plist
|
||||||
|
QMAKE_LFLAGS += -framework Cocoa
|
||||||
|
}
|
||||||
|
|
||||||
|
SOURCES += \
|
||||||
|
./SourceFiles/_other/packer.cpp \
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
./SourceFiles/_other/packer.h \
|
||||||
|
|
||||||
|
INCLUDEPATH += ./../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui\
|
||||||
|
./../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore\
|
||||||
|
./../../Libraries/QtStatic/qtbase/include\
|
||||||
|
./../../Libraries/lzma/C
|
||||||
|
|
||||||
|
LIBS += -lcrypto -lssl -lz
|
||||||
|
|
823
Telegram/Packer.xcodeproj/project.pbxproj
Normal file
823
Telegram/Packer.xcodeproj/project.pbxproj
Normal file
|
@ -0,0 +1,823 @@
|
||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
archiveVersion = 1;
|
||||||
|
classes = {
|
||||||
|
};
|
||||||
|
objectVersion = 46;
|
||||||
|
objects = {
|
||||||
|
|
||||||
|
/* Begin PBXAggregateTarget section */
|
||||||
|
6E977D353048DB44129F752B /* Preprocess */ = {
|
||||||
|
isa = PBXAggregateTarget;
|
||||||
|
buildConfigurationList = 6CC3B5D2136C7CD6A5CF5A59 /* Build configuration list for PBXNativeTarget "Packer" */;
|
||||||
|
buildPhases = (
|
||||||
|
7EF0942E79C014DCEC8976BC /* Qt Preprocessors */,
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
);
|
||||||
|
name = Preprocess;
|
||||||
|
productName = "Qt Preprocess";
|
||||||
|
};
|
||||||
|
/* End PBXAggregateTarget section */
|
||||||
|
|
||||||
|
/* Begin PBXBuildFile section */
|
||||||
|
1A681B886F50EE30FBE62B4B /* Qt5PrintSupport in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = DBF506D10449BFABD45B82DA /* Qt5PrintSupport */; };
|
||||||
|
1BB705CDB741E2B7450201A5 /* Cocoa.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = AEA456A2F75ED9F5CDA7BCBE /* Cocoa.framework */; };
|
||||||
|
328FD74542F6E2C873EE4D4B /* ApplicationServices.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = DFD7912080BC557230093752 /* ApplicationServices.framework */; };
|
||||||
|
496FD9CEEB508016AFB9F928 /* qico in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 8F500B5166907B6D9A7C3E3D /* qico */; };
|
||||||
|
52B661A713AE959F9084E291 /* packer_plugin_import.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = CB20BF73330AAF80B8BC8907 /* packer_plugin_import.cpp */; settings = {ATTRIBUTES = (); }; };
|
||||||
|
59789101736112A570B8EFE6 /* qjp2 in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = F0681BC551FC8A2B132FC646 /* qjp2 */; };
|
||||||
|
668DDDA0C55405E7FCFD6CA5 /* CoreServices.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 9742F24EE18EA44D52824F1E /* CoreServices.framework */; };
|
||||||
|
7CA5405B8503BFFC60932D2B /* qicns in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 31120EDB269DFF13E1D49847 /* qicns */; };
|
||||||
|
7F76437B577F737145996DC3 /* qtga in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = DCEFD9167C239650120B0145 /* qtga */; };
|
||||||
|
8771A8C96E9C391044035D99 /* OpenGL.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D4B32C2222F82AC56BADEB21 /* OpenGL.framework */; };
|
||||||
|
8D267F2E4776F0ECA2F49DC8 /* IOKit.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = A1A67BEAA744704B29168D39 /* IOKit.framework */; };
|
||||||
|
8D33FE22B9BBADC7FA46C15B /* qtharfbuzzng in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D6193B79CECC9DD0142D1200 /* qtharfbuzzng */; };
|
||||||
|
9F33AC0693BC81B27D8F518D /* Qt5Gui in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 04391BE7A8B9D811E255100A /* Qt5Gui */; };
|
||||||
|
A3F8F2284013928A02AE5C38 /* qwbmp in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 8CF51323544B886B8F4A2232 /* qwbmp */; };
|
||||||
|
A9563D9C9FD0D76FAAF1CA96 /* qdds in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D3D1BE0BEA3AEE0551AD39AC /* qdds */; };
|
||||||
|
B9ADD90C014EA3FBE351DF03 /* Qt5Core in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 5A80A1907B6CFFB524C1E57D /* Qt5Core */; };
|
||||||
|
BE6AB9DF1C4880624131C669 /* Qt5Widgets in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 4689C06178B60B84E7F3A3B7 /* Qt5Widgets */; };
|
||||||
|
C06DDE378A7AC1FA9E6FF69A /* qtiff in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = F2453BA07315EB9F34F1CD57 /* qtiff */; };
|
||||||
|
D1FA8AF31837B51C762A9D4D /* qcocoa in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = D53D8E6A188E05078A114294 /* qcocoa */; };
|
||||||
|
D22929A2B8C5281567FCACDC /* Qt5PlatformSupport in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = E7B2F248E3F7970788F35BF5 /* Qt5PlatformSupport */; };
|
||||||
|
E45E51A644D5FC9F942ECE55 /* AGL.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 8D9815BDB5BD9F90D2BC05C5 /* AGL.framework */; };
|
||||||
|
EAA05789DF6EBAD24D3EFF96 /* packer.cpp in Compile Sources */ = {isa = PBXBuildFile; fileRef = E3790AE49DBDB3F5EFA42FE1 /* packer.cpp */; settings = {ATTRIBUTES = (); }; };
|
||||||
|
F26454630C80841CBDCFE1CA /* Foundation.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = FCC237CA5AD60B9BA4447615 /* Foundation.framework */; };
|
||||||
|
F4D3747C3A03B25EDC9057BB /* qwebp in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = ADC6308023253CEA51F86E21 /* qwebp */; };
|
||||||
|
F8B465CE34D8DF87AAE95913 /* CoreFoundation.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 4D765E1B1EA6C757220C63E7 /* CoreFoundation.framework */; };
|
||||||
|
F8ED42CF8679BF83227DAFC4 /* Carbon.framework in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 9DFF62A901D70814B8A323D4 /* Carbon.framework */; };
|
||||||
|
FBD56E2AC34F76BFFDB68619 /* qmng in Link Binary With Libraries */ = {isa = PBXBuildFile; fileRef = 83D37373949868693FB7816D /* qmng */; };
|
||||||
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
|
/* Begin PBXContainerItemProxy section */
|
||||||
|
072AB35C1955F39D00328D9B /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 6DB9C3763D02B1415CD9D565 /* Project object */;
|
||||||
|
proxyType = 1;
|
||||||
|
remoteGlobalIDString = 6E977D353048DB44129F752B;
|
||||||
|
remoteInfo = "Qt Preprocess";
|
||||||
|
};
|
||||||
|
/* End PBXContainerItemProxy section */
|
||||||
|
|
||||||
|
/* Begin PBXFileReference section */
|
||||||
|
04391BE7A8B9D811E255100A /* Qt5Gui */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5Gui; path = "/usr/local/Qt-5.3.0/lib/libQt5Gui$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
060A694B42A4555240009936 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri"; sourceTree = "<absolute>"; };
|
||||||
|
075EB50EB07CF69FD62FB8DF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
0ABCEA8D0DD45589040B0AF2 /* /usr/local/Qt-5.3.0/mkspecs/common/unix.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/unix.conf"; sourceTree = "<absolute>"; };
|
||||||
|
111BBEE3D1432C3B517FD539 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdds.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdds.pri"; sourceTree = "<absolute>"; };
|
||||||
|
16DD53E17C65AC8B450CC6C3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick.pri"; sourceTree = "<absolute>"; };
|
||||||
|
1FAE75C970AA73F2DEDDB508 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfcamera.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfcamera.pri"; sourceTree = "<absolute>"; };
|
||||||
|
23BC8B0FC3279421D41CA268 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui.pri"; sourceTree = "<absolute>"; };
|
||||||
|
2440CD1D4CEF80443BCA1B8B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qgenericbearer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qgenericbearer.pri"; sourceTree = "<absolute>"; };
|
||||||
|
247D8DF3B1DDB665B80BBA25 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblequick.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblequick.pri"; sourceTree = "<absolute>"; };
|
||||||
|
24B6929EE3952310F2DAECB1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri"; sourceTree = "<absolute>"; };
|
||||||
|
28BD0D10214709D95B161E24 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets.pri"; sourceTree = "<absolute>"; };
|
||||||
|
293C8DEEE270847AC20E70F9 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network.pri"; sourceTree = "<absolute>"; };
|
||||||
|
2E48BB382B895A5ACD79AF9F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
2E6D9B1D2743D24E31B0B284 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns.pri"; sourceTree = "<absolute>"; };
|
||||||
|
311004331A04F3D69C98643C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
31120EDB269DFF13E1D49847 /* qicns */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qicns; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqicns$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
33F165B1DB8CBF182C56FAB5 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
346287C9E754E7C458153F03 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwbmp.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwbmp.pri"; sourceTree = "<absolute>"; };
|
||||||
|
360D4B3ED25D126430DE27D4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio.pri"; sourceTree = "<absolute>"; };
|
||||||
|
3685604BDB64DD6E92169B73 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdeclarativeview.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdeclarativeview.pri"; sourceTree = "<absolute>"; };
|
||||||
|
382E89A91A34F7898C25FD0D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
3F08D430CEC8D2117735CCB4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri"; sourceTree = "<absolute>"; };
|
||||||
|
45B95DB3B70B47A910FC847B /* /usr/local/Qt-5.3.0/mkspecs/common/gcc-base.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/gcc-base.conf"; sourceTree = "<absolute>"; };
|
||||||
|
45DB132B756499D4DF38430E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qjp2.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qjp2.pri"; sourceTree = "<absolute>"; };
|
||||||
|
4689C06178B60B84E7F3A3B7 /* Qt5Widgets */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5Widgets; path = "/usr/local/Qt-5.3.0/lib/libQt5Widgets$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
4C6C71914B1926119120DACD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
4D765E1B1EA6C757220C63E7 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
|
||||||
|
4FB6657DA22BC68B819B64B3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmldevtools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmldevtools_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
5520A59148EC5EC44EF0D3CD /* Packer.pro */ = {isa = PBXFileReference; lastKnownFileType = text; path = Packer.pro; sourceTree = "<absolute>"; };
|
||||||
|
5597304BEC94BFB9EAAEBC4B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
5A80A1907B6CFFB524C1E57D /* Qt5Core */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5Core; path = "/usr/local/Qt-5.3.0/lib/libQt5Core$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
5AA25EFD83BC060B26945285 /* packer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = packer.h; path = SourceFiles/_other/packer.h; sourceTree = "<absolute>"; };
|
||||||
|
5B22E9E4EE9AAE42ABC24AB3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
5CEA7A2DB2136425A88D1254 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl.pri"; sourceTree = "<absolute>"; };
|
||||||
|
5F781C7FD8422D359EA1D2FE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
6102C69805B6398AF6FA5BEB /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
63E722139886C87BC82DBDF5 /* /usr/local/Qt-5.3.0/mkspecs/macx-clang/qmake.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/macx-clang/qmake.conf"; sourceTree = "<absolute>"; };
|
||||||
|
669FB007C4A3D58424D85EC8 /* /usr/local/Qt-5.3.0/mkspecs/common/shell-unix.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/shell-unix.conf"; sourceTree = "<absolute>"; };
|
||||||
|
69347C39E4D922E94D0860BF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designercomponents_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designercomponents_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
6C08BFC27C4C303A3A5181DB /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport.pri"; sourceTree = "<absolute>"; };
|
||||||
|
6E67D23B15FC4B628DB2E0B2 /* /usr/local/Qt-5.3.0/mkspecs/qdevice.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/qdevice.pri"; sourceTree = "<absolute>"; };
|
||||||
|
74C1C232DFAA71028A0412CA /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri"; sourceTree = "<absolute>"; };
|
||||||
|
77FF486B1F9BCD55A8A3F35D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent.pri"; sourceTree = "<absolute>"; };
|
||||||
|
7A94C7168B3FCBE5F04A013B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative.pri"; sourceTree = "<absolute>"; };
|
||||||
|
7C2F42B222EE88E26A6FED62 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
7D28E9003CE64D8A7F2E292E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
7DE30A90667C03C4F91A2A91 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql.pri"; sourceTree = "<absolute>"; };
|
||||||
|
7ECCC1F9442988B4F2707CC1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core.pri"; sourceTree = "<absolute>"; };
|
||||||
|
817A0F5A41B553A6DE67FDEB /* /usr/local/Qt-5.3.0/mkspecs/common/macx.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/macx.conf"; sourceTree = "<absolute>"; };
|
||||||
|
82E7DCFD95559532D8FC6CDD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickparticles_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickparticles_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
83D37373949868693FB7816D /* qmng */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qmng; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqmng$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
85061B1DA49D125991117950 /* /usr/local/Qt-5.3.0/mkspecs/macx-xcode/qmake.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/macx-xcode/qmake.conf"; sourceTree = "<absolute>"; };
|
||||||
|
85B6936EDBE61D9BB8F8B33B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors.pri"; sourceTree = "<absolute>"; };
|
||||||
|
87A4C1983FD641360BF80A02 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblewidgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblewidgets.pri"; sourceTree = "<absolute>"; };
|
||||||
|
87EEF25EE25CF21572D1438C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8849E60AEC7DB97A475C17EA /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
892D36BEF797BA4AF48D378A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_dummy.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_dummy.pri"; sourceTree = "<absolute>"; };
|
||||||
|
89863CCAF1D29037AE95755D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8A04A4A3625204D12A1207F6 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8B4BB4E74F8A4442EF563D7D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8C31D89BDFCDF466DAED19A0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8C5164D4E37556D40C5E6AA2 /* /usr/local/Qt-5.3.0/mkspecs/common/clang.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/clang.conf"; sourceTree = "<absolute>"; };
|
||||||
|
8CF51323544B886B8F4A2232 /* qwbmp */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qwbmp; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqwbmp$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
8D9815BDB5BD9F90D2BC05C5 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; };
|
||||||
|
8DDE1D26B3206CDB8B57FABE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8E9136256AFFBA6EF048AA55 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8F500B5166907B6D9A7C3E3D /* qico */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qico; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqico$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
8F572030CE9AB8CC5F672201 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_platformsupport_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_platformsupport_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
8F97C9CAE38CA3AFAC0B3953 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets.pri"; sourceTree = "<absolute>"; };
|
||||||
|
946BEA667170DC1A7A8F9DB0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmng.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmng.pri"; sourceTree = "<absolute>"; };
|
||||||
|
9742F24EE18EA44D52824F1E /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
|
||||||
|
9A0BDF67E013BB4FFB8685B0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qqt7engine.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qqt7engine.pri"; sourceTree = "<absolute>"; };
|
||||||
|
9DFF62A901D70814B8A323D4 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
|
||||||
|
A022AF919D1977534CA66BB8 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets.pri"; sourceTree = "<absolute>"; };
|
||||||
|
A1A67BEAA744704B29168D39 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
|
||||||
|
A4D8AC60897F435C1C3B9D02 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_generic.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_generic.pri"; sourceTree = "<absolute>"; };
|
||||||
|
A5588D4B50885E2A9CAA5505 /* Packer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Packer.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
A59F74CD76FDC2B4B9910E18 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
A5B17ABEFBA1C2F43443D644 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras.pri"; sourceTree = "<absolute>"; };
|
||||||
|
A9E30FA27827990C5F182223 /* /usr/local/Qt-5.3.0/mkspecs/common/gcc-base-mac.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/gcc-base-mac.conf"; sourceTree = "<absolute>"; };
|
||||||
|
AA73DC3C2901E2979FE8AD5B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml.pri"; sourceTree = "<absolute>"; };
|
||||||
|
AB1C02DDBD8E88DD9A9AFDDD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri"; sourceTree = "<absolute>"; };
|
||||||
|
AB745978DF0F41D1801ABDA6 /* .qmake.stash */ = {isa = PBXFileReference; lastKnownFileType = file; path = .qmake.stash; sourceTree = "<absolute>"; };
|
||||||
|
ABA9AB4619F09DCFD2D4A27F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
ACC8A73268E5D9AF64E97AF4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth.pri"; sourceTree = "<absolute>"; };
|
||||||
|
ADC6308023253CEA51F86E21 /* qwebp */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qwebp; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqwebp$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
ADFC79902C14A612AE93A89A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg.pri"; sourceTree = "<absolute>"; };
|
||||||
|
AEA456A2F75ED9F5CDA7BCBE /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
||||||
|
AFD721AA33A2F785E77B1698 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcocoa.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcocoa.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B064BF3B496A7BF7A449CA1E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsqlite.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsqlite.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B2246267D4C0D789259A86B0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B26239063A068F800A2C95F4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwebp.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwebp.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B382B645B34234E451AE5D94 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B518DA4EE7376002AFC71FD5 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B51B01657BFE9EAEF5590561 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B678DA730B4ECE863AD631AE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qminimal.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qminimal.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B8525798C5AA7D7C6D68E1B3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_qtquick2.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_qtquick2.pri"; sourceTree = "<absolute>"; };
|
||||||
|
B8C1F6C965A7A14FBA8D4518 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri"; sourceTree = "<absolute>"; };
|
||||||
|
BD22EFEFCC02644B1883CE19 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtiff.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtiff.pri"; sourceTree = "<absolute>"; };
|
||||||
|
BD4D97801B547471B37A4CDC /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bootstrap_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bootstrap_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
BDC9ECADEE40D11E3C2EA93F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
BFF0C38FB0EC140C5F0304AE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport.pri"; sourceTree = "<absolute>"; };
|
||||||
|
C4295BE59CCEBCDD16268349 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qico.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qico.pri"; sourceTree = "<absolute>"; };
|
||||||
|
C505A18319B9B63C63877858 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
C84546C18DCBB04166195DCF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri"; sourceTree = "<absolute>"; };
|
||||||
|
CB20BF73330AAF80B8BC8907 /* packer_plugin_import.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = packer_plugin_import.cpp; sourceTree = "<absolute>"; };
|
||||||
|
CCF75CFFB857487FB18F99F9 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qoffscreen.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qoffscreen.pri"; sourceTree = "<absolute>"; };
|
||||||
|
CE829DD126DD2B97E8D70A7A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools.pri"; sourceTree = "<absolute>"; };
|
||||||
|
CF86CD5BB01B9011E6B6FD3E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_clucene_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_clucene_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
CFCB992BEC24B71BFB8A2F30 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script.pri"; sourceTree = "<absolute>"; };
|
||||||
|
CFFBE05DB004895080314289 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvgicon.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvgicon.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D0CDC87DAFDA7F18A7AF450F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D1FA7CAB5ACC09D563AE569F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D2FE4D909926A0D1656068C4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D3D1BE0BEA3AEE0551AD39AC /* qdds */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qdds; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqdds$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
D4B32C2222F82AC56BADEB21 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
|
||||||
|
D4DE537C1FBBD48BD989FAD1 /* /usr/local/Qt-5.3.0/mkspecs/qconfig.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/qconfig.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D5141F795670589C8CC41CBC /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_cocoaprintersupport.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_cocoaprintersupport.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D53D8E6A188E05078A114294 /* qcocoa */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qcocoa; path = "/usr/local/Qt-5.3.0/plugins/platforms/libqcocoa$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
D6193B79CECC9DD0142D1200 /* qtharfbuzzng */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qtharfbuzzng; path = "/usr/local/Qt-5.3.0/lib/libqtharfbuzzng$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
D7A0618DE39A427EBF41940E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D81E3D9A18202BE8EC3D0E2C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
D948D4D8F949D45158F8DE35 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets.pri"; sourceTree = "<absolute>"; };
|
||||||
|
DB0A26DDC377B2004F61BFE3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib.pri"; sourceTree = "<absolute>"; };
|
||||||
|
DBF506D10449BFABD45B82DA /* Qt5PrintSupport */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5PrintSupport; path = "/usr/local/Qt-5.3.0/lib/libQt5PrintSupport$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
DCEFD9167C239650120B0145 /* qtga */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qtga; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqtga$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
DF8188E30892A4654B984221 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest.pri"; sourceTree = "<absolute>"; };
|
||||||
|
DFD7912080BC557230093752 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = "<absolute>"; };
|
||||||
|
E0F4563EA350EB65112A0EF4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
E37365B4489B4918BEBB707D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
E3790AE49DBDB3F5EFA42FE1 /* packer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = packer.cpp; path = SourceFiles/_other/packer.cpp; sourceTree = "<absolute>"; };
|
||||||
|
E432DA897A5F027987342E8F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions.pri"; sourceTree = "<absolute>"; };
|
||||||
|
E50FA73B8A23BC179A642B27 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools.pri"; sourceTree = "<absolute>"; };
|
||||||
|
E66B9EC81C285CA9A7FB6A2E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
E7B2F248E3F7970788F35BF5 /* Qt5PlatformSupport */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = Qt5PlatformSupport; path = "/usr/local/Qt-5.3.0/lib/libQt5PlatformSupport$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
E7D67CB158408BB7DEA74764 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
EA5D4FF9DE4AC4215D7DCE0D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcorewlanbearer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcorewlanbearer.pri"; sourceTree = "<absolute>"; };
|
||||||
|
EB1F99FD112917157F3C3F6E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qicns.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qicns.pri"; sourceTree = "<absolute>"; };
|
||||||
|
EB29AC635054C09EFA749AE1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp.pri"; sourceTree = "<absolute>"; };
|
||||||
|
EBD39B69F368CEEAC360A16D /* /usr/local/Qt-5.3.0/mkspecs/common/mac.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/mac.conf"; sourceTree = "<absolute>"; };
|
||||||
|
F0681BC551FC8A2B132FC646 /* qjp2 */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qjp2; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqjp2$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
F0A58515945747E36783CC21 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_inspector.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_inspector.pri"; sourceTree = "<absolute>"; };
|
||||||
|
F2453BA07315EB9F34F1CD57 /* qtiff */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = qtiff; path = "/usr/local/Qt-5.3.0/plugins/imageformats/libqtiff$(QT_LIBRARY_SUFFIX).a"; sourceTree = "<absolute>"; };
|
||||||
|
F2F823087EA182CCBD5748B8 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer.pri"; sourceTree = "<absolute>"; };
|
||||||
|
F33BE16353DD1557A9AB3558 /* /usr/local/Qt-5.3.0/mkspecs/common/clang-mac.conf */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/common/clang-mac.conf"; sourceTree = "<absolute>"; };
|
||||||
|
F4EB01857048DCFCFFAAC4D0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfmediaplayer.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfmediaplayer.pri"; sourceTree = "<absolute>"; };
|
||||||
|
F7ADBF552F6B9A5982915164 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning.pri"; sourceTree = "<absolute>"; };
|
||||||
|
F83F87F8A60C9DF666911D42 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvg.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvg.pri"; sourceTree = "<absolute>"; };
|
||||||
|
F9BEAA743A908603687DA204 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns_private.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns_private.pri"; sourceTree = "<absolute>"; };
|
||||||
|
FCC237CA5AD60B9BA4447615 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
||||||
|
FD944B80F033DFE737D401A2 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help.pri */ = {isa = PBXFileReference; lastKnownFileType = text; path = "/usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help.pri"; sourceTree = "<absolute>"; };
|
||||||
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
D1C883685E82D5676953459A /* Link Binary With Libraries */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
1BB705CDB741E2B7450201A5 /* Cocoa.framework in Link Binary With Libraries */,
|
||||||
|
328FD74542F6E2C873EE4D4B /* ApplicationServices.framework in Link Binary With Libraries */,
|
||||||
|
668DDDA0C55405E7FCFD6CA5 /* CoreServices.framework in Link Binary With Libraries */,
|
||||||
|
F8B465CE34D8DF87AAE95913 /* CoreFoundation.framework in Link Binary With Libraries */,
|
||||||
|
F26454630C80841CBDCFE1CA /* Foundation.framework in Link Binary With Libraries */,
|
||||||
|
8771A8C96E9C391044035D99 /* OpenGL.framework in Link Binary With Libraries */,
|
||||||
|
E45E51A644D5FC9F942ECE55 /* AGL.framework in Link Binary With Libraries */,
|
||||||
|
D1FA8AF31837B51C762A9D4D /* qcocoa in Link Binary With Libraries */,
|
||||||
|
F8ED42CF8679BF83227DAFC4 /* Carbon.framework in Link Binary With Libraries */,
|
||||||
|
8D267F2E4776F0ECA2F49DC8 /* IOKit.framework in Link Binary With Libraries */,
|
||||||
|
1A681B886F50EE30FBE62B4B /* Qt5PrintSupport in Link Binary With Libraries */,
|
||||||
|
D22929A2B8C5281567FCACDC /* Qt5PlatformSupport in Link Binary With Libraries */,
|
||||||
|
BE6AB9DF1C4880624131C669 /* Qt5Widgets in Link Binary With Libraries */,
|
||||||
|
A9563D9C9FD0D76FAAF1CA96 /* qdds in Link Binary With Libraries */,
|
||||||
|
7CA5405B8503BFFC60932D2B /* qicns in Link Binary With Libraries */,
|
||||||
|
496FD9CEEB508016AFB9F928 /* qico in Link Binary With Libraries */,
|
||||||
|
59789101736112A570B8EFE6 /* qjp2 in Link Binary With Libraries */,
|
||||||
|
FBD56E2AC34F76BFFDB68619 /* qmng in Link Binary With Libraries */,
|
||||||
|
7F76437B577F737145996DC3 /* qtga in Link Binary With Libraries */,
|
||||||
|
C06DDE378A7AC1FA9E6FF69A /* qtiff in Link Binary With Libraries */,
|
||||||
|
A3F8F2284013928A02AE5C38 /* qwbmp in Link Binary With Libraries */,
|
||||||
|
F4D3747C3A03B25EDC9057BB /* qwebp in Link Binary With Libraries */,
|
||||||
|
9F33AC0693BC81B27D8F518D /* Qt5Gui in Link Binary With Libraries */,
|
||||||
|
8D33FE22B9BBADC7FA46C15B /* qtharfbuzzng in Link Binary With Libraries */,
|
||||||
|
B9ADD90C014EA3FBE351DF03 /* Qt5Core in Link Binary With Libraries */,
|
||||||
|
);
|
||||||
|
name = "Link Binary With Libraries";
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXGroup section */
|
||||||
|
2EB56BE3C2D93CDAB0C52E67 /* Sources */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
73F2E45FDEB381A085D37A49 /* SourceFiles */,
|
||||||
|
CB20BF73330AAF80B8BC8907 /* packer_plugin_import.cpp */,
|
||||||
|
);
|
||||||
|
name = Sources;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
31562E815E3DF5B1A777D3EF /* _other */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
E3790AE49DBDB3F5EFA42FE1 /* packer.cpp */,
|
||||||
|
5AA25EFD83BC060B26945285 /* packer.h */,
|
||||||
|
);
|
||||||
|
name = _other;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
73F2E45FDEB381A085D37A49 /* SourceFiles */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
31562E815E3DF5B1A777D3EF /* _other */,
|
||||||
|
);
|
||||||
|
name = SourceFiles;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
74B182DB50CB5611B5C1C297 /* Supporting Files */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
5520A59148EC5EC44EF0D3CD /* Packer.pro */,
|
||||||
|
6E67D23B15FC4B628DB2E0B2 /* /usr/local/Qt-5.3.0/mkspecs/qdevice.pri */,
|
||||||
|
669FB007C4A3D58424D85EC8 /* /usr/local/Qt-5.3.0/mkspecs/common/shell-unix.conf */,
|
||||||
|
0ABCEA8D0DD45589040B0AF2 /* /usr/local/Qt-5.3.0/mkspecs/common/unix.conf */,
|
||||||
|
EBD39B69F368CEEAC360A16D /* /usr/local/Qt-5.3.0/mkspecs/common/mac.conf */,
|
||||||
|
817A0F5A41B553A6DE67FDEB /* /usr/local/Qt-5.3.0/mkspecs/common/macx.conf */,
|
||||||
|
45B95DB3B70B47A910FC847B /* /usr/local/Qt-5.3.0/mkspecs/common/gcc-base.conf */,
|
||||||
|
A9E30FA27827990C5F182223 /* /usr/local/Qt-5.3.0/mkspecs/common/gcc-base-mac.conf */,
|
||||||
|
8C5164D4E37556D40C5E6AA2 /* /usr/local/Qt-5.3.0/mkspecs/common/clang.conf */,
|
||||||
|
F33BE16353DD1557A9AB3558 /* /usr/local/Qt-5.3.0/mkspecs/common/clang-mac.conf */,
|
||||||
|
D4DE537C1FBBD48BD989FAD1 /* /usr/local/Qt-5.3.0/mkspecs/qconfig.pri */,
|
||||||
|
ACC8A73268E5D9AF64E97AF4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth.pri */,
|
||||||
|
2E48BB382B895A5ACD79AF9F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bluetooth_private.pri */,
|
||||||
|
BD4D97801B547471B37A4CDC /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_bootstrap_private.pri */,
|
||||||
|
CF86CD5BB01B9011E6B6FD3E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_clucene_private.pri */,
|
||||||
|
77FF486B1F9BCD55A8A3F35D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent.pri */,
|
||||||
|
7D28E9003CE64D8A7F2E292E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_concurrent_private.pri */,
|
||||||
|
7ECCC1F9442988B4F2707CC1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core.pri */,
|
||||||
|
5F781C7FD8422D359EA1D2FE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_core_private.pri */,
|
||||||
|
7A94C7168B3FCBE5F04A013B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative.pri */,
|
||||||
|
89863CCAF1D29037AE95755D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_declarative_private.pri */,
|
||||||
|
F2F823087EA182CCBD5748B8 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer.pri */,
|
||||||
|
7C2F42B222EE88E26A6FED62 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designer_private.pri */,
|
||||||
|
69347C39E4D922E94D0860BF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_designercomponents_private.pri */,
|
||||||
|
360D4B3ED25D126430DE27D4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio.pri */,
|
||||||
|
4C6C71914B1926119120DACD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_enginio_private.pri */,
|
||||||
|
23BC8B0FC3279421D41CA268 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui.pri */,
|
||||||
|
D81E3D9A18202BE8EC3D0E2C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_gui_private.pri */,
|
||||||
|
FD944B80F033DFE737D401A2 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help.pri */,
|
||||||
|
D7A0618DE39A427EBF41940E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_help_private.pri */,
|
||||||
|
A5B17ABEFBA1C2F43443D644 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras.pri */,
|
||||||
|
33F165B1DB8CBF182C56FAB5 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_macextras_private.pri */,
|
||||||
|
D2FE4D909926A0D1656068C4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia.pri */,
|
||||||
|
E7D67CB158408BB7DEA74764 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimedia_private.pri */,
|
||||||
|
28BD0D10214709D95B161E24 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets.pri */,
|
||||||
|
D1FA7CAB5ACC09D563AE569F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_multimediawidgets_private.pri */,
|
||||||
|
293C8DEEE270847AC20E70F9 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network.pri */,
|
||||||
|
382E89A91A34F7898C25FD0D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_network_private.pri */,
|
||||||
|
8A04A4A3625204D12A1207F6 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc.pri */,
|
||||||
|
B51B01657BFE9EAEF5590561 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_nfc_private.pri */,
|
||||||
|
5CEA7A2DB2136425A88D1254 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl.pri */,
|
||||||
|
E0F4563EA350EB65112A0EF4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_opengl_private.pri */,
|
||||||
|
E432DA897A5F027987342E8F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions.pri */,
|
||||||
|
5597304BEC94BFB9EAAEBC4B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_openglextensions_private.pri */,
|
||||||
|
8F572030CE9AB8CC5F672201 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_platformsupport_private.pri */,
|
||||||
|
F7ADBF552F6B9A5982915164 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning.pri */,
|
||||||
|
E66B9EC81C285CA9A7FB6A2E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_positioning_private.pri */,
|
||||||
|
6C08BFC27C4C303A3A5181DB /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport.pri */,
|
||||||
|
D0CDC87DAFDA7F18A7AF450F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_printsupport_private.pri */,
|
||||||
|
B382B645B34234E451AE5D94 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml.pri */,
|
||||||
|
6102C69805B6398AF6FA5BEB /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qml_private.pri */,
|
||||||
|
4FB6657DA22BC68B819B64B3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmldevtools_private.pri */,
|
||||||
|
DF8188E30892A4654B984221 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest.pri */,
|
||||||
|
ABA9AB4619F09DCFD2D4A27F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qmltest_private.pri */,
|
||||||
|
5B22E9E4EE9AAE42ABC24AB3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri */,
|
||||||
|
16DD53E17C65AC8B450CC6C3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick.pri */,
|
||||||
|
8C31D89BDFCDF466DAED19A0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quick_private.pri */,
|
||||||
|
82E7DCFD95559532D8FC6CDD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickparticles_private.pri */,
|
||||||
|
D948D4D8F949D45158F8DE35 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets.pri */,
|
||||||
|
B2246267D4C0D789259A86B0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_quickwidgets_private.pri */,
|
||||||
|
CFCB992BEC24B71BFB8A2F30 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script.pri */,
|
||||||
|
C505A18319B9B63C63877858 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_script_private.pri */,
|
||||||
|
CE829DD126DD2B97E8D70A7A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools.pri */,
|
||||||
|
A59F74CD76FDC2B4B9910E18 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_scripttools_private.pri */,
|
||||||
|
85B6936EDBE61D9BB8F8B33B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors.pri */,
|
||||||
|
BDC9ECADEE40D11E3C2EA93F /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sensors_private.pri */,
|
||||||
|
BFF0C38FB0EC140C5F0304AE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport.pri */,
|
||||||
|
311004331A04F3D69C98643C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_serialport_private.pri */,
|
||||||
|
7DE30A90667C03C4F91A2A91 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql.pri */,
|
||||||
|
075EB50EB07CF69FD62FB8DF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_sql_private.pri */,
|
||||||
|
ADFC79902C14A612AE93A89A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg.pri */,
|
||||||
|
8DDE1D26B3206CDB8B57FABE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_svg_private.pri */,
|
||||||
|
DB0A26DDC377B2004F61BFE3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib.pri */,
|
||||||
|
8849E60AEC7DB97A475C17EA /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_testlib_private.pri */,
|
||||||
|
E50FA73B8A23BC179A642B27 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools.pri */,
|
||||||
|
B518DA4EE7376002AFC71FD5 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_uitools_private.pri */,
|
||||||
|
8F97C9CAE38CA3AFAC0B3953 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets.pri */,
|
||||||
|
87EEF25EE25CF21572D1438C /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_websockets_private.pri */,
|
||||||
|
A022AF919D1977534CA66BB8 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets.pri */,
|
||||||
|
8E9136256AFFBA6EF048AA55 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_widgets_private.pri */,
|
||||||
|
AA73DC3C2901E2979FE8AD5B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml.pri */,
|
||||||
|
E37365B4489B4918BEBB707D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xml_private.pri */,
|
||||||
|
2E6D9B1D2743D24E31B0B284 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns.pri */,
|
||||||
|
F9BEAA743A908603687DA204 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_lib_xmlpatterns_private.pri */,
|
||||||
|
D5141F795670589C8CC41CBC /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_cocoaprintersupport.pri */,
|
||||||
|
1FAE75C970AA73F2DEDDB508 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfcamera.pri */,
|
||||||
|
F4EB01857048DCFCFFAAC4D0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qavfmediaplayer.pri */,
|
||||||
|
AFD721AA33A2F785E77B1698 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcocoa.pri */,
|
||||||
|
EA5D4FF9DE4AC4215D7DCE0D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qcorewlanbearer.pri */,
|
||||||
|
111BBEE3D1432C3B517FD539 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdds.pri */,
|
||||||
|
3685604BDB64DD6E92169B73 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qdeclarativeview.pri */,
|
||||||
|
2440CD1D4CEF80443BCA1B8B /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qgenericbearer.pri */,
|
||||||
|
EB1F99FD112917157F3C3F6E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qicns.pri */,
|
||||||
|
C4295BE59CCEBCDD16268349 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qico.pri */,
|
||||||
|
45DB132B756499D4DF38430E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qjp2.pri */,
|
||||||
|
B678DA730B4ECE863AD631AE /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qminimal.pri */,
|
||||||
|
F0A58515945747E36783CC21 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_inspector.pri */,
|
||||||
|
B8525798C5AA7D7C6D68E1B3 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_qtquick2.pri */,
|
||||||
|
EB29AC635054C09EFA749AE1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp.pri */,
|
||||||
|
3F08D430CEC8D2117735CCB4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmldbg_tcp_qtdeclarative.pri */,
|
||||||
|
946BEA667170DC1A7A8F9DB0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qmng.pri */,
|
||||||
|
CCF75CFFB857487FB18F99F9 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qoffscreen.pri */,
|
||||||
|
9A0BDF67E013BB4FFB8685B0 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qqt7engine.pri */,
|
||||||
|
B064BF3B496A7BF7A449CA1E /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsqlite.pri */,
|
||||||
|
F83F87F8A60C9DF666911D42 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvg.pri */,
|
||||||
|
CFFBE05DB004895080314289 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qsvgicon.pri */,
|
||||||
|
247D8DF3B1DDB665B80BBA25 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblequick.pri */,
|
||||||
|
87A4C1983FD641360BF80A02 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaccessiblewidgets.pri */,
|
||||||
|
24B6929EE3952310F2DAECB1 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtaudio_coreaudio.pri */,
|
||||||
|
060A694B42A4555240009936 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtga.pri */,
|
||||||
|
BD22EFEFCC02644B1883CE19 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtiff.pri */,
|
||||||
|
B8C1F6C965A7A14FBA8D4518 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmedia_audioengine.pri */,
|
||||||
|
74C1C232DFAA71028A0412CA /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtmultimedia_m3u.pri */,
|
||||||
|
C84546C18DCBB04166195DCF /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtposition_positionpoll.pri */,
|
||||||
|
AB1C02DDBD8E88DD9A9AFDDD /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_plugin.pri */,
|
||||||
|
8B4BB4E74F8A4442EF563D7D /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensorgestures_shakeplugin.pri */,
|
||||||
|
892D36BEF797BA4AF48D378A /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_dummy.pri */,
|
||||||
|
A4D8AC60897F435C1C3B9D02 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qtsensors_generic.pri */,
|
||||||
|
346287C9E754E7C458153F03 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwbmp.pri */,
|
||||||
|
B26239063A068F800A2C95F4 /* /usr/local/Qt-5.3.0/mkspecs/modules/qt_plugin_qwebp.pri */,
|
||||||
|
63E722139886C87BC82DBDF5 /* /usr/local/Qt-5.3.0/mkspecs/macx-clang/qmake.conf */,
|
||||||
|
85061B1DA49D125991117950 /* /usr/local/Qt-5.3.0/mkspecs/macx-xcode/qmake.conf */,
|
||||||
|
AB745978DF0F41D1801ABDA6 /* .qmake.stash */,
|
||||||
|
);
|
||||||
|
name = "Supporting Files";
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
AF39DD055C3EF8226FBE929D /* Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
AEA456A2F75ED9F5CDA7BCBE /* Cocoa.framework */,
|
||||||
|
DFD7912080BC557230093752 /* ApplicationServices.framework */,
|
||||||
|
9742F24EE18EA44D52824F1E /* CoreServices.framework */,
|
||||||
|
4D765E1B1EA6C757220C63E7 /* CoreFoundation.framework */,
|
||||||
|
FCC237CA5AD60B9BA4447615 /* Foundation.framework */,
|
||||||
|
D4B32C2222F82AC56BADEB21 /* OpenGL.framework */,
|
||||||
|
8D9815BDB5BD9F90D2BC05C5 /* AGL.framework */,
|
||||||
|
D53D8E6A188E05078A114294 /* qcocoa */,
|
||||||
|
9DFF62A901D70814B8A323D4 /* Carbon.framework */,
|
||||||
|
A1A67BEAA744704B29168D39 /* IOKit.framework */,
|
||||||
|
DBF506D10449BFABD45B82DA /* Qt5PrintSupport */,
|
||||||
|
E7B2F248E3F7970788F35BF5 /* Qt5PlatformSupport */,
|
||||||
|
4689C06178B60B84E7F3A3B7 /* Qt5Widgets */,
|
||||||
|
D3D1BE0BEA3AEE0551AD39AC /* qdds */,
|
||||||
|
31120EDB269DFF13E1D49847 /* qicns */,
|
||||||
|
8F500B5166907B6D9A7C3E3D /* qico */,
|
||||||
|
F0681BC551FC8A2B132FC646 /* qjp2 */,
|
||||||
|
83D37373949868693FB7816D /* qmng */,
|
||||||
|
DCEFD9167C239650120B0145 /* qtga */,
|
||||||
|
F2453BA07315EB9F34F1CD57 /* qtiff */,
|
||||||
|
8CF51323544B886B8F4A2232 /* qwbmp */,
|
||||||
|
ADC6308023253CEA51F86E21 /* qwebp */,
|
||||||
|
04391BE7A8B9D811E255100A /* Qt5Gui */,
|
||||||
|
D6193B79CECC9DD0142D1200 /* qtharfbuzzng */,
|
||||||
|
5A80A1907B6CFFB524C1E57D /* Qt5Core */,
|
||||||
|
);
|
||||||
|
name = Frameworks;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
E8C543AB96796ECAA2E65C57 /* Packer */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
2EB56BE3C2D93CDAB0C52E67 /* Sources */,
|
||||||
|
74B182DB50CB5611B5C1C297 /* Supporting Files */,
|
||||||
|
AF39DD055C3EF8226FBE929D /* Frameworks */,
|
||||||
|
FE0A091FDBFB3E9C31B7A1BD /* Products */,
|
||||||
|
);
|
||||||
|
name = Packer;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
FE0A091FDBFB3E9C31B7A1BD /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
A5588D4B50885E2A9CAA5505 /* Packer.app */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<Group>";
|
||||||
|
};
|
||||||
|
/* End PBXGroup section */
|
||||||
|
|
||||||
|
/* Begin PBXNativeTarget section */
|
||||||
|
FD92333211119EF3CA40F70D /* Packer */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = 6CC3B5D2136C7CD6A5CF5A59 /* Build configuration list for PBXNativeTarget "Packer" */;
|
||||||
|
buildPhases = (
|
||||||
|
F7E50F631C51CD5B5DC0BC43 /* Compile Sources */,
|
||||||
|
D1C883685E82D5676953459A /* Link Binary With Libraries */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
A7CD3B627B093BF0A5BBA9AE /* PBXTargetDependency */,
|
||||||
|
);
|
||||||
|
name = Packer;
|
||||||
|
productInstallPath = ../Mac/DebugPacker/;
|
||||||
|
productName = Packer;
|
||||||
|
productReference = A5588D4B50885E2A9CAA5505 /* Packer.app */;
|
||||||
|
productType = "com.apple.product-type.application";
|
||||||
|
};
|
||||||
|
/* End PBXNativeTarget section */
|
||||||
|
|
||||||
|
/* Begin PBXProject section */
|
||||||
|
6DB9C3763D02B1415CD9D565 /* Project object */ = {
|
||||||
|
isa = PBXProject;
|
||||||
|
attributes = {
|
||||||
|
LastUpgradeCheck = 0510;
|
||||||
|
};
|
||||||
|
buildConfigurationList = DAC4C1AA5EDEA1C85E9CA5E6 /* Build configuration list for PBXProject "Packer" */;
|
||||||
|
compatibilityVersion = "Xcode 3.2";
|
||||||
|
developmentRegion = English;
|
||||||
|
hasScannedForEncodings = 1;
|
||||||
|
knownRegions = (
|
||||||
|
en,
|
||||||
|
);
|
||||||
|
mainGroup = E8C543AB96796ECAA2E65C57 /* Packer */;
|
||||||
|
productRefGroup = FE0A091FDBFB3E9C31B7A1BD /* Products */;
|
||||||
|
projectDirPath = "";
|
||||||
|
projectRoot = "";
|
||||||
|
targets = (
|
||||||
|
FD92333211119EF3CA40F70D /* Packer */,
|
||||||
|
6E977D353048DB44129F752B /* Preprocess */,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
/* End PBXProject section */
|
||||||
|
|
||||||
|
/* Begin PBXShellScriptBuildPhase section */
|
||||||
|
7EF0942E79C014DCEC8976BC /* Qt Preprocessors */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
name = "Qt Preprocessors";
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "make -C . -f Packer.xcodeproj/qt_preprocess.mak";
|
||||||
|
};
|
||||||
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
F7E50F631C51CD5B5DC0BC43 /* Compile Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
EAA05789DF6EBAD24D3EFF96 /* packer.cpp in Compile Sources */,
|
||||||
|
52B661A713AE959F9084E291 /* packer_plugin_import.cpp in Compile Sources */,
|
||||||
|
);
|
||||||
|
name = "Compile Sources";
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXSourcesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXTargetDependency section */
|
||||||
|
A7CD3B627B093BF0A5BBA9AE /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
target = 6E977D353048DB44129F752B /* Preprocess */;
|
||||||
|
targetProxy = 072AB35C1955F39D00328D9B /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
|
/* End PBXTargetDependency section */
|
||||||
|
|
||||||
|
/* Begin XCBuildConfiguration section */
|
||||||
|
339EE1B2CC4FC24589A0EA95 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
COPY_PHASE_STRIP = YES;
|
||||||
|
DYLIB_COMPATIBILITY_VERSION = 1.0;
|
||||||
|
DYLIB_CURRENT_VERSION = 1.0.0;
|
||||||
|
FRAMEWORK_SEARCH_PATHS = "";
|
||||||
|
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||||
|
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
HEADER_SEARCH_PATHS = (
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui,
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore,
|
||||||
|
../../Libraries/QtStatic/qtbase/include,
|
||||||
|
/usr/local/include,
|
||||||
|
"/usr/local/Qt-5.3.0/include",
|
||||||
|
"/usr/local/Qt-5.3.0/include/QtGui",
|
||||||
|
"/usr/local/Qt-5.3.0/include/QtCore",
|
||||||
|
GeneratedFiles/Debug,
|
||||||
|
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers,
|
||||||
|
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/AGL.framework/Headers,
|
||||||
|
"/usr/local/Qt-5.3.0/mkspecs/macx-clang",
|
||||||
|
);
|
||||||
|
INFOPLIST_FILE = Packer.plist;
|
||||||
|
INSTALL_DIR = "../Mac/$(CONFIGURATION)";
|
||||||
|
LDPLUSPLUS = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++";
|
||||||
|
LIBRARY_SEARCH_PATHS = (
|
||||||
|
/System/Library/Frameworks/,
|
||||||
|
"/usr/local/Qt-5.3.0/lib",
|
||||||
|
"/usr/local/Qt-5.3.0/plugins/platforms",
|
||||||
|
"/usr/local/Qt-5.3.0/plugins/imageformats",
|
||||||
|
);
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||||
|
OBJROOT = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)IntermediatePacker/";
|
||||||
|
OTHER_CFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
);
|
||||||
|
OTHER_CPLUSPLUSFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-std=c++11",
|
||||||
|
"-stdlib=libc++",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
);
|
||||||
|
OTHER_LDFLAGS = (
|
||||||
|
"-headerpad_max_install_names",
|
||||||
|
"-stdlib=libc++",
|
||||||
|
"-lcrypto",
|
||||||
|
"-lssl",
|
||||||
|
"-L/usr/local/Qt-5.3.0/lib",
|
||||||
|
"-L/usr/local/Qt-5.3.0/plugins/platforms",
|
||||||
|
"-lcups",
|
||||||
|
"-L/usr/local/Qt-5.3.0/plugins/imageformats",
|
||||||
|
"-lz",
|
||||||
|
"-lm",
|
||||||
|
"-llzma",
|
||||||
|
);
|
||||||
|
PRODUCT_NAME = Packer;
|
||||||
|
QT_LIBRARY_SUFFIX = "";
|
||||||
|
SDKROOT = macosx;
|
||||||
|
SYMROOT = ../Mac;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
3AA6C32AC930069E80220CF1 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
CC = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
|
DYLIB_COMPATIBILITY_VERSION = 1.0;
|
||||||
|
DYLIB_CURRENT_VERSION = 1.0.0;
|
||||||
|
FRAMEWORK_SEARCH_PATHS = "";
|
||||||
|
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
HEADER_SEARCH_PATHS = (
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui,
|
||||||
|
../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore,
|
||||||
|
../../Libraries/QtStatic/qtbase/include,
|
||||||
|
/usr/local/include,
|
||||||
|
"/usr/local/Qt-5.3.0/include",
|
||||||
|
"/usr/local/Qt-5.3.0/include/QtGui",
|
||||||
|
"/usr/local/Qt-5.3.0/include/QtCore",
|
||||||
|
GeneratedFiles/Debug,
|
||||||
|
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers,
|
||||||
|
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/AGL.framework/Headers,
|
||||||
|
"/usr/local/Qt-5.3.0/mkspecs/macx-clang",
|
||||||
|
);
|
||||||
|
INFOPLIST_FILE = Packer.plist;
|
||||||
|
INSTALL_DIR = "../Mac/$(CONFIGURATION)";
|
||||||
|
LDPLUSPLUS = "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++";
|
||||||
|
LIBRARY_SEARCH_PATHS = (
|
||||||
|
/System/Library/Frameworks/,
|
||||||
|
"/usr/local/Qt-5.3.0/lib",
|
||||||
|
"/usr/local/Qt-5.3.0/plugins/platforms",
|
||||||
|
"/usr/local/Qt-5.3.0/plugins/imageformats",
|
||||||
|
);
|
||||||
|
MACOSX_DEPLOYMENT_TARGET = 10.7;
|
||||||
|
OBJROOT = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)IntermediatePacker/";
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
|
OTHER_CFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
);
|
||||||
|
OTHER_CPLUSPLUSFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-std=c++11",
|
||||||
|
"-stdlib=libc++",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
);
|
||||||
|
OTHER_LDFLAGS = (
|
||||||
|
"-headerpad_max_install_names",
|
||||||
|
"-stdlib=libc++",
|
||||||
|
"-lcrypto",
|
||||||
|
"-lssl",
|
||||||
|
"-L/usr/local/Qt-5.3.0/lib",
|
||||||
|
"-L/usr/local/Qt-5.3.0/plugins/platforms",
|
||||||
|
"-lcups",
|
||||||
|
"-L/usr/local/Qt-5.3.0/plugins/imageformats",
|
||||||
|
"-lz",
|
||||||
|
"-lm",
|
||||||
|
"-llzma",
|
||||||
|
);
|
||||||
|
PRODUCT_NAME = Packer;
|
||||||
|
QT_LIBRARY_SUFFIX = _debug;
|
||||||
|
SDKROOT = macosx;
|
||||||
|
SYMROOT = ../Mac;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
6666AA5E688052234F6758D8 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
COPY_PHASE_STRIP = YES;
|
||||||
|
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||||
|
OBJROOT = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)IntermediatePacker";
|
||||||
|
OTHER_CFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
"-I./../../Libraries/openssl-xcode/include",
|
||||||
|
);
|
||||||
|
OTHER_CPLUSPLUSFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-std=c++11",
|
||||||
|
"-stdlib=libc++",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
"-I./../../Libraries/openssl-xcode/include",
|
||||||
|
);
|
||||||
|
PRODUCT_NAME = Packer;
|
||||||
|
QT_LIBRARY_SUFFIX = "";
|
||||||
|
SDKROOT = macosx;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
77418F46922677BB04ED38DD /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
COMBINE_HIDPI_IMAGES = YES;
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||||
|
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
OBJROOT = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)IntermediatePacker";
|
||||||
|
OTHER_CFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
"-I./../../Libraries/openssl-xcode/include",
|
||||||
|
);
|
||||||
|
OTHER_CPLUSPLUSFLAGS = (
|
||||||
|
"-pipe",
|
||||||
|
"-g",
|
||||||
|
"-std=c++11",
|
||||||
|
"-stdlib=libc++",
|
||||||
|
"-Wall",
|
||||||
|
"-W",
|
||||||
|
"-fPIE",
|
||||||
|
"-D_DEBUG",
|
||||||
|
"-DQT_GUI_LIB",
|
||||||
|
"-DQT_CORE_LIB",
|
||||||
|
"-I./../../Libraries/openssl-xcode/include",
|
||||||
|
);
|
||||||
|
PRODUCT_NAME = Packer;
|
||||||
|
QT_LIBRARY_SUFFIX = _debug;
|
||||||
|
SDKROOT = macosx;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
/* End XCBuildConfiguration section */
|
||||||
|
|
||||||
|
/* Begin XCConfigurationList section */
|
||||||
|
6CC3B5D2136C7CD6A5CF5A59 /* Build configuration list for PBXNativeTarget "Packer" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
77418F46922677BB04ED38DD /* Debug */,
|
||||||
|
6666AA5E688052234F6758D8 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Debug;
|
||||||
|
};
|
||||||
|
DAC4C1AA5EDEA1C85E9CA5E6 /* Build configuration list for PBXProject "Packer" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
3AA6C32AC930069E80220CF1 /* Debug */,
|
||||||
|
339EE1B2CC4FC24589A0EA95 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Debug;
|
||||||
|
};
|
||||||
|
/* End XCConfigurationList section */
|
||||||
|
};
|
||||||
|
rootObject = 6DB9C3763D02B1415CD9D565 /* Project object */;
|
||||||
|
}
|
52
Telegram/Packer.xcodeproj/qt_preprocess.mak
Normal file
52
Telegram/Packer.xcodeproj/qt_preprocess.mak
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
#############################################################################
|
||||||
|
# Makefile for building: ../Mac/DebugPacker/Packer.app/Contents/MacOS/Packer
|
||||||
|
# Generated by qmake (3.0) (Qt 5.3.0)
|
||||||
|
# Project: Packer.pro
|
||||||
|
# Template: app
|
||||||
|
# Command: /usr/local/Qt-5.3.0/bin/qmake -spec macx-xcode -o Packer.xcodeproj/project.pbxproj Packer.pro
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
MAKEFILE = project.pbxproj
|
||||||
|
|
||||||
|
MOC = /usr/local/Qt-5.3.0/bin/moc
|
||||||
|
UIC =
|
||||||
|
LEX = flex
|
||||||
|
LEXFLAGS =
|
||||||
|
YACC = yacc
|
||||||
|
YACCFLAGS = -d
|
||||||
|
DEFINES = -D_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB
|
||||||
|
INCPATH = -I/usr/local/Qt-5.3.0/mkspecs/macx-clang -I. -I../../Libraries/QtStatic/qtbase/include/QtGui/5.3.0/QtGui -I../../Libraries/QtStatic/qtbase/include/QtCore/5.3.0/QtCore -I../../Libraries/QtStatic/qtbase/include -I../../Libraries/lzma/C -I/usr/local/Qt-5.3.0/include -I/usr/local/Qt-5.3.0/include/QtGui -I/usr/local/Qt-5.3.0/include/QtCore -IGeneratedFiles/Debug -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/AGL.framework/Headers
|
||||||
|
DEL_FILE = rm -f
|
||||||
|
MOVE = mv -f
|
||||||
|
|
||||||
|
IMAGES =
|
||||||
|
PARSERS =
|
||||||
|
preprocess: $(PARSERS) compilers
|
||||||
|
clean preprocess_clean: parser_clean compiler_clean
|
||||||
|
|
||||||
|
parser_clean:
|
||||||
|
mocclean: compiler_moc_header_clean compiler_moc_source_clean
|
||||||
|
|
||||||
|
mocables: compiler_moc_header_make_all compiler_moc_source_make_all
|
||||||
|
|
||||||
|
check: first
|
||||||
|
|
||||||
|
compilers:
|
||||||
|
compiler_objective_c_make_all:
|
||||||
|
compiler_objective_c_clean:
|
||||||
|
compiler_rcc_make_all:
|
||||||
|
compiler_rcc_clean:
|
||||||
|
compiler_moc_header_make_all:
|
||||||
|
compiler_moc_header_clean:
|
||||||
|
compiler_moc_source_make_all:
|
||||||
|
compiler_moc_source_clean:
|
||||||
|
compiler_rez_source_make_all:
|
||||||
|
compiler_rez_source_clean:
|
||||||
|
compiler_yacc_decl_make_all:
|
||||||
|
compiler_yacc_decl_clean:
|
||||||
|
compiler_yacc_impl_make_all:
|
||||||
|
compiler_yacc_impl_clean:
|
||||||
|
compiler_lex_make_all:
|
||||||
|
compiler_lex_clean:
|
||||||
|
compiler_clean:
|
||||||
|
|
32
Telegram/Prepare.sh
Executable file
32
Telegram/Prepare.sh
Executable file
|
@ -0,0 +1,32 @@
|
||||||
|
AppVersionStr=0.5.5
|
||||||
|
AppVersion=5005
|
||||||
|
|
||||||
|
if [ -d "deploy/$AppVersionStr" ]; then
|
||||||
|
echo "Deploy folder for version $AppVersionStr already exists!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "tupdate$AppVersion" ]; then
|
||||||
|
echo "Update file for version $AppVersion already exists!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "Telegram.app" ]; then
|
||||||
|
echo "Telegram.app not found!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "Preparing version $AppVersionStr, executing Packer.."
|
||||||
|
./Packer.app/Contents/MacOS/Packer -path Telegram.app -version $AppVersion
|
||||||
|
echo "Packer done!"
|
||||||
|
|
||||||
|
if [ ! -d "deploy/" ]; then
|
||||||
|
mkdir "deploy"
|
||||||
|
fi
|
||||||
|
echo "Copying Telegram.app and tmacupd$AppVersion to deploy/$AppVersionStr..";
|
||||||
|
mkdir "deploy/$AppVersionStr"
|
||||||
|
mkdir "deploy/$AppVersionStr/Telegram"
|
||||||
|
mv Telegram.app deploy/$AppVersionStr/Telegram/
|
||||||
|
mv tmacupd$AppVersion deploy/$AppVersionStr/
|
||||||
|
mv Telegram.dmg deploy/$AppVersionStr/
|
||||||
|
echo "Version $AppVersionStr prepared!";
|
||||||
|
|
|
@ -161,6 +161,7 @@ lng_settings_view_emojis: "View list";
|
||||||
lng_settings_emoji_list: "List of supported emojis";
|
lng_settings_emoji_list: "List of supported emojis";
|
||||||
lng_settings_send_enter: "Send by Enter";
|
lng_settings_send_enter: "Send by Enter";
|
||||||
lng_settings_send_ctrlenter: "Send by Ctrl+Enter";
|
lng_settings_send_ctrlenter: "Send by Ctrl+Enter";
|
||||||
|
lng_settings_send_cmdenter: "Send by Cmd+Enter";
|
||||||
lng_settings_cats_and_dogs: "Allow cats and dogs";
|
lng_settings_cats_and_dogs: "Allow cats and dogs";
|
||||||
|
|
||||||
lng_download_path_dont_ask: "Don't ask download path for each file";
|
lng_download_path_dont_ask: "Don't ask download path for each file";
|
||||||
|
@ -313,6 +314,7 @@ lng_context_copy_image: "Copy Image";
|
||||||
lng_context_close_image: "Close Image";
|
lng_context_close_image: "Close Image";
|
||||||
lng_context_cancel_download: "Cancel Download";
|
lng_context_cancel_download: "Cancel Download";
|
||||||
lng_context_show_in_folder: "Show in Folder";
|
lng_context_show_in_folder: "Show in Folder";
|
||||||
|
lng_context_show_in_finder: "Show in Finder";
|
||||||
lng_context_open_video: "Open Video";
|
lng_context_open_video: "Open Video";
|
||||||
lng_context_save_video: "Save Video As...";
|
lng_context_save_video: "Save Video As...";
|
||||||
lng_context_open_audio: "Open Audio";
|
lng_context_open_audio: "Open Audio";
|
||||||
|
@ -378,4 +380,16 @@ This software is licensed under [a href=\"https://github.com/telegramdesktop/tde
|
||||||
source code is available on [a href=\"https://github.com/telegramdesktop/tdesktop\"]GitHub[/a].";
|
source code is available on [a href=\"https://github.com/telegramdesktop/tdesktop\"]GitHub[/a].";
|
||||||
lng_about_done: "Done";
|
lng_about_done: "Done";
|
||||||
|
|
||||||
|
// Mac specific
|
||||||
|
|
||||||
|
lng_mac_choose_app: "Choose Application";
|
||||||
|
lng_mac_choose_text: "Choose an application to open the document \"{file}\".";
|
||||||
|
lng_mac_enable_filter: "Enable:";
|
||||||
|
lng_mac_recommended_apps: "Recommended Applications";
|
||||||
|
lng_mac_all_apps: "All Applications";
|
||||||
|
lng_mac_always_open_with: "Always Open With";
|
||||||
|
lng_mac_this_app_can_open: "This application can open \"{file}\".";
|
||||||
|
lng_mac_not_known_app: "It's not known if this application can open \"{file}\".";
|
||||||
|
|
||||||
// Keys finished
|
// Keys finished
|
||||||
|
|
||||||
|
|
|
@ -20,8 +20,9 @@ semibold: 'Open Sans Semibold';
|
||||||
|
|
||||||
fsize: 13px;
|
fsize: 13px;
|
||||||
|
|
||||||
spriteFile: ':/gui/art/sprite.png' / 2:':/gui/art/sprite_125x.png' / 3:':/gui/art/sprite_150x.png' / 4:':/gui/art/sprite_200x.png';
|
spriteFile: ':/gui/art/sprite.png' / 2:':/gui/art/sprite_125x.png' / 3:':/gui/art/sprite_150x.png' / 4:':/gui/art/sprite_200x.png'; // exceptional value for retina
|
||||||
emojisFile: ':/gui/art/emoji.png' / 2:':/gui/art/emoji_125x.png' / 3:':/gui/art/emoji_150x.png' / 4:':/gui/art/emoji_200x.png';
|
emojisFile: ':/gui/art/emoji.png' / 2:':/gui/art/emoji_125x.png' / 3:':/gui/art/emoji_150x.png' / 4:':/gui/art/emoji_200x.png'; // exceptional value for retina
|
||||||
|
emojiImgSize: 16px; // exceptional value for retina
|
||||||
emojiSize: 16px;
|
emojiSize: 16px;
|
||||||
emojiPadding: 1px;
|
emojiPadding: 1px;
|
||||||
|
|
||||||
|
@ -1384,3 +1385,13 @@ emojiPanSub: 0px;
|
||||||
emojiPanDuration: 200;
|
emojiPanDuration: 200;
|
||||||
emojiPanHover: #f0f0f0;
|
emojiPanHover: #f0f0f0;
|
||||||
emojiPanRound: 2px;
|
emojiPanRound: 2px;
|
||||||
|
|
||||||
|
// Mac specific
|
||||||
|
|
||||||
|
macAccessoryHeight: 90;
|
||||||
|
macEnableFilterAdd: 2;
|
||||||
|
macEnableFilterTop: 5;
|
||||||
|
macSelectorTop: 6;
|
||||||
|
macAlwaysThisAppTop: 4;
|
||||||
|
macAppHintTop: 8;
|
||||||
|
macCautionIconSize: size(16, 16);
|
||||||
|
|
|
@ -17,8 +17,10 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
*/
|
*/
|
||||||
#include "genemoji.h"
|
#include "genemoji.h"
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
#include <QtCore/QtPlugin>
|
#include <QtCore/QtPlugin>
|
||||||
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
|
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef unsigned int uint32;
|
typedef unsigned int uint32;
|
||||||
|
|
||||||
|
@ -938,7 +940,7 @@ void writeEmojiCategory(QTextStream &tcpp, uint32 *emojiCategory, uint32 size, c
|
||||||
tcpp << "\t\tstatic QVector<EmojiPtr> v" << name << ";\n";
|
tcpp << "\t\tstatic QVector<EmojiPtr> v" << name << ";\n";
|
||||||
tcpp << "\t\tif (v" << name << ".isEmpty()) {\n";
|
tcpp << "\t\tif (v" << name << ".isEmpty()) {\n";
|
||||||
tcpp << "\t\t\tv" << name << ".resize(" << size << ");\n";
|
tcpp << "\t\t\tv" << name << ".resize(" << size << ");\n";
|
||||||
for (int i = 0; i < size; ++i) {
|
for (uint32 i = 0; i < size; ++i) {
|
||||||
int index = 0;
|
int index = 0;
|
||||||
for (EmojisData::const_iterator j = emojisData.cbegin(), e = emojisData.cend(); j != e; ++j) {
|
for (EmojisData::const_iterator j = emojisData.cbegin(), e = emojisData.cend(); j != e; ++j) {
|
||||||
if (j->code == emojiCategory[i]) {
|
if (j->code == emojiCategory[i]) {
|
||||||
|
@ -947,7 +949,7 @@ void writeEmojiCategory(QTextStream &tcpp, uint32 *emojiCategory, uint32 size, c
|
||||||
++index;
|
++index;
|
||||||
}
|
}
|
||||||
if (index == emojisData.size()) {
|
if (index == emojisData.size()) {
|
||||||
throw exception(QString("Could not find emoji from category '%1' with index %2, code %3").arg(name).arg(i).arg(emojiCategory[i]).toUtf8().constData());
|
throw Exception(QString("Could not find emoji from category '%1' with index %2, code %3").arg(name).arg(i).arg(emojiCategory[i]).toUtf8().constData());
|
||||||
}
|
}
|
||||||
tcpp << "\t\t\tv" << name << "[" << i << "] = &emojis[" << index << "];\n";
|
tcpp << "\t\t\tv" << name << "[" << i << "] = &emojis[" << index << "];\n";
|
||||||
}
|
}
|
||||||
|
@ -956,7 +958,7 @@ void writeEmojiCategory(QTextStream &tcpp, uint32 *emojiCategory, uint32 size, c
|
||||||
tcpp << "\t} break;\n\n";
|
tcpp << "\t} break;\n\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
bool genEmoji(QString emoji_in, const QString &emoji_out) {
|
bool genEmoji(QString emoji_in, const QString &emoji_out, const QString &emoji_png) {
|
||||||
QDir d(emoji_in);
|
QDir d(emoji_in);
|
||||||
if (!d.exists()) {
|
if (!d.exists()) {
|
||||||
cout << "Could not open emoji input dir '" << emoji_in.toUtf8().constData() << "'!\n";
|
cout << "Could not open emoji input dir '" << emoji_in.toUtf8().constData() << "'!\n";
|
||||||
|
@ -1012,7 +1014,7 @@ bool genEmoji(QString emoji_in, const QString &emoji_out) {
|
||||||
if (data.code < min1) min1 = data.code;
|
if (data.code < min1) min1 = data.code;
|
||||||
if (data.code > max1) max1 = data.code;
|
if (data.code > max1) max1 = data.code;
|
||||||
}
|
}
|
||||||
} else if (high == 35 || high >= 48 && high < 58) { // digits
|
} else if (high == 35 || (high >= 48 && high < 58)) { // digits
|
||||||
} else {
|
} else {
|
||||||
if (data.code < min2) min2 = data.code;
|
if (data.code < min2) min2 = data.code;
|
||||||
if (data.code > max2) max2 = data.code;
|
if (data.code > max2) max2 = data.code;
|
||||||
|
@ -1055,7 +1057,8 @@ bool genEmoji(QString emoji_in, const QString &emoji_out) {
|
||||||
cout << "Could not read image '" << name.toUtf8().constData() << "'!\n";
|
cout << "Could not read image '" << name.toUtf8().constData() << "'!\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
QString postfix = variantPostfix[variantIndex], emojif = "./SourceFiles/art/emoji" + postfix + ".png";
|
QString postfix = variantPostfix[variantIndex], emojif = emoji_png + postfix + ".png";
|
||||||
|
const char *tmp = emojif.toUtf8().constData();
|
||||||
QByteArray emojib;
|
QByteArray emojib;
|
||||||
{
|
{
|
||||||
QBuffer ebuf(&emojib);
|
QBuffer ebuf(&emojib);
|
||||||
|
@ -1126,7 +1129,8 @@ Copyright (c) 2014 John Preston, https://tdesktop.com\n\
|
||||||
|
|
||||||
tcpp << "void initEmoji() {\n";
|
tcpp << "void initEmoji() {\n";
|
||||||
tcpp << "\tEmojiData *toFill = emojis = (EmojiData*)emojisData;\n\n";
|
tcpp << "\tEmojiData *toFill = emojis = (EmojiData*)emojisData;\n\n";
|
||||||
tcpp << "\tswitch (cScale()) {\n\n";
|
tcpp << "\tDBIScale emojiForScale = cRetina() ? dbisTwo : cScale();\n\n";
|
||||||
|
tcpp << "\tswitch (emojiForScale) {\n\n";
|
||||||
for (int variantIndex = 0; variantIndex < variantsCount; ++variantIndex) {
|
for (int variantIndex = 0; variantIndex < variantsCount; ++variantIndex) {
|
||||||
int imSize = imSizes[variantIndex];
|
int imSize = imSizes[variantIndex];
|
||||||
tcpp << "\tcase " << variantNames[variantIndex] << ":\n";
|
tcpp << "\tcase " << variantNames[variantIndex] << ":\n";
|
||||||
|
@ -1165,7 +1169,7 @@ Copyright (c) 2014 John Preston, https://tdesktop.com\n\
|
||||||
tcpp << "\t\treturn 0;\n";
|
tcpp << "\t\treturn 0;\n";
|
||||||
tcpp << "\t}\n\n";
|
tcpp << "\t}\n\n";
|
||||||
|
|
||||||
tcpp << "\tif (highCode == 35 || highCode >= 48 && highCode < 58) {\n"; // digits
|
tcpp << "\tif (highCode == 35 || (highCode >= 48 && highCode < 58)) {\n"; // digits
|
||||||
tcpp << "\t\tif ((code & 0xFFFF) != 0x20E3) return 0;\n\n";
|
tcpp << "\t\tif ((code & 0xFFFF) != 0x20E3) return 0;\n\n";
|
||||||
tcpp << "\t\tswitch (code) {\n";
|
tcpp << "\t\tswitch (code) {\n";
|
||||||
for (; i != e; ++i) {
|
for (; i != e; ++i) {
|
||||||
|
@ -1194,7 +1198,7 @@ Copyright (c) 2014 John Preston, https://tdesktop.com\n\
|
||||||
tcpp << "\tswitch (ch->unicode()) {\n";
|
tcpp << "\tswitch (ch->unicode()) {\n";
|
||||||
|
|
||||||
QString tab("\t");
|
QString tab("\t");
|
||||||
for (int i = 0; i < replacesCount; ++i) {
|
for (uint32 i = 0; i < replacesCount; ++i) {
|
||||||
QString key = QString::fromUtf8(replaces[i].replace);
|
QString key = QString::fromUtf8(replaces[i].replace);
|
||||||
replaceMap[key] = replaces[i].code;
|
replaceMap[key] = replaces[i].code;
|
||||||
}
|
}
|
||||||
|
@ -1268,8 +1272,8 @@ Copyright (c) 2014 John Preston, https://tdesktop.com\n\
|
||||||
}
|
}
|
||||||
if (write_cpp) {
|
if (write_cpp) {
|
||||||
cout << "Emoji updated, writing " << currentRow << " rows, full count " << emojisData.size() << " emojis.\n";
|
cout << "Emoji updated, writing " << currentRow << " rows, full count " << emojisData.size() << " emojis.\n";
|
||||||
if (!cpp.open(QIODevice::WriteOnly)) throw exception("Could not open style_auto.cpp for writing!");
|
if (!cpp.open(QIODevice::WriteOnly)) throw Exception("Could not open style_auto.cpp for writing!");
|
||||||
if (cpp.write(cppText) != cppText.size()) throw exception("Could not open style_auto.cpp for writing!");
|
if (cpp.write(cppText) != cppText.size()) throw Exception("Could not open style_auto.cpp for writing!");
|
||||||
}/**/
|
}/**/
|
||||||
} catch (exception &e) {
|
} catch (exception &e) {
|
||||||
cout << e.what() << "\n";
|
cout << e.what() << "\n";
|
||||||
|
|
|
@ -37,19 +37,35 @@ using std::cout;
|
||||||
using std::cerr;
|
using std::cerr;
|
||||||
using std::exception;
|
using std::exception;
|
||||||
|
|
||||||
bool genEmoji(QString emoji_in, const QString &emoji_out);
|
class Exception : public exception {
|
||||||
|
public:
|
||||||
|
|
||||||
|
Exception(const QString &msg) : _msg(msg.toUtf8()) {
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual const char *what() const throw() {
|
||||||
|
return _msg.constData();
|
||||||
|
}
|
||||||
|
virtual ~Exception() throw() {
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
QByteArray _msg;
|
||||||
|
};
|
||||||
|
|
||||||
|
bool genEmoji(QString emoji_in, const QString &emoji_out, const QString &emoji_png);
|
||||||
|
|
||||||
class GenEmoji : public QObject {
|
class GenEmoji : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
GenEmoji(const QString &emoji_in, const QString &emoji_out) : QObject(0),
|
GenEmoji(const QString &emoji_in, const QString &emoji_out, const QString &emoji_png) : QObject(0),
|
||||||
_emoji_in(emoji_in), _emoji_out(emoji_out) {
|
_emoji_in(emoji_in), _emoji_out(emoji_out), _emoji_png(emoji_png) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public slots :
|
public slots :
|
||||||
void run() {
|
void run() {
|
||||||
if (genEmoji(_emoji_in, _emoji_out)) {
|
if (genEmoji(_emoji_in, _emoji_out, _emoji_png)) {
|
||||||
emit finished();
|
emit finished();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,5 +75,5 @@ signals:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
QString _emoji_in, _emoji_out;
|
QString _emoji_in, _emoji_out, _emoji_png;
|
||||||
};
|
};
|
||||||
|
|
|
@ -53,8 +53,8 @@ bool skipComment(const char *&from, const char *end) {
|
||||||
while (from < end && *from != '\n' && *from != '\r') {
|
while (from < end && *from != '\n' && *from != '\r') {
|
||||||
++from;
|
++from;
|
||||||
}
|
}
|
||||||
++from;
|
if (from < end) ++from;
|
||||||
return (from < end);
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,17 +38,17 @@ using std::exception;
|
||||||
class Exception : public exception {
|
class Exception : public exception {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Exception(const QString &msg) : _msg(msg) {
|
Exception(const QString &msg) : _msg(msg.toUtf8()) {
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual const char *what() const throw() {
|
virtual const char *what() const throw() {
|
||||||
return _msg.toUtf8().constData();
|
return _msg.constData();
|
||||||
}
|
}
|
||||||
virtual ~Exception() throw() {
|
virtual ~Exception() throw() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString _msg;
|
QByteArray _msg;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool genLang(const QString &lang_in, const QString &lang_out);
|
bool genLang(const QString &lang_in, const QString &lang_out);
|
||||||
|
|
|
@ -60,7 +60,7 @@ string outputTypeNames[] = {
|
||||||
"color",
|
"color",
|
||||||
"point",
|
"point",
|
||||||
"rect",
|
"rect",
|
||||||
"rect",
|
"sprite",
|
||||||
"size",
|
"size",
|
||||||
"transition",
|
"transition",
|
||||||
"cursor",
|
"cursor",
|
||||||
|
@ -1302,7 +1302,11 @@ string prepareObject(const string &cls, Fields fields, const string &obj, int va
|
||||||
} else if (f.value().first != j.value()) {
|
} else if (f.value().first != j.value()) {
|
||||||
throw Exception(QString("Bad type of field %1 while parsing %2").arg(j.key().c_str()).arg(obj.c_str()));
|
throw Exception(QString("Bad type of field %1 while parsing %2").arg(j.key().c_str()).arg(obj.c_str()));
|
||||||
} else {
|
} else {
|
||||||
result += findScalarVariant(f.value().second, variant);
|
if (variant == -1) { // retina
|
||||||
|
result += findScalarVariant(f.value().second, (j.value() == scSprite) ? 4 : 0);
|
||||||
|
} else {
|
||||||
|
result += findScalarVariant(f.value().second, variant);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
fields.erase(f);
|
fields.erase(f);
|
||||||
if (++j != e) {
|
if (++j != e) {
|
||||||
|
@ -1518,7 +1522,7 @@ GNU General Public License for more details.\n\
|
||||||
Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE\n\
|
Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE\n\
|
||||||
Copyright (c) 2014 John Preston, https://tdesktop.com\n\
|
Copyright (c) 2014 John Preston, https://tdesktop.com\n\
|
||||||
*/\n";
|
*/\n";
|
||||||
tcpp << "#include \"stdafx.h\"\n#include \"style_auto.h\"\n\n";
|
tcpp << "#include \"stdafx.h\"\n#include \"style_auto.h\"\n\nnamespace {\n";
|
||||||
for (int i = 0, l = scalars.size(); i < l; ++i) {
|
for (int i = 0, l = scalars.size(); i < l; ++i) {
|
||||||
Scalar &sc(scalars[i]);
|
Scalar &sc(scalars[i]);
|
||||||
tout << "\textern const style::" << outputTypeNames[sc.second.first].c_str() << " &" << sc.first.c_str() << ";\n";
|
tout << "\textern const style::" << outputTypeNames[sc.second.first].c_str() << " &" << sc.first.c_str() << ";\n";
|
||||||
|
@ -1531,7 +1535,8 @@ Copyright (c) 2014 John Preston, https://tdesktop.com\n\
|
||||||
tout << "\textern const style::" << obj.second.first.c_str() << " &" << obj.first.c_str() << ";\n";
|
tout << "\textern const style::" << obj.second.first.c_str() << " &" << obj.first.c_str() << ";\n";
|
||||||
tcpp << "\tstyle::" << obj.second.first.c_str() << " _" << obj.first.c_str() << prepareObject(obj.second.first, obj.second.second, obj.first, variant).c_str() << ";\n";
|
tcpp << "\tstyle::" << obj.second.first.c_str() << " _" << obj.first.c_str() << prepareObject(obj.second.first, obj.second.second, obj.first, variant).c_str() << ";\n";
|
||||||
}
|
}
|
||||||
tout << "\n};\n";
|
tout << "};\n";
|
||||||
|
tcpp << "};\n";
|
||||||
|
|
||||||
tcpp << "\nnamespace st {\n";
|
tcpp << "\nnamespace st {\n";
|
||||||
for (int i = 0, l = scalars.size(); i < l; ++i) {
|
for (int i = 0, l = scalars.size(); i < l; ++i) {
|
||||||
|
@ -1543,15 +1548,33 @@ Copyright (c) 2014 John Preston, https://tdesktop.com\n\
|
||||||
Object &obj(objects[i]);
|
Object &obj(objects[i]);
|
||||||
tcpp << "\tconst style::" << obj.second.first.c_str() << " &" << obj.first.c_str() << "(_" << obj.first.c_str() << ");\n";
|
tcpp << "\tconst style::" << obj.second.first.c_str() << " &" << obj.first.c_str() << "(_" << obj.first.c_str() << ");\n";
|
||||||
}
|
}
|
||||||
tcpp << "\n};\n";
|
tcpp << "};\n";
|
||||||
|
|
||||||
tcpp << "\nnamespace style {\n\n";
|
tcpp << "\nnamespace style {\n\n";
|
||||||
tcpp << "\tFontFamilies _fontFamilies;\n";
|
tcpp << "\tFontFamilies _fontFamilies;\n";
|
||||||
tcpp << "\tFontDatas _fontsMap;\n";
|
tcpp << "\tFontDatas _fontsMap;\n";
|
||||||
tcpp << "\tColorDatas _colorsMap;\n\n";
|
tcpp << "\tColorDatas _colorsMap;\n\n";
|
||||||
tcpp << "\tvoid startManager() {\n";
|
tcpp << "\tvoid startManager() {\n";
|
||||||
|
|
||||||
tcpp << "\n\t\tswitch (cScale()) {\n\n";
|
tcpp << "\n\t\tif (cRetina()) {\n";
|
||||||
|
tcpp << "\t\t\tcSetRealScale(dbisOne);\n\n";
|
||||||
|
for (int i = 0, l = scalars.size(); i < l; ++i) {
|
||||||
|
Scalar &sc(scalars[i]);
|
||||||
|
if (sc.second.first == scSprite || sc.first == "spriteFile" || sc.first == "emojisFile" || sc.first == "emojiImgSize") {
|
||||||
|
string v = findScalarVariant(sc.second.second, 4);
|
||||||
|
if (v != findScalarVariant(sc.second.second, 0)) {
|
||||||
|
tcpp << "\t\t\t_" << sc.first.c_str() << " = style::" << outputTypeNames[sc.second.first].c_str() << v.c_str() << ";\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int i = 0, l = objects.size(); i < l; ++i) {
|
||||||
|
Object &obj(objects[i]);
|
||||||
|
string v = prepareObject(obj.second.first, obj.second.second, obj.first, -1); // retina
|
||||||
|
if (v != prepareObject(obj.second.first, obj.second.second, obj.first, 0)) {
|
||||||
|
tcpp << "\t\t\t_" << obj.first.c_str() << " = style::" << obj.second.first.c_str() << v.c_str() << ";\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tcpp << "\t\t} else switch (cScale()) {\n\n";
|
||||||
for (int i = 1; i < variantsCount; ++i) {
|
for (int i = 1; i < variantsCount; ++i) {
|
||||||
variant = variants[i];
|
variant = variants[i];
|
||||||
const char *varName = variantNames[i];
|
const char *varName = variantNames[i];
|
||||||
|
|
|
@ -37,17 +37,17 @@ using std::exception;
|
||||||
class Exception : public exception {
|
class Exception : public exception {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Exception(const QString &msg) : _msg(msg) {
|
Exception(const QString &msg) : _msg(msg.toUtf8()) {
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual const char *what() const throw() {
|
virtual const char *what() const throw() {
|
||||||
return _msg.toUtf8().constData();
|
return _msg.constData();
|
||||||
}
|
}
|
||||||
virtual ~Exception() throw() {
|
virtual ~Exception() throw() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString _msg;
|
QByteArray _msg;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool genStyles(const QString &classes_in, const QString &classes_out, const QString &styles_in, const QString &styles_out, const QString &path_to_sprites);
|
bool genStyles(const QString &classes_in, const QString &classes_out, const QString &styles_in, const QString &styles_out, const QString &path_to_sprites);
|
||||||
|
|
|
@ -18,15 +18,32 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
#include "memain.h"
|
#include "memain.h"
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
QString emoji_in("."), emoji_out("emoji_config.cpp");
|
QString emoji_in("."), emoji_out("emoji_config.cpp"), emoji_png("./SourceFiles/art/emoji");
|
||||||
for (int i = 0; i < argc; ++i) {
|
for (int i = 0; i < argc; ++i) {
|
||||||
if (string("-emoji_in") == argv[i]) {
|
if (string("-emoji_in") == argv[i]) {
|
||||||
if (++i < argc) emoji_in = argv[i];
|
if (++i < argc) emoji_in = argv[i];
|
||||||
} else if (string("-emoji_out") == argv[i]) {
|
} else if (string("-emoji_out") == argv[i]) {
|
||||||
if (++i < argc) emoji_out = argv[i];
|
if (++i < argc) emoji_out = argv[i];
|
||||||
|
} else if (string("-emoji_png") == argv[i]) {
|
||||||
|
if (++i < argc) emoji_png = argv[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
QObject *taskImpl = new GenEmoji(emoji_in, emoji_out);
|
#ifdef Q_OS_MAC
|
||||||
|
if (QDir(QString()).absolutePath() == "/") {
|
||||||
|
QString first = argc ? QString::fromLocal8Bit(argv[0]) : QString();
|
||||||
|
if (!first.isEmpty()) {
|
||||||
|
QFileInfo info(first);
|
||||||
|
if (info.exists()) {
|
||||||
|
QDir result(info.absolutePath() + "/../../..");
|
||||||
|
QString basePath = result.absolutePath() + '/';
|
||||||
|
emoji_in = basePath + emoji_in;
|
||||||
|
emoji_out = basePath + emoji_out;
|
||||||
|
emoji_png = basePath + emoji_png;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
QObject *taskImpl = new GenEmoji(emoji_in, emoji_out, emoji_png);
|
||||||
|
|
||||||
QGuiApplication a(argc, argv);
|
QGuiApplication a(argc, argv);
|
||||||
|
|
||||||
|
|
|
@ -111,12 +111,26 @@ int32 *hashSha1(const void *data, uint32 len, void *dest) {
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
QString workDir;
|
||||||
|
#ifdef Q_OS_MAC
|
||||||
|
if (QDir(QString()).absolutePath() == "/") {
|
||||||
|
QString first = argc ? QString::fromLocal8Bit(argv[0]) : QString();
|
||||||
|
if (!first.isEmpty()) {
|
||||||
|
QFileInfo info(first);
|
||||||
|
if (info.exists()) {
|
||||||
|
QDir result(info.absolutePath() + "/../../..");
|
||||||
|
workDir = result.absolutePath() + '/';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
QString remove;
|
QString remove;
|
||||||
int version = 0;
|
int version = 0;
|
||||||
QFileInfoList files;
|
QFileInfoList files;
|
||||||
for (int i = 0; i < argc; ++i) {
|
for (int i = 0; i < argc; ++i) {
|
||||||
if (string("-path") == argv[i] && i + 1 < argc) {
|
if (string("-path") == argv[i] && i + 1 < argc) {
|
||||||
QString path = QString(argv[i + 1]);
|
QString path = workDir + QString(argv[i + 1]);
|
||||||
QFileInfo info(path);
|
QFileInfo info(path);
|
||||||
files.push_back(info);
|
files.push_back(info);
|
||||||
if (remove.isEmpty()) remove = info.canonicalPath() + "/";
|
if (remove.isEmpty()) remove = info.canonicalPath() + "/";
|
||||||
|
@ -126,8 +140,12 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
if (files.isEmpty() || remove.isEmpty() || version <= 1016 || version > 999999) { // not for release =)
|
if (files.isEmpty() || remove.isEmpty() || version <= 1016 || version > 999999) { // not for release =)
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
cout << "Usage: Packer.exe -path {file} -version {version} OR Packer.exe -path {dir} -version {version}\n";
|
cout << "Usage: Packer.exe -path {file} -version {version} OR Packer.exe -path {dir} -version {version}\n";
|
||||||
return 0;
|
#elif defined Q_OS_MAC
|
||||||
|
cout << "Usage: Packer.app -path {file} -version {version} OR Packer.app -path {dir} -version {version}\n";
|
||||||
|
#endif
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool hasDirs = true;
|
bool hasDirs = true;
|
||||||
|
@ -147,6 +165,10 @@ int main(int argc, char *argv[])
|
||||||
} else if (!info.isReadable()) {
|
} else if (!info.isReadable()) {
|
||||||
cout << "Can't read: " << info.absoluteFilePath().toUtf8().constData() << "\n";
|
cout << "Can't read: " << info.absoluteFilePath().toUtf8().constData() << "\n";
|
||||||
return -1;
|
return -1;
|
||||||
|
} else if (info.isHidden()) {
|
||||||
|
hasDirs = true;
|
||||||
|
files.erase(i);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -182,6 +204,9 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
QByteArray inner = f.readAll();
|
QByteArray inner = f.readAll();
|
||||||
stream << name << quint32(inner.size()) << inner;
|
stream << name << quint32(inner.size()) << inner;
|
||||||
|
#if defined Q_OS_MAC || defined Q_OS_LINUX
|
||||||
|
stream << (QFileInfo(fullName).isExecutable() ? true : false);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
if (stream.status() != QDataStream::Ok) {
|
if (stream.status() != QDataStream::Ok) {
|
||||||
cout << "Stream status is bad: " << stream.status() << "\n";
|
cout << "Stream status is bad: " << stream.status() << "\n";
|
||||||
|
@ -193,20 +218,19 @@ int main(int argc, char *argv[])
|
||||||
cout << "Compression start, size: " << resultSize << "\n";
|
cout << "Compression start, size: " << resultSize << "\n";
|
||||||
|
|
||||||
QByteArray compressed, resultCheck;
|
QByteArray compressed, resultCheck;
|
||||||
|
#ifdef Q_OS_WIN // use Lzma SDK for win
|
||||||
const int32 hSigLen = 128, hShaLen = 20, hPropsLen = LZMA_PROPS_SIZE, hOriginalSizeLen = sizeof(int32), hSize = hSigLen + hShaLen + hPropsLen + hOriginalSizeLen; // header
|
const int32 hSigLen = 128, hShaLen = 20, hPropsLen = LZMA_PROPS_SIZE, hOriginalSizeLen = sizeof(int32), hSize = hSigLen + hShaLen + hPropsLen + hOriginalSizeLen; // header
|
||||||
|
|
||||||
compressed.resize(hSize + resultSize + 1024 * 1024); // rsa signature + sha1 + lzma props + max compressed size
|
compressed.resize(hSize + resultSize + 1024 * 1024); // rsa signature + sha1 + lzma props + max compressed size
|
||||||
|
|
||||||
size_t compressedLen = compressed.size() - hSize;
|
size_t compressedLen = compressed.size() - hSize;
|
||||||
uchar outProps[LZMA_PROPS_SIZE];
|
|
||||||
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);
|
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);
|
||||||
if (res != SZ_OK) {
|
if (res != SZ_OK) {
|
||||||
cout << "Error in compression: " << res << "\n";
|
cout << "Error in compression: " << res << "\n";
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
compressed.resize(hSize + compressedLen);
|
compressed.resize(int(hSize + compressedLen));
|
||||||
memcpy(compressed.data() + hSigLen + hShaLen + hPropsLen, &resultSize, hOriginalSizeLen);
|
memcpy(compressed.data() + hSigLen + hShaLen + hPropsLen, &resultSize, hOriginalSizeLen);
|
||||||
|
|
||||||
cout << "Compressed to size: " << compressedLen << "\n";
|
cout << "Compressed to size: " << compressedLen << "\n";
|
||||||
|
@ -228,10 +252,112 @@ int main(int argc, char *argv[])
|
||||||
cout << "Uncompress failed: " << uncompressRes << "\n";
|
cout << "Uncompress failed: " << uncompressRes << "\n";
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (resultLen != result.size()) {
|
if (resultLen != size_t(result.size())) {
|
||||||
cout << "Uncompress bad size: " << resultLen << ", was: " << result.size() << "\n";
|
cout << "Uncompress bad size: " << resultLen << ", was: " << result.size() << "\n";
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
#else // use liblzma for others
|
||||||
|
const int32 hSigLen = 128, hShaLen = 20, hPropsLen = 0, hOriginalSizeLen = sizeof(int32), hSize = hSigLen + hShaLen + hOriginalSizeLen; // header
|
||||||
|
|
||||||
|
compressed.resize(hSize + resultSize + 1024 * 1024); // rsa signature + sha1 + lzma props + max compressed size
|
||||||
|
|
||||||
|
size_t compressedLen = compressed.size() - hSize;
|
||||||
|
|
||||||
|
lzma_stream stream = LZMA_STREAM_INIT;
|
||||||
|
|
||||||
|
int preset = 9 | LZMA_PRESET_EXTREME;
|
||||||
|
lzma_ret ret = lzma_easy_encoder(&stream, preset, LZMA_CHECK_CRC64);
|
||||||
|
if (ret != LZMA_OK) {
|
||||||
|
const char *msg;
|
||||||
|
switch (ret) {
|
||||||
|
case LZMA_MEM_ERROR: msg = "Memory allocation failed"; break;
|
||||||
|
case LZMA_OPTIONS_ERROR: msg = "Specified preset is not supported"; break;
|
||||||
|
case LZMA_UNSUPPORTED_CHECK: msg = "Specified integrity check is not supported"; break;
|
||||||
|
default: msg = "Unknown error, possibly a bug"; break;
|
||||||
|
}
|
||||||
|
cout << "Error initializing the encoder: " << msg << " (error code " << ret << ")\n";
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
stream.avail_in = resultSize;
|
||||||
|
stream.next_in = (uint8_t*)result.constData();
|
||||||
|
stream.avail_out = compressedLen;
|
||||||
|
stream.next_out = (uint8_t*)(compressed.data() + hSize);
|
||||||
|
|
||||||
|
lzma_ret res = lzma_code(&stream, LZMA_FINISH);
|
||||||
|
compressedLen -= stream.avail_out;
|
||||||
|
lzma_end(&stream);
|
||||||
|
if (res != LZMA_OK && res != LZMA_STREAM_END) {
|
||||||
|
const char *msg;
|
||||||
|
switch (res) {
|
||||||
|
case LZMA_MEM_ERROR: msg = "Memory allocation failed"; break;
|
||||||
|
case LZMA_DATA_ERROR: msg = "File size limits exceeded"; break;
|
||||||
|
default: msg = "Unknown error, possibly a bug"; break;
|
||||||
|
}
|
||||||
|
cout << "Error in compression: " << msg << " (error code " << res << ")\n";
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
compressed.resize(int(hSize + compressedLen));
|
||||||
|
memcpy(compressed.data() + hSigLen + hShaLen, &resultSize, hOriginalSizeLen);
|
||||||
|
|
||||||
|
cout << "Compressed to size: " << compressedLen << "\n";
|
||||||
|
|
||||||
|
cout << "Checking uncompressed..\n";
|
||||||
|
|
||||||
|
int32 resultCheckLen;
|
||||||
|
memcpy(&resultCheckLen, compressed.constData() + hSigLen + hShaLen, hOriginalSizeLen);
|
||||||
|
if (resultCheckLen <= 0 || resultCheckLen > 1024 * 1024 * 1024) {
|
||||||
|
cout << "Bad result len: " << resultCheckLen << "\n";
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
resultCheck.resize(resultCheckLen);
|
||||||
|
|
||||||
|
size_t resultLen = resultCheck.size();
|
||||||
|
|
||||||
|
stream = LZMA_STREAM_INIT;
|
||||||
|
|
||||||
|
ret = lzma_stream_decoder(&stream, UINT64_MAX, LZMA_CONCATENATED);
|
||||||
|
if (ret != LZMA_OK) {
|
||||||
|
const char *msg;
|
||||||
|
switch (ret) {
|
||||||
|
case LZMA_MEM_ERROR: msg = "Memory allocation failed"; break;
|
||||||
|
case LZMA_OPTIONS_ERROR: msg = "Specified preset is not supported"; break;
|
||||||
|
case LZMA_UNSUPPORTED_CHECK: msg = "Specified integrity check is not supported"; break;
|
||||||
|
default: msg = "Unknown error, possibly a bug"; break;
|
||||||
|
}
|
||||||
|
cout << "Error initializing the decoder: " << msg << " (error code " << ret << ")\n";
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
stream.avail_in = compressedLen;
|
||||||
|
stream.next_in = (uint8_t*)(compressed.constData() + hSize);
|
||||||
|
stream.avail_out = resultLen;
|
||||||
|
stream.next_out = (uint8_t*)resultCheck.data();
|
||||||
|
|
||||||
|
res = lzma_code(&stream, LZMA_FINISH);
|
||||||
|
if (stream.avail_in) {
|
||||||
|
cout << "Error in decompression, " << stream.avail_in << " bytes left in _in of " << compressedLen << " whole.\n";
|
||||||
|
return -1;
|
||||||
|
} else if (stream.avail_out) {
|
||||||
|
cout << "Error in decompression, " << stream.avail_out << " bytes free left in _out of " << resultLen << " whole.\n";
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
lzma_end(&stream);
|
||||||
|
if (res != LZMA_OK && res != LZMA_STREAM_END) {
|
||||||
|
const char *msg;
|
||||||
|
switch (res) {
|
||||||
|
case LZMA_MEM_ERROR: msg = "Memory allocation failed"; break;
|
||||||
|
case LZMA_FORMAT_ERROR: msg = "The input data is not in the .xz format"; break;
|
||||||
|
case LZMA_OPTIONS_ERROR: msg = "Unsupported compression options"; break;
|
||||||
|
case LZMA_DATA_ERROR: msg = "Compressed file is corrupt"; break;
|
||||||
|
case LZMA_BUF_ERROR: msg = "Compressed data is truncated or otherwise corrupt"; break;
|
||||||
|
default: msg = "Unknown error, possibly a bug"; break;
|
||||||
|
}
|
||||||
|
cout << "Error in decompression: " << msg << " (error code " << res << ")\n";
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (memcmp(result.constData(), resultCheck.constData(), resultLen)) {
|
if (memcmp(result.constData(), resultCheck.constData(), resultLen)) {
|
||||||
cout << "Data differ :(\n";
|
cout << "Data differ :(\n";
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -242,7 +368,7 @@ int main(int argc, char *argv[])
|
||||||
cout << "Counting SHA1 hash..\n";
|
cout << "Counting SHA1 hash..\n";
|
||||||
|
|
||||||
uchar sha1Buffer[20];
|
uchar sha1Buffer[20];
|
||||||
memcpy(compressed.data() + hSigLen, hashSha1(compressed.constData() + hSigLen + hShaLen, compressedLen + hPropsLen + hOriginalSizeLen, sha1Buffer), hShaLen); // count sha1
|
memcpy(compressed.data() + hSigLen, hashSha1(compressed.constData() + hSigLen + hShaLen, uint32(compressedLen + hPropsLen + hOriginalSizeLen), sha1Buffer), hShaLen); // count sha1
|
||||||
|
|
||||||
uint32 siglen = 0;
|
uint32 siglen = 0;
|
||||||
|
|
||||||
|
@ -283,7 +409,15 @@ int main(int argc, char *argv[])
|
||||||
cout << "Signature verified!\n";
|
cout << "Signature verified!\n";
|
||||||
RSA_free(pbKey);
|
RSA_free(pbKey);
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
QString outName(QString("tupdate%1").arg(version));
|
QString outName(QString("tupdate%1").arg(version));
|
||||||
|
#elif defined Q_OS_MAC
|
||||||
|
QString outName(QString("tmacupd%1").arg(version));
|
||||||
|
#elif defined Q_OS_LINUX
|
||||||
|
QString outName(QString("tlinuxupd%1").arg(version));
|
||||||
|
#else
|
||||||
|
#error Unknown platform!
|
||||||
|
#endif
|
||||||
QFile out(outName);
|
QFile out(outName);
|
||||||
if (!out.open(QIODevice::WriteOnly)) {
|
if (!out.open(QIODevice::WriteOnly)) {
|
||||||
cout << "Can't open '" << outName.toUtf8().constData() << "' for write..\n";
|
cout << "Can't open '" << outName.toUtf8().constData() << "' for write..\n";
|
||||||
|
|
|
@ -34,7 +34,11 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
#include <openssl/aes.h>
|
#include <openssl/aes.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN // use Lzma SDK for win
|
||||||
#include <LzmaLib.h>
|
#include <LzmaLib.h>
|
||||||
|
#else
|
||||||
|
#include <lzma.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
207
Telegram/SourceFiles/_other/updater_osx.m
Normal file
207
Telegram/SourceFiles/_other/updater_osx.m
Normal file
|
@ -0,0 +1,207 @@
|
||||||
|
/*
|
||||||
|
This file is part of Telegram Desktop,
|
||||||
|
an unofficial desktop 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://tdesktop.com
|
||||||
|
*/
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
NSString *appName = @"Telegram.app";
|
||||||
|
NSString *appDir = nil;
|
||||||
|
NSString *workDir = nil;
|
||||||
|
|
||||||
|
#ifdef _DEBUG
|
||||||
|
BOOL _debug = YES;
|
||||||
|
#else
|
||||||
|
BOOL _debug = NO;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
NSFileHandle *_logFile = nil;
|
||||||
|
void openLog() {
|
||||||
|
if (!_debug || _logFile) return;
|
||||||
|
NSString *logDir = [workDir stringByAppendingString:@"DebugLogs"];
|
||||||
|
if (![[NSFileManager defaultManager] createDirectoryAtPath:logDir withIntermediateDirectories:YES attributes:nil error:nil]) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
NSDateFormatter *fmt = [[NSDateFormatter alloc] initWithDateFormat:@"DebugLogs/%Y%m%d %H%M%S_upd.txt" allowNaturalLanguage:NO];
|
||||||
|
NSString *logPath = [workDir stringByAppendingString:[fmt stringFromDate:[NSDate date]]];
|
||||||
|
[[NSFileManager defaultManager] createFileAtPath:logPath contents:nil attributes:nil];
|
||||||
|
_logFile = [NSFileHandle fileHandleForWritingAtPath:logPath];
|
||||||
|
}
|
||||||
|
|
||||||
|
void closeLog() {
|
||||||
|
if (!_logFile) return;
|
||||||
|
|
||||||
|
[_logFile closeFile];
|
||||||
|
}
|
||||||
|
|
||||||
|
void writeLog(NSString *msg) {
|
||||||
|
if (!_logFile) return;
|
||||||
|
|
||||||
|
[_logFile writeData:[[msg stringByAppendingString:@"\n"] dataUsingEncoding:NSUTF8StringEncoding]];
|
||||||
|
[_logFile synchronizeFile];
|
||||||
|
}
|
||||||
|
|
||||||
|
void delFolder() {
|
||||||
|
[[NSFileManager defaultManager] removeItemAtPath:[workDir stringByAppendingString:@"tupdates/ready"] error:nil];
|
||||||
|
rmdir([[workDir stringByAppendingString:@"tupdates"] fileSystemRepresentation]);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, const char * argv[]) {
|
||||||
|
NSString *path = [[NSBundle mainBundle] bundlePath];
|
||||||
|
if (!path) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
NSRange range = [path rangeOfString:appName options:NSBackwardsSearch];
|
||||||
|
if (range.location == NSNotFound) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
appDir = [path substringToIndex:range.location > 0 ? range.location : 0];
|
||||||
|
|
||||||
|
openLog();
|
||||||
|
pid_t procId = 0;
|
||||||
|
BOOL update = YES, toSettings = NO, autoStart = NO;
|
||||||
|
NSString *key = nil;
|
||||||
|
for (int i = 0; i < argc; ++i) {
|
||||||
|
if ([@"-workpath" isEqualToString:[NSString stringWithUTF8String:argv[i]]]) {
|
||||||
|
if (++i < argc) {
|
||||||
|
workDir = [NSString stringWithUTF8String:argv[i]];
|
||||||
|
}
|
||||||
|
} else if ([@"-procid" isEqualToString:[NSString stringWithUTF8String:argv[i]]]) {
|
||||||
|
if (++i < argc) {
|
||||||
|
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
|
||||||
|
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
|
||||||
|
procId = [[formatter numberFromString:[NSString stringWithUTF8String:argv[i]]] intValue];
|
||||||
|
}
|
||||||
|
} else if ([@"-noupdate" isEqualToString:[NSString stringWithUTF8String:argv[i]]]) {
|
||||||
|
update = NO;
|
||||||
|
} else if ([@"-tosettings" isEqualToString:[NSString stringWithUTF8String:argv[i]]]) {
|
||||||
|
toSettings = YES;
|
||||||
|
} else if ([@"-autostart" isEqualToString:[NSString stringWithUTF8String:argv[i]]]) {
|
||||||
|
autoStart = YES;
|
||||||
|
} else if ([@"-debug" isEqualToString:[NSString stringWithUTF8String:argv[i]]]) {
|
||||||
|
_debug = YES;
|
||||||
|
} else if ([@"-key" isEqualToString:[NSString stringWithUTF8String:argv[i]]]) {
|
||||||
|
if (++i < argc) key = [NSString stringWithUTF8String:argv[i]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!workDir) workDir = appDir;
|
||||||
|
openLog();
|
||||||
|
NSMutableArray *argsArr = [[NSMutableArray alloc] initWithCapacity:argc];
|
||||||
|
for (int i = 0; i < argc; ++i) {
|
||||||
|
[argsArr addObject:[NSString stringWithUTF8String:argv[i]]];
|
||||||
|
}
|
||||||
|
writeLog([[NSArray arrayWithObjects:@"Arguments: '", [argsArr componentsJoinedByString:@"' '"], @"'..", nil] componentsJoinedByString:@""]);
|
||||||
|
if (key) writeLog([@"Key: " stringByAppendingString:key]);
|
||||||
|
if (toSettings) writeLog(@"To Settings!");
|
||||||
|
|
||||||
|
if (procId) {
|
||||||
|
NSRunningApplication *app = [NSRunningApplication runningApplicationWithProcessIdentifier:procId];
|
||||||
|
for (int i = 0; i < 5 && app != nil && ![app isTerminated]; ++i) {
|
||||||
|
usleep(200000);
|
||||||
|
app = [NSRunningApplication runningApplicationWithProcessIdentifier:procId];
|
||||||
|
}
|
||||||
|
if (app) [app forceTerminate];
|
||||||
|
app = [NSRunningApplication runningApplicationWithProcessIdentifier:procId];
|
||||||
|
for (int i = 0; i < 5 && app != nil && ![app isTerminated]; ++i) {
|
||||||
|
usleep(200000);
|
||||||
|
app = [NSRunningApplication runningApplicationWithProcessIdentifier:procId];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (update) {
|
||||||
|
writeLog(@"Starting update files iteration!");
|
||||||
|
|
||||||
|
NSFileManager *fileManager = [NSFileManager defaultManager];
|
||||||
|
NSString *srcDir = [workDir stringByAppendingString:@"tupdates/ready/"];
|
||||||
|
NSArray *keys = [NSArray arrayWithObject:NSURLIsDirectoryKey];
|
||||||
|
NSDirectoryEnumerator *enumerator = [fileManager
|
||||||
|
enumeratorAtURL:[NSURL fileURLWithPath:[workDir stringByAppendingString:@"tupdates/ready"]]
|
||||||
|
includingPropertiesForKeys:keys
|
||||||
|
options:0
|
||||||
|
errorHandler:^(NSURL *url, NSError *error) {
|
||||||
|
return NO;
|
||||||
|
}];
|
||||||
|
for (NSURL *url in enumerator) {
|
||||||
|
NSString *srcPath = [url path];
|
||||||
|
writeLog([@"Handling file " stringByAppendingString:srcPath]);
|
||||||
|
NSRange r = [srcPath rangeOfString:srcDir];
|
||||||
|
if (r.location != 0) {
|
||||||
|
writeLog([@"Bad file found, no base path " stringByAppendingString:srcPath]);
|
||||||
|
delFolder();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
NSString *pathPart = [srcPath substringFromIndex:r.length];
|
||||||
|
if ([pathPart rangeOfString:appName].location != 0) {
|
||||||
|
writeLog([@"Skipping not app file " stringByAppendingString:srcPath]);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
NSString *dstPath = [appDir stringByAppendingString:pathPart];
|
||||||
|
NSError *error;
|
||||||
|
NSNumber *isDirectory = nil;
|
||||||
|
writeLog([[NSArray arrayWithObjects: @"Copying file ", srcPath, @" to ", dstPath, nil] componentsJoinedByString:@""]);
|
||||||
|
if (![url getResourceValue:&isDirectory forKey:NSURLIsDirectoryKey error:&error]) {
|
||||||
|
writeLog([@"Failed to get IsDirectory for file " stringByAppendingString:[url path]]);
|
||||||
|
delFolder();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ([isDirectory boolValue]) {
|
||||||
|
if (![fileManager createDirectoryAtPath:dstPath withIntermediateDirectories:YES attributes:nil error:nil]) {
|
||||||
|
writeLog([@"Failed to force path for directory " stringByAppendingString:dstPath]);
|
||||||
|
delFolder();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else if ([fileManager fileExistsAtPath:dstPath]) {
|
||||||
|
if (![[NSData dataWithContentsOfFile:srcPath] writeToFile:dstPath atomically:YES]) {
|
||||||
|
writeLog([@"Failed to edit file " stringByAppendingString:dstPath]);
|
||||||
|
delFolder();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (![fileManager copyItemAtPath:srcPath toPath:dstPath error:nil]) {
|
||||||
|
writeLog([@"Failed to copy file to " stringByAppendingString:dstPath]);
|
||||||
|
delFolder();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delFolder();
|
||||||
|
}
|
||||||
|
|
||||||
|
NSString *appPath = [[NSArray arrayWithObjects:appDir, appName, nil] componentsJoinedByString:@""];
|
||||||
|
NSMutableArray *args = [[NSMutableArray alloc] initWithObjects:@"-noupdate", nil];
|
||||||
|
if (toSettings) [args addObject:@"-tosettings"];
|
||||||
|
if (_debug) [args addObject:@"-debug"];
|
||||||
|
if (autoStart) [args addObject:@"-autostart"];
|
||||||
|
if (key) {
|
||||||
|
[args addObject:@"-key"];
|
||||||
|
[args addObject:key];
|
||||||
|
}
|
||||||
|
writeLog([[NSArray arrayWithObjects:@"Running application '", appPath, @"' with args '", [args componentsJoinedByString:@"' '"], @"'..", nil] componentsJoinedByString:@""]);
|
||||||
|
NSError *error = nil;
|
||||||
|
NSRunningApplication *result = [[NSWorkspace sharedWorkspace]
|
||||||
|
launchApplicationAtURL:[NSURL fileURLWithPath:appPath]
|
||||||
|
options:NSWorkspaceLaunchDefault
|
||||||
|
configuration:[NSDictionary
|
||||||
|
dictionaryWithObject:args
|
||||||
|
forKey:NSWorkspaceLaunchConfigurationArguments]
|
||||||
|
error:&error];
|
||||||
|
if (!result) {
|
||||||
|
writeLog([@"Could not run application, error: " stringByAppendingString:error ? [error localizedDescription] : @"(nil)"]);
|
||||||
|
}
|
||||||
|
closeLog();
|
||||||
|
return result ? 0 : -1;
|
||||||
|
}
|
||||||
|
|
|
@ -156,6 +156,13 @@ namespace App {
|
||||||
return (peer_id & 0x100000000L) ? MTP_peerChat(MTP_int(int32(peer_id & 0xFFFFFFFFL))) : MTP_peerUser(MTP_int(int32(peer_id & 0xFFFFFFFFL)));
|
return (peer_id & 0x100000000L) ? MTP_peerChat(MTP_int(int32(peer_id & 0xFFFFFFFFL))) : MTP_peerUser(MTP_int(int32(peer_id & 0xFFFFFFFFL)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int32 userFromPeer(const PeerId &peer_id) {
|
||||||
|
return (peer_id & 0x100000000L) ? 0 : int32(peer_id & 0xFFFFFFFFL);
|
||||||
|
}
|
||||||
|
int32 chatFromPeer(const PeerId &peer_id) {
|
||||||
|
return (peer_id & 0x100000000L) ? int32(peer_id & 0xFFFFFFFFL) : 0;
|
||||||
|
}
|
||||||
|
|
||||||
int32 onlineWillChangeIn(int32 online, int32 now) {
|
int32 onlineWillChangeIn(int32 online, int32 now) {
|
||||||
if (online <= 0) return 86400;
|
if (online <= 0) return 86400;
|
||||||
if (online > now) {
|
if (online > now) {
|
||||||
|
@ -314,7 +321,7 @@ namespace App {
|
||||||
case mtpc_userStatusOnline: data->onlineTill = status->c_userStatusOnline().vexpires.v; break;
|
case mtpc_userStatusOnline: data->onlineTill = status->c_userStatusOnline().vexpires.v; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data->contact < 0 && !data->phone.isEmpty() && data->id != MTP::authedId()) {
|
if (data->contact < 0 && !data->phone.isEmpty() && (data->id & 0xFFFFFFFF) != MTP::authedId()) {
|
||||||
data->contact = 0;
|
data->contact = 0;
|
||||||
}
|
}
|
||||||
if (data->contact > 0 && !wasContact) {
|
if (data->contact > 0 && !wasContact) {
|
||||||
|
@ -605,7 +612,7 @@ namespace App {
|
||||||
}
|
}
|
||||||
if (user->contact > 0) {
|
if (user->contact > 0) {
|
||||||
if (!wasContact) {
|
if (!wasContact) {
|
||||||
App::main()->addNewContact(user->id & 0xFFFFFFFF, false);
|
App::main()->addNewContact(App::userFromPeer(user->id), false);
|
||||||
user->input = MTP_inputPeerContact(userId);
|
user->input = MTP_inputPeerContact(userId);
|
||||||
user->inputUser = MTP_inputUserContact(userId);
|
user->inputUser = MTP_inputUserContact(userId);
|
||||||
}
|
}
|
||||||
|
@ -614,7 +621,7 @@ namespace App {
|
||||||
user->input = MTP_inputPeerForeign(userId, MTP_long(user->access));
|
user->input = MTP_inputPeerForeign(userId, MTP_long(user->access));
|
||||||
user->inputUser = MTP_inputUserForeign(userId, MTP_long(user->access));
|
user->inputUser = MTP_inputUserForeign(userId, MTP_long(user->access));
|
||||||
}
|
}
|
||||||
if (user->contact < 0 && !user->phone.isEmpty() && user->id != MTP::authedId()) {
|
if (user->contact < 0 && !user->phone.isEmpty() && App::userFromPeer(user->id) != MTP::authedId()) {
|
||||||
user->contact = 0;
|
user->contact = 0;
|
||||||
}
|
}
|
||||||
if (wasContact) {
|
if (wasContact) {
|
||||||
|
@ -1204,9 +1211,11 @@ namespace App {
|
||||||
|
|
||||||
if (!::sprite) {
|
if (!::sprite) {
|
||||||
::sprite = new QPixmap(st::spriteFile);
|
::sprite = new QPixmap(st::spriteFile);
|
||||||
|
if (cRetina()) ::sprite->setDevicePixelRatio(cRetinaFactor());
|
||||||
}
|
}
|
||||||
if (!::emojis) {
|
if (!::emojis) {
|
||||||
::emojis = new QPixmap(st::emojisFile);
|
::emojis = new QPixmap(st::emojisFile);
|
||||||
|
if (cRetina()) ::emojis->setDevicePixelRatio(cRetinaFactor());
|
||||||
}
|
}
|
||||||
initEmoji();
|
initEmoji();
|
||||||
}
|
}
|
||||||
|
@ -1216,7 +1225,9 @@ namespace App {
|
||||||
textlnkDown(TextLinkPtr());
|
textlnkDown(TextLinkPtr());
|
||||||
|
|
||||||
if (completely) {
|
if (completely) {
|
||||||
|
LOG(("Deleting sound.."));
|
||||||
delete newMsgSound;
|
delete newMsgSound;
|
||||||
|
LOG(("Sound deleted!"));
|
||||||
newMsgSound = 0;
|
newMsgSound = 0;
|
||||||
|
|
||||||
delete ::sprite;
|
delete ::sprite;
|
||||||
|
@ -1300,12 +1311,13 @@ namespace App {
|
||||||
EmojisMap *map = &(fontHeight == st::taDefFlat.font->height ? mainEmojisMap : otherEmojisMap[fontHeight]);
|
EmojisMap *map = &(fontHeight == st::taDefFlat.font->height ? mainEmojisMap : otherEmojisMap[fontHeight]);
|
||||||
EmojisMap::const_iterator i = map->constFind(emoji->code);
|
EmojisMap::const_iterator i = map->constFind(emoji->code);
|
||||||
if (i == map->cend()) {
|
if (i == map->cend()) {
|
||||||
QImage img(st::emojiSize + st::emojiPadding * 2, fontHeight, QImage::Format_ARGB32_Premultiplied);
|
QImage img(st::emojiImgSize + st::emojiPadding * cIntRetinaFactor() * 2, fontHeight * cIntRetinaFactor(), QImage::Format_ARGB32_Premultiplied);
|
||||||
|
if (cRetina()) img.setDevicePixelRatio(cRetinaFactor());
|
||||||
{
|
{
|
||||||
QPainter p(&img);
|
QPainter p(&img);
|
||||||
p.setCompositionMode(QPainter::CompositionMode_Source);
|
p.setCompositionMode(QPainter::CompositionMode_Source);
|
||||||
p.fillRect(0, 0, img.width(), img.height(), Qt::transparent);
|
p.fillRect(0, 0, img.width(), img.height(), Qt::transparent);
|
||||||
p.drawPixmap(QPoint(st::emojiPadding, (fontHeight - st::emojiSize) / 2), App::emojis(), QRect(emoji->x, emoji->y, st::emojiSize, st::emojiSize));
|
p.drawPixmap(QPoint(st::emojiPadding * cIntRetinaFactor(), (fontHeight * cIntRetinaFactor() - st::emojiImgSize) / 2), App::emojis(), QRect(emoji->x, emoji->y, st::emojiImgSize, st::emojiImgSize));
|
||||||
}
|
}
|
||||||
i = map->insert(emoji->code, QPixmap::fromImage(img));
|
i = map->insert(emoji->code, QPixmap::fromImage(img));
|
||||||
}
|
}
|
||||||
|
@ -1605,7 +1617,7 @@ namespace App {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
uint32 dataLen = *(const uint32*)decrypted.constData();
|
uint32 dataLen = *(const uint32*)decrypted.constData();
|
||||||
if (dataLen > decrypted.size() || dataLen <= fullDataLen - 16 || dataLen < 4) {
|
if (dataLen > uint32(decrypted.size()) || dataLen <= fullDataLen - 16 || dataLen < 4) {
|
||||||
LOG(("App Error: bad decrypted part size: %1, fullDataLen: %2, decrypted size: %3").arg(dataLen).arg(fullDataLen).arg(decrypted.size()));
|
LOG(("App Error: bad decrypted part size: %1, fullDataLen: %2, decrypted size: %3").arg(dataLen).arg(fullDataLen).arg(decrypted.size()));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -1771,7 +1783,7 @@ namespace App {
|
||||||
quint32 count;
|
quint32 count;
|
||||||
stream >> count;
|
stream >> count;
|
||||||
|
|
||||||
for (int32 i = 0; i < count; ++i) {
|
for (uint32 i = 0; i < count; ++i) {
|
||||||
readOneMuted(stream);
|
readOneMuted(stream);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,6 +60,8 @@ namespace App {
|
||||||
return peerFromUser(user_id.v);
|
return peerFromUser(user_id.v);
|
||||||
}
|
}
|
||||||
MTPpeer peerToMTP(const PeerId &peer_id);
|
MTPpeer peerToMTP(const PeerId &peer_id);
|
||||||
|
int32 userFromPeer(const PeerId &peer_id);
|
||||||
|
int32 chatFromPeer(const PeerId &peer_id);
|
||||||
|
|
||||||
int32 onlineWillChangeIn(int32 onlineOnServer, int32 nowOnServer);
|
int32 onlineWillChangeIn(int32 onlineOnServer, int32 nowOnServer);
|
||||||
QString onlineText(int32 onlineOnServer, int32 nowOnServer);
|
QString onlineText(int32 onlineOnServer, int32 nowOnServer);
|
||||||
|
|
|
@ -96,6 +96,12 @@ Application::Application(int &argc, char **argv) : PsApplication(argc, argv),
|
||||||
cSetScreenScale(dbisTwo);
|
cSetScreenScale(dbisTwo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (devicePixelRatio() > 1) {
|
||||||
|
cSetRetina(true);
|
||||||
|
cSetRetinaFactor(devicePixelRatio());
|
||||||
|
cSetIntRetinaFactor(int32(cRetinaFactor()));
|
||||||
|
}
|
||||||
|
|
||||||
if (!cLangFile().isEmpty()) {
|
if (!cLangFile().isEmpty()) {
|
||||||
LangLoaderPlain loader(cLangFile());
|
LangLoaderPlain loader(cLangFile());
|
||||||
if (!loader.errors().isEmpty()) {
|
if (!loader.errors().isEmpty()) {
|
||||||
|
@ -177,7 +183,7 @@ void Application::updateGotCurrent() {
|
||||||
if (updates.exists()) {
|
if (updates.exists()) {
|
||||||
QFileInfoList list = updates.entryInfoList(QDir::Files);
|
QFileInfoList list = updates.entryInfoList(QDir::Files);
|
||||||
for (QFileInfoList::iterator i = list.begin(), e = list.end(); i != e; ++i) {
|
for (QFileInfoList::iterator i = list.begin(), e = list.end(); i != e; ++i) {
|
||||||
if (QRegularExpression("^tupdate\\d+$", QRegularExpression::CaseInsensitiveOption).match(i->fileName()).hasMatch()) {
|
if (QRegularExpression("^(tupdate|tmacupd|tlinuxupd)\\d+$", QRegularExpression::CaseInsensitiveOption).match(i->fileName()).hasMatch()) {
|
||||||
QFile(i->absoluteFilePath()).remove();
|
QFile(i->absoluteFilePath()).remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -185,6 +191,7 @@ void Application::updateGotCurrent() {
|
||||||
emit updateLatest();
|
emit updateLatest();
|
||||||
}
|
}
|
||||||
startUpdateCheck(true);
|
startUpdateCheck(true);
|
||||||
|
App::writeConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::updateFailedCurrent(QNetworkReply::NetworkError e) {
|
void Application::updateFailedCurrent(QNetworkReply::NetworkError e) {
|
||||||
|
@ -403,16 +410,16 @@ void Application::startUpdateCheck(bool forceWait) {
|
||||||
if (updates.exists()) {
|
if (updates.exists()) {
|
||||||
QFileInfoList list = updates.entryInfoList(QDir::Files);
|
QFileInfoList list = updates.entryInfoList(QDir::Files);
|
||||||
for (QFileInfoList::iterator i = list.begin(), e = list.end(); i != e; ++i) {
|
for (QFileInfoList::iterator i = list.begin(), e = list.end(); i != e; ++i) {
|
||||||
if (QRegularExpression("^tupdate\\d+$", QRegularExpression::CaseInsensitiveOption).match(i->fileName()).hasMatch()) {
|
if (QRegularExpression("^(tupdate|tmacupd|tlinuxupd)\\d+$", QRegularExpression::CaseInsensitiveOption).match(i->fileName()).hasMatch()) {
|
||||||
sendRequest = true;
|
sendRequest = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (cManyInstance() && !cDebug() || cPlatform() == dbipMac) return; // only main instance is updating
|
if ((cManyInstance() && !cDebug()) || cPlatform() == dbipLinux) return; // only main instance is updating
|
||||||
|
|
||||||
if (sendRequest) {
|
if (sendRequest) {
|
||||||
QNetworkRequest checkVersion(QUrl(qsl("http://tdesktop.com/win/tupdates/current")));
|
QNetworkRequest checkVersion(cUpdateURL());
|
||||||
if (updateReply) updateReply->deleteLater();
|
if (updateReply) updateReply->deleteLater();
|
||||||
|
|
||||||
App::setProxySettings(updateManager);
|
App::setProxySettings(updateManager);
|
||||||
|
@ -497,10 +504,6 @@ void Application::startApp() {
|
||||||
App::writeUserConfig();
|
App::writeUserConfig();
|
||||||
cSetNeedConfigResave(false);
|
cSetNeedConfigResave(false);
|
||||||
}
|
}
|
||||||
if (devicePixelRatio() > 1) {
|
|
||||||
cSetRetina(true);
|
|
||||||
cSetRetinaFactor(devicePixelRatio());
|
|
||||||
}
|
|
||||||
|
|
||||||
window->createWinId();
|
window->createWinId();
|
||||||
window->init();
|
window->init();
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 2 KiB |
Binary file not shown.
Before Width: | Height: | Size: 2.6 KiB |
Binary file not shown.
Before Width: | Height: | Size: 3.1 KiB |
Binary file not shown.
Before Width: | Height: | Size: 4.4 KiB |
Binary file not shown.
Before Width: | Height: | Size: 58 KiB |
Binary file not shown.
Before Width: | Height: | Size: 68 KiB |
|
@ -22,10 +22,10 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
#include "mainwidget.h"
|
#include "mainwidget.h"
|
||||||
#include "window.h"
|
#include "window.h"
|
||||||
|
|
||||||
AboutBox::AboutBox() : _hiding(false),
|
AboutBox::AboutBox() :
|
||||||
_text(this, lang(lng_about_text), st::aboutLabel, st::aboutTextStyle),
|
|
||||||
_done(this, lang(lng_about_done), st::aboutCloseButton),
|
_done(this, lang(lng_about_done), st::aboutCloseButton),
|
||||||
a_opacity(0, 1) {
|
_text(this, lang(lng_about_text), st::aboutLabel, st::aboutTextStyle),
|
||||||
|
_hiding(false), a_opacity(0, 1) {
|
||||||
|
|
||||||
_width = st::aboutWidth;
|
_width = st::aboutWidth;
|
||||||
_height = st::aboutHeight;
|
_height = st::aboutHeight;
|
||||||
|
@ -80,7 +80,7 @@ void AboutBox::paintEvent(QPaintEvent *e) {
|
||||||
// fill bg
|
// fill bg
|
||||||
p.fillRect(0, 0, _width, _height, st::boxBG->b);
|
p.fillRect(0, 0, _width, _height, st::boxBG->b);
|
||||||
|
|
||||||
p.drawPixmap(QPoint((_width - st::aboutIcon.width()) / 2, st::aboutIconTop), App::sprite(), st::aboutIcon);
|
p.drawPixmap(QPoint((_width - st::aboutIcon.pxWidth()) / 2, st::aboutIconTop), App::sprite(), st::aboutIcon);
|
||||||
|
|
||||||
p.setPen(st::black->p);
|
p.setPen(st::black->p);
|
||||||
p.setFont(st::aboutHeaderFont->f);
|
p.setFont(st::aboutHeaderFont->f);
|
||||||
|
|
|
@ -24,14 +24,14 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
#include "window.h"
|
#include "window.h"
|
||||||
|
|
||||||
AddContactBox::AddContactBox(QString fname, QString lname, QString phone) :
|
AddContactBox::AddContactBox(QString fname, QString lname, QString phone) :
|
||||||
_hiding(false), _peer(0), _addRequest(0), _contactId(0),
|
_peer(0),
|
||||||
_firstInput(this, st::inpAddContact, lang(lng_signup_firstname), fname),
|
|
||||||
_lastInput(this, st::inpAddContact, lang(lng_signup_lastname), lname),
|
|
||||||
_phoneInput(this, st::inpAddContact, lang(lng_contact_phone), phone.isEmpty() ? phone : App::formatPhone(phone)),
|
|
||||||
_addButton(this, lang(lng_add_contact), st::btnSelectDone),
|
_addButton(this, lang(lng_add_contact), st::btnSelectDone),
|
||||||
_retryButton(this, lang(lng_try_other_contact), st::btnSelectDone),
|
_retryButton(this, lang(lng_try_other_contact), st::btnSelectDone),
|
||||||
_cancelButton(this, lang(lng_cancel), st::btnSelectCancel),
|
_cancelButton(this, lang(lng_cancel), st::btnSelectCancel),
|
||||||
a_opacity(0, 1) {
|
_firstInput(this, st::inpAddContact, lang(lng_signup_firstname), fname),
|
||||||
|
_lastInput(this, st::inpAddContact, lang(lng_signup_lastname), lname),
|
||||||
|
_phoneInput(this, st::inpAddContact, lang(lng_contact_phone), phone.isEmpty() ? phone : App::formatPhone(phone)),
|
||||||
|
_contactId(0), _addRequest(0), a_opacity(0, 1), _hiding(false) {
|
||||||
|
|
||||||
if (!phone.isEmpty()) {
|
if (!phone.isEmpty()) {
|
||||||
_phoneInput.setDisabled(true);
|
_phoneInput.setDisabled(true);
|
||||||
|
@ -41,14 +41,14 @@ AddContactBox::AddContactBox(QString fname, QString lname, QString phone) :
|
||||||
}
|
}
|
||||||
|
|
||||||
AddContactBox::AddContactBox(PeerData *peer) :
|
AddContactBox::AddContactBox(PeerData *peer) :
|
||||||
_hiding(false), _peer(peer), _addRequest(0), _contactId(0),
|
_peer(peer),
|
||||||
_firstInput(this, st::inpAddContact, lang(peer->chat ? lng_dlg_new_group_name : lng_signup_firstname), peer->chat ? peer->name : peer->asUser()->firstName),
|
|
||||||
_lastInput(this, st::inpAddContact, lang(lng_signup_lastname), peer->chat ? QString() : peer->asUser()->lastName),
|
|
||||||
_phoneInput(this, st::inpAddContact, lang(lng_contact_phone)),
|
|
||||||
_addButton(this, lang(lng_settings_save), st::btnSelectDone),
|
_addButton(this, lang(lng_settings_save), st::btnSelectDone),
|
||||||
_retryButton(this, lang(lng_try_other_contact), st::btnSelectDone),
|
_retryButton(this, lang(lng_try_other_contact), st::btnSelectDone),
|
||||||
_cancelButton(this, lang(lng_cancel), st::btnSelectCancel),
|
_cancelButton(this, lang(lng_cancel), st::btnSelectCancel),
|
||||||
a_opacity(0, 1) {
|
_firstInput(this, st::inpAddContact, lang(peer->chat ? lng_dlg_new_group_name : lng_signup_firstname), peer->chat ? peer->name : peer->asUser()->firstName),
|
||||||
|
_lastInput(this, st::inpAddContact, lang(lng_signup_lastname), peer->chat ? QString() : peer->asUser()->lastName),
|
||||||
|
_phoneInput(this, st::inpAddContact, lang(lng_contact_phone)),
|
||||||
|
_contactId(0), _addRequest(0), a_opacity(0, 1), _hiding(false) {
|
||||||
|
|
||||||
initBox();
|
initBox();
|
||||||
}
|
}
|
||||||
|
@ -204,7 +204,7 @@ void AddContactBox::animStep(float64 dt) {
|
||||||
_cache = QPixmap();
|
_cache = QPixmap();
|
||||||
if (!_hiding) {
|
if (!_hiding) {
|
||||||
showAll();
|
showAll();
|
||||||
if (_firstInput.text().isEmpty() && _lastInput.text().isEmpty() || _phoneInput.isHidden() || !_phoneInput.isEnabled()) {
|
if ((_firstInput.text().isEmpty() && _lastInput.text().isEmpty()) || _phoneInput.isHidden() || !_phoneInput.isEnabled()) {
|
||||||
_firstInput.setFocus();
|
_firstInput.setFocus();
|
||||||
} else {
|
} else {
|
||||||
_phoneInput.setFocus();
|
_phoneInput.setFocus();
|
||||||
|
@ -238,7 +238,7 @@ void AddContactBox::onSend() {
|
||||||
_addRequest = MTP::send(MTPaccount_UpdateProfile(MTP_string(firstName), MTP_string(lastName)), rpcDone(&AddContactBox::onSaveSelfDone), rpcFail(&AddContactBox::onSaveSelfFail));
|
_addRequest = MTP::send(MTPaccount_UpdateProfile(MTP_string(firstName), MTP_string(lastName)), rpcDone(&AddContactBox::onSaveSelfDone), rpcFail(&AddContactBox::onSaveSelfFail));
|
||||||
} else if (_peer) {
|
} else if (_peer) {
|
||||||
if (_peer->chat) {
|
if (_peer->chat) {
|
||||||
_addRequest = MTP::send(MTPmessages_EditChatTitle(MTP_int(int32(_peer->id & 0xFFFFFFFF)), MTP_string(firstName)), rpcDone(&AddContactBox::onSaveChatDone), rpcFail(&AddContactBox::onSaveFail));
|
_addRequest = MTP::send(MTPmessages_EditChatTitle(MTP_int(App::chatFromPeer(_peer->id)), MTP_string(firstName)), rpcDone(&AddContactBox::onSaveChatDone), rpcFail(&AddContactBox::onSaveFail));
|
||||||
} else {
|
} else {
|
||||||
_contactId = MTP::nonce<uint64>();
|
_contactId = MTP::nonce<uint64>();
|
||||||
QVector<MTPInputContact> v(1, MTP_inputPhoneContact(MTP_long(_contactId), MTP_string(_peer->asUser()->phone), MTP_string(firstName), MTP_string(lastName)));
|
QVector<MTPInputContact> v(1, MTP_inputPhoneContact(MTP_long(_contactId), MTP_string(_peer->asUser()->phone), MTP_string(firstName), MTP_string(lastName)));
|
||||||
|
|
|
@ -22,8 +22,8 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
#include "mainwidget.h"
|
#include "mainwidget.h"
|
||||||
#include "window.h"
|
#include "window.h"
|
||||||
|
|
||||||
AddParticipantInner::AddParticipantInner(ChatData *chat) : _chat(chat), _selCount(0),
|
AddParticipantInner::AddParticipantInner(ChatData *chat) : _chat(chat),
|
||||||
_contacts(&App::main()->contactsList()), _sel(0), _filteredSel(-1), _mouseSel(false) {
|
_contacts(&App::main()->contactsList()), _sel(0), _filteredSel(-1), _mouseSel(false), _selCount(0) {
|
||||||
|
|
||||||
_filter = qsl("a");
|
_filter = qsl("a");
|
||||||
updateFilter();
|
updateFilter();
|
||||||
|
@ -151,7 +151,7 @@ void AddParticipantInner::paintDialog(QPainter &p, DialogRow *row, bool sel) {
|
||||||
data->name.drawElided(p, left + st::profileListPhotoSize + st::profileListPadding.width(), st::profileListNameTop, width() - st::participantDelta - st::profileListPadding.width() * 2 - st::profileListPhotoSize - st::profileListPadding.width() * 2);
|
data->name.drawElided(p, left + st::profileListPhotoSize + st::profileListPadding.width(), st::profileListNameTop, width() - st::participantDelta - st::profileListPadding.width() * 2 - st::profileListPhotoSize - st::profileListPadding.width() * 2);
|
||||||
|
|
||||||
if (sel || data->check) {
|
if (sel || data->check) {
|
||||||
p.drawPixmap(QPoint(width() - st::profileCheckRect.width() - st::profileCheckDeltaX, st::profileListPadding.height() + (st::profileListPhotoSize - st::profileCheckRect.height()) / 2 - st::profileCheckDeltaY), App::sprite(), (data->check ? st::profileCheckActiveRect : st::profileCheckRect));
|
p.drawPixmap(QPoint(width() - st::profileCheckRect.pxWidth() - st::profileCheckDeltaX, st::profileListPadding.height() + (st::profileListPhotoSize - st::profileCheckRect.pxHeight()) / 2 - st::profileCheckDeltaY), App::sprite(), (data->check ? st::profileCheckActiveRect : st::profileCheckRect));
|
||||||
}
|
}
|
||||||
|
|
||||||
p.setFont(st::profileSubFont->f);
|
p.setFont(st::profileSubFont->f);
|
||||||
|
@ -507,12 +507,12 @@ void AddParticipantInner::selectSkipPage(int32 h, int32 dir) {
|
||||||
selectSkip(points * dir);
|
selectSkip(points * dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
AddParticipantBox::AddParticipantBox(ChatData *chat) : _inner(chat), _hiding(false),
|
AddParticipantBox::AddParticipantBox(ChatData *chat) :
|
||||||
_scroll(this, st::newGroupScroll),
|
_scroll(this, st::newGroupScroll), _inner(chat),
|
||||||
_filter(this, st::contactsFilter, lang(lng_participant_filter)),
|
_filter(this, st::contactsFilter, lang(lng_participant_filter)),
|
||||||
_invite(this, lang(lng_participant_invite), st::btnSelectDone),
|
_invite(this, lang(lng_participant_invite), st::btnSelectDone),
|
||||||
_cancel(this, lang(lng_cancel), st::btnSelectCancel),
|
_cancel(this, lang(lng_cancel), st::btnSelectCancel),
|
||||||
a_opacity(0, 1), af_opacity(anim::linear) {
|
_hiding(false), a_opacity(0, 1), af_opacity(anim::linear) {
|
||||||
|
|
||||||
_width = st::participantWidth;
|
_width = st::participantWidth;
|
||||||
_height = App::wnd()->height() - st::boxPadding.top() - st::boxPadding.bottom();
|
_height = App::wnd()->height() - st::boxPadding.top() - st::boxPadding.bottom();
|
||||||
|
|
|
@ -22,10 +22,10 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
#include "mainwidget.h"
|
#include "mainwidget.h"
|
||||||
#include "window.h"
|
#include "window.h"
|
||||||
|
|
||||||
ConfirmBox::ConfirmBox(QString text, QString doneText, QString cancelText) : _hiding(false), _text(100),
|
ConfirmBox::ConfirmBox(QString text, QString doneText, QString cancelText) :
|
||||||
_confirm(this, doneText.isEmpty() ? lang(lng_continue) : doneText, st::btnSelectDone),
|
_confirm(this, doneText.isEmpty() ? lang(lng_continue) : doneText, st::btnSelectDone),
|
||||||
_cancel(this, cancelText.isEmpty() ? lang(lng_cancel) : cancelText, st::btnSelectCancel),
|
_cancel(this, cancelText.isEmpty() ? lang(lng_cancel) : cancelText, st::btnSelectCancel),
|
||||||
a_opacity(0, 1), af_opacity(anim::linear) {
|
_text(100), _hiding(false), a_opacity(0, 1), af_opacity(anim::linear) {
|
||||||
|
|
||||||
_text.setText(st::boxFont, text, _textPlainOptions);
|
_text.setText(st::boxFont, text, _textPlainOptions);
|
||||||
|
|
||||||
|
|
|
@ -22,17 +22,17 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
#include "mainwidget.h"
|
#include "mainwidget.h"
|
||||||
#include "window.h"
|
#include "window.h"
|
||||||
|
|
||||||
ConnectionBox::ConnectionBox() : _hiding(false),
|
ConnectionBox::ConnectionBox() :
|
||||||
_hostInput(this, st::inpConnectionHost, lang(lng_connection_host_ph), cConnectionProxy().host),
|
_saveButton(this, lang(lng_connection_save), st::btnSelectDone),
|
||||||
_portInput(this, st::inpConnectionPort, lang(lng_connection_port_ph), QString::number(cConnectionProxy().port)),
|
_cancelButton(this, lang(lng_cancel), st::btnSelectCancel),
|
||||||
_userInput(this, st::inpConnectionUser, lang(lng_connection_user_ph), cConnectionProxy().user),
|
_hostInput(this, st::inpConnectionHost, lang(lng_connection_host_ph), cConnectionProxy().host),
|
||||||
|
_portInput(this, st::inpConnectionPort, lang(lng_connection_port_ph), QString::number(cConnectionProxy().port)),
|
||||||
|
_userInput(this, st::inpConnectionUser, lang(lng_connection_user_ph), cConnectionProxy().user),
|
||||||
_passwordInput(this, st::inpConnectionPassword, lang(lng_connection_password_ph), cConnectionProxy().password),
|
_passwordInput(this, st::inpConnectionPassword, lang(lng_connection_password_ph), cConnectionProxy().password),
|
||||||
_saveButton(this, lang(lng_connection_save), st::btnSelectDone),
|
|
||||||
_cancelButton(this, lang(lng_cancel), st::btnSelectCancel),
|
|
||||||
_autoRadio(this, qsl("conn_type"), dbictAuto, lang(lng_connection_auto_rb), (cConnectionType() == dbictAuto)),
|
_autoRadio(this, qsl("conn_type"), dbictAuto, lang(lng_connection_auto_rb), (cConnectionType() == dbictAuto)),
|
||||||
_httpProxyRadio(this, qsl("conn_type"), dbictHttpProxy, lang(lng_connection_http_proxy_rb), (cConnectionType() == dbictHttpProxy)),
|
_httpProxyRadio(this, qsl("conn_type"), dbictHttpProxy, lang(lng_connection_http_proxy_rb), (cConnectionType() == dbictHttpProxy)),
|
||||||
_tcpProxyRadio(this, qsl("conn_type"), dbictTcpProxy, lang(lng_connection_tcp_proxy_rb), (cConnectionType() == dbictTcpProxy)),
|
_tcpProxyRadio(this, qsl("conn_type"), dbictTcpProxy, lang(lng_connection_tcp_proxy_rb), (cConnectionType() == dbictTcpProxy)),
|
||||||
a_opacity(0, 1) {
|
a_opacity(0, 1), _hiding(false) {
|
||||||
|
|
||||||
_width = st::addContactWidth;
|
_width = st::addContactWidth;
|
||||||
|
|
||||||
|
|
|
@ -120,10 +120,10 @@ void ContactsInner::paintDialog(QPainter &p, DialogRow *row, bool sel) {
|
||||||
p.drawPixmap(left, st::profileListPadding.height(), user->photo->pix(st::profileListPhotoSize));
|
p.drawPixmap(left, st::profileListPadding.height(), user->photo->pix(st::profileListPhotoSize));
|
||||||
|
|
||||||
p.setPen(st::profileListNameColor->p);
|
p.setPen(st::profileListNameColor->p);
|
||||||
data->name.drawElided(p, left + st::profileListPhotoSize + st::participantDelta, st::profileListNameTop, width() - st::profileListPadding.width() - st::profileListPhotoSize - st::profileListPadding.width() - st::participantDelta - st::scrollDef.width - st::contactsImg.width());
|
data->name.drawElided(p, left + st::profileListPhotoSize + st::participantDelta, st::profileListNameTop, width() - st::profileListPadding.width() - st::profileListPhotoSize - st::profileListPadding.width() - st::participantDelta - st::scrollDef.width - st::contactsImg.pxWidth());
|
||||||
|
|
||||||
if (sel) {
|
if (sel) {
|
||||||
p.drawPixmap(QPoint(width() - st::contactsImg.width() - st::profileCheckDeltaX, st::profileListPadding.height() + (st::profileListPhotoSize - st::contactsImg.height()) / 2 - st::profileCheckDeltaY), App::sprite(), st::contactsImg);
|
p.drawPixmap(QPoint(width() - st::contactsImg.pxWidth() - st::profileCheckDeltaX, st::profileListPadding.height() + (st::profileListPhotoSize - st::contactsImg.pxHeight()) / 2 - st::profileCheckDeltaY), App::sprite(), st::contactsImg);
|
||||||
}
|
}
|
||||||
|
|
||||||
p.setFont(st::profileSubFont->f);
|
p.setFont(st::profileSubFont->f);
|
||||||
|
@ -394,11 +394,11 @@ void ContactsInner::selectSkipPage(int32 h, int32 dir) {
|
||||||
selectSkip(points * dir);
|
selectSkip(points * dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
ContactsBox::ContactsBox() : _inner(), _hiding(false), _scroll(this, st::newGroupScroll),
|
ContactsBox::ContactsBox() : _scroll(this, st::newGroupScroll), _inner(),
|
||||||
_addContact(this, lang(lng_add_contact_button), st::contactsAdd),
|
_addContact(this, lang(lng_add_contact_button), st::contactsAdd),
|
||||||
_filter(this, st::contactsFilter, lang(lng_participant_filter)),
|
_filter(this, st::contactsFilter, lang(lng_participant_filter)),
|
||||||
_close(this, lang(lng_contacts_done), st::contactsClose),
|
_close(this, lang(lng_contacts_done), st::contactsClose),
|
||||||
a_opacity(0, 1) {
|
_hiding(false), a_opacity(0, 1) {
|
||||||
|
|
||||||
_width = st::participantWidth;
|
_width = st::participantWidth;
|
||||||
_height = App::wnd()->height() - st::boxPadding.top() - st::boxPadding.bottom();
|
_height = App::wnd()->height() - st::boxPadding.top() - st::boxPadding.bottom();
|
||||||
|
|
|
@ -21,14 +21,14 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
#include "downloadpathbox.h"
|
#include "downloadpathbox.h"
|
||||||
#include "gui/filedialog.h"
|
#include "gui/filedialog.h"
|
||||||
|
|
||||||
DownloadPathBox::DownloadPathBox() : _hiding(false),
|
DownloadPathBox::DownloadPathBox() :
|
||||||
_path(cDownloadPath()),
|
_path(cDownloadPath()),
|
||||||
_tempRadio(this, qsl("dir_type"), 0, lang(lng_download_path_temp_radio), _path.isEmpty()),
|
_tempRadio(this, qsl("dir_type"), 0, lang(lng_download_path_temp_radio), _path.isEmpty()),
|
||||||
_dirRadio(this, qsl("dir_type"), 1, lang(lng_download_path_dir_radio), !_path.isEmpty()),
|
_dirRadio(this, qsl("dir_type"), 1, lang(lng_download_path_dir_radio), !_path.isEmpty()),
|
||||||
_dirInput(this, st::inpDownloadDir, QString(), QDir::toNativeSeparators(_path)),
|
_dirInput(this, st::inpDownloadDir, QString(), QDir::toNativeSeparators(_path)),
|
||||||
_saveButton(this, lang(lng_connection_save), st::btnSelectDone),
|
_saveButton(this, lang(lng_connection_save), st::btnSelectDone),
|
||||||
_cancelButton(this, lang(lng_cancel), st::btnSelectCancel),
|
_cancelButton(this, lang(lng_cancel), st::btnSelectCancel),
|
||||||
a_opacity(0, 1) {
|
a_opacity(0, 1), _hiding(false) {
|
||||||
|
|
||||||
_width = st::addContactWidth;
|
_width = st::addContactWidth;
|
||||||
|
|
||||||
|
|
|
@ -65,9 +65,8 @@ namespace {
|
||||||
const uint32 replacesCount = sizeof(replaces) / sizeof(EmojiReplace), replacesInRow = 8;
|
const uint32 replacesCount = sizeof(replaces) / sizeof(EmojiReplace), replacesInRow = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
EmojiBox::EmojiBox() : _hiding(false),
|
EmojiBox::EmojiBox() : _done(this, lang(lng_about_done), st::aboutCloseButton),
|
||||||
_done(this, lang(lng_about_done), st::aboutCloseButton),
|
_hiding(false), a_opacity(0, 1) {
|
||||||
a_opacity(0, 1) {
|
|
||||||
|
|
||||||
fillBlocks();
|
fillBlocks();
|
||||||
|
|
||||||
|
@ -96,7 +95,7 @@ EmojiBox::EmojiBox() : _hiding(false),
|
||||||
void EmojiBox::fillBlocks() {
|
void EmojiBox::fillBlocks() {
|
||||||
BlockRow currentRow;
|
BlockRow currentRow;
|
||||||
currentRow.reserve(replacesInRow);
|
currentRow.reserve(replacesInRow);
|
||||||
for (int32 i = 0; i < replacesCount; ++i) {
|
for (uint32 i = 0; i < replacesCount; ++i) {
|
||||||
Block block(getEmoji(replaces[i].code), QString::fromUtf8(replaces[i].replace));
|
Block block(getEmoji(replaces[i].code), QString::fromUtf8(replaces[i].replace));
|
||||||
currentRow.push_back(block);
|
currentRow.push_back(block);
|
||||||
if (currentRow.size() == replacesInRow) {
|
if (currentRow.size() == replacesInRow) {
|
||||||
|
@ -150,7 +149,7 @@ void EmojiBox::paintEvent(QPaintEvent *e) {
|
||||||
for (BlockRow::const_iterator j = i->cbegin(), en = i->cend(); j != en; ++j) {
|
for (BlockRow::const_iterator j = i->cbegin(), en = i->cend(); j != en; ++j) {
|
||||||
if (j->emoji) {
|
if (j->emoji) {
|
||||||
QPoint pos(left + (st::emojiReplaceWidth - st::emojiSize) / 2, top + (st::emojiReplaceHeight - _blockHeight) / 2);
|
QPoint pos(left + (st::emojiReplaceWidth - st::emojiSize) / 2, top + (st::emojiReplaceHeight - _blockHeight) / 2);
|
||||||
p.drawPixmap(pos, App::emojis(), QRect(j->emoji->x, j->emoji->y, st::emojiSize, st::emojiSize));
|
p.drawPixmap(pos, App::emojis(), QRect(j->emoji->x, j->emoji->y, st::emojiImgSize, st::emojiImgSize));
|
||||||
}
|
}
|
||||||
QRect trect(left, top + (st::emojiReplaceHeight + _blockHeight) / 2 - st::emojiTextFont->height, st::emojiReplaceWidth, st::emojiTextFont->height);
|
QRect trect(left, top + (st::emojiReplaceHeight + _blockHeight) / 2 - st::emojiTextFont->height, st::emojiReplaceWidth, st::emojiTextFont->height);
|
||||||
p.drawText(trect, j->text, QTextOption(Qt::AlignHCenter | Qt::AlignTop));
|
p.drawText(trect, j->text, QTextOption(Qt::AlignHCenter | Qt::AlignTop));
|
||||||
|
|
|
@ -129,10 +129,10 @@ void NewGroupInner::paintDialog(QPainter &p, DialogRow *row, bool sel) {
|
||||||
} else {
|
} else {
|
||||||
p.setPen(st::profileListNameColor->p);
|
p.setPen(st::profileListNameColor->p);
|
||||||
}
|
}
|
||||||
data->name.drawElided(p, left + st::profileListPhotoSize + st::participantDelta, st::profileListNameTop, width() - st::profileListPadding.width() - st::profileListPhotoSize - st::profileListPadding.width() - st::participantDelta - st::scrollDef.width - st::profileCheckRect.width());
|
data->name.drawElided(p, left + st::profileListPhotoSize + st::participantDelta, st::profileListNameTop, width() - st::profileListPadding.width() - st::profileListPhotoSize - st::profileListPadding.width() - st::participantDelta - st::scrollDef.width - st::profileCheckRect.pxWidth());
|
||||||
|
|
||||||
if (sel || data->check) {
|
if (sel || data->check) {
|
||||||
p.drawPixmap(QPoint(width() - st::profileCheckRect.width() - st::profileCheckDeltaX, st::profileListPadding.height() + (st::profileListPhotoSize - st::profileCheckRect.height()) / 2 - st::profileCheckDeltaY), App::sprite(), (data->check ? st::profileCheckActiveRect : st::profileCheckRect));
|
p.drawPixmap(QPoint(width() - st::profileCheckRect.pxWidth() - st::profileCheckDeltaX, st::profileListPadding.height() + (st::profileListPhotoSize - st::profileCheckRect.pxHeight()) / 2 - st::profileCheckDeltaY), App::sprite(), (data->check ? st::profileCheckActiveRect : st::profileCheckRect));
|
||||||
}
|
}
|
||||||
|
|
||||||
p.setFont(st::profileSubFont->f);
|
p.setFont(st::profileSubFont->f);
|
||||||
|
@ -438,11 +438,11 @@ QVector<MTPInputUser> NewGroupInner::selectedInputs() {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
NewGroupBox::NewGroupBox() : _inner(), _hiding(false), _scroll(this, st::newGroupScroll),
|
NewGroupBox::NewGroupBox() : _scroll(this, st::newGroupScroll), _inner(),
|
||||||
_filter(this, st::contactsFilter, lang(lng_participant_filter)),
|
_filter(this, st::contactsFilter, lang(lng_participant_filter)),
|
||||||
_next(this, lang(lng_create_group_next), st::btnSelectDone),
|
_next(this, lang(lng_create_group_next), st::btnSelectDone),
|
||||||
_cancel(this, lang(lng_cancel), st::btnSelectCancel),
|
_cancel(this, lang(lng_cancel), st::btnSelectCancel),
|
||||||
a_opacity(0, 1) {
|
_hiding(false), a_opacity(0, 1) {
|
||||||
|
|
||||||
_width = st::participantWidth;
|
_width = st::participantWidth;
|
||||||
_height = App::wnd()->height() - st::boxPadding.top() - st::boxPadding.bottom();
|
_height = App::wnd()->height() - st::boxPadding.top() - st::boxPadding.bottom();
|
||||||
|
@ -596,11 +596,11 @@ NewGroupBox::~NewGroupBox() {
|
||||||
}
|
}
|
||||||
|
|
||||||
CreateGroupBox::CreateGroupBox(const MTPVector<MTPInputUser> &users) : _users(users),
|
CreateGroupBox::CreateGroupBox(const MTPVector<MTPInputUser> &users) : _users(users),
|
||||||
_hiding(false), _createRequestId(0),
|
_createRequestId(0),
|
||||||
_name(this, st::newGroupName, lang(lng_dlg_new_group_name)),
|
_name(this, st::newGroupName, lang(lng_dlg_new_group_name)),
|
||||||
_create(this, lang(lng_dlg_create_group), st::btnSelectDone),
|
_create(this, lang(lng_dlg_create_group), st::btnSelectDone),
|
||||||
_cancel(this, lang(lng_cancel), st::btnSelectCancel),
|
_cancel(this, lang(lng_cancel), st::btnSelectCancel),
|
||||||
a_opacity(0, 1) {
|
_hiding(false), a_opacity(0, 1) {
|
||||||
_width = st::addContactWidth;
|
_width = st::addContactWidth;
|
||||||
|
|
||||||
_height = st::addContactTitleHeight + st::addContactPadding.top() + _name.height() + st::addContactPadding.bottom() + _create.height();
|
_height = st::addContactTitleHeight + st::addContactPadding.top() + _name.height() + st::addContactPadding.bottom() + _create.height();
|
||||||
|
|
|
@ -25,10 +25,10 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
#include "photocropbox.h"
|
#include "photocropbox.h"
|
||||||
#include "fileuploader.h"
|
#include "fileuploader.h"
|
||||||
|
|
||||||
PhotoCropBox::PhotoCropBox(const QImage &img, const PeerId &peer) : _img(img), _downState(0), _peerId(peer),
|
PhotoCropBox::PhotoCropBox(const QImage &img, const PeerId &peer) : _downState(0),
|
||||||
_sendButton(this, lang(lng_settings_save), st::btnSelectDone),
|
_sendButton(this, lang(lng_settings_save), st::btnSelectDone),
|
||||||
_cancelButton(this, lang(lng_cancel), st::btnSelectCancel),
|
_cancelButton(this, lang(lng_cancel), st::btnSelectCancel),
|
||||||
a_opacity(0, 1) {
|
_img(img), _peerId(peer), a_opacity(0, 1) {
|
||||||
|
|
||||||
connect(&_sendButton, SIGNAL(clicked()), this, SLOT(onSend()));
|
connect(&_sendButton, SIGNAL(clicked()), this, SLOT(onSend()));
|
||||||
connect(&_cancelButton, SIGNAL(clicked()), this, SLOT(onCancel()));
|
connect(&_cancelButton, SIGNAL(clicked()), this, SLOT(onCancel()));
|
||||||
|
|
|
@ -17,9 +17,13 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
static const int32 AppVersion = 5004;
|
static const int32 AppVersion = 5005;
|
||||||
static const wchar_t *AppVersionStr = L"0.5.4";
|
static const wchar_t *AppVersionStr = L"0.5.5";
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
static const wchar_t *AppName = L"Telegram Win (Unofficial)";
|
static const wchar_t *AppName = L"Telegram Win (Unofficial)";
|
||||||
|
#else
|
||||||
|
static const wchar_t *AppName = L"Telegram Desktop";
|
||||||
|
#endif
|
||||||
static const wchar_t *AppId = L"{53F49750-6209-4FBF-9CA8-7A333C87D1ED}";
|
static const wchar_t *AppId = L"{53F49750-6209-4FBF-9CA8-7A333C87D1ED}";
|
||||||
|
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
|
|
|
@ -76,7 +76,7 @@ void DialogsListWidget::paintEvent(QPaintEvent *e) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void DialogsListWidget::activate() {
|
void DialogsListWidget::activate() {
|
||||||
if (filter.isEmpty() && !sel || !filter.isEmpty() && (filteredSel < 0 || filteredSel >= filtered.size())) {
|
if ((filter.isEmpty() && !sel) || (!filter.isEmpty() && (filteredSel < 0 || filteredSel >= filtered.size()))) {
|
||||||
selectSkip(1);
|
selectSkip(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -90,7 +90,7 @@ void DialogsListWidget::mouseMoveEvent(QMouseEvent *e) {
|
||||||
|
|
||||||
void DialogsListWidget::onUpdateSelected(bool force) {
|
void DialogsListWidget::onUpdateSelected(bool force) {
|
||||||
QPoint mouse(mapFromGlobal(lastMousePos));
|
QPoint mouse(mapFromGlobal(lastMousePos));
|
||||||
if (!force && !rect().contains(mouse) || !selByMouse) return;
|
if ((!force && !rect().contains(mouse)) || !selByMouse) return;
|
||||||
|
|
||||||
int w = width(), mouseY = mouse.y();
|
int w = width(), mouseY = mouse.y();
|
||||||
if (filter.isEmpty()) {
|
if (filter.isEmpty()) {
|
||||||
|
@ -704,9 +704,19 @@ DialogsIndexed &DialogsListWidget::dialogsList() {
|
||||||
return dialogs;
|
return dialogs;
|
||||||
}
|
}
|
||||||
|
|
||||||
DialogsWidget::DialogsWidget(MainWidget *parent) : QWidget(parent), _configLoaded(false), _drawShadow(true),
|
DialogsWidget::DialogsWidget(MainWidget *parent) : QWidget(parent)
|
||||||
scroll(this, st::dlgScroll), list(&scroll, parent), _filter(this, st::dlgFilter, lang(lng_dlg_filter)), dlgOffset(0), dlgCount(-1), dlgPreloading(0), contactsRequest(0),
|
, _configLoaded(false)
|
||||||
_newGroup(this, st::btnNewGroup), _addContact(this, st::btnAddContact) {
|
, _drawShadow(true)
|
||||||
|
, dlgOffset(0)
|
||||||
|
, dlgCount(-1)
|
||||||
|
, dlgPreloading(0)
|
||||||
|
, contactsRequest(0)
|
||||||
|
, _filter(this, st::dlgFilter, lang(lng_dlg_filter))
|
||||||
|
, _newGroup(this, st::btnNewGroup)
|
||||||
|
, _addContact(this, st::btnAddContact)
|
||||||
|
, scroll(this, st::dlgScroll)
|
||||||
|
, list(&scroll, parent)
|
||||||
|
{
|
||||||
scroll.setWidget(&list);
|
scroll.setWidget(&list);
|
||||||
scroll.setFocusPolicy(Qt::NoFocus);
|
scroll.setFocusPolicy(Qt::NoFocus);
|
||||||
connect(&list, SIGNAL(mustScrollTo(int, int)), &scroll, SLOT(scrollToY(int, int)));
|
connect(&list, SIGNAL(mustScrollTo(int, int)), &scroll, SLOT(scrollToY(int, int)));
|
||||||
|
@ -726,6 +736,7 @@ _newGroup(this, st::btnNewGroup), _addContact(this, st::btnAddContact) {
|
||||||
_filter.show();
|
_filter.show();
|
||||||
_filter.move(st::dlgPaddingHor, st::dlgFilterPadding);
|
_filter.move(st::dlgPaddingHor, st::dlgFilterPadding);
|
||||||
_filter.setFocusPolicy(Qt::StrongFocus);
|
_filter.setFocusPolicy(Qt::StrongFocus);
|
||||||
|
_filter.customUpDown(true);
|
||||||
_addContact.hide();
|
_addContact.hide();
|
||||||
_newGroup.show();
|
_newGroup.show();
|
||||||
_newGroup.move(width() - _newGroup.width() - st::dlgPaddingHor, 0);
|
_newGroup.move(width() - _newGroup.width() - st::dlgPaddingHor, 0);
|
||||||
|
|
|
@ -23,7 +23,7 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
#include "lang.h"
|
#include "lang.h"
|
||||||
|
|
||||||
Dropdown::Dropdown(QWidget *parent) : TWidget(parent),
|
Dropdown::Dropdown(QWidget *parent) : TWidget(parent),
|
||||||
_shadow(st::dropdownShadow), a_opacity(0), _hiding(false) {
|
_hiding(false), a_opacity(0), _shadow(st::dropdownShadow) {
|
||||||
_width = st::dropdownPadding.left() + st::dropdownPadding.right();
|
_width = st::dropdownPadding.left() + st::dropdownPadding.right();
|
||||||
_height = st::dropdownPadding.top() + st::dropdownPadding.bottom();
|
_height = st::dropdownPadding.top() + st::dropdownPadding.bottom();
|
||||||
resize(_width, _height);
|
resize(_width, _height);
|
||||||
|
@ -173,7 +173,7 @@ bool Dropdown::eventFilter(QObject *obj, QEvent *e) {
|
||||||
}
|
}
|
||||||
|
|
||||||
DragArea::DragArea(QWidget *parent) : TWidget(parent),
|
DragArea::DragArea(QWidget *parent) : TWidget(parent),
|
||||||
_shadow(st::boxShadow), a_opacity(0), a_color(st::dragColor->c), _hiding(false), _in(false) {
|
_hiding(false), _in(false), a_opacity(0), a_color(st::dragColor->c), _shadow(st::boxShadow) {
|
||||||
setMouseTracking(true);
|
setMouseTracking(true);
|
||||||
setAcceptDrops(true);
|
setAcceptDrops(true);
|
||||||
}
|
}
|
||||||
|
@ -311,7 +311,7 @@ bool DragArea::animStep(float64 ms) {
|
||||||
|
|
||||||
static const int emojiPerRow = 7, emojiRowsPerPage = 6;
|
static const int emojiPerRow = 7, emojiRowsPerPage = 6;
|
||||||
|
|
||||||
EmojiPanInner::EmojiPanInner(QWidget *parent) : QWidget(parent), _selected(-1), _pressedSel(-1), _tab(cEmojiTab()) {
|
EmojiPanInner::EmojiPanInner(QWidget *parent) : QWidget(parent), _tab(cEmojiTab()), _selected(-1), _pressedSel(-1) {
|
||||||
resize(emojiPerRow * st::emojiPanSize.width(), emojiRowsPerPage * st::emojiPanSize.height() - st::emojiPanSub);
|
resize(emojiPerRow * st::emojiPanSize.width(), emojiRowsPerPage * st::emojiPanSize.height() - st::emojiPanSub);
|
||||||
setMouseTracking(true);
|
setMouseTracking(true);
|
||||||
setFocusPolicy(Qt::NoFocus);
|
setFocusPolicy(Qt::NoFocus);
|
||||||
|
@ -348,7 +348,7 @@ void EmojiPanInner::paintEvent(QPaintEvent *e) {
|
||||||
p.drawRoundedRect(QRect(w, st::emojiPanSize), st::emojiPanRound, st::emojiPanRound);
|
p.drawRoundedRect(QRect(w, st::emojiPanSize), st::emojiPanRound, st::emojiPanRound);
|
||||||
p.setOpacity(1);
|
p.setOpacity(1);
|
||||||
}
|
}
|
||||||
QRect r(_emojis[index]->x, _emojis[index]->y, st::emojiSize, st::emojiSize);
|
QRect r(_emojis[index]->x, _emojis[index]->y, st::emojiImgSize, st::emojiImgSize);
|
||||||
p.drawPixmap(w + QPoint((st::emojiPanSize.width() - st::emojiSize) / 2, (st::emojiPanSize.height() - st::emojiSize) / 2), App::emojis(), r);
|
p.drawPixmap(w + QPoint((st::emojiPanSize.width() - st::emojiSize) / 2, (st::emojiPanSize.height() - st::emojiSize) / 2), App::emojis(), r);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -481,13 +481,14 @@ void EmojiPanInner::showEmojiPack(DBIEmojiTab packIndex) {
|
||||||
}
|
}
|
||||||
|
|
||||||
EmojiPan::EmojiPan(QWidget *parent) : TWidget(parent),
|
EmojiPan::EmojiPan(QWidget *parent) : TWidget(parent),
|
||||||
|
_hiding(false), a_opacity(0), _shadow(st::dropdownShadow),
|
||||||
_recent (this, qsl("emoji_group"), dbietRecent , QString(), cEmojiTab() == dbietRecent , st::rbEmojiRecent),
|
_recent (this, qsl("emoji_group"), dbietRecent , QString(), cEmojiTab() == dbietRecent , st::rbEmojiRecent),
|
||||||
_people (this, qsl("emoji_group"), dbietPeople , QString(), cEmojiTab() == dbietPeople , st::rbEmojiPeople),
|
_people (this, qsl("emoji_group"), dbietPeople , QString(), cEmojiTab() == dbietPeople , st::rbEmojiPeople),
|
||||||
_nature (this, qsl("emoji_group"), dbietNature , QString(), cEmojiTab() == dbietNature , st::rbEmojiNature),
|
_nature (this, qsl("emoji_group"), dbietNature , QString(), cEmojiTab() == dbietNature , st::rbEmojiNature),
|
||||||
_objects(this, qsl("emoji_group"), dbietObjects, QString(), cEmojiTab() == dbietObjects, st::rbEmojiObjects),
|
_objects(this, qsl("emoji_group"), dbietObjects, QString(), cEmojiTab() == dbietObjects, st::rbEmojiObjects),
|
||||||
_places (this, qsl("emoji_group"), dbietPlaces , QString(), cEmojiTab() == dbietPlaces , st::rbEmojiPlaces),
|
_places (this, qsl("emoji_group"), dbietPlaces , QString(), cEmojiTab() == dbietPlaces , st::rbEmojiPlaces),
|
||||||
_symbols(this, qsl("emoji_group"), dbietSymbols, QString(), cEmojiTab() == dbietSymbols, st::rbEmojiSymbols),
|
_symbols(this, qsl("emoji_group"), dbietSymbols, QString(), cEmojiTab() == dbietSymbols, st::rbEmojiSymbols),
|
||||||
_shadow(st::dropdownShadow), a_opacity(0), _hiding(false), _scroll(this, st::emojiScroll), _inner() {
|
_scroll(this, st::emojiScroll), _inner() {
|
||||||
setFocusPolicy(Qt::NoFocus);
|
setFocusPolicy(Qt::NoFocus);
|
||||||
_scroll.setFocusPolicy(Qt::NoFocus);
|
_scroll.setFocusPolicy(Qt::NoFocus);
|
||||||
_scroll.viewport()->setFocusPolicy(Qt::NoFocus);
|
_scroll.viewport()->setFocusPolicy(Qt::NoFocus);
|
||||||
|
@ -666,9 +667,8 @@ void EmojiPan::hideAll() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EmojiPan::onTabChange() {
|
void EmojiPan::onTabChange() {
|
||||||
DBIEmojiTab newTab;
|
DBIEmojiTab newTab = dbietRecent;
|
||||||
if (_recent.checked()) newTab = dbietRecent;
|
if (_people.checked()) newTab = dbietPeople;
|
||||||
else if (_people.checked()) newTab = dbietPeople;
|
|
||||||
else if (_nature.checked()) newTab = dbietNature;
|
else if (_nature.checked()) newTab = dbietNature;
|
||||||
else if (_objects.checked()) newTab = dbietObjects;
|
else if (_objects.checked()) newTab = dbietObjects;
|
||||||
else if (_places.checked()) newTab = dbietPlaces;
|
else if (_places.checked()) newTab = dbietPlaces;
|
||||||
|
|
|
@ -18,7 +18,7 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "fileuploader.h"
|
#include "fileuploader.h"
|
||||||
|
|
||||||
FileUploader::FileUploader() : uploading(0), sentSize(0) {
|
FileUploader::FileUploader() : sentSize(0), uploading(0) {
|
||||||
nextTimer.setSingleShot(true);
|
nextTimer.setSingleShot(true);
|
||||||
connect(&nextTimer, SIGNAL(timeout()), this, SLOT(sendNext()));
|
connect(&nextTimer, SIGNAL(timeout()), this, SLOT(sendNext()));
|
||||||
}
|
}
|
||||||
|
@ -116,7 +116,7 @@ void FileUploader::sendNext() {
|
||||||
} else {
|
} else {
|
||||||
toSend = i->media.data.mid(i->docSentParts * i->docPartSize, i->docPartSize);
|
toSend = i->media.data.mid(i->docSentParts * i->docPartSize, i->docPartSize);
|
||||||
}
|
}
|
||||||
if (toSend.size() > i->docPartSize || toSend.size() < i->docPartSize && i->docSentParts + 1 != i->docPartsCount) {
|
if (toSend.size() > i->docPartSize || (toSend.size() < i->docPartSize && i->docSentParts + 1 != i->docPartsCount)) {
|
||||||
currentFailed();
|
currentFailed();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
|
|
||||||
#include "boxshadow.h"
|
#include "boxshadow.h"
|
||||||
|
|
||||||
BoxShadow::BoxShadow(const style::rect &topLeft) : _size(topLeft.width()) {
|
BoxShadow::BoxShadow(const style::rect &topLeft) : _size(topLeft.width() / cIntRetinaFactor()) {
|
||||||
QImage cornersImage(_size * 2, _size * 2, QImage::Format_ARGB32_Premultiplied);
|
QImage cornersImage(_size * 2, _size * 2, QImage::Format_ARGB32_Premultiplied);
|
||||||
{
|
{
|
||||||
QPainter p(&cornersImage);
|
QPainter p(&cornersImage);
|
||||||
|
|
|
@ -61,7 +61,7 @@ namespace {
|
||||||
CountriesByISO2::const_iterator already = countriesByISO2.constFind(info->iso2);
|
CountriesByISO2::const_iterator already = countriesByISO2.constFind(info->iso2);
|
||||||
if (already != countriesByISO2.cend()) {
|
if (already != countriesByISO2.cend()) {
|
||||||
QString badISO = info->iso2;
|
QString badISO = info->iso2;
|
||||||
badISO;
|
(void)badISO;
|
||||||
}
|
}
|
||||||
countriesByISO2.insert(info->iso2, info);
|
countriesByISO2.insert(info->iso2, info);
|
||||||
}
|
}
|
||||||
|
@ -82,7 +82,7 @@ QString findValidCode(QString fullCode) {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
CountryInput::CountryInput(QWidget *parent, const style::countryInput &st) : QWidget(parent), _st(st), _active(false), _select(0), _text(lang(lng_country_code)) {
|
CountryInput::CountryInput(QWidget *parent, const style::countryInput &st) : QWidget(parent), _st(st), _active(false), _text(lang(lng_country_code)), _select(0) {
|
||||||
initCountries();
|
initCountries();
|
||||||
|
|
||||||
resize(_st.width, _st.height + _st.ptrSize.height());
|
resize(_st.width, _st.height + _st.ptrSize.height());
|
||||||
|
@ -204,8 +204,8 @@ CountryInput::~CountryInput() {
|
||||||
delete _select;
|
delete _select;
|
||||||
}
|
}
|
||||||
|
|
||||||
CountryList::CountryList(QWidget *parent, const style::countryList &st) : QWidget(parent), _sel(0), _mouseSel(false),
|
CountryList::CountryList(QWidget *parent, const style::countryList &st) : QWidget(parent), _sel(0),
|
||||||
_st(st) {
|
_st(st), _mouseSel(false) {
|
||||||
CountriesByISO2::const_iterator l = countriesByISO2.constFind(lastValidISO);
|
CountriesByISO2::const_iterator l = countriesByISO2.constFind(lastValidISO);
|
||||||
bool seenLastValid = false;
|
bool seenLastValid = false;
|
||||||
int already = countriesAll.size();
|
int already = countriesAll.size();
|
||||||
|
@ -338,7 +338,7 @@ void CountryList::mouseMoveEvent(QMouseEvent *e) {
|
||||||
|
|
||||||
void CountryList::onUpdateSelected(bool force) {
|
void CountryList::onUpdateSelected(bool force) {
|
||||||
QPoint p(mapFromGlobal(_mousePos));
|
QPoint p(mapFromGlobal(_mousePos));
|
||||||
if (!force && !rect().contains(p) || !_mouseSel) return;
|
if ((!force && !rect().contains(p)) || !_mouseSel) return;
|
||||||
|
|
||||||
int newSelected = p.y();
|
int newSelected = p.y();
|
||||||
newSelected = (newSelected > _st.verticalMargin) ? (newSelected - _st.verticalMargin) / _st.rowHeight : 0;
|
newSelected = (newSelected > _st.verticalMargin) ? (newSelected - _st.verticalMargin) / _st.rowHeight : 0;
|
||||||
|
@ -413,11 +413,11 @@ QString CountryList::getSelectedCountry() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
CountrySelect::CountrySelect() : QWidget(App::wnd()),
|
CountrySelect::CountrySelect() : QWidget(App::wnd()),
|
||||||
_scroll(this, st::scrollCountries), _list(&_scroll),
|
_result("none"),
|
||||||
_filter(this, st::inpCountry, lang(lng_country_ph)),
|
_filter(this, st::inpCountry, lang(lng_country_ph)), _scroll(this, st::scrollCountries), _list(&_scroll),
|
||||||
_doneButton(this, lang(lng_country_done), st::btnSelectDone),
|
_doneButton(this, lang(lng_country_done), st::btnSelectDone),
|
||||||
_cancelButton(this, lang(lng_cancel), st::btnSelectCancel),
|
_cancelButton(this, lang(lng_cancel), st::btnSelectCancel),
|
||||||
_innerLeft(0), _innerTop(0), _innerWidth(0), _innerHeight(0), _result("none"),
|
_innerLeft(0), _innerTop(0), _innerWidth(0), _innerHeight(0),
|
||||||
a_alpha(0), a_bgAlpha(0), a_coord(st::countriesSlideShift), _shadow(st::boxShadow) {
|
a_alpha(0), a_bgAlpha(0), a_coord(st::countriesSlideShift), _shadow(st::boxShadow) {
|
||||||
setGeometry(App::wnd()->rect());
|
setGeometry(App::wnd()->rect());
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
/*
|
/*
|
||||||
This file is part of Telegram Desktop,
|
Created from emoji config by '/MetaEmoji' project
|
||||||
|
|
||||||
|
WARNING! All changes made in this file will be lost!
|
||||||
|
|
||||||
|
This file is part of Telegram Desktop,
|
||||||
an unofficial desktop messaging app, see https://telegram.org
|
an unofficial desktop messaging app, see https://telegram.org
|
||||||
|
|
||||||
Telegram Desktop is free software: you can redistribute it and/or modify
|
Telegram Desktop is free software: you can redistribute it and/or modify
|
||||||
|
@ -26,7 +30,9 @@ namespace {
|
||||||
void initEmoji() {
|
void initEmoji() {
|
||||||
EmojiData *toFill = emojis = (EmojiData*)emojisData;
|
EmojiData *toFill = emojis = (EmojiData*)emojisData;
|
||||||
|
|
||||||
switch (cScale()) {
|
DBIScale emojiForScale = cRetina() ? dbisTwo : cScale();
|
||||||
|
|
||||||
|
switch (emojiForScale) {
|
||||||
|
|
||||||
case dbisOne:
|
case dbisOne:
|
||||||
new (toFill++) EmojiData(176, 0, 169, 0, 1);
|
new (toFill++) EmojiData(176, 0, 169, 0, 1);
|
||||||
|
@ -3556,7 +3562,7 @@ const EmojiData *getEmoji(uint32 code) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (highCode == 35 || highCode >= 48 && highCode < 58) {
|
if (highCode == 35 || (highCode >= 48 && highCode < 58)) {
|
||||||
if ((code & 0xFFFF) != 0x20E3) return 0;
|
if ((code & 0xFFFF) != 0x20E3) return 0;
|
||||||
|
|
||||||
switch (code) {
|
switch (code) {
|
||||||
|
|
|
@ -19,9 +19,9 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
#include "gui/flatbutton.h"
|
#include "gui/flatbutton.h"
|
||||||
|
|
||||||
FlatButton::FlatButton(QWidget *parent, const QString &text, const style::flatButton &st) : Button(parent),
|
FlatButton::FlatButton(QWidget *parent, const QString &text, const style::flatButton &st) : Button(parent),
|
||||||
_text(text), _opacity(1),
|
_text(text),
|
||||||
_st(st),
|
_st(st),
|
||||||
a_bg(st.bgColor->c), a_text(st.color->c) {
|
a_bg(st.bgColor->c), a_text(st.color->c), _opacity(1) {
|
||||||
if (_st.width < 0) {
|
if (_st.width < 0) {
|
||||||
_st.width = _st.font->m.width(text) - _st.width;
|
_st.width = _st.font->m.width(text) - _st.width;
|
||||||
} else if (!_st.width) {
|
} else if (!_st.width) {
|
||||||
|
@ -133,8 +133,8 @@ void LinkButton::onStateChange(int oldState, ButtonStateChangeSource source) {
|
||||||
LinkButton::~LinkButton() {
|
LinkButton::~LinkButton() {
|
||||||
}
|
}
|
||||||
|
|
||||||
IconedButton::IconedButton(QWidget *parent, const style::iconedButton &st, const QString &text) : Button(parent), _opacity(1),
|
IconedButton::IconedButton(QWidget *parent, const style::iconedButton &st, const QString &text) : Button(parent),
|
||||||
_text(text), _st(st), a_opacity(_st.opacity), a_bg(_st.bgColor->c) {
|
_text(text), _st(st), a_opacity(_st.opacity), a_bg(_st.bgColor->c), _opacity(1) {
|
||||||
|
|
||||||
if (_st.width < 0) {
|
if (_st.width < 0) {
|
||||||
_st.width = _st.font->m.width(text) - _st.width;
|
_st.width = _st.font->m.width(text) - _st.width;
|
||||||
|
|
|
@ -22,13 +22,13 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
#include "flatcheckbox.h"
|
#include "flatcheckbox.h"
|
||||||
|
|
||||||
FlatCheckbox::FlatCheckbox(QWidget *parent, const QString &text, bool checked, const style::flatCheckbox &st) : Button(parent),
|
FlatCheckbox::FlatCheckbox(QWidget *parent, const QString &text, bool checked, const style::flatCheckbox &st) : Button(parent),
|
||||||
_text(text), _checked(checked), _st(st), _opacity(1), a_over(0, 0) {
|
_st(st), a_over(0, 0), _text(text), _opacity(1), _checked(checked) {
|
||||||
connect(this, SIGNAL(clicked()), this, SLOT(onClicked()));
|
connect(this, SIGNAL(clicked()), this, SLOT(onClicked()));
|
||||||
connect(this, SIGNAL(stateChanged(int, ButtonStateChangeSource)), this, SLOT(onStateChange(int, ButtonStateChangeSource)));
|
connect(this, SIGNAL(stateChanged(int, ButtonStateChangeSource)), this, SLOT(onStateChange(int, ButtonStateChangeSource)));
|
||||||
setCursor(_st.cursor);
|
setCursor(_st.cursor);
|
||||||
int32 w = _st.width, h = _st.height;
|
int32 w = _st.width, h = _st.height;
|
||||||
if (w <= 0) w = _st.textLeft + _st.font->m.width(_text) + 1;
|
if (w <= 0) w = _st.textLeft + _st.font->m.width(_text) + 1;
|
||||||
if (h <= 0) h = qMax(_st.font->height, _st.imageRect.height());
|
if (h <= 0) h = qMax(_st.font->height, _st.imageRect.pxHeight());
|
||||||
resize(QSize(w, h));
|
resize(QSize(w, h));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ void FlatCheckbox::paintEvent(QPaintEvent *e) {
|
||||||
if (_state & StateDisabled) {
|
if (_state & StateDisabled) {
|
||||||
QRect sRect(_checked ? _st.chkDisImageRect : _st.disImageRect);
|
QRect sRect(_checked ? _st.chkDisImageRect : _st.disImageRect);
|
||||||
p.drawPixmap(_st.imagePos, App::sprite(), sRect);
|
p.drawPixmap(_st.imagePos, App::sprite(), sRect);
|
||||||
} else if (_checked && _st.chkImageRect == _st.chkOverImageRect || !_checked && _st.imageRect == _st.overImageRect) {
|
} else if ((_checked && _st.chkImageRect == _st.chkOverImageRect) || (!_checked && _st.imageRect == _st.overImageRect)) {
|
||||||
p.setOpacity(_opacity);
|
p.setOpacity(_opacity);
|
||||||
QRect sRect(_checked ? _st.chkImageRect : _st.imageRect);
|
QRect sRect(_checked ? _st.chkImageRect : _st.imageRect);
|
||||||
p.drawPixmap(_st.imagePos, App::sprite(), sRect);
|
p.drawPixmap(_st.imagePos, App::sprite(), sRect);
|
||||||
|
@ -185,7 +185,7 @@ void RadiobuttonsGroup::remove(FlatRadiobutton * const &radio) {
|
||||||
}
|
}
|
||||||
|
|
||||||
FlatRadiobutton::FlatRadiobutton(QWidget *parent, const QString &group, int32 value, const QString &text, bool checked, const style::flatCheckbox &st) :
|
FlatRadiobutton::FlatRadiobutton(QWidget *parent, const QString &group, int32 value, const QString &text, bool checked, const style::flatCheckbox &st) :
|
||||||
FlatCheckbox(parent, text, checked, st), _value(value), _group(radioButtons.reg(group)) {
|
FlatCheckbox(parent, text, checked, st), _group(radioButtons.reg(group)), _value(value) {
|
||||||
_group->insert(this);
|
_group->insert(this);
|
||||||
connect(this, SIGNAL(changed()), this, SLOT(onChanged()));
|
connect(this, SIGNAL(changed()), this, SLOT(onChanged()));
|
||||||
if (this->checked()) onChanged();
|
if (this->checked()) onChanged();
|
||||||
|
|
|
@ -41,9 +41,9 @@ namespace {
|
||||||
FlatInputStyle _flatInputStyle;
|
FlatInputStyle _flatInputStyle;
|
||||||
}
|
}
|
||||||
|
|
||||||
FlatInput::FlatInput(QWidget *parent, const style::flatInput &st, const QString &pholder, const QString &v) : QLineEdit(v, parent), _oldtext(v),
|
FlatInput::FlatInput(QWidget *parent, const style::flatInput &st, const QString &pholder, const QString &v) : QLineEdit(v, parent), _oldtext(v), _kev(0), _customUpDown(false), _phVisible(!v.length()),
|
||||||
_st(st), _phVisible(!v.length()), _kev(0), a_borderColor(st.borderColor->c), a_bgColor(st.bgColor->c), _notingBene(0),
|
a_phLeft(_phVisible ? 0 : st.phShift), a_phAlpha(_phVisible ? 1 : 0), a_phColor(st.phColor->c),
|
||||||
a_phLeft(_phVisible ? 0 : st.phShift), a_phAlpha(_phVisible ? 1 : 0), a_phColor(st.phColor->c) {
|
a_borderColor(st.borderColor->c), a_bgColor(st.bgColor->c), _notingBene(0), _st(st) {
|
||||||
resize(_st.width, _st.height);
|
resize(_st.width, _st.height);
|
||||||
|
|
||||||
setFont(_st.font->f);
|
setFont(_st.font->f);
|
||||||
|
@ -67,6 +67,10 @@ FlatInput::FlatInput(QWidget *parent, const style::flatInput &st, const QString
|
||||||
connect(&_touchTimer, SIGNAL(timeout()), this, SLOT(onTouchTimer()));
|
connect(&_touchTimer, SIGNAL(timeout()), this, SLOT(onTouchTimer()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FlatInput::customUpDown(bool custom) {
|
||||||
|
_customUpDown = custom;
|
||||||
|
}
|
||||||
|
|
||||||
void FlatInput::onTouchTimer() {
|
void FlatInput::onTouchTimer() {
|
||||||
_touchRightButton = true;
|
_touchRightButton = true;
|
||||||
}
|
}
|
||||||
|
@ -134,7 +138,7 @@ void FlatInput::paintEvent(QPaintEvent *e) {
|
||||||
p.drawRect(i, i, width() - 2 * i - 1, height() - 2 * i - 1);
|
p.drawRect(i, i, width() - 2 * i - 1, height() - 2 * i - 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (_st.imgRect.width()) {
|
if (_st.imgRect.pxWidth()) {
|
||||||
p.drawPixmap(_st.imgPos, App::sprite(), _st.imgRect);
|
p.drawPixmap(_st.imgPos, App::sprite(), _st.imgRect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -231,7 +235,12 @@ void FlatInput::correctValue(QKeyEvent *e, const QString &was) {
|
||||||
void FlatInput::keyPressEvent(QKeyEvent *e) {
|
void FlatInput::keyPressEvent(QKeyEvent *e) {
|
||||||
QString was(text());
|
QString was(text());
|
||||||
_kev = e;
|
_kev = e;
|
||||||
QLineEdit::keyPressEvent(e);
|
if (_customUpDown && (e->key() == Qt::Key_Up || e->key() == Qt::Key_Down)) {
|
||||||
|
e->ignore();
|
||||||
|
} else {
|
||||||
|
QLineEdit::keyPressEvent(e);
|
||||||
|
}
|
||||||
|
|
||||||
if (was == text()) { // call correct manually
|
if (was == text()) { // call correct manually
|
||||||
correctValue(_kev, was);
|
correctValue(_kev, was);
|
||||||
_oldtext = text();
|
_oldtext = text();
|
||||||
|
|
|
@ -47,6 +47,8 @@ public:
|
||||||
QSize sizeHint() const;
|
QSize sizeHint() const;
|
||||||
QSize minimumSizeHint() const;
|
QSize minimumSizeHint() const;
|
||||||
|
|
||||||
|
void customUpDown(bool isCustom);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|
||||||
void onTextChange(const QString &text);
|
void onTextChange(const QString &text);
|
||||||
|
@ -71,6 +73,8 @@ private:
|
||||||
QString _ph, _oldtext;
|
QString _ph, _oldtext;
|
||||||
QKeyEvent *_kev;
|
QKeyEvent *_kev;
|
||||||
|
|
||||||
|
bool _customUpDown;
|
||||||
|
|
||||||
bool _phVisible;
|
bool _phVisible;
|
||||||
anim::ivalue a_phLeft;
|
anim::ivalue a_phLeft;
|
||||||
anim::fvalue a_phAlpha;
|
anim::fvalue a_phAlpha;
|
||||||
|
|
|
@ -29,7 +29,7 @@ namespace {
|
||||||
}
|
}
|
||||||
|
|
||||||
FlatLabel::FlatLabel(QWidget *parent, const QString &text, const style::flatLabel &st, const style::textStyle &tst) : TWidget(parent),
|
FlatLabel::FlatLabel(QWidget *parent, const QString &text, const style::flatLabel &st, const style::textStyle &tst) : TWidget(parent),
|
||||||
_st(st), _tst(tst), _text(_st.width ? _st.width : QFIXED_MAX), _opacity(1) {
|
_text(st.width ? st.width : QFIXED_MAX), _st(st), _tst(tst), _opacity(1) {
|
||||||
setRichText(text);
|
setRichText(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,10 +20,11 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
|
|
||||||
#include "flattextarea.h"
|
#include "flattextarea.h"
|
||||||
|
|
||||||
FlatTextarea::FlatTextarea(QWidget *parent, const style::flatTextarea &st, const QString &pholder, const QString &v) : QTextEdit(v, parent), _oldtext(v),
|
FlatTextarea::FlatTextarea(QWidget *parent, const style::flatTextarea &st, const QString &pholder, const QString &v) : QTextEdit(v, parent),
|
||||||
_st(st), _phVisible(!v.length()), _ph(pholder), _fakeMargin(0),
|
_ph(pholder), _oldtext(v), _phVisible(!v.length()),
|
||||||
a_phLeft(_phVisible ? 0 : st.phShift), a_phAlpha(_phVisible ? 1 : 0), a_phColor(st.phColor->c),
|
a_phLeft(_phVisible ? 0 : st.phShift), a_phAlpha(_phVisible ? 1 : 0), a_phColor(st.phColor->c),
|
||||||
_touchPress(false), _touchRightButton(false), _touchMove(false), _replacingEmojis(false) {
|
_st(st), _fakeMargin(0),
|
||||||
|
_touchPress(false), _touchRightButton(false), _touchMove(false), _replacingEmojis(false) {
|
||||||
setAcceptRichText(false);
|
setAcceptRichText(false);
|
||||||
resize(_st.width, _st.font->height);
|
resize(_st.width, _st.font->height);
|
||||||
|
|
||||||
|
@ -270,8 +271,8 @@ void FlatTextarea::insertEmoji(EmojiPtr emoji, QTextCursor c) {
|
||||||
QString url = qsl("emoji://") + QString::number(emoji->code, 16);
|
QString url = qsl("emoji://") + QString::number(emoji->code, 16);
|
||||||
document()->addResource(QTextDocument::ImageResource, QUrl(url), QVariant(img));
|
document()->addResource(QTextDocument::ImageResource, QUrl(url), QVariant(img));
|
||||||
QTextImageFormat imageFormat;
|
QTextImageFormat imageFormat;
|
||||||
imageFormat.setWidth(img.width());
|
imageFormat.setWidth(img.width() / cIntRetinaFactor());
|
||||||
imageFormat.setHeight(img.height());
|
imageFormat.setHeight(img.height() / cIntRetinaFactor());
|
||||||
imageFormat.setName(url);
|
imageFormat.setName(url);
|
||||||
imageFormat.setVerticalAlignment(QTextCharFormat::AlignBaseline);
|
imageFormat.setVerticalAlignment(QTextCharFormat::AlignBaseline);
|
||||||
c.insertImage(imageFormat);
|
c.insertImage(imageFormat);
|
||||||
|
@ -300,10 +301,10 @@ void FlatTextarea::processDocumentContentsChange(int position, int charsAdded) {
|
||||||
|
|
||||||
QString t(fragment.text());
|
QString t(fragment.text());
|
||||||
for (const QChar *ch = t.constData(), *e = ch + t.size(); ch != e; ++ch) {
|
for (const QChar *ch = t.constData(), *e = ch + t.size(); ch != e; ++ch) {
|
||||||
if (ch + 1 < e && (ch->isHighSurrogate() || (ch->unicode() >= 48 && ch->unicode() < 58 || ch->unicode() == 35) && (ch + 1)->unicode() == 0x20E3)) {
|
if (ch + 1 < e && (ch->isHighSurrogate() || (((ch->unicode() >= 48 && ch->unicode() < 58) || ch->unicode() == 35) && (ch + 1)->unicode() == 0x20E3))) {
|
||||||
emoji = getEmoji((ch->unicode() << 16) | (ch + 1)->unicode());
|
emoji = getEmoji((ch->unicode() << 16) | (ch + 1)->unicode());
|
||||||
if (emoji) {
|
if (emoji) {
|
||||||
if (emoji->len == 4 && (ch + 3 >= e || (((ch + 2)->unicode() << 16) | (ch + 3)->unicode()) != emoji->code2)) {
|
if (emoji->len == 4 && (ch + 3 >= e || ((uint32((ch + 2)->unicode()) << 16) | uint32((ch + 3)->unicode())) != emoji->code2)) {
|
||||||
emoji = 0;
|
emoji = 0;
|
||||||
} else {
|
} else {
|
||||||
emojiPosition = p + (ch - t.constData());
|
emojiPosition = p + (ch - t.constData());
|
||||||
|
@ -438,7 +439,7 @@ QMimeData *FlatTextarea::createMimeDataFromSelection() const {
|
||||||
|
|
||||||
void FlatTextarea::keyPressEvent(QKeyEvent *e) {
|
void FlatTextarea::keyPressEvent(QKeyEvent *e) {
|
||||||
bool shift = e->modifiers().testFlag(Qt::ShiftModifier);
|
bool shift = e->modifiers().testFlag(Qt::ShiftModifier);
|
||||||
bool ctrl = e->modifiers().testFlag(Qt::ControlModifier), ctrlGood = ctrl && cCtrlEnter() || !ctrl && !shift && !cCtrlEnter();
|
bool ctrl = e->modifiers().testFlag(Qt::ControlModifier), ctrlGood = (ctrl && cCtrlEnter()) || (!ctrl && !shift && !cCtrlEnter());
|
||||||
bool enter = (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return);
|
bool enter = (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return);
|
||||||
|
|
||||||
if (enter && ctrlGood) {
|
if (enter && ctrlGood) {
|
||||||
|
|
|
@ -60,18 +60,16 @@ const QPixmap &Image::pix(int32 w, int32 h) const {
|
||||||
checkload();
|
checkload();
|
||||||
|
|
||||||
if (w <= 0 || !width() || !height()) {
|
if (w <= 0 || !width() || !height()) {
|
||||||
w = width() * cRetinaFactor();
|
w = width() * cIntRetinaFactor();
|
||||||
} else if (cRetina()) {
|
} else if (cRetina()) {
|
||||||
w *= cRetinaFactor();
|
w *= cIntRetinaFactor();
|
||||||
h *= cRetinaFactor();
|
h *= cIntRetinaFactor();
|
||||||
}
|
}
|
||||||
uint64 k = (uint64(w) << 32) | uint64(h);
|
uint64 k = (uint64(w) << 32) | uint64(h);
|
||||||
Sizes::const_iterator i = _sizesCache.constFind(k);
|
Sizes::const_iterator i = _sizesCache.constFind(k);
|
||||||
if (i == _sizesCache.cend()) {
|
if (i == _sizesCache.cend()) {
|
||||||
QPixmap p(pixNoCache(w, h, true));
|
QPixmap p(pixNoCache(w, h, true));
|
||||||
if (cRetina()) {
|
if (cRetina()) p.setDevicePixelRatio(cRetinaFactor());
|
||||||
p.setDevicePixelRatio(cRetinaFactor());
|
|
||||||
}
|
|
||||||
i = _sizesCache.insert(k, p);
|
i = _sizesCache.insert(k, p);
|
||||||
if (!p.isNull()) {
|
if (!p.isNull()) {
|
||||||
globalAquiredSize += int64(p.width()) * p.height() * 4;
|
globalAquiredSize += int64(p.width()) * p.height() * 4;
|
||||||
|
@ -192,10 +190,10 @@ int64 imageCacheSize() {
|
||||||
return globalAquiredSize;
|
return globalAquiredSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
StorageImage::StorageImage(int32 width, int32 height, int32 dc, const int64 &volume, int32 local, const int64 &secret) : loader(new mtpFileLoader(dc, volume, local, secret)), w(width), h(height) {
|
StorageImage::StorageImage(int32 width, int32 height, int32 dc, const int64 &volume, int32 local, const int64 &secret) : w(width), h(height), loader(new mtpFileLoader(dc, volume, local, secret)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
StorageImage::StorageImage(int32 width, int32 height, int32 dc, const int64 &volume, int32 local, const int64 &secret, QByteArray &bytes) : loader(0), w(width), h(height) {
|
StorageImage::StorageImage(int32 width, int32 height, int32 dc, const int64 &volume, int32 local, const int64 &secret, QByteArray &bytes) : w(width), h(height), loader(0) {
|
||||||
setData(bytes);
|
setData(bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,10 +36,12 @@ void ScrollShadow::changeVisibility(bool shown) {
|
||||||
}
|
}
|
||||||
|
|
||||||
ScrollBar::ScrollBar(ScrollArea *parent, bool vert, const style::flatScroll *st) : QWidget(parent),
|
ScrollBar::ScrollBar(ScrollArea *parent, bool vert, const style::flatScroll *st) : QWidget(parent),
|
||||||
_st(st), _area(parent), _vertical(vert), _hideIn(-1),
|
_area(parent), _st(st), _vertical(vert),
|
||||||
_over(false), _overbar(false), _moving(false), _topSh(false), _bottomSh(false),
|
_over(false), _overbar(false), _moving(false), _topSh(false), _bottomSh(false),
|
||||||
a_bg((_st->hiding ? st::transparent : _st->bgColor)->c), a_bar((_st->hiding ? st::transparent : _st->barColor)->c),
|
_connected(vert ? parent->verticalScrollBar() : parent->horizontalScrollBar()),
|
||||||
_connected(vert ? parent->verticalScrollBar() : parent->horizontalScrollBar()), _scrollMax(_connected->maximum()) {
|
_scrollMax(_connected->maximum()), _hideIn(-1),
|
||||||
|
a_bg((_st->hiding ? st::transparent : _st->bgColor)->c),
|
||||||
|
a_bar((_st->hiding ? st::transparent : _st->barColor)->c) {
|
||||||
recountSize();
|
recountSize();
|
||||||
|
|
||||||
_hideTimer.setSingleShot(true);
|
_hideTimer.setSingleShot(true);
|
||||||
|
@ -249,10 +251,12 @@ void ScrollBar::resizeEvent(QResizeEvent *e) {
|
||||||
updateBar();
|
updateBar();
|
||||||
}
|
}
|
||||||
|
|
||||||
ScrollArea::ScrollArea(QWidget *parent, const style::flatScroll &st, bool handleTouch) : QScrollArea(parent), _st(st), _touchEnabled(handleTouch),
|
ScrollArea::ScrollArea(QWidget *parent, const style::flatScroll &st, bool handleTouch) : QScrollArea(parent),
|
||||||
|
_st(st),
|
||||||
hor(this, false, &_st), vert(this, true, &_st), topSh(this, &_st), bottomSh(this, &_st),
|
hor(this, false, &_st), vert(this, true, &_st), topSh(this, &_st), bottomSh(this, &_st),
|
||||||
_touchScroll(false), _touchPress(false), _touchRightButton(false), _widgetAcceptsTouch(false),
|
_touchEnabled(handleTouch), _touchScroll(false), _touchPress(false), _touchRightButton(false),
|
||||||
_touchScrollState(TouchScrollManual), _touchPrevPosValid(false), _touchWaitingAcceleration(false), _touchSpeedTime(0), _touchAccelerationTime(0), _touchTime(0) {
|
_touchScrollState(TouchScrollManual), _touchPrevPosValid(false), _touchWaitingAcceleration(false),
|
||||||
|
_touchSpeedTime(0), _touchAccelerationTime(0), _touchTime(0), _widgetAcceptsTouch(false) {
|
||||||
connect(horizontalScrollBar(), SIGNAL(valueChanged(int)), this, SIGNAL(scrolled()));
|
connect(horizontalScrollBar(), SIGNAL(valueChanged(int)), this, SIGNAL(scrolled()));
|
||||||
connect(verticalScrollBar(), SIGNAL(valueChanged(int)), this, SIGNAL(scrolled()));
|
connect(verticalScrollBar(), SIGNAL(valueChanged(int)), this, SIGNAL(scrolled()));
|
||||||
connect(&vert, SIGNAL(topShadowVisibility(bool)), &topSh, SLOT(changeVisibility(bool)));
|
connect(&vert, SIGNAL(topShadowVisibility(bool)), &topSh, SLOT(changeVisibility(bool)));
|
||||||
|
@ -365,8 +369,8 @@ void ScrollArea::touchUpdateSpeed() {
|
||||||
if (_touchScrollState == TouchScrollAuto) {
|
if (_touchScrollState == TouchScrollAuto) {
|
||||||
const int oldSpeedY = _touchSpeed.y();
|
const int oldSpeedY = _touchSpeed.y();
|
||||||
const int oldSpeedX = _touchSpeed.x();
|
const int oldSpeedX = _touchSpeed.x();
|
||||||
if ((oldSpeedY <= 0 && newSpeedY <= 0) || (oldSpeedY >= 0 && newSpeedY >= 0)
|
if ((oldSpeedY <= 0 && newSpeedY <= 0) || ((oldSpeedY >= 0 && newSpeedY >= 0)
|
||||||
&& (oldSpeedX <= 0 && newSpeedX <= 0) || (oldSpeedX >= 0 && newSpeedX >= 0)) {
|
&& (oldSpeedX <= 0 && newSpeedX <= 0)) || (oldSpeedX >= 0 && newSpeedX >= 0)) {
|
||||||
_touchSpeed.setY(snap((oldSpeedY + (newSpeedY / 4)), -MaxScrollAccelerated, +MaxScrollAccelerated));
|
_touchSpeed.setY(snap((oldSpeedY + (newSpeedY / 4)), -MaxScrollAccelerated, +MaxScrollAccelerated));
|
||||||
_touchSpeed.setX(snap((oldSpeedX + (newSpeedX / 4)), -MaxScrollAccelerated, +MaxScrollAccelerated));
|
_touchSpeed.setX(snap((oldSpeedX + (newSpeedX / 4)), -MaxScrollAccelerated, +MaxScrollAccelerated));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace {
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace style {
|
namespace style {
|
||||||
FontData::FontData(uint32 size, uint32 flags, uint32 family, Font *other) : _size(size), _flags(flags), _family(family), f(_fontFamilies[family]), m(f) {
|
FontData::FontData(uint32 size, uint32 flags, uint32 family, Font *other) : f(_fontFamilies[family]), m(f), _size(size), _flags(flags), _family(family) {
|
||||||
if (other) {
|
if (other) {
|
||||||
memcpy(modified, other, sizeof(modified));
|
memcpy(modified, other, sizeof(modified));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -200,6 +200,32 @@ inline bool operator!=(const Font &a, const Font &b) {
|
||||||
typedef float64 number;
|
typedef float64 number;
|
||||||
typedef QString string;
|
typedef QString string;
|
||||||
typedef QRect rect;
|
typedef QRect rect;
|
||||||
|
class sprite : public rect {
|
||||||
|
public:
|
||||||
|
sprite() {
|
||||||
|
}
|
||||||
|
sprite(int left, int top, int width, int height) : rect(left, top, width, height) {
|
||||||
|
}
|
||||||
|
inline int pxWidth() const {
|
||||||
|
return rect::width() / cIntRetinaFactor();
|
||||||
|
}
|
||||||
|
inline int pxHeight() const {
|
||||||
|
return rect::height() / cIntRetinaFactor();
|
||||||
|
}
|
||||||
|
inline QSize pxSize() const {
|
||||||
|
return rect::size() / cIntRetinaFactor();
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
inline int width() const {
|
||||||
|
return rect::width();
|
||||||
|
}
|
||||||
|
inline int height() const {
|
||||||
|
return rect::height();
|
||||||
|
}
|
||||||
|
inline QSize size() const {
|
||||||
|
return rect::size();
|
||||||
|
}
|
||||||
|
};
|
||||||
typedef QPoint point;
|
typedef QPoint point;
|
||||||
typedef QSize size;
|
typedef QSize size;
|
||||||
typedef anim::transition transition;
|
typedef anim::transition transition;
|
||||||
|
|
|
@ -372,7 +372,7 @@ public:
|
||||||
} else if (ch == ')' || ch == ']' || ch == '}' || ch == '>') {
|
} else if (ch == ')' || ch == ']' || ch == '}' || ch == '>') {
|
||||||
if (parenth.isEmpty()) break;
|
if (parenth.isEmpty()) break;
|
||||||
const QChar *q = parenth.pop(), open(*q);
|
const QChar *q = parenth.pop(), open(*q);
|
||||||
if (ch == ')' && open != '(' || ch == ']' && open != '[' || ch == '}' && open != '{' || ch == '>' && open != '<') {
|
if ((ch == ')' && open != '(') || (ch == ']' && open != '[') || (ch == '}' && open != '{') || (ch == '>' && open != '<')) {
|
||||||
p = q;
|
p = q;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -623,7 +623,7 @@ public:
|
||||||
ch = *ptr;
|
ch = *ptr;
|
||||||
chInt = (chInt << 16) | ch.unicode();
|
chInt = (chInt << 16) | ch.unicode();
|
||||||
}
|
}
|
||||||
} else if (ch >= 48 && ch < 58 || ch == 35) { // check for digit emoji
|
} else if ((ch >= 48 && ch < 58) || ch == 35) { // check for digit emoji
|
||||||
if (ptr + 1 < end && (ptr + 1)->unicode() == 0x20E3) {
|
if (ptr + 1 < end && (ptr + 1)->unicode() == 0x20E3) {
|
||||||
_t->_text.push_back(ch);
|
_t->_text.push_back(ch);
|
||||||
skipBack = -1;
|
skipBack = -1;
|
||||||
|
@ -657,7 +657,7 @@ public:
|
||||||
if (!e) return;
|
if (!e) return;
|
||||||
|
|
||||||
if (e->len > 2) {
|
if (e->len > 2) {
|
||||||
if (ptr + 2 >= end || e->code2 != (((ptr + 1)->unicode() << 16) | (ptr + 2)->unicode())) {
|
if (ptr + 2 >= end || e->code2 != ((uint32((ptr + 1)->unicode()) << 16) | uint32((ptr + 2)->unicode()))) {
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
_t->_text.push_back(*++ptr);
|
_t->_text.push_back(*++ptr);
|
||||||
|
@ -669,8 +669,8 @@ public:
|
||||||
emoji = e;
|
emoji = e;
|
||||||
}
|
}
|
||||||
|
|
||||||
TextParser(Text *t, const QString &text, const TextParseOptions &options) : _t(t), src(text), stopAfterWidth(QFIXED_MAX),
|
TextParser(Text *t, const QString &text, const TextParseOptions &options) : _t(t), src(text),
|
||||||
rich(options.flags & TextParseRichText), multiline(options.flags & TextParseMultiline), flags(0), lnkIndex(0), maxLnkIndex(0) {
|
rich(options.flags & TextParseRichText), multiline(options.flags & TextParseMultiline), maxLnkIndex(0), flags(0), lnkIndex(0), stopAfterWidth(QFIXED_MAX) {
|
||||||
int flags = options.flags;
|
int flags = options.flags;
|
||||||
if (options.maxw > 0 && options.maxh > 0) {
|
if (options.maxw > 0 && options.maxh > 0) {
|
||||||
stopAfterWidth = ((options.maxh / _t->_font->height) + 1) * options.maxw;
|
stopAfterWidth = ((options.maxh / _t->_font->height) + 1) * options.maxw;
|
||||||
|
@ -884,7 +884,7 @@ public:
|
||||||
return _blockEnd(t, i, e) - (*i)->from();
|
return _blockEnd(t, i, e) - (*i)->from();
|
||||||
}
|
}
|
||||||
|
|
||||||
TextPainter(QPainter *p, const Text *t) : _p(p), _t(t), _elideLast(false), _elideSavedBlock(0), _lnkResult(0), _inTextFlag(0), _getSymbol(0), _getSymbolAfter(0), _getSymbolUpon(0), _str(0) {
|
TextPainter(QPainter *p, const Text *t) : _p(p), _t(t), _elideLast(false), _str(0), _elideSavedBlock(0), _lnkResult(0), _inTextFlag(0), _getSymbol(0), _getSymbolAfter(0), _getSymbolUpon(0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void initNextParagraph(Text::TextBlocks::const_iterator i) {
|
void initNextParagraph(Text::TextBlocks::const_iterator i) {
|
||||||
|
@ -1228,12 +1228,12 @@ public:
|
||||||
bool selectFromStart = (_selectedTo > _lineStart) && (_lineStart > 0) && (_selectedFrom <= _lineStart);
|
bool selectFromStart = (_selectedTo > _lineStart) && (_lineStart > 0) && (_selectedFrom <= _lineStart);
|
||||||
bool selectTillEnd = (_selectedTo >= _lineEnd) && (_lineEnd < _t->_text.size()) && (_selectedFrom < _lineEnd) && (!_endBlock || _endBlock->type() != TextBlockSkip);
|
bool selectTillEnd = (_selectedTo >= _lineEnd) && (_lineEnd < _t->_text.size()) && (_selectedFrom < _lineEnd) && (!_endBlock || _endBlock->type() != TextBlockSkip);
|
||||||
|
|
||||||
if (selectFromStart && _parDirection == Qt::LeftToRight || selectTillEnd && _parDirection == Qt::RightToLeft) {
|
if ((selectFromStart && _parDirection == Qt::LeftToRight) || (selectTillEnd && _parDirection == Qt::RightToLeft)) {
|
||||||
if (x > _x) {
|
if (x > _x) {
|
||||||
_p->fillRect(QRectF(_x.toReal(), _y + _yDelta, (x - _x).toReal(), _fontHeight), _textStyle->selectBG->b);
|
_p->fillRect(QRectF(_x.toReal(), _y + _yDelta, (x - _x).toReal(), _fontHeight), _textStyle->selectBG->b);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (selectTillEnd && _parDirection == Qt::LeftToRight || selectFromStart && _parDirection == Qt::RightToLeft) {
|
if ((selectTillEnd && _parDirection == Qt::LeftToRight) || (selectFromStart && _parDirection == Qt::RightToLeft)) {
|
||||||
if (x < _x + _wLeft) {
|
if (x < _x + _wLeft) {
|
||||||
_p->fillRect(QRectF((x + _w - _wLeft).toReal(), _y + _yDelta, (_x + _wLeft - x).toReal(), _fontHeight), _textStyle->selectBG->b);
|
_p->fillRect(QRectF((x + _w - _wLeft).toReal(), _y + _yDelta, (_x + _wLeft - x).toReal(), _fontHeight), _textStyle->selectBG->b);
|
||||||
}
|
}
|
||||||
|
@ -1405,7 +1405,7 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_p->drawPixmap(QPoint((glyphX + int(st::emojiPadding)).toInt(), _y + _yDelta + emojiY), App::emojis(), QRect(static_cast<EmojiBlock*>(currentBlock)->emoji->x, static_cast<EmojiBlock*>(currentBlock)->emoji->y, st::emojiSize, st::emojiSize));
|
_p->drawPixmap(QPoint((glyphX + int(st::emojiPadding)).toInt(), _y + _yDelta + emojiY), App::emojis(), QRect(static_cast<EmojiBlock*>(currentBlock)->emoji->x, static_cast<EmojiBlock*>(currentBlock)->emoji->y, st::emojiImgSize, st::emojiImgSize));
|
||||||
// } else if (_p && currentBlock->type() == TextBlockSkip) { // debug
|
// } else if (_p && currentBlock->type() == TextBlockSkip) { // debug
|
||||||
// _p->fillRect(QRect(x.toInt(), _y, currentBlock->width(), static_cast<SkipBlock*>(currentBlock)->height()), QColor(0, 0, 0, 32));
|
// _p->fillRect(QRect(x.toInt(), _y, currentBlock->width(), static_cast<SkipBlock*>(currentBlock)->height()), QColor(0, 0, 0, 32));
|
||||||
}
|
}
|
||||||
|
@ -1452,11 +1452,11 @@ public:
|
||||||
for (int charsCount = (ch2 - ch); ch < ch2; ++ch) {
|
for (int charsCount = (ch2 - ch); ch < ch2; ++ch) {
|
||||||
QFixed shift1 = QFixed(2 * (charsCount - (ch2 - ch)) + 2) * gwidth / QFixed(2 * charsCount),
|
QFixed shift1 = QFixed(2 * (charsCount - (ch2 - ch)) + 2) * gwidth / QFixed(2 * charsCount),
|
||||||
shift2 = QFixed(2 * (charsCount - (ch2 - ch)) + 1) * gwidth / QFixed(2 * charsCount);
|
shift2 = QFixed(2 * (charsCount - (ch2 - ch)) + 1) * gwidth / QFixed(2 * charsCount);
|
||||||
if (rtl && _lnkX >= tmpx - shift1 ||
|
if ((rtl && _lnkX >= tmpx - shift1) ||
|
||||||
!rtl && _lnkX < tmpx + shift1) {
|
(!rtl && _lnkX < tmpx + shift1)) {
|
||||||
*_getSymbol = _localFrom + itemStart + ch;
|
*_getSymbol = _localFrom + itemStart + ch;
|
||||||
if (rtl && _lnkX >= tmpx - shift2 ||
|
if ((rtl && _lnkX >= tmpx - shift2) ||
|
||||||
!rtl && _lnkX < tmpx + shift2) {
|
(!rtl && _lnkX < tmpx + shift2)) {
|
||||||
*_getSymbolAfter = false;
|
*_getSymbolAfter = false;
|
||||||
} else {
|
} else {
|
||||||
*_getSymbolAfter = true;
|
*_getSymbolAfter = true;
|
||||||
|
@ -2807,7 +2807,7 @@ namespace {
|
||||||
class BlockParser {
|
class BlockParser {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
BlockParser(QTextEngine *e, TextBlock *b, QFixed minResizeWidth, int32 blockFrom) : eng(e), block(b) {
|
BlockParser(QTextEngine *e, TextBlock *b, QFixed minResizeWidth, int32 blockFrom) : block(b), eng(e) {
|
||||||
parseWords(minResizeWidth, blockFrom);
|
parseWords(minResizeWidth, blockFrom);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,6 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "gui/emoji_config.h"
|
#include "gui/emoji_config.h"
|
||||||
#include "gui/style_core.h"
|
|
||||||
|
|
||||||
#include "../../../QtStatic/qtbase/src/gui/text/qfontengine_p.h"
|
#include "../../../QtStatic/qtbase/src/gui/text/qfontengine_p.h"
|
||||||
|
|
||||||
|
@ -126,8 +125,8 @@ private:
|
||||||
struct TextWord {
|
struct TextWord {
|
||||||
TextWord() {
|
TextWord() {
|
||||||
}
|
}
|
||||||
TextWord(uint16 from, QFixed width, QFixed rbearing, QFixed rpadding = 0) : from(from), width(width),
|
TextWord(uint16 from, QFixed width, QFixed rbearing, QFixed rpadding = 0) : from(from),
|
||||||
_rbearing(rbearing.value() > 0x7FFF ? 0x7FFF : (rbearing.value() < -0x7FFF ? -0x7FFF : rbearing.value())), rpadding(rpadding) {
|
_rbearing(rbearing.value() > 0x7FFF ? 0x7FFF : (rbearing.value() < -0x7FFF ? -0x7FFF : rbearing.value())), width(width), rpadding(rpadding) {
|
||||||
}
|
}
|
||||||
QFixed f_rbearing() const {
|
QFixed f_rbearing() const {
|
||||||
return QFixed::fromFixed(_rbearing);
|
return QFixed::fromFixed(_rbearing);
|
||||||
|
@ -358,7 +357,7 @@ public:
|
||||||
|
|
||||||
QString original(uint16 selectedFrom = 0, uint16 selectedTo = 0xFFFF, bool expandLinks = true) const;
|
QString original(uint16 selectedFrom = 0, uint16 selectedTo = 0xFFFF, bool expandLinks = true) const;
|
||||||
|
|
||||||
bool lastDots(uint32 dots, int32 maxdots = 3) { // hack for typing animation
|
bool lastDots(int32 dots, int32 maxdots = 3) { // hack for typing animation
|
||||||
if (_text.size() < maxdots) return false;
|
if (_text.size() < maxdots) return false;
|
||||||
|
|
||||||
int32 nowDots = 0, from = _text.size() - maxdots, to = _text.size();
|
int32 nowDots = 0, from = _text.size() - maxdots, to = _text.size();
|
||||||
|
|
|
@ -31,7 +31,7 @@ public:
|
||||||
return dynamic_cast<const TWidget*>(parentWidget());
|
return dynamic_cast<const TWidget*>(parentWidget());
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void leaveToChildEvent(QEvent */*e*/) { // e -- from enterEvent() of child TWidget
|
virtual void leaveToChildEvent(QEvent *e) { // e -- from enterEvent() of child TWidget
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -120,8 +120,16 @@ void historyInit() {
|
||||||
NotifySettings globalNotifyAll, globalNotifyUsers, globalNotifyChats;
|
NotifySettings globalNotifyAll, globalNotifyUsers, globalNotifyChats;
|
||||||
NotifySettingsPtr globalNotifyAllPtr = UnknownNotifySettings, globalNotifyUsersPtr = UnknownNotifySettings, globalNotifyChatsPtr = UnknownNotifySettings;
|
NotifySettingsPtr globalNotifyAllPtr = UnknownNotifySettings, globalNotifyUsersPtr = UnknownNotifySettings, globalNotifyChatsPtr = UnknownNotifySettings;
|
||||||
|
|
||||||
PeerData::PeerData(const PeerId &id) : id(id), access(0), chat(App::isChat(id)), loaded(false), notify(UnknownNotifySettings),
|
PeerData::PeerData(const PeerId &id) : id(id)
|
||||||
colorIndex(peerColorIndex(id)), color(peerColor(colorIndex)), photo(chat ? chatDefPhoto(colorIndex) : userDefPhoto(colorIndex)), nameVersion(0) {
|
, loaded(false)
|
||||||
|
, chat(App::isChat(id))
|
||||||
|
, access(0)
|
||||||
|
, colorIndex(peerColorIndex(id))
|
||||||
|
, color(peerColor(colorIndex))
|
||||||
|
, photo(chat ? chatDefPhoto(colorIndex) : userDefPhoto(colorIndex))
|
||||||
|
, nameVersion(0)
|
||||||
|
, notify(UnknownNotifySettings)
|
||||||
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
UserData *PeerData::asUser() {
|
UserData *PeerData::asUser() {
|
||||||
|
@ -259,11 +267,11 @@ QString saveFileName(const QString &title, const QString &filter, const QString
|
||||||
|
|
||||||
void VideoOpenLink::onClick(Qt::MouseButton button) const {
|
void VideoOpenLink::onClick(Qt::MouseButton button) const {
|
||||||
VideoData *data = video();
|
VideoData *data = video();
|
||||||
if (!data->user && !data->date || button != Qt::LeftButton) return;
|
if ((!data->user && !data->date) || button != Qt::LeftButton) return;
|
||||||
|
|
||||||
QString already = data->already(true);
|
QString already = data->already(true);
|
||||||
if (!already.isEmpty()) {
|
if (!already.isEmpty()) {
|
||||||
QDesktopServices::openUrl(QUrl::fromLocalFile(already));
|
psOpenFile(already);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -304,7 +312,7 @@ void VideoSaveLink::onClick(Qt::MouseButton button) const {
|
||||||
|
|
||||||
void VideoCancelLink::onClick(Qt::MouseButton button) const {
|
void VideoCancelLink::onClick(Qt::MouseButton button) const {
|
||||||
VideoData *data = video();
|
VideoData *data = video();
|
||||||
if (!data->user && !data->date || button != Qt::LeftButton) return;
|
if ((!data->user && !data->date) || button != Qt::LeftButton) return;
|
||||||
|
|
||||||
data->cancel();
|
data->cancel();
|
||||||
}
|
}
|
||||||
|
@ -319,11 +327,11 @@ void VideoData::save(const QString &toFile) {
|
||||||
|
|
||||||
void AudioOpenLink::onClick(Qt::MouseButton button) const {
|
void AudioOpenLink::onClick(Qt::MouseButton button) const {
|
||||||
AudioData *data = audio();
|
AudioData *data = audio();
|
||||||
if (!data->user && !data->date || button != Qt::LeftButton) return;
|
if ((!data->user && !data->date) || button != Qt::LeftButton) return;
|
||||||
|
|
||||||
QString already = data->already(true);
|
QString already = data->already(true);
|
||||||
if (!already.isEmpty()) {
|
if (!already.isEmpty()) {
|
||||||
QDesktopServices::openUrl(QUrl::fromLocalFile(already));
|
psOpenFile(already);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -364,7 +372,7 @@ void AudioSaveLink::onClick(Qt::MouseButton button) const {
|
||||||
|
|
||||||
void AudioCancelLink::onClick(Qt::MouseButton button) const {
|
void AudioCancelLink::onClick(Qt::MouseButton button) const {
|
||||||
AudioData *data = audio();
|
AudioData *data = audio();
|
||||||
if (!data->user && !data->date || button != Qt::LeftButton) return;
|
if ((!data->user && !data->date) || button != Qt::LeftButton) return;
|
||||||
|
|
||||||
data->cancel();
|
data->cancel();
|
||||||
}
|
}
|
||||||
|
@ -379,11 +387,11 @@ void AudioData::save(const QString &toFile) {
|
||||||
|
|
||||||
void DocumentOpenLink::onClick(Qt::MouseButton button) const {
|
void DocumentOpenLink::onClick(Qt::MouseButton button) const {
|
||||||
DocumentData *data = document();
|
DocumentData *data = document();
|
||||||
if (!data->user && !data->date || button != Qt::LeftButton) return;
|
if ((!data->user && !data->date) || button != Qt::LeftButton) return;
|
||||||
|
|
||||||
QString already = data->already(true);
|
QString already = data->already(true);
|
||||||
if (!already.isEmpty()) {
|
if (!already.isEmpty()) {
|
||||||
QDesktopServices::openUrl(QUrl::fromLocalFile(already));
|
psOpenFile(already);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -451,7 +459,7 @@ void DocumentSaveLink::onClick(Qt::MouseButton button) const {
|
||||||
|
|
||||||
void DocumentCancelLink::onClick(Qt::MouseButton button) const {
|
void DocumentCancelLink::onClick(Qt::MouseButton button) const {
|
||||||
DocumentData *data = document();
|
DocumentData *data = document();
|
||||||
if (!data->user && !data->date || button != Qt::LeftButton) return;
|
if ((!data->user && !data->date) || button != Qt::LeftButton) return;
|
||||||
|
|
||||||
data->cancel();
|
data->cancel();
|
||||||
}
|
}
|
||||||
|
@ -520,7 +528,7 @@ void DialogRow::paint(QPainter &p, int32 w, bool act, bool sel) const {
|
||||||
|
|
||||||
// draw check
|
// draw check
|
||||||
if (last->out() && last->needCheck()) {
|
if (last->out() && last->needCheck()) {
|
||||||
const QRect *check;
|
const style::sprite *check;
|
||||||
if (last->id > 0) {
|
if (last->id > 0) {
|
||||||
if (last->unread()) {
|
if (last->unread()) {
|
||||||
check = act ? &st::dlgActiveCheckImg : &st::dlgCheckImg;
|
check = act ? &st::dlgActiveCheckImg : &st::dlgCheckImg;
|
||||||
|
@ -530,7 +538,7 @@ void DialogRow::paint(QPainter &p, int32 w, bool act, bool sel) const {
|
||||||
} else {
|
} else {
|
||||||
check = act ? &st::dlgActiveSendImg : &st::dlgSendImg;
|
check = act ? &st::dlgActiveSendImg : &st::dlgSendImg;
|
||||||
}
|
}
|
||||||
rectForName.setWidth(rectForName.width() - check->width() - st::dlgCheckSkip);
|
rectForName.setWidth(rectForName.width() - check->pxWidth() - st::dlgCheckSkip);
|
||||||
p.drawPixmap(QPoint(rectForName.left() + rectForName.width() + st::dlgCheckLeft, rectForName.top() + st::dlgCheckTop), App::sprite(), *check);
|
p.drawPixmap(QPoint(rectForName.left() + rectForName.width() + st::dlgCheckLeft, rectForName.top() + st::dlgCheckTop), App::sprite(), *check);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -563,9 +571,26 @@ void DialogRow::paint(QPainter &p, int32 w, bool act, bool sel) const {
|
||||||
history->nameText.drawElided(p, rectForName.left(), rectForName.top(), rectForName.width());
|
history->nameText.drawElided(p, rectForName.left(), rectForName.top(), rectForName.width());
|
||||||
}
|
}
|
||||||
|
|
||||||
History::History(const PeerId &peerId) : width(0), height(0), myTyping(0), showFrom(0), unreadLoaded(true), unreadBar(0), notifyFrom(0),
|
History::History(const PeerId &peerId) : width(0), height(0)
|
||||||
msgCount(0), offset(0), peer(App::peer(peerId)), posInDialogs(0), unreadCount(0), inboxReadTill(0), outboxReadTill(0), lastWidth(0), lastScrollTop(History::ScrollMax),
|
, msgCount(0)
|
||||||
lastItemTextCache(st::dlgRichMinWidth), textCachedFor(0), typingText(st::dlgRichMinWidth), mute(isNotifyMuted(peer->notify)) {
|
, offset(0)
|
||||||
|
, unreadCount(0)
|
||||||
|
, inboxReadTill(0)
|
||||||
|
, outboxReadTill(0)
|
||||||
|
, showFrom(0)
|
||||||
|
, notifyFrom(0)
|
||||||
|
, unreadBar(0)
|
||||||
|
, unreadLoaded(true)
|
||||||
|
, peer(App::peer(peerId))
|
||||||
|
, lastWidth(0)
|
||||||
|
, lastScrollTop(History::ScrollMax)
|
||||||
|
, mute(isNotifyMuted(peer->notify))
|
||||||
|
, textCachedFor(0)
|
||||||
|
, lastItemTextCache(st::dlgRichMinWidth)
|
||||||
|
, posInDialogs(0)
|
||||||
|
, typingText(st::dlgRichMinWidth)
|
||||||
|
, myTyping(0)
|
||||||
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void History::updateNameText() {
|
void History::updateNameText() {
|
||||||
|
@ -1360,7 +1385,7 @@ void HistoryBlock::removeItem(HistoryItem *item) {
|
||||||
}
|
}
|
||||||
} else if (myIndex > 0) {
|
} else if (myIndex > 0) {
|
||||||
HistoryBlock *prevBlock = (*history)[myIndex - 1];
|
HistoryBlock *prevBlock = (*history)[myIndex - 1];
|
||||||
if (prevBlock->isEmpty() || (myIndex == 1) && (prevBlock->size() != 1 || (*prevBlock->cbegin())->itemType() != HistoryItem::DateType)) {
|
if (prevBlock->isEmpty() || ((myIndex == 1) && (prevBlock->size() != 1 || (*prevBlock->cbegin())->itemType() != HistoryItem::DateType))) {
|
||||||
LOG(("App Error: Found bad history, with no first date block: %1").arg((*history)[0]->size()));
|
LOG(("App Error: Found bad history, with no first date block: %1").arg((*history)[0]->size()));
|
||||||
} else if ((*prevBlock)[prevBlock->size() - 1]->itemType() == HistoryItem::DateType) {
|
} else if ((*prevBlock)[prevBlock->size() - 1]->itemType() == HistoryItem::DateType) {
|
||||||
(*prevBlock)[prevBlock->size() - 1]->destroy();
|
(*prevBlock)[prevBlock->size() - 1]->destroy();
|
||||||
|
@ -1411,8 +1436,16 @@ void HistoryBlock::removeItem(HistoryItem *item) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
HistoryItem::HistoryItem(History *history, HistoryBlock *block, MsgId msgId, bool out, bool unread, QDateTime msgDate, int32 from) :
|
HistoryItem::HistoryItem(History *history, HistoryBlock *block, MsgId msgId, bool out, bool unread, QDateTime msgDate, int32 from) : y(0)
|
||||||
y(0), id(msgId), _history(history), _block(block), _out(out), _unread(unread), date(msgDate), _from(App::user(from)), _fromVersion(_from->nameVersion) {
|
, id(msgId)
|
||||||
|
, date(msgDate)
|
||||||
|
, _from(App::user(from))
|
||||||
|
, _fromVersion(_from->nameVersion)
|
||||||
|
, _history(history)
|
||||||
|
, _block(block)
|
||||||
|
, _out(out)
|
||||||
|
, _unread(unread)
|
||||||
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void HistoryItem::markRead() {
|
void HistoryItem::markRead() {
|
||||||
|
@ -1442,7 +1475,10 @@ HistoryItem *regItem(HistoryItem *item) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
HistoryPhoto::HistoryPhoto(const MTPDphoto &photo, int32 width) : data(App::feedPhoto(photo)), w(width), openl(new PhotoLink(data)) {
|
HistoryPhoto::HistoryPhoto(const MTPDphoto &photo, int32 width) : data(App::feedPhoto(photo))
|
||||||
|
, openl(new PhotoLink(data))
|
||||||
|
, w(width)
|
||||||
|
{
|
||||||
int32 tw = data->full->width(), th = data->full->height();
|
int32 tw = data->full->width(), th = data->full->height();
|
||||||
if (!tw || !th) {
|
if (!tw || !th) {
|
||||||
tw = th = 1;
|
tw = th = 1;
|
||||||
|
@ -1522,7 +1558,7 @@ void HistoryPhoto::draw(QPainter &p, const HistoryItem *parent, const QString &t
|
||||||
int32 dateX = _maxw - timeWidth - st::msgDateImgDelta - 2 * st::msgDateImgPadding.x();
|
int32 dateX = _maxw - timeWidth - st::msgDateImgDelta - 2 * st::msgDateImgPadding.x();
|
||||||
int32 dateY = _height - st::msgDateFont->height - 2 * st::msgDateImgPadding.y() - st::msgDateImgDelta;
|
int32 dateY = _height - st::msgDateFont->height - 2 * st::msgDateImgPadding.y() - st::msgDateImgDelta;
|
||||||
if (parent->out()) {
|
if (parent->out()) {
|
||||||
dateX -= st::msgCheckRect.width() + st::msgDateImgCheckSpace;
|
dateX -= st::msgCheckRect.pxWidth() + st::msgDateImgCheckSpace;
|
||||||
}
|
}
|
||||||
int32 dateW = _maxw - dateX - st::msgDateImgDelta;
|
int32 dateW = _maxw - dateX - st::msgDateImgDelta;
|
||||||
int32 dateH = _height - dateY - st::msgDateImgDelta;
|
int32 dateH = _height - dateY - st::msgDateImgDelta;
|
||||||
|
@ -1532,7 +1568,7 @@ void HistoryPhoto::draw(QPainter &p, const HistoryItem *parent, const QString &t
|
||||||
p.setPen(st::msgDateImgColor->p);
|
p.setPen(st::msgDateImgColor->p);
|
||||||
p.drawText(dateX + st::msgDateImgPadding.x(), dateY + st::msgDateImgPadding.y() + st::msgDateFont->ascent, time);
|
p.drawText(dateX + st::msgDateImgPadding.x(), dateY + st::msgDateImgPadding.y() + st::msgDateFont->ascent, time);
|
||||||
if (out) {
|
if (out) {
|
||||||
QPoint iconPos(dateX - 2 + dateW - st::msgDateImgCheckSpace - st::msgCheckRect.width(), dateY + (dateH - st::msgCheckRect.height()) / 2);
|
QPoint iconPos(dateX - 2 + dateW - st::msgDateImgCheckSpace - st::msgCheckRect.pxWidth(), dateY + (dateH - st::msgCheckRect.pxHeight()) / 2);
|
||||||
const QRect *iconRect;
|
const QRect *iconRect;
|
||||||
if (parent->id > 0) {
|
if (parent->id > 0) {
|
||||||
if (parent->unread()) {
|
if (parent->unread()) {
|
||||||
|
@ -1583,7 +1619,14 @@ QString formatDurationAndSizeText(qint64 duration, qint64 size) {
|
||||||
|
|
||||||
int32 _downloadWidth = 0, _openWithWidth = 0, _cancelWidth = 0, _buttonWidth = 0;
|
int32 _downloadWidth = 0, _openWithWidth = 0, _cancelWidth = 0, _buttonWidth = 0;
|
||||||
|
|
||||||
HistoryVideo::HistoryVideo(const MTPDvideo &video, int32 width) : data(App::feedVideo(video)), w(width), _openl(new VideoOpenLink(data)), _savel(new VideoSaveLink(data)), _cancell(new VideoCancelLink(data)), _dldDone(0), _uplDone(0) {
|
HistoryVideo::HistoryVideo(const MTPDvideo &video, int32 width) : data(App::feedVideo(video))
|
||||||
|
, _openl(new VideoOpenLink(data))
|
||||||
|
, _savel(new VideoSaveLink(data))
|
||||||
|
, _cancell(new VideoCancelLink(data))
|
||||||
|
, w(width)
|
||||||
|
, _dldDone(0)
|
||||||
|
, _uplDone(0)
|
||||||
|
{
|
||||||
_maxw = st::mediaMaxWidth;
|
_maxw = st::mediaMaxWidth;
|
||||||
|
|
||||||
_size = formatDurationAndSizeText(data->duration, data->size);
|
_size = formatDurationAndSizeText(data->duration, data->size);
|
||||||
|
@ -1725,7 +1768,8 @@ void HistoryVideo::draw(QPainter &p, const HistoryItem *parent, const QString &t
|
||||||
p.fillRect(0, _height, width, st::msgShadow, shadow->b);
|
p.fillRect(0, _height, width, st::msgShadow, shadow->b);
|
||||||
|
|
||||||
if (_thumbw) {
|
if (_thumbw) {
|
||||||
p.drawPixmap(QPoint(st::mediaPadding.left(), st::mediaPadding.top()), data->thumb->pix(_thumbw), QRect(_thumbx, _thumby, st::mediaThumbSize, st::mediaThumbSize));
|
int32 rf(cIntRetinaFactor());
|
||||||
|
p.drawPixmap(QPoint(st::mediaPadding.left(), st::mediaPadding.top()), data->thumb->pix(_thumbw), QRect(_thumbx * rf, _thumby * rf, st::mediaThumbSize * rf, st::mediaThumbSize * rf));
|
||||||
} else {
|
} else {
|
||||||
p.drawPixmap(QPoint(st::mediaPadding.left(), st::mediaPadding.top()), App::sprite(), (out ? st::mediaDocOutImg : st::mediaDocInImg));
|
p.drawPixmap(QPoint(st::mediaPadding.left(), st::mediaPadding.top()), App::sprite(), (out ? st::mediaDocOutImg : st::mediaDocInImg));
|
||||||
}
|
}
|
||||||
|
@ -1735,7 +1779,7 @@ void HistoryVideo::draw(QPainter &p, const HistoryItem *parent, const QString &t
|
||||||
|
|
||||||
int32 tleft = st::mediaPadding.left() + st::mediaThumbSize + st::mediaPadding.right();
|
int32 tleft = st::mediaPadding.left() + st::mediaThumbSize + st::mediaPadding.right();
|
||||||
int32 twidth = width - tleft - st::mediaPadding.right();
|
int32 twidth = width - tleft - st::mediaPadding.right();
|
||||||
int32 fullTimeWidth = timeWidth + st::msgDateSpace + (out ? st::msgDateCheckSpace + st::msgCheckRect.width() : 0) + st::msgPadding.right() - st::msgDateDelta.x();
|
int32 fullTimeWidth = timeWidth + st::msgDateSpace + (out ? st::msgDateCheckSpace + st::msgCheckRect.pxWidth() : 0) + st::msgPadding.right() - st::msgDateDelta.x();
|
||||||
int32 secondwidth = width - tleft - fullTimeWidth;
|
int32 secondwidth = width - tleft - fullTimeWidth;
|
||||||
|
|
||||||
p.setFont(st::mediaFont->f);
|
p.setFont(st::mediaFont->f);
|
||||||
|
@ -1775,7 +1819,7 @@ void HistoryVideo::draw(QPainter &p, const HistoryItem *parent, const QString &t
|
||||||
|
|
||||||
p.drawText(width + st::msgDateDelta.x() - fullTimeWidth + st::msgDateSpace, _height - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgDateFont->descent, time);
|
p.drawText(width + st::msgDateDelta.x() - fullTimeWidth + st::msgDateSpace, _height - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgDateFont->descent, time);
|
||||||
if (out) {
|
if (out) {
|
||||||
QPoint iconPos(width + 5 - st::msgPadding.right() - st::msgCheckRect.width(), _height + 1 - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgCheckRect.height());
|
QPoint iconPos(width + 5 - st::msgPadding.right() - st::msgCheckRect.pxWidth(), _height + 1 - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgCheckRect.pxHeight());
|
||||||
const QRect *iconRect;
|
const QRect *iconRect;
|
||||||
if (parent->id > 0) {
|
if (parent->id > 0) {
|
||||||
if (parent->unread()) {
|
if (parent->unread()) {
|
||||||
|
@ -1790,7 +1834,14 @@ void HistoryVideo::draw(QPainter &p, const HistoryItem *parent, const QString &t
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
HistoryAudio::HistoryAudio(const MTPDaudio &audio, int32 width) : data(App::feedAudio(audio)), w(width), _openl(new AudioOpenLink(data)), _savel(new AudioSaveLink(data)), _cancell(new AudioCancelLink(data)), _dldDone(0), _uplDone(0) {
|
HistoryAudio::HistoryAudio(const MTPDaudio &audio, int32 width) : data(App::feedAudio(audio))
|
||||||
|
, _openl(new AudioOpenLink(data))
|
||||||
|
, _savel(new AudioSaveLink(data))
|
||||||
|
, _cancell(new AudioCancelLink(data))
|
||||||
|
, w(width)
|
||||||
|
, _dldDone(0)
|
||||||
|
, _uplDone(0)
|
||||||
|
{
|
||||||
_maxw = st::mediaMaxWidth;
|
_maxw = st::mediaMaxWidth;
|
||||||
|
|
||||||
_size = formatDurationAndSizeText(data->duration, data->size);
|
_size = formatDurationAndSizeText(data->duration, data->size);
|
||||||
|
@ -1857,7 +1908,7 @@ void HistoryAudio::draw(QPainter &p, const HistoryItem *parent, const QString &t
|
||||||
|
|
||||||
int32 tleft = st::mediaPadding.left() + st::mediaThumbSize + st::mediaPadding.right();
|
int32 tleft = st::mediaPadding.left() + st::mediaThumbSize + st::mediaPadding.right();
|
||||||
int32 twidth = width - tleft - st::mediaPadding.right();
|
int32 twidth = width - tleft - st::mediaPadding.right();
|
||||||
int32 fullTimeWidth = timeWidth + st::msgDateSpace + (out ? st::msgDateCheckSpace + st::msgCheckRect.width() : 0) + st::msgPadding.right() - st::msgDateDelta.x();
|
int32 fullTimeWidth = timeWidth + st::msgDateSpace + (out ? st::msgDateCheckSpace + st::msgCheckRect.pxWidth() : 0) + st::msgPadding.right() - st::msgDateDelta.x();
|
||||||
int32 secondwidth = width - tleft - fullTimeWidth;
|
int32 secondwidth = width - tleft - fullTimeWidth;
|
||||||
|
|
||||||
p.setFont(st::mediaFont->f);
|
p.setFont(st::mediaFont->f);
|
||||||
|
@ -1897,7 +1948,7 @@ void HistoryAudio::draw(QPainter &p, const HistoryItem *parent, const QString &t
|
||||||
|
|
||||||
p.drawText(width + st::msgDateDelta.x() - fullTimeWidth + st::msgDateSpace, _height - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgDateFont->descent, time);
|
p.drawText(width + st::msgDateDelta.x() - fullTimeWidth + st::msgDateSpace, _height - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgDateFont->descent, time);
|
||||||
if (out) {
|
if (out) {
|
||||||
QPoint iconPos(width + 5 - st::msgPadding.right() - st::msgCheckRect.width(), _height + 1 - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgCheckRect.height());
|
QPoint iconPos(width + 5 - st::msgPadding.right() - st::msgCheckRect.pxWidth(), _height + 1 - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgCheckRect.pxHeight());
|
||||||
const QRect *iconRect;
|
const QRect *iconRect;
|
||||||
if (parent->id > 0) {
|
if (parent->id > 0) {
|
||||||
if (parent->unread()) {
|
if (parent->unread()) {
|
||||||
|
@ -1966,7 +2017,15 @@ HistoryMedia *HistoryAudio::clone() const {
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
HistoryDocument::HistoryDocument(const MTPDdocument &document, int32 width) : data(App::feedDocument(document)), w(width), _openl(new DocumentOpenLink(data)), _savel(new DocumentSaveLink(data)), _cancell(new DocumentCancelLink(data)), _name(data->name), _dldDone(0), _uplDone(0) {
|
HistoryDocument::HistoryDocument(const MTPDdocument &document, int32 width) : data(App::feedDocument(document))
|
||||||
|
, _openl(new DocumentOpenLink(data))
|
||||||
|
, _savel(new DocumentSaveLink(data))
|
||||||
|
, _cancell(new DocumentCancelLink(data))
|
||||||
|
, w(width)
|
||||||
|
, _name(data->name)
|
||||||
|
, _dldDone(0)
|
||||||
|
, _uplDone(0)
|
||||||
|
{
|
||||||
_maxw = st::mediaMaxWidth;
|
_maxw = st::mediaMaxWidth;
|
||||||
_namew = st::mediaFont->m.width(_name.isEmpty() ? qsl("Document") : _name);
|
_namew = st::mediaFont->m.width(_name.isEmpty() ? qsl("Document") : _name);
|
||||||
|
|
||||||
|
@ -2048,7 +2107,8 @@ void HistoryDocument::draw(QPainter &p, const HistoryItem *parent, const QString
|
||||||
p.fillRect(0, _height, width, st::msgShadow, shadow->b);
|
p.fillRect(0, _height, width, st::msgShadow, shadow->b);
|
||||||
|
|
||||||
if (_thumbw) {
|
if (_thumbw) {
|
||||||
p.drawPixmap(QPoint(st::mediaPadding.left(), st::mediaPadding.top()), data->thumb->pix(_thumbw), QRect(_thumbx, _thumby, st::mediaThumbSize, st::mediaThumbSize));
|
int32 rf(cIntRetinaFactor());
|
||||||
|
p.drawPixmap(QPoint(st::mediaPadding.left(), st::mediaPadding.top()), data->thumb->pix(_thumbw), QRect(_thumbx * rf, _thumby * rf, st::mediaThumbSize * rf, st::mediaThumbSize * rf));
|
||||||
} else {
|
} else {
|
||||||
p.drawPixmap(QPoint(st::mediaPadding.left(), st::mediaPadding.top()), App::sprite(), (out ? st::mediaDocOutImg : st::mediaDocInImg));
|
p.drawPixmap(QPoint(st::mediaPadding.left(), st::mediaPadding.top()), App::sprite(), (out ? st::mediaDocOutImg : st::mediaDocInImg));
|
||||||
}
|
}
|
||||||
|
@ -2058,7 +2118,7 @@ void HistoryDocument::draw(QPainter &p, const HistoryItem *parent, const QString
|
||||||
|
|
||||||
int32 tleft = st::mediaPadding.left() + st::mediaThumbSize + st::mediaPadding.right();
|
int32 tleft = st::mediaPadding.left() + st::mediaThumbSize + st::mediaPadding.right();
|
||||||
int32 twidth = width - tleft - st::mediaPadding.right();
|
int32 twidth = width - tleft - st::mediaPadding.right();
|
||||||
int32 fullTimeWidth = timeWidth + st::msgDateSpace + (out ? st::msgDateCheckSpace + st::msgCheckRect.width() : 0) + st::msgPadding.right() - st::msgDateDelta.x();
|
int32 fullTimeWidth = timeWidth + st::msgDateSpace + (out ? st::msgDateCheckSpace + st::msgCheckRect.pxWidth() : 0) + st::msgPadding.right() - st::msgDateDelta.x();
|
||||||
int32 secondwidth = width - tleft - fullTimeWidth;
|
int32 secondwidth = width - tleft - fullTimeWidth;
|
||||||
|
|
||||||
p.setFont(st::mediaFont->f);
|
p.setFont(st::mediaFont->f);
|
||||||
|
@ -2102,7 +2162,7 @@ void HistoryDocument::draw(QPainter &p, const HistoryItem *parent, const QString
|
||||||
|
|
||||||
p.drawText(width + st::msgDateDelta.x() - fullTimeWidth + st::msgDateSpace, _height - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgDateFont->descent, time);
|
p.drawText(width + st::msgDateDelta.x() - fullTimeWidth + st::msgDateSpace, _height - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgDateFont->descent, time);
|
||||||
if (out) {
|
if (out) {
|
||||||
QPoint iconPos(width + 5 - st::msgPadding.right() - st::msgCheckRect.width(), _height + 1 - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgCheckRect.height());
|
QPoint iconPos(width + 5 - st::msgPadding.right() - st::msgCheckRect.pxWidth(), _height + 1 - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgCheckRect.pxHeight());
|
||||||
const QRect *iconRect;
|
const QRect *iconRect;
|
||||||
if (parent->id > 0) {
|
if (parent->id > 0) {
|
||||||
if (parent->unread()) {
|
if (parent->unread()) {
|
||||||
|
@ -2177,7 +2237,11 @@ HistoryMedia *HistoryDocument::clone() const {
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
HistoryContact::HistoryContact(int32 userId, const QString &first, const QString &last, const QString &phone) : userId(userId), phone(App::formatPhone(phone)), contact(App::userLoaded(userId)), w(0) {
|
HistoryContact::HistoryContact(int32 userId, const QString &first, const QString &last, const QString &phone) : userId(userId)
|
||||||
|
, w(0)
|
||||||
|
, phone(App::formatPhone(phone))
|
||||||
|
, contact(App::userLoaded(userId))
|
||||||
|
{
|
||||||
_maxw = st::mediaMaxWidth;
|
_maxw = st::mediaMaxWidth;
|
||||||
name.setText(st::mediaFont, (first + ' ' + last).trimmed(), _textNameOptions);
|
name.setText(st::mediaFont, (first + ' ' + last).trimmed(), _textNameOptions);
|
||||||
|
|
||||||
|
@ -2197,7 +2261,7 @@ HistoryContact::HistoryContact(int32 userId, const QString &first, const QString
|
||||||
|
|
||||||
void HistoryContact::initDimensions(const HistoryItem *parent, int32 timeWidth) {
|
void HistoryContact::initDimensions(const HistoryItem *parent, int32 timeWidth) {
|
||||||
int32 tleft = st::mediaPadding.left() + st::mediaThumbSize + st::mediaPadding.right();
|
int32 tleft = st::mediaPadding.left() + st::mediaThumbSize + st::mediaPadding.right();
|
||||||
int32 fullTimeWidth = timeWidth + st::msgDateSpace + (parent->out() ? st::msgDateCheckSpace + st::msgCheckRect.width() : 0) + st::msgPadding.right() - st::msgDateDelta.x();
|
int32 fullTimeWidth = timeWidth + st::msgDateSpace + (parent->out() ? st::msgDateCheckSpace + st::msgCheckRect.pxWidth() : 0) + st::msgPadding.right() - st::msgDateDelta.x();
|
||||||
if (name.maxWidth() + tleft + fullTimeWidth > _maxw) {
|
if (name.maxWidth() + tleft + fullTimeWidth > _maxw) {
|
||||||
_maxw = name.maxWidth() + tleft + fullTimeWidth;
|
_maxw = name.maxWidth() + tleft + fullTimeWidth;
|
||||||
}
|
}
|
||||||
|
@ -2256,7 +2320,7 @@ void HistoryContact::draw(QPainter &p, const HistoryItem *parent, const QString
|
||||||
|
|
||||||
int32 tleft = st::mediaPadding.left() + st::mediaThumbSize + st::mediaPadding.right();
|
int32 tleft = st::mediaPadding.left() + st::mediaThumbSize + st::mediaPadding.right();
|
||||||
int32 twidth = width - tleft - st::mediaPadding.right();
|
int32 twidth = width - tleft - st::mediaPadding.right();
|
||||||
int32 fullTimeWidth = timeWidth + st::msgDateSpace + (out ? st::msgDateCheckSpace + st::msgCheckRect.width() : 0) + st::msgPadding.right() - st::msgDateDelta.x();
|
int32 fullTimeWidth = timeWidth + st::msgDateSpace + (out ? st::msgDateCheckSpace + st::msgCheckRect.pxWidth() : 0) + st::msgPadding.right() - st::msgDateDelta.x();
|
||||||
int32 secondwidth = width - tleft - fullTimeWidth;
|
int32 secondwidth = width - tleft - fullTimeWidth;
|
||||||
|
|
||||||
p.setFont(st::mediaFont->f);
|
p.setFont(st::mediaFont->f);
|
||||||
|
@ -2279,7 +2343,7 @@ void HistoryContact::draw(QPainter &p, const HistoryItem *parent, const QString
|
||||||
|
|
||||||
p.drawText(width + st::msgDateDelta.x() - fullTimeWidth + st::msgDateSpace, _height - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgDateFont->descent, time);
|
p.drawText(width + st::msgDateDelta.x() - fullTimeWidth + st::msgDateSpace, _height - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgDateFont->descent, time);
|
||||||
if (out) {
|
if (out) {
|
||||||
QPoint iconPos(width + 5 - st::msgPadding.right() - st::msgCheckRect.width(), _height + 1 - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgCheckRect.height());
|
QPoint iconPos(width + 5 - st::msgPadding.right() - st::msgCheckRect.pxWidth(), _height + 1 - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgCheckRect.pxHeight());
|
||||||
const QRect *iconRect;
|
const QRect *iconRect;
|
||||||
if (parent->id > 0) {
|
if (parent->id > 0) {
|
||||||
if (parent->unread()) {
|
if (parent->unread()) {
|
||||||
|
@ -2295,7 +2359,12 @@ void HistoryContact::draw(QPainter &p, const HistoryItem *parent, const QString
|
||||||
}
|
}
|
||||||
|
|
||||||
HistoryMessage::HistoryMessage(History *history, HistoryBlock *block, const MTPDmessage &msg) :
|
HistoryMessage::HistoryMessage(History *history, HistoryBlock *block, const MTPDmessage &msg) :
|
||||||
HistoryItem(history, block, msg.vid.v, msg.vout.v, msg.vunread.v, ::date(msg.vdate), msg.vfrom_id.v), media(0), _text(st::msgMinWidth), _textWidth(0), _textHeight(0) {
|
HistoryItem(history, block, msg.vid.v, msg.vout.v, msg.vunread.v, ::date(msg.vdate), msg.vfrom_id.v)
|
||||||
|
, _text(st::msgMinWidth)
|
||||||
|
, _textWidth(0)
|
||||||
|
, _textHeight(0)
|
||||||
|
, media(0)
|
||||||
|
{
|
||||||
QString text(textClean(qs(msg.vmessage)));
|
QString text(textClean(qs(msg.vmessage)));
|
||||||
initMedia(msg.vmedia, text);
|
initMedia(msg.vmedia, text);
|
||||||
initDimensions(text);
|
initDimensions(text);
|
||||||
|
@ -2314,14 +2383,24 @@ HistoryMessage::HistoryMessage(History *history, HistoryBlock *block, const MTPD
|
||||||
//}
|
//}
|
||||||
|
|
||||||
HistoryMessage::HistoryMessage(History *history, HistoryBlock *block, MsgId msgId, bool out, bool unread, QDateTime date, int32 from, const QString &msg, const MTPMessageMedia &media) :
|
HistoryMessage::HistoryMessage(History *history, HistoryBlock *block, MsgId msgId, bool out, bool unread, QDateTime date, int32 from, const QString &msg, const MTPMessageMedia &media) :
|
||||||
HistoryItem(history, block, msgId, out, unread, date, from), media(0), _text(st::msgMinWidth), _textWidth(0), _textHeight(0) {
|
HistoryItem(history, block, msgId, out, unread, date, from)
|
||||||
|
, _text(st::msgMinWidth)
|
||||||
|
, _textWidth(0)
|
||||||
|
, _textHeight(0)
|
||||||
|
, media(0)
|
||||||
|
{
|
||||||
QString text(msg);
|
QString text(msg);
|
||||||
initMedia(media, text);
|
initMedia(media, text);
|
||||||
initDimensions(text);
|
initDimensions(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
HistoryMessage::HistoryMessage(History *history, HistoryBlock *block, MsgId msgId, bool out, bool unread, QDateTime date, int32 from, const QString &msg, HistoryMedia *fromMedia) :
|
HistoryMessage::HistoryMessage(History *history, HistoryBlock *block, MsgId msgId, bool out, bool unread, QDateTime date, int32 from, const QString &msg, HistoryMedia *fromMedia) :
|
||||||
HistoryItem(history, block, msgId, out, unread, date, from), media(0), _text(st::msgMinWidth), _textWidth(0), _textHeight(0) {
|
HistoryItem(history, block, msgId, out, unread, date, from)
|
||||||
|
, _text(st::msgMinWidth)
|
||||||
|
, _textWidth(0)
|
||||||
|
, _textHeight(0)
|
||||||
|
, media(0)
|
||||||
|
{
|
||||||
QString text(msg);
|
QString text(msg);
|
||||||
if (fromMedia) {
|
if (fromMedia) {
|
||||||
media = fromMedia->clone();
|
media = fromMedia->clone();
|
||||||
|
@ -2383,7 +2462,7 @@ void HistoryMessage::initDimensions(const QString &text) {
|
||||||
_maxw = media->maxWidth();
|
_maxw = media->maxWidth();
|
||||||
_minh = media->height();
|
_minh = media->height();
|
||||||
} else {
|
} else {
|
||||||
timeWidth += st::msgDateSpace + (out() ? st::msgDateCheckSpace + st::msgCheckRect.width() : 0) - st::msgDateDelta.x();
|
timeWidth += st::msgDateSpace + (out() ? st::msgDateCheckSpace + st::msgCheckRect.pxWidth() : 0) - st::msgDateDelta.x();
|
||||||
_text.setText(st::msgFont, text + textcmdSkipBlock(timeWidth, st::msgDateFont->height - st::msgDateDelta.y()), _historyTextOptions);
|
_text.setText(st::msgFont, text + textcmdSkipBlock(timeWidth, st::msgDateFont->height - st::msgDateDelta.y()), _historyTextOptions);
|
||||||
_maxw = _text.maxWidth();
|
_maxw = _text.maxWidth();
|
||||||
_minh = _text.minHeight();
|
_minh = _text.minHeight();
|
||||||
|
@ -2470,7 +2549,7 @@ void HistoryMessage::draw(QPainter &p, uint32 selection) const {
|
||||||
|
|
||||||
p.drawText(r.right() - st::msgPadding.right() + st::msgDateDelta.x() - timeWidth + st::msgDateSpace, r.bottom() - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgDateFont->descent, time);
|
p.drawText(r.right() - st::msgPadding.right() + st::msgDateDelta.x() - timeWidth + st::msgDateSpace, r.bottom() - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgDateFont->descent, time);
|
||||||
if (_out) {
|
if (_out) {
|
||||||
QPoint iconPos(r.right() + 5 - st::msgPadding.right() - st::msgCheckRect.width(), r.bottom() + 1 - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgCheckRect.height());
|
QPoint iconPos(r.right() + 5 - st::msgPadding.right() - st::msgCheckRect.pxWidth(), r.bottom() + 1 - st::msgPadding.bottom() + st::msgDateDelta.y() - st::msgCheckRect.pxHeight());
|
||||||
const QRect *iconRect;
|
const QRect *iconRect;
|
||||||
if (id > 0) {
|
if (id > 0) {
|
||||||
if (unread()) {
|
if (unread()) {
|
||||||
|
@ -2712,17 +2791,23 @@ HistoryMessage::~HistoryMessage() {
|
||||||
delete media;
|
delete media;
|
||||||
}
|
}
|
||||||
|
|
||||||
HistoryForwarded::HistoryForwarded(History *history, HistoryBlock *block, const MTPDmessageForwarded &msg) :
|
HistoryForwarded::HistoryForwarded(History *history, HistoryBlock *block, const MTPDmessageForwarded &msg) : HistoryMessage(history, block, msg.vid.v, msg.vout.v, msg.vunread.v, ::date(msg.vdate), msg.vfrom_id.v, textClean(qs(msg.vmessage)), msg.vmedia)
|
||||||
HistoryMessage(history, block, msg.vid.v, msg.vout.v, msg.vunread.v, ::date(msg.vdate), msg.vfrom_id.v, textClean(qs(msg.vmessage)), msg.vmedia),
|
, fwdDate(::date(msg.vfwd_date))
|
||||||
fwdFrom(App::user(msg.vfwd_from_id.v)), fwdFromVersion(fwdFrom->nameVersion), fwdDate(::date(msg.vfwd_date)), fromWidth(st::msgServiceFont->m.width(lang(lng_forwarded_from))), fwdFromName(4096) {
|
, fwdFrom(App::user(msg.vfwd_from_id.v))
|
||||||
|
, fwdFromName(4096)
|
||||||
|
, fwdFromVersion(fwdFrom->nameVersion)
|
||||||
|
, fromWidth(st::msgServiceFont->m.width(lang(lng_forwarded_from)))
|
||||||
|
{
|
||||||
fwdNameUpdated();
|
fwdNameUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
HistoryForwarded::HistoryForwarded(History *history, HistoryBlock *block, MsgId id, HistoryMessage *msg) :
|
HistoryForwarded::HistoryForwarded(History *history, HistoryBlock *block, MsgId id, HistoryMessage *msg) : HistoryMessage(history, block, id, true, true, ::date(unixtime()), MTP::authedId(), msg->HistoryMessage::selectedText(FullItemSel), msg->getMedia())
|
||||||
HistoryMessage(history, block, id, true, true, ::date(unixtime()), MTP::authedId(), msg->HistoryMessage::selectedText(FullItemSel), msg->getMedia()),
|
, fwdDate(dynamic_cast<HistoryForwarded*>(msg) ? dynamic_cast<HistoryForwarded*>(msg)->dateForwarded() : msg->date)
|
||||||
fwdFrom(dynamic_cast<HistoryForwarded*>(msg) ? dynamic_cast<HistoryForwarded*>(msg)->fromForwarded() : msg->from()), fwdFromVersion(fwdFrom->nameVersion),
|
, fwdFrom(dynamic_cast<HistoryForwarded*>(msg) ? dynamic_cast<HistoryForwarded*>(msg)->fromForwarded() : msg->from())
|
||||||
fwdDate(dynamic_cast<HistoryForwarded*>(msg) ? dynamic_cast<HistoryForwarded*>(msg)->dateForwarded() : msg->date),
|
, fwdFromName(4096)
|
||||||
fromWidth(st::msgServiceFont->m.width(lang(lng_forwarded_from))), fwdFromName(4096) {
|
, fwdFromVersion(fwdFrom->nameVersion)
|
||||||
|
, fromWidth(st::msgServiceFont->m.width(lang(lng_forwarded_from)))
|
||||||
|
{
|
||||||
fwdNameUpdated();
|
fwdNameUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2945,7 +3030,10 @@ QString HistoryServiceMsg::messageByAction(const MTPmessageAction &action, TextL
|
||||||
}
|
}
|
||||||
|
|
||||||
HistoryServiceMsg::HistoryServiceMsg(History *history, HistoryBlock *block, const MTPDmessageService &msg) :
|
HistoryServiceMsg::HistoryServiceMsg(History *history, HistoryBlock *block, const MTPDmessageService &msg) :
|
||||||
HistoryItem(history, block, msg.vid.v, msg.vout.v, msg.vunread.v, ::date(msg.vdate), msg.vfrom_id.v), media(0), _text(st::msgMinWidth) {
|
HistoryItem(history, block, msg.vid.v, msg.vout.v, msg.vunread.v, ::date(msg.vdate), msg.vfrom_id.v)
|
||||||
|
, _text(st::msgMinWidth)
|
||||||
|
, media(0)
|
||||||
|
{
|
||||||
|
|
||||||
TextLinkPtr second;
|
TextLinkPtr second;
|
||||||
QString text(messageByAction(msg.vaction, second));
|
QString text(messageByAction(msg.vaction, second));
|
||||||
|
@ -2975,7 +3063,10 @@ HistoryServiceMsg::HistoryServiceMsg(History *history, HistoryBlock *block, cons
|
||||||
}
|
}
|
||||||
/**/
|
/**/
|
||||||
HistoryServiceMsg::HistoryServiceMsg(History *history, HistoryBlock *block, MsgId msgId, QDateTime date, const QString &msg, bool out, bool unread, HistoryMedia *media) :
|
HistoryServiceMsg::HistoryServiceMsg(History *history, HistoryBlock *block, MsgId msgId, QDateTime date, const QString &msg, bool out, bool unread, HistoryMedia *media) :
|
||||||
HistoryItem(history, block, msgId, out, unread, date, 0), media(media), _text(st::msgServiceFont, msg, _historySrvOptions, st::dlgMinWidth) {
|
HistoryItem(history, block, msgId, out, unread, date, 0)
|
||||||
|
, _text(st::msgServiceFont, msg, _historySrvOptions, st::dlgMinWidth)
|
||||||
|
, media(media)
|
||||||
|
{
|
||||||
_maxw = _text.maxWidth() + st::msgServicePadding.left() + st::msgServicePadding.right();
|
_maxw = _text.maxWidth() + st::msgServicePadding.left() + st::msgServicePadding.right();
|
||||||
_minh = _text.minHeight();
|
_minh = _text.minHeight();
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,7 +57,7 @@ struct ChatData;
|
||||||
struct UserData;
|
struct UserData;
|
||||||
struct PeerData {
|
struct PeerData {
|
||||||
PeerData(const PeerId &id);
|
PeerData(const PeerId &id);
|
||||||
~PeerData() {
|
virtual ~PeerData() {
|
||||||
if (notify != UnknownNotifySettings && notify != EmptyNotifySettings) {
|
if (notify != UnknownNotifySettings && notify != EmptyNotifySettings) {
|
||||||
delete notify;
|
delete notify;
|
||||||
notify = UnknownNotifySettings;
|
notify = UnknownNotifySettings;
|
||||||
|
@ -212,7 +212,7 @@ enum FileStatus {
|
||||||
|
|
||||||
struct VideoData {
|
struct VideoData {
|
||||||
VideoData(const VideoId &id, const uint64 &access = 0, int32 user = 0, int32 date = 0, int32 duration = 0, int32 w = 0, int32 h = 0, const ImagePtr &thumb = ImagePtr(), int32 dc = 0, int32 size = 0) :
|
VideoData(const VideoId &id, const uint64 &access = 0, int32 user = 0, int32 date = 0, int32 duration = 0, int32 w = 0, int32 h = 0, const ImagePtr &thumb = ImagePtr(), int32 dc = 0, int32 size = 0) :
|
||||||
id(id), access(access), user(user), date(date), duration(duration), w(w), h(h), thumb(thumb), dc(dc), size(size), openOnSave(0), loader(0), fileType(0), status(FileReady), uploadOffset(0) {
|
id(id), access(access), user(user), date(date), duration(duration), w(w), h(h), thumb(thumb), dc(dc), size(size), status(FileReady), uploadOffset(0), fileType(0), openOnSave(0), loader(0) {
|
||||||
memset(md5, 0, sizeof(md5));
|
memset(md5, 0, sizeof(md5));
|
||||||
}
|
}
|
||||||
void forget() {
|
void forget() {
|
||||||
|
@ -314,7 +314,7 @@ public:
|
||||||
|
|
||||||
struct AudioData {
|
struct AudioData {
|
||||||
AudioData(const AudioId &id, const uint64 &access = 0, int32 user = 0, int32 date = 0, int32 duration = 0, int32 dc = 0, int32 size = 0) :
|
AudioData(const AudioId &id, const uint64 &access = 0, int32 user = 0, int32 date = 0, int32 duration = 0, int32 dc = 0, int32 size = 0) :
|
||||||
id(id), access(access), user(user), date(date), dc(dc), duration(duration), size(size), openOnSave(0), loader(0), status(FileReady), uploadOffset(0) {
|
id(id), access(access), user(user), date(date), duration(duration), dc(dc), size(size), status(FileReady), uploadOffset(0), openOnSave(0), loader(0) {
|
||||||
memset(md5, 0, sizeof(md5));
|
memset(md5, 0, sizeof(md5));
|
||||||
}
|
}
|
||||||
void forget() {
|
void forget() {
|
||||||
|
@ -412,7 +412,7 @@ public:
|
||||||
|
|
||||||
struct DocumentData {
|
struct DocumentData {
|
||||||
DocumentData(const DocumentId &id, const uint64 &access = 0, int32 user = 0, int32 date = 0, const QString &name = QString(), const QString &mime = QString(), const ImagePtr &thumb = ImagePtr(), int32 dc = 0, int32 size = 0) :
|
DocumentData(const DocumentId &id, const uint64 &access = 0, int32 user = 0, int32 date = 0, const QString &name = QString(), const QString &mime = QString(), const ImagePtr &thumb = ImagePtr(), int32 dc = 0, int32 size = 0) :
|
||||||
id(id), access(access), user(user), date(date), name(name), mime(mime), thumb(thumb), dc(dc), size(size), openOnSave(0), loader(0), status(FileReady), uploadOffset(0) {
|
id(id), access(access), user(user), date(date), name(name), mime(mime), thumb(thumb), dc(dc), size(size), status(FileReady), uploadOffset(0), openOnSave(0), loader(0) {
|
||||||
memset(md5, 0, sizeof(md5));
|
memset(md5, 0, sizeof(md5));
|
||||||
}
|
}
|
||||||
void forget() {
|
void forget() {
|
||||||
|
@ -628,7 +628,7 @@ struct History : public QList<HistoryBlock*> {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct DialogsList {
|
struct DialogsList {
|
||||||
DialogsList(bool sortByName) : end(&last), begin(&last), current(&last), byName(sortByName), count(0) {
|
DialogsList(bool sortByName) : begin(&last), end(&last), byName(sortByName), count(0), current(&last) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void adjustCurrent(int32 y, int32 h) const {
|
void adjustCurrent(int32 y, int32 h) const {
|
||||||
|
@ -985,7 +985,7 @@ public:
|
||||||
return _out;
|
return _out;
|
||||||
}
|
}
|
||||||
bool unread() const {
|
bool unread() const {
|
||||||
if (_out && (id > 0 && id < _history->outboxReadTill) || !_out && id > 0 && id < _history->inboxReadTill) return false;
|
if ((_out && (id > 0 && id < _history->outboxReadTill)) || (!_out && id > 0 && id < _history->inboxReadTill)) return false;
|
||||||
return _unread;
|
return _unread;
|
||||||
}
|
}
|
||||||
virtual bool needCheck() const {
|
virtual bool needCheck() const {
|
||||||
|
|
|
@ -30,13 +30,30 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
|
|
||||||
// flick scroll taken from http://qt-project.org/doc/qt-4.8/demos-embedded-anomaly-src-flickcharm-cpp.html
|
// flick scroll taken from http://qt-project.org/doc/qt-4.8/demos-embedded-anomaly-src-flickcharm-cpp.html
|
||||||
|
|
||||||
HistoryList::HistoryList(HistoryWidget *historyWidget, ScrollArea *scroll, History *history) : QWidget(0),
|
HistoryList::HistoryList(HistoryWidget *historyWidget, ScrollArea *scroll, History *history) : QWidget(0)
|
||||||
historyWidget(historyWidget), scrollArea(scroll), hist(history), currentBlock(0), currentItem(0), _menu(0),
|
, hist(history)
|
||||||
_dragAction(NoDrag), _dragItem(0), _dragSelFrom(0), _dragSelTo(0), _dragSelecting(false),
|
, historyWidget(historyWidget)
|
||||||
_dragSelType(TextSelectLetters), _dragWasInactive(false),
|
, scrollArea(scroll)
|
||||||
_touchScroll(false), _touchSelect(false), _touchInProgress(false),
|
, currentBlock(0)
|
||||||
_touchScrollState(TouchScrollManual), _touchPrevPosValid(false), _touchWaitingAcceleration(false), _touchSpeedTime(0), _touchAccelerationTime(0), _touchTime(0),
|
, currentItem(0)
|
||||||
_cursor(style::cur_default) {
|
, _cursor(style::cur_default)
|
||||||
|
, _dragAction(NoDrag)
|
||||||
|
, _dragSelType(TextSelectLetters)
|
||||||
|
, _dragItem(0)
|
||||||
|
, _dragWasInactive(false)
|
||||||
|
, _dragSelFrom(0)
|
||||||
|
, _dragSelTo(0)
|
||||||
|
, _dragSelecting(false)
|
||||||
|
, _touchScroll(false)
|
||||||
|
, _touchSelect(false)
|
||||||
|
, _touchInProgress(false)
|
||||||
|
, _touchScrollState(TouchScrollManual)
|
||||||
|
, _touchPrevPosValid(false)
|
||||||
|
, _touchWaitingAcceleration(false)
|
||||||
|
, _touchSpeedTime(0)
|
||||||
|
, _touchAccelerationTime(0)
|
||||||
|
, _touchTime(0)
|
||||||
|
, _menu(0) {
|
||||||
|
|
||||||
linkTipTimer.setSingleShot(true);
|
linkTipTimer.setSingleShot(true);
|
||||||
connect(&linkTipTimer, SIGNAL(timeout()), this, SLOT(showLinkTip()));
|
connect(&linkTipTimer, SIGNAL(timeout()), this, SLOT(showLinkTip()));
|
||||||
|
@ -72,7 +89,7 @@ void HistoryList::paintEvent(QPaintEvent *e) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hist->isEmpty()) {
|
if (hist->isEmpty()) {
|
||||||
QPoint dogPos((width() - st::msgDogImg.width()) / 2, ((height() - st::msgDogImg.height()) * 4) / 9);
|
QPoint dogPos((width() - st::msgDogImg.pxWidth()) / 2, ((height() - st::msgDogImg.pxHeight()) * 4) / 9);
|
||||||
p.drawPixmap(dogPos, App::sprite(), st::msgDogImg);
|
p.drawPixmap(dogPos, App::sprite(), st::msgDogImg);
|
||||||
} else {
|
} else {
|
||||||
adjustCurrent(r.top());
|
adjustCurrent(r.top());
|
||||||
|
@ -167,8 +184,8 @@ void HistoryList::touchUpdateSpeed() {
|
||||||
if (_touchScrollState == TouchScrollAuto) {
|
if (_touchScrollState == TouchScrollAuto) {
|
||||||
const int oldSpeedY = _touchSpeed.y();
|
const int oldSpeedY = _touchSpeed.y();
|
||||||
const int oldSpeedX = _touchSpeed.x();
|
const int oldSpeedX = _touchSpeed.x();
|
||||||
if ((oldSpeedY <= 0 && newSpeedY <= 0) || (oldSpeedY >= 0 && newSpeedY >= 0)
|
if ((oldSpeedY <= 0 && newSpeedY <= 0) || ((oldSpeedY >= 0 && newSpeedY >= 0)
|
||||||
&& (oldSpeedX <= 0 && newSpeedX <= 0) || (oldSpeedX >= 0 && newSpeedX >= 0)) {
|
&& (oldSpeedX <= 0 && newSpeedX <= 0)) || (oldSpeedX >= 0 && newSpeedX >= 0)) {
|
||||||
_touchSpeed.setY(snap((oldSpeedY + (newSpeedY / 4)), -MaxScrollAccelerated, +MaxScrollAccelerated));
|
_touchSpeed.setY(snap((oldSpeedY + (newSpeedY / 4)), -MaxScrollAccelerated, +MaxScrollAccelerated));
|
||||||
_touchSpeed.setX(snap((oldSpeedX + (newSpeedX / 4)), -MaxScrollAccelerated, +MaxScrollAccelerated));
|
_touchSpeed.setX(snap((oldSpeedX + (newSpeedX / 4)), -MaxScrollAccelerated, +MaxScrollAccelerated));
|
||||||
} else {
|
} else {
|
||||||
|
@ -615,11 +632,11 @@ void HistoryList::showContextMenu(QContextMenuEvent *e, bool showFromTouch) {
|
||||||
_menu->addAction(lang(lng_context_save_image), this, SLOT(saveContextImage()))->setEnabled(true);
|
_menu->addAction(lang(lng_context_save_image), this, SLOT(saveContextImage()))->setEnabled(true);
|
||||||
_menu->addAction(lang(lng_context_copy_image), this, SLOT(copyContextImage()))->setEnabled(true);
|
_menu->addAction(lang(lng_context_copy_image), this, SLOT(copyContextImage()))->setEnabled(true);
|
||||||
} else {
|
} else {
|
||||||
if (lnkVideo && lnkVideo->video()->loader || lnkAudio && lnkAudio->audio()->loader || lnkDocument && lnkDocument->document()->loader) {
|
if ((lnkVideo && lnkVideo->video()->loader) || (lnkAudio && lnkAudio->audio()->loader) || (lnkDocument && lnkDocument->document()->loader)) {
|
||||||
_menu->addAction(lang(lng_context_cancel_download), this, SLOT(cancelContextDownload()))->setEnabled(true);
|
_menu->addAction(lang(lng_context_cancel_download), this, SLOT(cancelContextDownload()))->setEnabled(true);
|
||||||
} else {
|
} else {
|
||||||
if (lnkVideo && !lnkVideo->video()->already(true).isEmpty() || lnkAudio && !lnkAudio->audio()->already(true).isEmpty() || lnkDocument && !lnkDocument->document()->already(true).isEmpty()) {
|
if ((lnkVideo && !lnkVideo->video()->already(true).isEmpty()) || (lnkAudio && !lnkAudio->audio()->already(true).isEmpty()) || (lnkDocument && !lnkDocument->document()->already(true).isEmpty())) {
|
||||||
_menu->addAction(lang(lng_context_show_in_folder), this, SLOT(showContextInFolder()))->setEnabled(true);
|
_menu->addAction(lang(cPlatform() == dbipMac ? lng_context_show_in_finder : lng_context_show_in_folder), this, SLOT(showContextInFolder()))->setEnabled(true);
|
||||||
}
|
}
|
||||||
_menu->addAction(lang(lnkVideo ? lng_context_open_video : (lnkAudio ? lng_context_open_audio : lng_context_open_document)), this, SLOT(openContextFile()))->setEnabled(true);
|
_menu->addAction(lang(lnkVideo ? lng_context_open_video : (lnkAudio ? lng_context_open_audio : lng_context_open_document)), this, SLOT(openContextFile()))->setEnabled(true);
|
||||||
_menu->addAction(lang(lnkVideo ? lng_context_save_video : (lnkAudio ? lng_context_save_audio : lng_context_save_document)), this, SLOT(saveContextFile()))->setEnabled(true);
|
_menu->addAction(lang(lnkVideo ? lng_context_save_video : (lnkAudio ? lng_context_save_audio : lng_context_save_document)), this, SLOT(saveContextFile()))->setEnabled(true);
|
||||||
|
@ -961,7 +978,7 @@ void HistoryList::fillSelectedItems(HistoryItemSet &sel, bool forDelete) {
|
||||||
|
|
||||||
for (SelectedItems::const_iterator i = _selected.cbegin(), e = _selected.cend(); i != e; ++i) {
|
for (SelectedItems::const_iterator i = _selected.cbegin(), e = _selected.cend(); i != e; ++i) {
|
||||||
HistoryItem *item = i.key();
|
HistoryItem *item = i.key();
|
||||||
if (item->itemType() == HistoryItem::MsgType && (item->id > 0 && !item->serviceMsg() || forDelete)) {
|
if (item->itemType() == HistoryItem::MsgType && ((item->id > 0 && !item->serviceMsg()) || forDelete)) {
|
||||||
sel.insert(item->y + item->block()->y, item);
|
sel.insert(item->y + item->block()->y, item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1031,15 +1048,15 @@ void HistoryList::onUpdateSelected(bool force) {
|
||||||
_selected[_dragItem] = _dragItem->adjustSelection(qMin(second, _dragSymbol), qMax(second, _dragSymbol), _dragSelType);
|
_selected[_dragItem] = _dragItem->adjustSelection(qMin(second, _dragSymbol), qMax(second, _dragSymbol), _dragSelType);
|
||||||
updateDragSelection(0, 0, false);
|
updateDragSelection(0, 0, false);
|
||||||
} else {
|
} else {
|
||||||
bool selectingDown = (_dragItem->block()->y < item->block()->y) || (_dragItem->block() == item->block()) && (_dragItem->y < item->y || _dragItem == item && _dragStartPos.y() < m.y());
|
bool selectingDown = (_dragItem->block()->y < item->block()->y) || ((_dragItem->block() == item->block()) && (_dragItem->y < item->y || (_dragItem == item && _dragStartPos.y() < m.y())));
|
||||||
HistoryItem *dragSelFrom = _dragItem, *dragSelTo = item;
|
HistoryItem *dragSelFrom = _dragItem, *dragSelTo = item;
|
||||||
if (!dragSelFrom->hasPoint(_dragStartPos.x(), _dragStartPos.y())) { // maybe exclude dragSelFrom
|
if (!dragSelFrom->hasPoint(_dragStartPos.x(), _dragStartPos.y())) { // maybe exclude dragSelFrom
|
||||||
if (selectingDown) {
|
if (selectingDown) {
|
||||||
if (_dragStartPos.y() >= dragSelFrom->height() - st::msgMargin.bottom() || (item == dragSelFrom) && (m.y() < _dragStartPos.y() + QApplication::startDragDistance())) {
|
if (_dragStartPos.y() >= dragSelFrom->height() - st::msgMargin.bottom() || ((item == dragSelFrom) && (m.y() < _dragStartPos.y() + QApplication::startDragDistance()))) {
|
||||||
dragSelFrom = (dragSelFrom == dragSelTo) ? 0 : nextItem(dragSelFrom);
|
dragSelFrom = (dragSelFrom == dragSelTo) ? 0 : nextItem(dragSelFrom);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (_dragStartPos.y() < st::msgMargin.top() || (item == dragSelFrom) && (m.y() >= _dragStartPos.y() - QApplication::startDragDistance())) {
|
if (_dragStartPos.y() < st::msgMargin.top() || ((item == dragSelFrom) && (m.y() >= _dragStartPos.y() - QApplication::startDragDistance()))) {
|
||||||
dragSelFrom = (dragSelFrom == dragSelTo) ? 0 : prevItem(dragSelFrom);
|
dragSelFrom = (dragSelFrom == dragSelTo) ? 0 : prevItem(dragSelFrom);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1218,11 +1235,19 @@ void MessageField::focusInEvent(QFocusEvent *e) {
|
||||||
emit focused();
|
emit focused();
|
||||||
}
|
}
|
||||||
|
|
||||||
HistoryHider::HistoryHider(MainWidget *parent, bool forwardSelected) : QWidget(parent),
|
HistoryHider::HistoryHider(MainWidget *parent, bool forwardSelected) : QWidget(parent)
|
||||||
aOpacity(0, 1), aOpacityFunc(anim::easeOutCirc), hiding(false), offered(0), _forwardRequest(0),
|
, sharedContact(0)
|
||||||
toTextWidth(0), _forwardSelected(forwardSelected), sharedContact(0), shadow(st::boxShadow),
|
, _forwardSelected(forwardSelected)
|
||||||
forwardButton(this, lang(lng_forward), st::btnSelectDone),
|
, forwardButton(this, lang(lng_forward), st::btnSelectDone)
|
||||||
cancelButton(this, lang(lng_cancel), st::btnSelectCancel) {
|
, cancelButton(this, lang(lng_cancel), st::btnSelectCancel)
|
||||||
|
, offered(0)
|
||||||
|
, aOpacity(0, 1)
|
||||||
|
, aOpacityFunc(anim::easeOutCirc)
|
||||||
|
, hiding(false)
|
||||||
|
, _forwardRequest(0)
|
||||||
|
, toTextWidth(0)
|
||||||
|
, shadow(st::boxShadow)
|
||||||
|
{
|
||||||
|
|
||||||
connect(&forwardButton, SIGNAL(clicked()), this, SLOT(forward()));
|
connect(&forwardButton, SIGNAL(clicked()), this, SLOT(forward()));
|
||||||
connect(&cancelButton, SIGNAL(clicked()), this, SLOT(startHide()));
|
connect(&cancelButton, SIGNAL(clicked()), this, SLOT(startHide()));
|
||||||
|
@ -1234,11 +1259,19 @@ HistoryHider::HistoryHider(MainWidget *parent, bool forwardSelected) : QWidget(p
|
||||||
anim::start(this);
|
anim::start(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
HistoryHider::HistoryHider(MainWidget *parent, UserData *sharedContact) : QWidget(parent),
|
HistoryHider::HistoryHider(MainWidget *parent, UserData *sharedContact) : QWidget(parent)
|
||||||
aOpacity(0, 1), aOpacityFunc(anim::easeOutCirc), hiding(false), offered(0), _forwardRequest(0),
|
, sharedContact(sharedContact)
|
||||||
toTextWidth(0), _forwardSelected(false), sharedContact(sharedContact), shadow(st::boxShadow),
|
, _forwardSelected(false)
|
||||||
forwardButton(this, lang(lng_forward), st::btnSelectDone),
|
, forwardButton(this, lang(lng_forward), st::btnSelectDone)
|
||||||
cancelButton(this, lang(lng_cancel), st::btnSelectCancel) {
|
, cancelButton(this, lang(lng_cancel), st::btnSelectCancel)
|
||||||
|
, offered(0)
|
||||||
|
, aOpacity(0, 1)
|
||||||
|
, aOpacityFunc(anim::easeOutCirc)
|
||||||
|
, hiding(false)
|
||||||
|
, _forwardRequest(0)
|
||||||
|
, toTextWidth(0)
|
||||||
|
, shadow(st::boxShadow)
|
||||||
|
{
|
||||||
|
|
||||||
connect(&forwardButton, SIGNAL(clicked()), this, SLOT(forward()));
|
connect(&forwardButton, SIGNAL(clicked()), this, SLOT(forward()));
|
||||||
connect(&cancelButton, SIGNAL(clicked()), this, SLOT(startHide()));
|
connect(&cancelButton, SIGNAL(clicked()), this, SLOT(startHide()));
|
||||||
|
@ -1382,7 +1415,7 @@ void HistoryHider::resizeEvent(QResizeEvent *e) {
|
||||||
|
|
||||||
void HistoryHider::offerPeer(PeerId peer) {
|
void HistoryHider::offerPeer(PeerId peer) {
|
||||||
offered = App::peer(peer);
|
offered = App::peer(peer);
|
||||||
toText.setText(st::boxFont, lang(sharedContact ? lng_forward_share_contact : lng_forward_confirm).replace(qsl("{recipient}"), offered->chat ? '«' + offered->name + '»' : offered->name), _textNameOptions);
|
toText.setText(st::boxFont, lang(sharedContact ? lng_forward_share_contact : lng_forward_confirm).replace(qsl("{recipient}"), offered->chat ? '\xAB' + offered->name + '\xBB' : offered->name), _textNameOptions);
|
||||||
toTextWidth = toText.maxWidth();
|
toTextWidth = toText.maxWidth();
|
||||||
if (toTextWidth > box.width() - st::boxPadding.left() - st::boxPadding.right()) {
|
if (toTextWidth > box.width() - st::boxPadding.left() - st::boxPadding.right()) {
|
||||||
toTextWidth = box.width() - st::boxPadding.left() - st::boxPadding.right();
|
toTextWidth = box.width() - st::boxPadding.left() - st::boxPadding.right();
|
||||||
|
@ -1402,14 +1435,38 @@ HistoryHider::~HistoryHider() {
|
||||||
parent()->noHider(this);
|
parent()->noHider(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
HistoryWidget::HistoryWidget(QWidget *parent) : QWidget(parent), noTypingUpdate(false), serviceImageCacheSize(0),
|
HistoryWidget::HistoryWidget(QWidget *parent) : QWidget(parent)
|
||||||
_scroll(this, st::historyScroll, false), _list(0), histPeer(0), _activePeer(0), histOffset(0), histCount(-1),
|
, histOffset(0)
|
||||||
hist(0), histPreloading(0), histReadRequestId(0), hiderOffered(false), _histInited(false),
|
, histCount(-1)
|
||||||
_send(this, lang(lng_send_button), st::btnSend), histRequestsCount(0),
|
, histReadRequestId(0)
|
||||||
_attachDocument(this, st::btnAttachDocument), _attachPhoto(this, st::btnAttachPhoto), _attachEmoji(this, st::btnAttachEmoji),
|
, histRequestsCount(0)
|
||||||
confirmImageId(0), loadingChatId(0), loadingRequestId(0), titlePeerTextWidth(0),
|
, histPeer(0)
|
||||||
_field(this, st::taMsgField, lang(lng_message_ph)), bg(st::msgBG), imageLoader(this),
|
, _activePeer(0)
|
||||||
_attachType(this), _emojiPan(this), _attachDrag(DragStateNone), _attachDragDocument(this), _attachDragPhoto(this), _scrollDelta(0) {
|
, histPreloading(0)
|
||||||
|
, _scroll(this, st::historyScroll, false)
|
||||||
|
, _list(0)
|
||||||
|
, hist(0)
|
||||||
|
, _histInited(false)
|
||||||
|
, _send(this, lang(lng_send_button), st::btnSend)
|
||||||
|
, _attachDocument(this, st::btnAttachDocument)
|
||||||
|
, _attachPhoto(this, st::btnAttachPhoto)
|
||||||
|
, _attachEmoji(this, st::btnAttachEmoji)
|
||||||
|
, _field(this, st::taMsgField, lang(lng_message_ph))
|
||||||
|
, _attachType(this)
|
||||||
|
, _emojiPan(this)
|
||||||
|
, _attachDrag(DragStateNone)
|
||||||
|
, _attachDragDocument(this)
|
||||||
|
, _attachDragPhoto(this)
|
||||||
|
, imageLoader(this)
|
||||||
|
, noTypingUpdate(false)
|
||||||
|
, loadingChatId(0)
|
||||||
|
, loadingRequestId(0)
|
||||||
|
, serviceImageCacheSize(0)
|
||||||
|
, confirmImageId(0)
|
||||||
|
, titlePeerTextWidth(0)
|
||||||
|
, bg(st::msgBG)
|
||||||
|
, hiderOffered(false)
|
||||||
|
, _scrollDelta(0) {
|
||||||
_scroll.setFocusPolicy(Qt::NoFocus);
|
_scroll.setFocusPolicy(Qt::NoFocus);
|
||||||
|
|
||||||
setAcceptDrops(true);
|
setAcceptDrops(true);
|
||||||
|
@ -1462,7 +1519,7 @@ void HistoryWidget::onTextChange() {
|
||||||
|
|
||||||
void HistoryWidget::updateTyping(bool typing) {
|
void HistoryWidget::updateTyping(bool typing) {
|
||||||
uint64 ms = getms() + 10000;
|
uint64 ms = getms() + 10000;
|
||||||
if (noTypingUpdate || !hist || typing && (hist->myTyping + 5000 > ms) || !typing && (hist->myTyping + 5000 <= ms)) return;
|
if (noTypingUpdate || !hist || (typing && (hist->myTyping + 5000 > ms)) || (!typing && (hist->myTyping + 5000 <= ms))) return;
|
||||||
|
|
||||||
hist->myTyping = typing ? ms : 0;
|
hist->myTyping = typing ? ms : 0;
|
||||||
if (typing) MTP::send(MTPmessages_SetTyping(histPeer->input, MTP_bool(typing)));
|
if (typing) MTP::send(MTPmessages_SetTyping(histPeer->input, MTP_bool(typing)));
|
||||||
|
@ -1746,20 +1803,7 @@ void HistoryWidget::historyToDown(History *history) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void HistoryWidget::historyWasRead(bool force) {
|
void HistoryWidget::historyWasRead(bool force) {
|
||||||
if (histReadRequestId || !hist || !force && (!hist->unreadCount || !hist->unreadLoaded)) return;
|
App::main()->readServerHistory(hist, force);
|
||||||
hist->inboxRead(true);
|
|
||||||
histReadRequestId = MTP::send(MTPmessages_ReadHistory(histPeer->input, MTP_int(0), MTP_int(0)), rpcDone(&HistoryWidget::partWasRead, histPeer));
|
|
||||||
}
|
|
||||||
|
|
||||||
void HistoryWidget::partWasRead(PeerData *peer, const MTPmessages_AffectedHistory &result) {
|
|
||||||
const MTPDmessages_affectedHistory &d(result.c_messages_affectedHistory());
|
|
||||||
App::main()->updUpdated(d.vpts.v, 0, 0, d.vseq.v);
|
|
||||||
|
|
||||||
histReadRequestId = 0;
|
|
||||||
int32 offset = d.voffset.v;
|
|
||||||
if (!MTP::authedId() || offset <= 0) return;
|
|
||||||
|
|
||||||
histReadRequestId = MTP::send(MTPmessages_ReadHistory(peer->input, MTP_int(0), MTP_int(offset)), rpcDone(&HistoryWidget::partWasRead, peer));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool HistoryWidget::messagesFailed(const RPCError &e, mtpRequestId requestId) {
|
bool HistoryWidget::messagesFailed(const RPCError &e, mtpRequestId requestId) {
|
||||||
|
@ -1890,7 +1934,7 @@ void HistoryWidget::loadMessages() {
|
||||||
void HistoryWidget::onListScroll() {
|
void HistoryWidget::onListScroll() {
|
||||||
App::checkImageCacheSize();
|
App::checkImageCacheSize();
|
||||||
|
|
||||||
if (histPreloading || !hist || (_list->isHidden() || _scroll.isHidden() || !App::wnd()->windowHandle()->isVisible()) && hist->unreadLoaded) {
|
if (histPreloading || !hist || ((_list->isHidden() || _scroll.isHidden() || !App::wnd()->windowHandle()->isVisible()) && hist->unreadLoaded)) {
|
||||||
checkUnreadLoaded(true);
|
checkUnreadLoaded(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1906,9 +1950,7 @@ void HistoryWidget::onVisibleChanged() {
|
||||||
QTimer::singleShot(0, this, SLOT(onListScroll()));
|
QTimer::singleShot(0, this, SLOT(onListScroll()));
|
||||||
}
|
}
|
||||||
|
|
||||||
QString HistoryWidget::prepareMessage() {
|
QString HistoryWidget::prepareMessage(QString result) {
|
||||||
QString result = _field.getText();
|
|
||||||
|
|
||||||
result = result.replace('\t', qsl(" "));
|
result = result.replace('\t', qsl(" "));
|
||||||
|
|
||||||
result = result.replace(" --", QString::fromUtf8(" \xe2\x80\x94"));
|
result = result.replace(" --", QString::fromUtf8(" \xe2\x80\x94"));
|
||||||
|
@ -1922,7 +1964,7 @@ QString HistoryWidget::prepareMessage() {
|
||||||
void HistoryWidget::onSend() {
|
void HistoryWidget::onSend() {
|
||||||
if (!hist) return;
|
if (!hist) return;
|
||||||
|
|
||||||
QString text = prepareMessage();
|
QString text = prepareMessage(_field.getText());
|
||||||
if (!text.isEmpty()) {
|
if (!text.isEmpty()) {
|
||||||
MsgId newId = clientMsgId();
|
MsgId newId = clientMsgId();
|
||||||
uint64 randomId = MTP::nonce<uint64>();
|
uint64 randomId = MTP::nonce<uint64>();
|
||||||
|
@ -1937,6 +1979,8 @@ void HistoryWidget::onSend() {
|
||||||
|
|
||||||
MTP::send(MTPmessages_SendMessage(histInputPeer, msgText, MTP_long(randomId)), App::main()->rpcDone(&MainWidget::sentDataReceived, randomId));
|
MTP::send(MTPmessages_SendMessage(histInputPeer, msgText, MTP_long(randomId)), App::main()->rpcDone(&MainWidget::sentDataReceived, randomId));
|
||||||
_field.setPlainText("");
|
_field.setPlainText("");
|
||||||
|
if (!_attachType.isHidden()) _attachType.hideStart();
|
||||||
|
if (!_emojiPan.isHidden()) _emojiPan.hideStart();
|
||||||
}
|
}
|
||||||
_field.setFocus();
|
_field.setFocus();
|
||||||
}
|
}
|
||||||
|
@ -1966,7 +2010,7 @@ mtpRequestId HistoryWidget::onForward(const PeerId &peer, bool forwardSelected)
|
||||||
newId = clientMsgId();
|
newId = clientMsgId();
|
||||||
hist->addToBackForwarded(newId, msg);
|
hist->addToBackForwarded(newId, msg);
|
||||||
MTP::send(MTPmessages_ForwardMessage(histPeer->input, MTP_int(item->id), MTP_long(randomId)), App::main()->rpcDone(&MainWidget::sentFullDataReceived, randomId));
|
MTP::send(MTPmessages_ForwardMessage(histPeer->input, MTP_int(item->id), MTP_long(randomId)), App::main()->rpcDone(&MainWidget::sentFullDataReceived, randomId));
|
||||||
} else if (srv || msg && msg->selectedText(FullItemSel).isEmpty()) {
|
} else if (srv || (msg && msg->selectedText(FullItemSel).isEmpty())) {
|
||||||
// newId = clientMsgId();
|
// newId = clientMsgId();
|
||||||
// MTP::send(MTPmessages_ForwardMessage(histPeer->input, MTP_int(item->id), MTP_long(randomId)), App::main()->rpcDone(&MainWidget::sentFullDataReceived, randomId));
|
// MTP::send(MTPmessages_ForwardMessage(histPeer->input, MTP_int(item->id), MTP_long(randomId)), App::main()->rpcDone(&MainWidget::sentFullDataReceived, randomId));
|
||||||
} else if (msg) {
|
} else if (msg) {
|
||||||
|
@ -2314,7 +2358,7 @@ void HistoryWidget::paintTopBar(QPainter &p, float64 over, int32 decreaseWidth)
|
||||||
|
|
||||||
if (!decreaseWidth) {
|
if (!decreaseWidth) {
|
||||||
p.setOpacity(st::topBarForwardAlpha + (1 - st::topBarForwardAlpha) * over);
|
p.setOpacity(st::topBarForwardAlpha + (1 - st::topBarForwardAlpha) * over);
|
||||||
p.drawPixmap(QPoint(width() - (st::topBarForwardPadding.right() + st::topBarForwardImg.width()) / 2, (st::topBarHeight - st::topBarForwardImg.height()) / 2), App::sprite(), st::topBarForwardImg);
|
p.drawPixmap(QPoint(width() - (st::topBarForwardPadding.right() + st::topBarForwardImg.pxWidth()) / 2, (st::topBarHeight - st::topBarForwardImg.pxHeight()) / 2), App::sprite(), st::topBarForwardImg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2424,7 +2468,6 @@ void HistoryWidget::onPhotoReady() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void HistoryWidget::onPhotoFailed(quint64 id) {
|
void HistoryWidget::onPhotoFailed(quint64 id) {
|
||||||
id = id;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HistoryWidget::confirmSendImage(const ReadyLocalMedia &img) {
|
void HistoryWidget::confirmSendImage(const ReadyLocalMedia &img) {
|
||||||
|
@ -2562,7 +2605,7 @@ void HistoryWidget::resizeEvent(QResizeEvent *e) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void HistoryWidget::updateListSize(int32 addToY, bool initial) {
|
void HistoryWidget::updateListSize(int32 addToY, bool initial) {
|
||||||
if (!hist || !_histInited && !initial) return;
|
if (!hist || (!_histInited && !initial)) return;
|
||||||
|
|
||||||
if (!App::wnd()->isVisible()) return; // scrollTopMax etc are not working after recountHeight()
|
if (!App::wnd()->isVisible()) return; // scrollTopMax etc are not working after recountHeight()
|
||||||
|
|
||||||
|
@ -2792,11 +2835,11 @@ void HistoryWidget::paintEvent(QPaintEvent *e) {
|
||||||
p.fillRect(0, _field.y() - st::sendPadding, width(), _field.height() + 2 * st::sendPadding, st::taMsgField.bgColor->b);
|
p.fillRect(0, _field.y() - st::sendPadding, width(), _field.height() + 2 * st::sendPadding, st::taMsgField.bgColor->b);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
QPoint dogPos((width() - st::msgDogImg.width()) / 2, ((height() - _field.height() - 2 * st::sendPadding - st::msgDogImg.height()) * 4) / 9);
|
QPoint dogPos((width() - st::msgDogImg.pxWidth()) / 2, ((height() - _field.height() - 2 * st::sendPadding - st::msgDogImg.pxHeight()) * 4) / 9);
|
||||||
p.drawPixmap(dogPos, App::sprite(), st::msgDogImg);
|
p.drawPixmap(dogPos, App::sprite(), st::msgDogImg);
|
||||||
|
|
||||||
int32 pointsCount = 8, w = pointsCount * (st::introPointWidth + 2 * st::introPointDelta), h = st::introPointHeight;
|
int32 pointsCount = 8, w = pointsCount * (st::introPointWidth + 2 * st::introPointDelta), h = st::introPointHeight;
|
||||||
int32 pointsLeft = (width() - w) / 2 + st::introPointDelta - st::introPointLeft, pointsTop = dogPos.y() + (st::msgDogImg.height() * 6) / 5;
|
int32 pointsLeft = (width() - w) / 2 + st::introPointDelta - st::introPointLeft, pointsTop = dogPos.y() + (st::msgDogImg.pxHeight() * 6) / 5;
|
||||||
|
|
||||||
int32 curPoint = histRequestsCount % pointsCount;
|
int32 curPoint = histRequestsCount % pointsCount;
|
||||||
|
|
||||||
|
@ -2805,8 +2848,8 @@ void HistoryWidget::paintEvent(QPaintEvent *e) {
|
||||||
|
|
||||||
// points
|
// points
|
||||||
p.setOpacity(st::introPointAlpha);
|
p.setOpacity(st::introPointAlpha);
|
||||||
int x = pointsLeft + st::introPointLeft;
|
int32 x = pointsLeft + st::introPointLeft;
|
||||||
for (uint32 i = 0; i < pointsCount; ++i) {
|
for (int32 i = 0; i < pointsCount; ++i) {
|
||||||
p.fillRect(x, pointsTop + st::introPointTop, st::introPointWidth, st::introPointHeight, st::introPointColor->b);
|
p.fillRect(x, pointsTop + st::introPointTop, st::introPointWidth, st::introPointHeight, st::introPointColor->b);
|
||||||
x += (st::introPointWidth + 2 * st::introPointDelta);
|
x += (st::introPointWidth + 2 * st::introPointDelta);
|
||||||
}
|
}
|
||||||
|
|
|
@ -311,6 +311,8 @@ public:
|
||||||
void noSelectingScroll();
|
void noSelectingScroll();
|
||||||
|
|
||||||
bool touchScroll(const QPoint &delta);
|
bool touchScroll(const QPoint &delta);
|
||||||
|
|
||||||
|
QString prepareMessage(QString text);
|
||||||
|
|
||||||
~HistoryWidget();
|
~HistoryWidget();
|
||||||
|
|
||||||
|
@ -365,7 +367,6 @@ public slots:
|
||||||
private:
|
private:
|
||||||
|
|
||||||
bool messagesFailed(const RPCError &error, mtpRequestId requestId);
|
bool messagesFailed(const RPCError &error, mtpRequestId requestId);
|
||||||
void partWasRead(PeerData *peer, const MTPmessages_AffectedHistory &result);
|
|
||||||
void updateListSize(int32 addToY = 0, bool initial = false);
|
void updateListSize(int32 addToY = 0, bool initial = false);
|
||||||
void addMessagesToFront(const QVector<MTPMessage> &messages);
|
void addMessagesToFront(const QVector<MTPMessage> &messages);
|
||||||
void chatLoaded(const MTPmessages_ChatFull &res);
|
void chatLoaded(const MTPmessages_ChatFull &res);
|
||||||
|
@ -375,8 +376,6 @@ private:
|
||||||
|
|
||||||
void updateDragAreas();
|
void updateDragAreas();
|
||||||
|
|
||||||
QString prepareMessage();
|
|
||||||
|
|
||||||
int32 histOffset, histCount, histReadRequestId;
|
int32 histOffset, histCount, histReadRequestId;
|
||||||
int32 histRequestsCount;
|
int32 histRequestsCount;
|
||||||
PeerData *histPeer, *_activePeer;
|
PeerData *histPeer, *_activePeer;
|
||||||
|
|
|
@ -45,8 +45,8 @@ namespace {
|
||||||
}
|
}
|
||||||
|
|
||||||
IntroWidget::IntroWidget(Window *window) : QWidget(window),
|
IntroWidget::IntroWidget(Window *window) : QWidget(window),
|
||||||
wnd(window), cacheForHideInd(0), cacheForShowInd(0), _callTimeout(60),
|
cacheForHideInd(0), cacheForShowInd(0), wnd(window), steps(new IntroSteps(this)),
|
||||||
steps(new IntroSteps(this)), phone(0), code(0), signup(0), current(0), moving(0), visibilityChanging(0) {
|
phone(0), code(0), signup(0), current(0), moving(0), visibilityChanging(0), _callTimeout(60) {
|
||||||
setGeometry(QRect(0, st::titleHeight, wnd->width(), wnd->height() - st::titleHeight));
|
setGeometry(QRect(0, st::titleHeight, wnd->width(), wnd->height() - st::titleHeight));
|
||||||
|
|
||||||
countryForReg = psCurrentCountry();
|
countryForReg = psCurrentCountry();
|
||||||
|
|
|
@ -67,10 +67,10 @@ void CodeInput::correctValue(QKeyEvent *e, const QString &was) {
|
||||||
if (strict) emit codeEntered();
|
if (strict) emit codeEntered();
|
||||||
}
|
}
|
||||||
|
|
||||||
IntroCode::IntroCode(IntroWidget *parent) : IntroStage(parent),
|
IntroCode::IntroCode(IntroWidget *parent) : IntroStage(parent), errorAlpha(0),
|
||||||
next(this, lang(lng_intro_next), st::btnIntroNext),
|
next(this, lang(lng_intro_next), st::btnIntroNext),
|
||||||
back(this, lang(lng_intro_back), st::btnIntroBack),
|
back(this, lang(lng_intro_back), st::btnIntroBack),
|
||||||
code(this, st::inpIntroCode, lang(lng_code_ph)), errorAlpha(0), waitTillCall(intro()->getCallTimeout()) {
|
code(this, st::inpIntroCode, lang(lng_code_ph)), waitTillCall(intro()->getCallTimeout()) {
|
||||||
setVisible(false);
|
setVisible(false);
|
||||||
setGeometry(parent->innerRect());
|
setGeometry(parent->innerRect());
|
||||||
|
|
||||||
|
|
|
@ -40,10 +40,13 @@ namespace {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
IntroPhone::IntroPhone(IntroWidget *parent) : IntroStage(parent), changed(false),
|
IntroPhone::IntroPhone(IntroWidget *parent) : IntroStage(parent),
|
||||||
|
errorAlpha(0), changed(false),
|
||||||
next(this, lang(lng_intro_next), st::btnIntroStart),
|
next(this, lang(lng_intro_next), st::btnIntroStart),
|
||||||
country(this, st::introCountry), errorAlpha(0), _signup(this, lang(lng_phone_notreg).replace(qsl("{signup}"), textcmdStartLink(1)).replace(qsl("{/signup}"), textcmdStopLink()), st::introErrLabel), _showSignup(false),
|
country(this, st::introCountry),
|
||||||
phone(this, st::inpIntroPhone, lang(lng_phone_ph)), code(this, st::inpIntroCountryCode) {
|
phone(this, st::inpIntroPhone, lang(lng_phone_ph)), code(this, st::inpIntroCountryCode),
|
||||||
|
_signup(this, lang(lng_phone_notreg).replace(qsl("{signup}"), textcmdStartLink(1)).replace(qsl("{/signup}"), textcmdStopLink()), st::introErrLabel),
|
||||||
|
_showSignup(false) {
|
||||||
setVisible(false);
|
setVisible(false);
|
||||||
setGeometry(parent->innerRect());
|
setGeometry(parent->innerRect());
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,8 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
#include "intro/intro.h"
|
#include "intro/intro.h"
|
||||||
|
|
||||||
IntroSignup::IntroSignup(IntroWidget *parent) : IntroStage(parent),
|
IntroSignup::IntroSignup(IntroWidget *parent) : IntroStage(parent),
|
||||||
next(this, lang(lng_intro_finish), st::btnIntroFinish), errorAlpha(0), a_photo(0),
|
errorAlpha(0), a_photo(0),
|
||||||
|
next(this, lang(lng_intro_finish), st::btnIntroFinish),
|
||||||
first(this, st::inpIntroName, lang(lng_signup_firstname)),
|
first(this, st::inpIntroName, lang(lng_signup_firstname)),
|
||||||
last(this, st::inpIntroName, lang(lng_signup_lastname)) {
|
last(this, st::inpIntroName, lang(lng_signup_lastname)) {
|
||||||
setVisible(false);
|
setVisible(false);
|
||||||
|
@ -124,7 +125,7 @@ void IntroSignup::paintEvent(QPaintEvent *e) {
|
||||||
|
|
||||||
void IntroSignup::resizeEvent(QResizeEvent *e) {
|
void IntroSignup::resizeEvent(QResizeEvent *e) {
|
||||||
textRect = QRect((width() - st::introTextSize.width()) / 2, 0, st::introTextSize.width(), st::introTextSize.height());
|
textRect = QRect((width() - st::introTextSize.width()) / 2, 0, st::introTextSize.width(), st::introTextSize.height());
|
||||||
_phLeft = (width() - st::setPhotoImg.width()) / 2;
|
_phLeft = (width() - st::setPhotoImg.pxWidth()) / 2;
|
||||||
_phTop = st::introHeaderFont->height + st::introFinishSkip;
|
_phTop = st::introHeaderFont->height + st::introFinishSkip;
|
||||||
if (e->oldSize().width() != width()) {
|
if (e->oldSize().width() != width()) {
|
||||||
int sumNext = st::btnIntroNext.width - st::btnIntroBack.width - st::btnIntroSep;
|
int sumNext = st::btnIntroNext.width - st::btnIntroBack.width - st::btnIntroSep;
|
||||||
|
@ -132,7 +133,7 @@ void IntroSignup::resizeEvent(QResizeEvent *e) {
|
||||||
}
|
}
|
||||||
if (e->oldSize().width() != width()) {
|
if (e->oldSize().width() != width()) {
|
||||||
next.move((width() - next.width()) / 2, st::introSize.height() - st::btnIntroNext.height);
|
next.move((width() - next.width()) / 2, st::introSize.height() - st::btnIntroNext.height);
|
||||||
first.move((width() - first.width()) / 2, _phTop + st::setPhotoImg.height() + st::introFinishSkip);
|
first.move((width() - first.width()) / 2, _phTop + st::setPhotoImg.pxHeight() + st::introFinishSkip);
|
||||||
last.move((width() - last.width()) / 2, first.y() + first.height() + st::introFinishSkip);
|
last.move((width() - last.width()) / 2, first.y() + first.height() + st::introFinishSkip);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,7 +66,7 @@ namespace {
|
||||||
if (!skipJunk(from, end)) return false;
|
if (!skipJunk(from, end)) return false;
|
||||||
|
|
||||||
const char *nameStart = from;
|
const char *nameStart = from;
|
||||||
while (from < end && (*from >= 'a' && *from <= 'z' || *from >= 'A' && *from <= 'Z' || *from == '_' || *from >= '0' && *from <= '9')) {
|
while (from < end && ((*from >= 'a' && *from <= 'z') || (*from >= 'A' && *from <= 'Z') || *from == '_' || (*from >= '0' && *from <= '9'))) {
|
||||||
++from;
|
++from;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -126,9 +126,23 @@ BackgroundWidget::~BackgroundWidget() {
|
||||||
if (_hidden) _hidden->deleteLater();
|
if (_hidden) _hidden->deleteLater();
|
||||||
}
|
}
|
||||||
|
|
||||||
LayerWidget::LayerWidget(QWidget *parent, PhotoData *photo, HistoryItem *item) : QWidget(parent), photo(photo), video(0),
|
LayerWidget::LayerWidget(QWidget *parent, PhotoData *photo, HistoryItem *item) : QWidget(parent)
|
||||||
aBackground(0), aOver(0), iX(App::wnd()->width() / 2), iY(App::wnd()->height() / 2), iW(0), iCoordFunc(anim::sineInOut), aOverFunc(anim::linear), aBackgroundFunc(anim::easeOutCirc), hiding(false),
|
, photo(photo)
|
||||||
_touchPress(false), _touchMove(false), _touchRightButton(false), _menu(0) {
|
, video(0)
|
||||||
|
, aBackground(0)
|
||||||
|
, aOver(0)
|
||||||
|
, iX(App::wnd()->width() / 2)
|
||||||
|
, iY(App::wnd()->height() / 2)
|
||||||
|
, iW(0)
|
||||||
|
, iCoordFunc(anim::sineInOut)
|
||||||
|
, aBackgroundFunc(anim::easeOutCirc)
|
||||||
|
, aOverFunc(anim::linear)
|
||||||
|
, hiding(false)
|
||||||
|
, _touchPress(false)
|
||||||
|
, _touchMove(false)
|
||||||
|
, _touchRightButton(false)
|
||||||
|
, _menu(0)
|
||||||
|
{
|
||||||
int32 x, y, w;
|
int32 x, y, w;
|
||||||
if (App::wnd()->getPhotoCoords(photo, x, y, w)) {
|
if (App::wnd()->getPhotoCoords(photo, x, y, w)) {
|
||||||
iX = anim::ivalue(x);
|
iX = anim::ivalue(x);
|
||||||
|
@ -149,9 +163,23 @@ LayerWidget::LayerWidget(QWidget *parent, PhotoData *photo, HistoryItem *item) :
|
||||||
connect(&_touchTimer, SIGNAL(timeout()), this, SLOT(onTouchTimer()));
|
connect(&_touchTimer, SIGNAL(timeout()), this, SLOT(onTouchTimer()));
|
||||||
}
|
}
|
||||||
|
|
||||||
LayerWidget::LayerWidget(QWidget *parent, VideoData *video, HistoryItem *item) : QWidget(parent), photo(0), video(video),
|
LayerWidget::LayerWidget(QWidget *parent, VideoData *video, HistoryItem *item) : QWidget(parent)
|
||||||
aBackground(0), aOver(0), iX(App::wnd()->width() / 2), iY(App::wnd()->height() / 2), iW(0), iCoordFunc(anim::sineInOut), aOverFunc(anim::linear), aBackgroundFunc(anim::easeOutCirc), hiding(false),
|
, photo(0)
|
||||||
_touchPress(false), _touchMove(false), _touchRightButton(false), _menu(0) {
|
, video(video)
|
||||||
|
, aBackground(0)
|
||||||
|
, aOver(0)
|
||||||
|
, iX(App::wnd()->width() / 2)
|
||||||
|
, iY(App::wnd()->height() / 2)
|
||||||
|
, iW(0)
|
||||||
|
, iCoordFunc(anim::sineInOut)
|
||||||
|
, aBackgroundFunc(anim::easeOutCirc)
|
||||||
|
, aOverFunc(anim::linear)
|
||||||
|
, hiding(false)
|
||||||
|
, _touchPress(false)
|
||||||
|
, _touchMove(false)
|
||||||
|
, _touchRightButton(false)
|
||||||
|
, _menu(0)
|
||||||
|
{
|
||||||
int32 x, y, w;
|
int32 x, y, w;
|
||||||
if (App::wnd()->getVideoCoords(video, x, y, w)) {
|
if (App::wnd()->getVideoCoords(video, x, y, w)) {
|
||||||
iX = anim::ivalue(x);
|
iX = anim::ivalue(x);
|
||||||
|
@ -279,7 +307,7 @@ void LayerWidget::keyPressEvent(QKeyEvent *e) {
|
||||||
photo->full->pix().toImage().save(file, "JPG");
|
photo->full->pix().toImage().save(file, "JPG");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (photo && photo->full->loaded() && (e->key() == Qt::Key_Copy || e->key() == Qt::Key_C && e->modifiers().testFlag(Qt::ControlModifier))) {
|
} else if (photo && photo->full->loaded() && (e->key() == Qt::Key_Copy || (e->key() == Qt::Key_C && e->modifiers().testFlag(Qt::ControlModifier)))) {
|
||||||
QApplication::clipboard()->setPixmap(photo->full->pix());
|
QApplication::clipboard()->setPixmap(photo->full->pix());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -304,7 +332,7 @@ void LayerWidget::contextMenuEvent(QContextMenuEvent *e) {
|
||||||
_menu->addAction(lang(lng_context_forward_image), this, SLOT(forwardMessage()))->setEnabled(true);
|
_menu->addAction(lang(lng_context_forward_image), this, SLOT(forwardMessage()))->setEnabled(true);
|
||||||
}
|
}
|
||||||
_menu->addAction(lang(lng_context_delete_image), this, SLOT(deleteMessage()))->setEnabled(true);
|
_menu->addAction(lang(lng_context_delete_image), this, SLOT(deleteMessage()))->setEnabled(true);
|
||||||
} else if (App::self() && App::self()->photoId == photo->id || photo->chat && photo->chat->photoId == photo->id) {
|
} else if ((App::self() && App::self()->photoId == photo->id) || (photo->chat && photo->chat->photoId == photo->id)) {
|
||||||
_menu->addAction(lang(lng_context_delete_image), this, SLOT(deleteMessage()))->setEnabled(true);
|
_menu->addAction(lang(lng_context_delete_image), this, SLOT(deleteMessage()))->setEnabled(true);
|
||||||
}
|
}
|
||||||
_menu->setAttribute(Qt::WA_DeleteOnClose);
|
_menu->setAttribute(Qt::WA_DeleteOnClose);
|
||||||
|
|
|
@ -19,7 +19,10 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
#include "localimageloader.h"
|
#include "localimageloader.h"
|
||||||
#include <libexif/exif-data.h>
|
#include <libexif/exif-data.h>
|
||||||
|
|
||||||
LocalImageLoaderPrivate::LocalImageLoaderPrivate(int32 currentUser, LocalImageLoader *loader, QThread *thread) : QObject(0), user(currentUser), loader(loader) {
|
LocalImageLoaderPrivate::LocalImageLoaderPrivate(int32 currentUser, LocalImageLoader *loader, QThread *thread) : QObject(0)
|
||||||
|
, loader(loader)
|
||||||
|
, user(currentUser)
|
||||||
|
{
|
||||||
moveToThread(thread);
|
moveToThread(thread);
|
||||||
connect(loader, SIGNAL(needToPrepare()), this, SLOT(prepareImages()));
|
connect(loader, SIGNAL(needToPrepare()), this, SLOT(prepareImages()));
|
||||||
connect(this, SIGNAL(imageReady()), loader, SLOT(onImageReady()));
|
connect(this, SIGNAL(imageReady()), loader, SLOT(onImageReady()));
|
||||||
|
@ -101,7 +104,7 @@ void LocalImageLoaderPrivate::prepareImages() {
|
||||||
filesize = 0;
|
filesize = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (img.isNull() && (type != ToPrepareDocument || !filesize) || type == ToPrepareAuto || img.isNull() && file.isEmpty() && data.isEmpty()) { // if could not decide what type
|
if ((img.isNull() && (type != ToPrepareDocument || !filesize)) || type == ToPrepareAuto || (img.isNull() && file.isEmpty() && data.isEmpty())) { // if could not decide what type
|
||||||
{
|
{
|
||||||
QMutexLocker lock(loader->toPrepareMutex());
|
QMutexLocker lock(loader->toPrepareMutex());
|
||||||
ToPrepareMedias &list(loader->toPrepareMedias());
|
ToPrepareMedias &list(loader->toPrepareMedias());
|
||||||
|
|
|
@ -25,11 +25,11 @@ enum ToPrepareMediaType {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ToPrepareMedia {
|
struct ToPrepareMedia {
|
||||||
ToPrepareMedia(const QString &file, const PeerId &peer, ToPrepareMediaType t) : file(file), peer(peer), id(MTP::nonce<PhotoId>()), type(t) {
|
ToPrepareMedia(const QString &file, const PeerId &peer, ToPrepareMediaType t) : id(MTP::nonce<PhotoId>()), file(file), peer(peer), type(t) {
|
||||||
}
|
}
|
||||||
ToPrepareMedia(const QImage &img, const PeerId &peer, ToPrepareMediaType t) : img(img), peer(peer), id(MTP::nonce<PhotoId>()), type(t) {
|
ToPrepareMedia(const QImage &img, const PeerId &peer, ToPrepareMediaType t) : id(MTP::nonce<PhotoId>()), img(img), peer(peer), type(t) {
|
||||||
}
|
}
|
||||||
ToPrepareMedia(const QByteArray &data, const PeerId &peer, ToPrepareMediaType t) : data(data), peer(peer), id(MTP::nonce<PhotoId>()), type(t) {
|
ToPrepareMedia(const QByteArray &data, const PeerId &peer, ToPrepareMediaType t) : id(MTP::nonce<PhotoId>()), data(data), peer(peer), type(t) {
|
||||||
}
|
}
|
||||||
PhotoId id;
|
PhotoId id;
|
||||||
QString file;
|
QString file;
|
||||||
|
@ -43,7 +43,7 @@ typedef QList<ToPrepareMedia> ToPrepareMedias;
|
||||||
typedef QMap<int32, QByteArray> LocalFileParts;
|
typedef QMap<int32, QByteArray> LocalFileParts;
|
||||||
struct ReadyLocalMedia {
|
struct ReadyLocalMedia {
|
||||||
ReadyLocalMedia(ToPrepareMediaType type, const QString &file, const QString &filename, int32 filesize, const QByteArray &data, const uint64 &id, const uint64 &jpeg_id, const PeerId &peer, const MTPPhoto &photo, const PreparedPhotoThumbs &photoThumbs, const MTPDocument &document, const QByteArray &jpeg) :
|
ReadyLocalMedia(ToPrepareMediaType type, const QString &file, const QString &filename, int32 filesize, const QByteArray &data, const uint64 &id, const uint64 &jpeg_id, const PeerId &peer, const MTPPhoto &photo, const PreparedPhotoThumbs &photoThumbs, const MTPDocument &document, const QByteArray &jpeg) :
|
||||||
type(type), file(file), filename(filename), filesize(filesize), data(data), id(id), jpeg_id(jpeg_id), peer(peer), photo(photo), photoThumbs(photoThumbs), document(document) {
|
type(type), file(file), filename(filename), filesize(filesize), data(data), id(id), jpeg_id(jpeg_id), peer(peer), photo(photo), document(document), photoThumbs(photoThumbs) {
|
||||||
if (!jpeg.isEmpty()) {
|
if (!jpeg.isEmpty()) {
|
||||||
int32 size = jpeg.size();
|
int32 size = jpeg.size();
|
||||||
for (int32 i = 0, part = 0; i < size; i += UploadPartSize, ++part) {
|
for (int32 i = 0, part = 0; i < size; i += UploadPartSize, ++part) {
|
||||||
|
|
|
@ -69,9 +69,8 @@ void debugLogWrite(const char *file, int32 line, const QString &v) {
|
||||||
debugLogStream->flush();
|
debugLogStream->flush();
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
OutputDebugString(reinterpret_cast<const wchar_t *>(msg.utf16()));
|
OutputDebugString(reinterpret_cast<const wchar_t *>(msg.utf16()));
|
||||||
#endif
|
#elif defined Q_OS_MAC
|
||||||
#ifdef Q_OS_MAC
|
objc_outputDebugString(msg);
|
||||||
_outputDebugString(msg.toUtf8().constData());
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -118,9 +117,7 @@ void logsInit() {
|
||||||
if (mainLogStream) return;
|
if (mainLogStream) return;
|
||||||
|
|
||||||
#ifdef Q_OS_MAC
|
#ifdef Q_OS_MAC
|
||||||
if (QDir(cWorkingDir()).absolutePath() == qsl("/")) {
|
cForceWorkingDir(psAppDataPath());
|
||||||
cSetWorkingDir(cExeDir());
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QString oldDir = cWorkingDir();
|
QString oldDir = cWorkingDir();
|
||||||
|
|
|
@ -45,8 +45,15 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
DEBUG_LOG(("Application Info: ideal thread count: %1, using %2 connections per session").arg(QThread::idealThreadCount()).arg(cConnectionsInSession()));
|
DEBUG_LOG(("Application Info: ideal thread count: %1, using %2 connections per session").arg(QThread::idealThreadCount()).arg(cConnectionsInSession()));
|
||||||
|
|
||||||
Application app(argc, argv);
|
int result = 0;
|
||||||
int result = App::quiting() ? 0 : app.exec();
|
{
|
||||||
|
Application app(argc, argv);
|
||||||
|
if (!App::quiting()) {
|
||||||
|
result = app.exec();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
psFinish();
|
||||||
|
|
||||||
DEBUG_LOG(("Application Info: Telegram done, result: %1").arg(result));
|
DEBUG_LOG(("Application Info: Telegram done, result: %1").arg(result));
|
||||||
|
|
||||||
|
|
|
@ -260,9 +260,9 @@ MainWidget *TopBarWidget::main() {
|
||||||
return static_cast<MainWidget*>(parentWidget());
|
return static_cast<MainWidget*>(parentWidget());
|
||||||
}
|
}
|
||||||
|
|
||||||
MainWidget::MainWidget(Window *window) : QWidget(window), profile(0), _dialogsWidth(st::dlgMinWidth),
|
MainWidget::MainWidget(Window *window) : QWidget(window), failedObjId(0), _dialogsWidth(st::dlgMinWidth),
|
||||||
updPts(0), updDate(0), updQts(0), updSeq(0), updInited(false), failedObjId(0),
|
dialogs(this), history(this), profile(0), _topBar(this), hider(0),
|
||||||
dialogs(this), history(this), onlineRequest(0), hider(0), _topBar(this) {
|
updPts(0), updDate(0), updQts(0), updSeq(0), updInited(false), onlineRequest(0) {
|
||||||
setGeometry(QRect(0, st::titleHeight, App::wnd()->width(), App::wnd()->height() - st::titleHeight));
|
setGeometry(QRect(0, st::titleHeight, App::wnd()->width(), App::wnd()->height() - st::titleHeight));
|
||||||
|
|
||||||
connect(window, SIGNAL(resized(const QSize &)), this, SLOT(onParentResize(const QSize &)));
|
connect(window, SIGNAL(resized(const QSize &)), this, SLOT(onParentResize(const QSize &)));
|
||||||
|
@ -272,7 +272,6 @@ MainWidget::MainWidget(Window *window) : QWidget(window), profile(0), _dialogsWi
|
||||||
connect(this, SIGNAL(peerPhotoChanged(PeerData *)), this, SIGNAL(dialogsUpdated()));
|
connect(this, SIGNAL(peerPhotoChanged(PeerData *)), this, SIGNAL(dialogsUpdated()));
|
||||||
connect(&noUpdatesTimer, SIGNAL(timeout()), this, SLOT(getDifference()));
|
connect(&noUpdatesTimer, SIGNAL(timeout()), this, SLOT(getDifference()));
|
||||||
connect(&onlineTimer, SIGNAL(timeout()), this, SLOT(setOnline()));
|
connect(&onlineTimer, SIGNAL(timeout()), this, SLOT(setOnline()));
|
||||||
connect(window->windowHandle(), SIGNAL(windowStateChanged(Qt::WindowState)), this, SLOT(mainStateChanged(Qt::WindowState)));
|
|
||||||
connect(&onlineUpdater, SIGNAL(timeout()), this, SLOT(updateOnlineDisplay()));
|
connect(&onlineUpdater, SIGNAL(timeout()), this, SLOT(updateOnlineDisplay()));
|
||||||
connect(this, SIGNAL(peerUpdated(PeerData*)), &history, SLOT(peerUpdated(PeerData*)));
|
connect(this, SIGNAL(peerUpdated(PeerData*)), &history, SLOT(peerUpdated(PeerData*)));
|
||||||
connect(&_topBar, SIGNAL(clicked()), this, SLOT(onTopBarClick()));
|
connect(&_topBar, SIGNAL(clicked()), this, SLOT(onTopBarClick()));
|
||||||
|
@ -358,7 +357,7 @@ void MainWidget::dialogsActivate() {
|
||||||
|
|
||||||
bool MainWidget::leaveChatFailed(PeerData *peer, const RPCError &e) {
|
bool MainWidget::leaveChatFailed(PeerData *peer, const RPCError &e) {
|
||||||
if (e.type() == "CHAT_ID_INVALID") { // left this chat already
|
if (e.type() == "CHAT_ID_INVALID") { // left this chat already
|
||||||
if (profile && profile->peer() == peer || profileStack.indexOf(peer) >= 0 || history.peer() == peer) {
|
if ((profile && profile->peer() == peer) || profileStack.indexOf(peer) >= 0 || history.peer() == peer) {
|
||||||
showPeer(0);
|
showPeer(0);
|
||||||
}
|
}
|
||||||
dialogs.removePeer(peer);
|
dialogs.removePeer(peer);
|
||||||
|
@ -370,7 +369,7 @@ bool MainWidget::leaveChatFailed(PeerData *peer, const RPCError &e) {
|
||||||
|
|
||||||
void MainWidget::deleteHistory(PeerData *peer, const MTPmessages_StatedMessage &result) {
|
void MainWidget::deleteHistory(PeerData *peer, const MTPmessages_StatedMessage &result) {
|
||||||
sentFullDataReceived(0, result);
|
sentFullDataReceived(0, result);
|
||||||
if (profile && profile->peer() == peer || profileStack.indexOf(peer) >= 0 || history.peer() == peer) {
|
if ((profile && profile->peer() == peer) || profileStack.indexOf(peer) >= 0 || history.peer() == peer) {
|
||||||
showPeer(0);
|
showPeer(0);
|
||||||
}
|
}
|
||||||
dialogs.removePeer(peer);
|
dialogs.removePeer(peer);
|
||||||
|
@ -398,7 +397,7 @@ void MainWidget::deleteHistoryAndContact(UserData *user, const MTPcontacts_Link
|
||||||
App::feedUsers(MTP_vector<MTPUser>(QVector<MTPUser>(1, d.vuser)));
|
App::feedUsers(MTP_vector<MTPUser>(QVector<MTPUser>(1, d.vuser)));
|
||||||
App::feedUserLink(MTP_int(user->id & 0xFFFFFFFF), d.vmy_link, d.vforeign_link);
|
App::feedUserLink(MTP_int(user->id & 0xFFFFFFFF), d.vmy_link, d.vforeign_link);
|
||||||
|
|
||||||
if (profile && profile->peer() == user || profileStack.indexOf(user) >= 0 || history.peer() == user) {
|
if ((profile && profile->peer() == user) || profileStack.indexOf(user) >= 0 || history.peer() == user) {
|
||||||
showPeer(0);
|
showPeer(0);
|
||||||
}
|
}
|
||||||
dialogs.removePeer(user);
|
dialogs.removePeer(user);
|
||||||
|
@ -472,7 +471,7 @@ void MainWidget::checkedHistory(PeerData *peer, const MTPmessages_Messages &resu
|
||||||
if (!v) return;
|
if (!v) return;
|
||||||
|
|
||||||
if (v->isEmpty()) {
|
if (v->isEmpty()) {
|
||||||
if (profile && profile->peer() == peer || profileStack.indexOf(peer) >= 0 || history.peer() == peer) {
|
if ((profile && profile->peer() == peer) || profileStack.indexOf(peer) >= 0 || history.peer() == peer) {
|
||||||
showPeer(0);
|
showPeer(0);
|
||||||
}
|
}
|
||||||
dialogs.removePeer(peer);
|
dialogs.removePeer(peer);
|
||||||
|
@ -496,16 +495,52 @@ void MainWidget::clearSelectedItems() {
|
||||||
history.onClearSelected();
|
history.onClearSelected();
|
||||||
}
|
}
|
||||||
|
|
||||||
QRect MainWidget::rectForTitleAnim() const {
|
|
||||||
int w = width();
|
|
||||||
w -= history.x() + st::sysBtnDelta * 2 + st::sysCls.img.width() + st::sysRes.img.width() + st::sysMin.img.width();
|
|
||||||
return QRect(history.x(), 0, w, App::wnd()->getTitle()->height());
|
|
||||||
}
|
|
||||||
|
|
||||||
DialogsIndexed &MainWidget::contactsList() {
|
DialogsIndexed &MainWidget::contactsList() {
|
||||||
return dialogs.contactsList();
|
return dialogs.contactsList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWidget::sendMessage(History *hist, const QString &text) {
|
||||||
|
readServerHistory(hist);
|
||||||
|
QString msg = history.prepareMessage(text);
|
||||||
|
if (!msg.isEmpty()) {
|
||||||
|
MsgId newId = clientMsgId();
|
||||||
|
uint64 randomId = MTP::nonce<uint64>();
|
||||||
|
|
||||||
|
App::historyRegRandom(randomId, newId);
|
||||||
|
|
||||||
|
MTPstring msgText(MTP_string(msg));
|
||||||
|
hist->addToBack(MTP_message(MTP_int(newId), MTP_int(MTP::authedId()), App::peerToMTP(hist->peer->id), MTP_bool(true), MTP_bool(true), MTP_int(unixtime()), msgText, MTP_messageMediaEmpty()));
|
||||||
|
historyToDown(hist);
|
||||||
|
if (history.peer() == hist->peer) {
|
||||||
|
history.peerMessagesUpdated();
|
||||||
|
}
|
||||||
|
|
||||||
|
MTP::send(MTPmessages_SendMessage(hist->peer->input, msgText, MTP_long(randomId)), App::main()->rpcDone(&MainWidget::sentDataReceived, randomId));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWidget::readServerHistory(History *hist, bool force) {
|
||||||
|
if (!hist || (!force && (!hist->unreadCount || !hist->unreadLoaded))) return;
|
||||||
|
|
||||||
|
ReadRequests::const_iterator i = _readRequests.constFind(hist->peer);
|
||||||
|
if (i == _readRequests.cend()) {
|
||||||
|
hist->inboxRead(true);
|
||||||
|
_readRequests.insert(hist->peer, MTP::send(MTPmessages_ReadHistory(hist->peer->input, MTP_int(0), MTP_int(0)), rpcDone(&MainWidget::partWasRead, hist->peer)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWidget::partWasRead(PeerData *peer, const MTPmessages_AffectedHistory &result) {
|
||||||
|
const MTPDmessages_affectedHistory &d(result.c_messages_affectedHistory());
|
||||||
|
App::main()->updUpdated(d.vpts.v, 0, 0, d.vseq.v);
|
||||||
|
|
||||||
|
int32 offset = d.voffset.v;
|
||||||
|
if (!MTP::authedId() || offset <= 0) {
|
||||||
|
_readRequests.remove(peer);
|
||||||
|
} else {
|
||||||
|
_readRequests[peer] = MTP::send(MTPmessages_ReadHistory(peer->input, MTP_int(0), MTP_int(offset)), rpcDone(&MainWidget::partWasRead, peer));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void MainWidget::videoLoadProgress(mtpFileLoader *loader) {
|
void MainWidget::videoLoadProgress(mtpFileLoader *loader) {
|
||||||
VideoData *video = App::video(loader->objId());
|
VideoData *video = App::video(loader->objId());
|
||||||
if (video->loader) {
|
if (video->loader) {
|
||||||
|
@ -619,7 +654,7 @@ void MainWidget::onParentResize(const QSize &newSize) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWidget::updateOnlineDisplay() {
|
void MainWidget::updateOnlineDisplay() {
|
||||||
history.updateOnlineDisplay(history.x(), width() - history.x() - st::sysBtnDelta * 2 - st::sysCls.img.width() - st::sysRes.img.width() - st::sysMin.img.width());
|
history.updateOnlineDisplay(history.x(), width() - history.x() - st::sysBtnDelta * 2 - st::sysCls.img.pxWidth() - st::sysRes.img.pxWidth() - st::sysMin.img.pxWidth());
|
||||||
if (profile) profile->updateOnlineDisplay();
|
if (profile) profile->updateOnlineDisplay();
|
||||||
if (App::wnd()->settingsWidget()) App::wnd()->settingsWidget()->updateOnlineDisplay();
|
if (App::wnd()->settingsWidget()) App::wnd()->settingsWidget()->updateOnlineDisplay();
|
||||||
}
|
}
|
||||||
|
@ -1077,7 +1112,7 @@ void MainWidget::onTopBarClick() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWidget::onPeerShown(PeerData *peer) {
|
void MainWidget::onPeerShown(PeerData *peer) {
|
||||||
if (profile || peer && peer->id) {
|
if (profile || (peer && peer->id)) {
|
||||||
_topBar.show();
|
_topBar.show();
|
||||||
} else {
|
} else {
|
||||||
_topBar.hide();
|
_topBar.hide();
|
||||||
|
|
|
@ -25,7 +25,7 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
#include "profilewidget.h"
|
#include "profilewidget.h"
|
||||||
|
|
||||||
class Window;
|
class Window;
|
||||||
class DialogRow;
|
struct DialogRow;
|
||||||
class MainWidget;
|
class MainWidget;
|
||||||
|
|
||||||
class TopBarWidget : public QWidget, public Animated {
|
class TopBarWidget : public QWidget, public Animated {
|
||||||
|
@ -187,9 +187,11 @@ public:
|
||||||
void deleteSelectedItems();
|
void deleteSelectedItems();
|
||||||
void clearSelectedItems();
|
void clearSelectedItems();
|
||||||
|
|
||||||
QRect rectForTitleAnim() const;
|
|
||||||
|
|
||||||
DialogsIndexed &contactsList();
|
DialogsIndexed &contactsList();
|
||||||
|
|
||||||
|
void sendMessage(History *history, const QString &text);
|
||||||
|
|
||||||
|
void readServerHistory(History *history, bool force = true);
|
||||||
|
|
||||||
~MainWidget();
|
~MainWidget();
|
||||||
|
|
||||||
|
@ -233,6 +235,8 @@ public slots:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
void partWasRead(PeerData *peer, const MTPmessages_AffectedHistory &result);
|
||||||
|
|
||||||
uint64 failedObjId;
|
uint64 failedObjId;
|
||||||
QString failedFileName;
|
QString failedFileName;
|
||||||
void loadFailed(mtpFileLoader *loader, bool started, const char *retrySlot);
|
void loadFailed(mtpFileLoader *loader, bool started, const char *retrySlot);
|
||||||
|
@ -278,4 +282,7 @@ private:
|
||||||
|
|
||||||
QSet<PeerData*> updateNotifySettingPeers;
|
QSet<PeerData*> updateNotifySettingPeers;
|
||||||
QTimer updateNotifySettingTimer;
|
QTimer updateNotifySettingTimer;
|
||||||
|
|
||||||
|
typedef QMap<PeerData*, mtpRequestId> ReadRequests;
|
||||||
|
ReadRequests _readRequests;
|
||||||
};
|
};
|
||||||
|
|
|
@ -483,7 +483,7 @@ namespace MTP {
|
||||||
if (!started) return;
|
if (!started) return;
|
||||||
|
|
||||||
int32 m = mainSession->getDC();
|
int32 m = mainSession->getDC();
|
||||||
if (!dc || m == dc || m && fromZeroOnly) return;
|
if (!dc || m == dc || (m && fromZeroOnly)) return;
|
||||||
mtpSetDC(dc);
|
mtpSetDC(dc);
|
||||||
mainSession = _mtp_internal::getSession(dc);
|
mainSession = _mtp_internal::getSession(dc);
|
||||||
}
|
}
|
||||||
|
|
|
@ -517,7 +517,7 @@ namespace {
|
||||||
}
|
}
|
||||||
|
|
||||||
MTPabstractTcpConnection::MTPabstractTcpConnection() :
|
MTPabstractTcpConnection::MTPabstractTcpConnection() :
|
||||||
currentPos((char*)shortBuffer), packetRead(0), packetLeft(0), readingToShort(true), packetNum(0) {
|
packetNum(0), packetRead(0), packetLeft(0), readingToShort(true), currentPos((char*)shortBuffer) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void MTPabstractTcpConnection::socketRead() {
|
void MTPabstractTcpConnection::socketRead() {
|
||||||
|
@ -1033,22 +1033,22 @@ void MTProtoConnectionPrivate::createConn() {
|
||||||
|
|
||||||
MTProtoConnectionPrivate::MTProtoConnectionPrivate(QThread *thread, MTProtoConnection *owner, MTPSessionData *data, uint32 _dc)
|
MTProtoConnectionPrivate::MTProtoConnectionPrivate(QThread *thread, MTProtoConnection *owner, MTPSessionData *data, uint32 _dc)
|
||||||
: QObject(0)
|
: QObject(0)
|
||||||
, dc(_dc)
|
|
||||||
, conn(0)
|
|
||||||
, retryTimeout(1)
|
|
||||||
, receiveDelay(MinReceiveDelay)
|
|
||||||
, firstSentAt(-1)
|
|
||||||
, oldConnection(true)
|
|
||||||
, _state(MTProtoConnection::Disconnected)
|
, _state(MTProtoConnection::Disconnected)
|
||||||
, _owner(owner)
|
, dc(_dc)
|
||||||
, sessionData(data)
|
, _owner(owner)
|
||||||
, keyId(0)
|
, conn(0)
|
||||||
, pingId(0)
|
, retryTimeout(1)
|
||||||
, toSendPingId(0)
|
, oldConnection(true)
|
||||||
, pingMsgId(0)
|
, receiveDelay(MinReceiveDelay)
|
||||||
, restarted(false)
|
, firstSentAt(-1)
|
||||||
, ackRequest(MTP_msgs_ack(MTPVector<MTPlong>()))
|
, ackRequest(MTP_msgs_ack(MTPVector<MTPlong>()))
|
||||||
, myKeyLock(false)
|
, pingId(0)
|
||||||
|
, toSendPingId(0)
|
||||||
|
, pingMsgId(0)
|
||||||
|
, restarted(false)
|
||||||
|
, keyId(0)
|
||||||
|
, sessionData(data)
|
||||||
|
, myKeyLock(false)
|
||||||
, authKeyData(0) {
|
, authKeyData(0) {
|
||||||
|
|
||||||
ackRequestData = &ackRequest._msgs_ack().vmsg_ids._vector().v;
|
ackRequestData = &ackRequest._msgs_ack().vmsg_ids._vector().v;
|
||||||
|
@ -1405,7 +1405,7 @@ void MTProtoConnectionPrivate::onReceivedSome() {
|
||||||
int32 ms = getms() - firstSentAt;
|
int32 ms = getms() - firstSentAt;
|
||||||
DEBUG_LOG(("MTP Info: response in %1ms, receiveDelay: %2ms").arg(ms).arg(receiveDelay));
|
DEBUG_LOG(("MTP Info: response in %1ms, receiveDelay: %2ms").arg(ms).arg(receiveDelay));
|
||||||
|
|
||||||
if (ms > 0 && ms * 2 < receiveDelay) receiveDelay = qMax(ms * 2, int32(MinReceiveDelay));
|
if (ms > 0 && ms * 2 < int32(receiveDelay)) receiveDelay = qMax(ms * 2, int32(MinReceiveDelay));
|
||||||
firstSentAt = -1;
|
firstSentAt = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1502,7 +1502,7 @@ void MTProtoConnectionPrivate::handleReceived() {
|
||||||
uint32 seqNo = *(uint32*)&data[6], msgLen = *(uint32*)&data[7];
|
uint32 seqNo = *(uint32*)&data[6], msgLen = *(uint32*)&data[7];
|
||||||
bool needAck = (seqNo & 0x01);
|
bool needAck = (seqNo & 0x01);
|
||||||
|
|
||||||
if (dataBuffer.size() < msgLen + 8 * sizeof(mtpPrime) || (msgLen & 0x03)) {
|
if (uint32(dataBuffer.size()) < msgLen + 8 * sizeof(mtpPrime) || (msgLen & 0x03)) {
|
||||||
LOG(("TCP Error: bad msg_len received %1, data size: %2").arg(msgLen).arg(dataBuffer.size()));
|
LOG(("TCP Error: bad msg_len received %1, data size: %2").arg(msgLen).arg(dataBuffer.size()));
|
||||||
TCP_LOG(("TCP Error: bad message %1").arg(mb(encrypted, len * sizeof(mtpPrime)).str()));
|
TCP_LOG(("TCP Error: bad message %1").arg(mb(encrypted, len * sizeof(mtpPrime)).str()));
|
||||||
conn->received().pop_front();
|
conn->received().pop_front();
|
||||||
|
@ -1987,7 +1987,7 @@ int32 MTProtoConnectionPrivate::handleOneReceived(const mtpPrime *from, const mt
|
||||||
}
|
}
|
||||||
|
|
||||||
mtpRequestId requestId = wasSent(reqMsgId.v);
|
mtpRequestId requestId = wasSent(reqMsgId.v);
|
||||||
if (requestId && requestId != 0xFFFFFFFF) {
|
if (requestId && requestId != mtpRequestId(0xFFFFFFFF)) {
|
||||||
QWriteLocker locker(sessionData->haveReceivedMutex());
|
QWriteLocker locker(sessionData->haveReceivedMutex());
|
||||||
sessionData->haveReceivedMap().insert(requestId, response); // save rpc_result for processing in main mtp thread
|
sessionData->haveReceivedMap().insert(requestId, response); // save rpc_result for processing in main mtp thread
|
||||||
} else {
|
} else {
|
||||||
|
@ -2899,12 +2899,12 @@ bool MTProtoConnectionPrivate::sendRequest(mtpRequest &request, bool needAnyResp
|
||||||
}
|
}
|
||||||
|
|
||||||
mtpRequestId MTProtoConnectionPrivate::wasSent(mtpMsgId msgId) const {
|
mtpRequestId MTProtoConnectionPrivate::wasSent(mtpMsgId msgId) const {
|
||||||
if (msgId == pingMsgId) return 0xFFFFFFFF;
|
if (msgId == pingMsgId) return mtpRequestId(0xFFFFFFFF);
|
||||||
{
|
{
|
||||||
QReadLocker locker(sessionData->haveSentMutex());
|
QReadLocker locker(sessionData->haveSentMutex());
|
||||||
const mtpRequestMap &haveSent(sessionData->haveSentMap());
|
const mtpRequestMap &haveSent(sessionData->haveSentMap());
|
||||||
mtpRequestMap::const_iterator i = haveSent.constFind(msgId);
|
mtpRequestMap::const_iterator i = haveSent.constFind(msgId);
|
||||||
if (i != haveSent.cend()) return i.value()->requestId || 0xFFFFFFFF;
|
if (i != haveSent.cend()) return i.value()->requestId ? i.value()->requestId : mtpRequestId(0xFFFFFFFF);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
QReadLocker locker(sessionData->toResendMutex());
|
QReadLocker locker(sessionData->toResendMutex());
|
||||||
|
|
|
@ -84,7 +84,7 @@ namespace {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
uint32 dataLen = *(const uint32*)decrypted.constData();
|
uint32 dataLen = *(const uint32*)decrypted.constData();
|
||||||
if (dataLen > decrypted.size() || dataLen <= fullDataLen - 16 || dataLen < 4) {
|
if (dataLen > uint32(decrypted.size()) || dataLen <= fullDataLen - 16 || dataLen < 4) {
|
||||||
LOG(("MTP Error: bad decrypted part size: %1, fullDataLen: %2, decrypted size: %3").arg(dataLen).arg(fullDataLen).arg(decrypted.size()));
|
LOG(("MTP Error: bad decrypted part size: %1, fullDataLen: %2, decrypted size: %3").arg(dataLen).arg(fullDataLen).arg(decrypted.size()));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -200,7 +200,7 @@ namespace {
|
||||||
DEBUG_LOG(("MTP Info: keys file opened for reading"));
|
DEBUG_LOG(("MTP Info: keys file opened for reading"));
|
||||||
int32 oldFound = readAuthKeys(keysFile);
|
int32 oldFound = readAuthKeys(keysFile);
|
||||||
|
|
||||||
if (gDCOptions.isEmpty() || mainDC && gDCOptions.find(mainDC) == gDCOptions.cend()) { // load first dc info
|
if (gDCOptions.isEmpty() || (mainDC && gDCOptions.find(mainDC) == gDCOptions.cend())) { // load first dc info
|
||||||
gDCOptions.insert(1, mtpDcOption(1, "", cFirstDCIp(), cFirstDCPort()));
|
gDCOptions.insert(1, mtpDcOption(1, "", cFirstDCIp(), cFirstDCPort()));
|
||||||
userId = 0;
|
userId = 0;
|
||||||
mainDC = 0;
|
mainDC = 0;
|
||||||
|
|
|
@ -34,8 +34,10 @@ namespace {
|
||||||
LoaderQueues queues;
|
LoaderQueues queues;
|
||||||
}
|
}
|
||||||
|
|
||||||
mtpFileLoader::mtpFileLoader(int32 dc, const int64 &volume, int32 local, const int64 &secret) : next(0), prev(0), inQueue(false), complete(false), requestId(0), priority(0), initialSize(0),
|
mtpFileLoader::mtpFileLoader(int32 dc, const int64 &volume, int32 local, const int64 &secret) : prev(0), next(0),
|
||||||
dc(dc), volume(volume), local(local), secret(secret), size(0), type(MTP_storage_fileUnknown()), locationType(0), id(0), access(0) {
|
priority(0), inQueue(false), complete(false), requestId(0),
|
||||||
|
dc(dc), locationType(0), volume(volume), local(local), secret(secret),
|
||||||
|
id(0), access(0), initialSize(0), size(0), type(MTP_storage_fileUnknown()) {
|
||||||
LoaderQueues::iterator i = queues.find(dc);
|
LoaderQueues::iterator i = queues.find(dc);
|
||||||
if (i == queues.cend()) {
|
if (i == queues.cend()) {
|
||||||
i = queues.insert(dc, mtpFileLoaderQueue());
|
i = queues.insert(dc, mtpFileLoaderQueue());
|
||||||
|
@ -43,8 +45,10 @@ mtpFileLoader::mtpFileLoader(int32 dc, const int64 &volume, int32 local, const i
|
||||||
queue = &i.value();
|
queue = &i.value();
|
||||||
}
|
}
|
||||||
|
|
||||||
mtpFileLoader::mtpFileLoader(int32 dc, const uint64 &id, const uint64 &access, mtpTypeId locType, const QString &to, int32 size) : next(0), prev(0), inQueue(false), complete(false), requestId(0), priority(0),
|
mtpFileLoader::mtpFileLoader(int32 dc, const uint64 &id, const uint64 &access, mtpTypeId locType, const QString &to, int32 size) : prev(0), next(0),
|
||||||
dc(dc), id(id), access(access), type(MTP_storage_fileUnknown()), locationType(locType), file(to), initialSize(size) {
|
priority(0), inQueue(false), complete(false), requestId(0),
|
||||||
|
dc(dc), locationType(locType),
|
||||||
|
id(id), access(access), file(to), initialSize(size), type(MTP_storage_fileUnknown()) {
|
||||||
LoaderQueues::iterator i = queues.find(MTP::dld + dc);
|
LoaderQueues::iterator i = queues.find(MTP::dld + dc);
|
||||||
if (i == queues.cend()) {
|
if (i == queues.cend()) {
|
||||||
i = queues.insert(MTP::dld + dc, mtpFileLoaderQueue());
|
i = queues.insert(MTP::dld + dc, mtpFileLoaderQueue());
|
||||||
|
@ -145,7 +149,7 @@ void mtpFileLoader::partLoaded(int32 offset, const MTPupload_File &result) {
|
||||||
const string &bytes(d.vbytes.c_string().v);
|
const string &bytes(d.vbytes.c_string().v);
|
||||||
if (bytes.size()) {
|
if (bytes.size()) {
|
||||||
if (file.isOpen()) {
|
if (file.isOpen()) {
|
||||||
if (file.write(bytes.data(), bytes.size()) != bytes.size()) {
|
if (file.write(bytes.data(), bytes.size()) != qint64(bytes.size())) {
|
||||||
return finishFail();
|
return finishFail();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -318,7 +322,7 @@ bool mtpFileLoader::loading() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
void mtpFileLoader::started(bool loadFirst, bool prior) {
|
void mtpFileLoader::started(bool loadFirst, bool prior) {
|
||||||
if (queue->queries >= MaxFileQueries && (!loadFirst || !prior) || complete) return;
|
if ((queue->queries >= MaxFileQueries && (!loadFirst || !prior)) || complete) return;
|
||||||
loadPart();
|
loadPart();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -457,7 +457,7 @@ class RPCBindedDoneHandlerOwned : public RPCOwnedDoneHandler { // done(b, result
|
||||||
typedef TReturn (TReceiver::*CallbackType)(T, const TResponse &);
|
typedef TReturn (TReceiver::*CallbackType)(T, const TResponse &);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
RPCBindedDoneHandlerOwned(T b, TReceiver *receiver, CallbackType onDone) : RPCOwnedDoneHandler(receiver), _b(b), _onDone(onDone) {
|
RPCBindedDoneHandlerOwned(T b, TReceiver *receiver, CallbackType onDone) : RPCOwnedDoneHandler(receiver), _onDone(onDone), _b(b) {
|
||||||
}
|
}
|
||||||
virtual void operator()(mtpRequestId requestId, const mtpPrime *from, const mtpPrime *end) const {
|
virtual void operator()(mtpRequestId requestId, const mtpPrime *from, const mtpPrime *end) const {
|
||||||
if (_owner) (static_cast<TReceiver*>(_owner)->*_onDone)(_b, TResponse(from, end));
|
if (_owner) (static_cast<TReceiver*>(_owner)->*_onDone)(_b, TResponse(from, end));
|
||||||
|
@ -589,7 +589,7 @@ class RPCBindedFailHandlerOwned : public RPCOwnedFailHandler { // fail(b, error)
|
||||||
typedef bool (TReceiver::*CallbackType)(T, const RPCError &);
|
typedef bool (TReceiver::*CallbackType)(T, const RPCError &);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
RPCBindedFailHandlerOwned(T b, TReceiver *receiver, CallbackType onFail) : RPCOwnedFailHandler(receiver), _b(b), _onFail(onFail) {
|
RPCBindedFailHandlerOwned(T b, TReceiver *receiver, CallbackType onFail) : RPCOwnedFailHandler(receiver), _onFail(onFail), _b(b) {
|
||||||
}
|
}
|
||||||
virtual bool operator()(mtpRequestId requestId, const RPCError &e) const {
|
virtual bool operator()(mtpRequestId requestId, const RPCError &e) const {
|
||||||
return _owner ? (static_cast<TReceiver*>(_owner)->*_onFail)(_b, e) : true;
|
return _owner ? (static_cast<TReceiver*>(_owner)->*_onFail)(_b, e) : true;
|
||||||
|
@ -623,7 +623,7 @@ class RPCBindedFailHandlerOwnedNo : public RPCOwnedFailHandler { // fail(b)
|
||||||
typedef bool (TReceiver::*CallbackType)(T);
|
typedef bool (TReceiver::*CallbackType)(T);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
RPCBindedFailHandlerOwnedNo(T b, TReceiver *receiver, CallbackType onFail) : RPCOwnedFailHandler(receiver), _b(b), _onFail(onFail) {
|
RPCBindedFailHandlerOwnedNo(T b, TReceiver *receiver, CallbackType onFail) : RPCOwnedFailHandler(receiver), _onFail(onFail), _b(b) {
|
||||||
}
|
}
|
||||||
virtual bool operator()(mtpRequestId requestId, const RPCError &e) const {
|
virtual bool operator()(mtpRequestId requestId, const RPCError &e) const {
|
||||||
return _owner ? (static_cast<TReceiver*>(_owner)->*_onFail)(_b) : true;
|
return _owner ? (static_cast<TReceiver*>(_owner)->*_onFail)(_b) : true;
|
||||||
|
@ -640,7 +640,7 @@ class RPCBindedFailHandlerOwnedNoReq : public RPCOwnedFailHandler { // fail(b, r
|
||||||
typedef bool (TReceiver::*CallbackType)(T, mtpRequestId);
|
typedef bool (TReceiver::*CallbackType)(T, mtpRequestId);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
RPCBindedFailHandlerOwnedNoReq(T b, TReceiver *receiver, CallbackType onFail) : RPCOwnedFailHandler(receiver), _b(b), _onFail(onFail) {
|
RPCBindedFailHandlerOwnedNoReq(T b, TReceiver *receiver, CallbackType onFail) : RPCOwnedFailHandler(receiver), _onFail(onFail), _b(b) {
|
||||||
}
|
}
|
||||||
virtual bool operator()(mtpRequestId requestId, const RPCError &e) const {
|
virtual bool operator()(mtpRequestId requestId, const RPCError &e) const {
|
||||||
return _owner ? (static_cast<TReceiver*>(_owner)->*_onFail)(_b, requestId) : true;
|
return _owner ? (static_cast<TReceiver*>(_owner)->*_onFail)(_b, requestId) : true;
|
||||||
|
|
|
@ -63,7 +63,7 @@ void MTPSessionData::clear() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
MTProtoSession::MTProtoSession() : data(this), dc(0), dcId(0), msSendCall(0), msWait(0) {
|
MTProtoSession::MTProtoSession() : data(this), dcId(0), dc(0), msSendCall(0), msWait(0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void MTProtoSession::start(int32 dcenter, uint32 connects) {
|
void MTProtoSession::start(int32 dcenter, uint32 connects) {
|
||||||
|
@ -158,7 +158,7 @@ void MTProtoSession::checkRequestsByTimer() {
|
||||||
stateRequestIds.push_back(MTP_long(i.key()));
|
stateRequestIds.push_back(MTP_long(i.key()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (unixtime() > (uint32)(i.key() >> 32) + MTPContainerLives) {
|
} else if (unixtime() > (int32)(i.key() >> 32) + MTPContainerLives) {
|
||||||
removingIds.reserve(haveSentCount);
|
removingIds.reserve(haveSentCount);
|
||||||
removingIds.push_back(i.key());
|
removingIds.push_back(i.key());
|
||||||
}
|
}
|
||||||
|
@ -216,7 +216,7 @@ int32 MTProtoSession::requestState(mtpRequestId requestId) const {
|
||||||
result = MTP::RequestConnecting;
|
result = MTP::RequestConnecting;
|
||||||
}
|
}
|
||||||
} else if (s < 0) {
|
} else if (s < 0) {
|
||||||
if (result < 0 && s > result || result == MTP::RequestSent) {
|
if ((result < 0 && s > result) || result == MTP::RequestSent) {
|
||||||
result = s;
|
result = s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,9 +27,9 @@ class MTPSessionData {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
MTPSessionData(MTProtoSession *creator)
|
MTPSessionData(MTProtoSession *creator)
|
||||||
: _session(0), _salt(0), fakeRequestId(-2000000000)
|
: _session(0), _salt(0)
|
||||||
, _messagesSent(0), keyChecked(false)
|
, _messagesSent(0), fakeRequestId(-2000000000)
|
||||||
, _owner(creator) {
|
, _owner(creator), keyChecked(false) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void setSession(uint64 session) {
|
void setSession(uint64 session) {
|
||||||
|
|
|
@ -619,7 +619,7 @@ bool ProfileInner::animStep(float64 ms) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ProfileInner::getPhotoCoords(PhotoData *photo, int32 &x, int32 &y, int32 &w) const {
|
bool ProfileInner::getPhotoCoords(PhotoData *photo, int32 &x, int32 &y, int32 &w) const {
|
||||||
if (_peerUser && photo->id == _peerUser->photoId || _peerChat && photo->id == _peerChat->photoId) {
|
if ((_peerUser && photo->id == _peerUser->photoId) || (_peerChat && photo->id == _peerChat->photoId)) {
|
||||||
x = _left;
|
x = _left;
|
||||||
y = st::profilePadding.top();
|
y = st::profilePadding.top();
|
||||||
w = st::setPhotoSize;
|
w = st::setPhotoSize;
|
||||||
|
@ -704,8 +704,11 @@ void ProfileInner::showAll() {
|
||||||
resize(width(), h);
|
resize(width(), h);
|
||||||
}
|
}
|
||||||
|
|
||||||
ProfileWidget::ProfileWidget(QWidget *parent, const PeerData *peer) : QWidget(parent),
|
ProfileWidget::ProfileWidget(QWidget *parent, const PeerData *peer) : QWidget(parent)
|
||||||
_inner(this, &_scroll, peer), _scroll(this, st::setScroll), _showing(false) {
|
, _scroll(this, st::setScroll)
|
||||||
|
, _inner(this, &_scroll, peer)
|
||||||
|
, _showing(false)
|
||||||
|
{
|
||||||
_scroll.setWidget(&_inner);
|
_scroll.setWidget(&_inner);
|
||||||
_scroll.move(0, 0);
|
_scroll.move(0, 0);
|
||||||
_inner.move(0, 0);
|
_inner.move(0, 0);
|
||||||
|
@ -761,10 +764,10 @@ void ProfileWidget::paintTopBar(QPainter &p, float64 over, int32 decreaseWidth)
|
||||||
p.drawPixmap(a_coord.current(), 0, _animTopBarCache);
|
p.drawPixmap(a_coord.current(), 0, _animTopBarCache);
|
||||||
} else {
|
} else {
|
||||||
p.setOpacity(st::topBarBackAlpha + (1 - st::topBarBackAlpha) * over);
|
p.setOpacity(st::topBarBackAlpha + (1 - st::topBarBackAlpha) * over);
|
||||||
p.drawPixmap(QPoint(st::topBarBackPadding.left(), (st::topBarHeight - st::topBarBackImg.height()) / 2), App::sprite(), st::topBarBackImg);
|
p.drawPixmap(QPoint(st::topBarBackPadding.left(), (st::topBarHeight - st::topBarBackImg.pxHeight()) / 2), App::sprite(), st::topBarBackImg);
|
||||||
p.setFont(st::topBarBackFont->f);
|
p.setFont(st::topBarBackFont->f);
|
||||||
p.setPen(st::topBarBackColor->p);
|
p.setPen(st::topBarBackColor->p);
|
||||||
p.drawText(st::topBarBackPadding.left() + st::topBarBackImg.width() + st::topBarBackPadding.right(), (st::topBarHeight - st::titleFont->height) / 2 + st::titleFont->ascent, lang(peer()->chat ? lng_profile_group_info : lng_profile_info));
|
p.drawText(st::topBarBackPadding.left() + st::topBarBackImg.pxWidth() + st::topBarBackPadding.right(), (st::topBarHeight - st::titleFont->height) / 2 + st::titleFont->ascent, lang(peer()->chat ? lng_profile_group_info : lng_profile_info));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -151,10 +151,12 @@ public slots:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
void psNotIdle() const;
|
||||||
|
|
||||||
bool posInited;
|
bool posInited;
|
||||||
QSystemTrayIcon *trayIcon;
|
QSystemTrayIcon *trayIcon;
|
||||||
QMenu *trayIconMenu;
|
QMenu *trayIconMenu;
|
||||||
QImage icon16, icon32, icon256;
|
QImage icon256;
|
||||||
virtual void setupTrayIcon() {
|
virtual void setupTrayIcon() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -265,3 +267,4 @@ void psExecTelegram();
|
||||||
void psPostprocessFile(const QString &name);
|
void psPostprocessFile(const QString &name);
|
||||||
void psOpenFile(const QString &name, bool openWith = false);
|
void psOpenFile(const QString &name, bool openWith = false);
|
||||||
void psShowInFolder(const QString &name);
|
void psShowInFolder(const QString &name);
|
||||||
|
void psFinish();
|
||||||
|
|
|
@ -24,14 +24,16 @@ public:
|
||||||
|
|
||||||
PsMacWindowPrivate();
|
PsMacWindowPrivate();
|
||||||
|
|
||||||
void setWindowBadge(const char *utf8str);
|
void setWindowBadge(const QString &str);
|
||||||
void startBounce();
|
void startBounce();
|
||||||
|
|
||||||
void holdOnTop(WId winId);
|
void holdOnTop(WId winId);
|
||||||
void showOverAll(WId winId);
|
void showOverAll(WId winId);
|
||||||
void activateWnd(WId winId);
|
void activateWnd(WId winId);
|
||||||
void showNotify(unsigned long long peer, const char *utf8title, const char *subtitle, const char *utf8msg);
|
void showNotify(uint64 peer, const QString &title, const QString &subtitle, const QString &msg);
|
||||||
void clearNotifies(unsigned long long peer = 0);
|
void clearNotifies(uint64 peer = 0);
|
||||||
|
|
||||||
|
void enableShadow(WId winId);
|
||||||
|
|
||||||
virtual void activeSpaceChanged() {
|
virtual void activeSpaceChanged() {
|
||||||
}
|
}
|
||||||
|
@ -46,6 +48,20 @@ public:
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void _debugShowAlert(const char *utf8str);
|
void objc_debugShowAlert(const QString &str);
|
||||||
void _outputDebugString(const char *utf8str);
|
void objc_outputDebugString(const QString &str);
|
||||||
int64 _idleTime();
|
int64 objc_idleTime();
|
||||||
|
|
||||||
|
void objc_showInFinder(const QString &file, const QString &path);
|
||||||
|
void objc_openFile(const QString &file, bool openwith);
|
||||||
|
void objc_finish();
|
||||||
|
bool objc_execUpdater();
|
||||||
|
void objc_execTelegram();
|
||||||
|
|
||||||
|
void objc_activateProgram();
|
||||||
|
bool objc_moveFile(const QString &from, const QString &to);
|
||||||
|
void objc_deleteDir(const QString &dir);
|
||||||
|
|
||||||
|
QString objc_appDataPath();
|
||||||
|
QString objc_currentCountry();
|
||||||
|
QString objc_currentLang();
|
||||||
|
|
|
@ -18,9 +18,33 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "pspecific_mac_p.h"
|
#include "pspecific_mac_p.h"
|
||||||
|
|
||||||
#include <AppKit/AppKit.h>
|
#include "lang.h"
|
||||||
|
|
||||||
#include <Cocoa/Cocoa.h>
|
#include <Cocoa/Cocoa.h>
|
||||||
#include <IOKit/IOKitLib.h>
|
#include <IOKit/IOKitLib.h>
|
||||||
|
#include <CoreFoundation/CFURL.h>
|
||||||
|
|
||||||
|
class QNSString {
|
||||||
|
public:
|
||||||
|
QNSString(const QString &str) : _str([NSString stringWithUTF8String:str.toUtf8().constData()]) {
|
||||||
|
}
|
||||||
|
NSString *s() {
|
||||||
|
return _str;
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
NSString *_str;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef QMap<LangKey, QNSString> ObjcLang;
|
||||||
|
ObjcLang objcLang;
|
||||||
|
|
||||||
|
QNSString objc_lang(LangKey key) {
|
||||||
|
ObjcLang::const_iterator i = objcLang.constFind(key);
|
||||||
|
if (i == objcLang.cend()) {
|
||||||
|
i = objcLang.insert(key, lang(key));
|
||||||
|
}
|
||||||
|
return i.value();
|
||||||
|
}
|
||||||
|
|
||||||
@interface ObserverHelper : NSObject {
|
@interface ObserverHelper : NSObject {
|
||||||
}
|
}
|
||||||
|
@ -57,7 +81,9 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void onNotifyReply(NSUserNotification *notification) {
|
void onNotifyReply(NSUserNotification *notification) {
|
||||||
// notification.response
|
NSNumber *peerObj = [[notification userInfo] objectForKey:@"peer"];
|
||||||
|
unsigned long long peerLong = [peerObj unsignedLongLongValue];
|
||||||
|
wnd->notifyReplied(peerLong, [[[notification response] string] UTF8String]);
|
||||||
}
|
}
|
||||||
|
|
||||||
~PsMacWindowData() {
|
~PsMacWindowData() {
|
||||||
|
@ -99,6 +125,11 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) userNotificationCenter:(NSUserNotificationCenter *)center didActivateNotification:(NSUserNotification *)notification {
|
- (void) userNotificationCenter:(NSUserNotificationCenter *)center didActivateNotification:(NSUserNotification *)notification {
|
||||||
|
NSNumber *instObj = [[notification userInfo] objectForKey:@"inst"];
|
||||||
|
unsigned long long instLong = [instObj unsignedLongLongValue];
|
||||||
|
if (instLong != cInstance()) { // other app instance notification
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (notification.activationType == NSUserNotificationActivationTypeReplied){
|
if (notification.activationType == NSUserNotificationActivationTypeReplied){
|
||||||
wnd->data->onNotifyReply(notification);
|
wnd->data->onNotifyReply(notification);
|
||||||
} else if (notification.activationType == NSUserNotificationActivationTypeContentsClicked) {
|
} else if (notification.activationType == NSUserNotificationActivationTypeContentsClicked) {
|
||||||
|
@ -119,10 +150,8 @@ PsMacWindowPrivate::PsMacWindowPrivate() : data(new PsMacWindowData(this)) {
|
||||||
[center setDelegate:data->notifyHandler];
|
[center setDelegate:data->notifyHandler];
|
||||||
}
|
}
|
||||||
|
|
||||||
void PsMacWindowPrivate::setWindowBadge(const char *utf8str) {
|
void PsMacWindowPrivate::setWindowBadge(const QString &str) {
|
||||||
NSString *badgeString = [[NSString alloc] initWithUTF8String:utf8str];
|
[[NSApp dockTile] setBadgeLabel:QNSString(str).s()];
|
||||||
[[NSApp dockTile] setBadgeLabel:badgeString];
|
|
||||||
[badgeString release];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PsMacWindowPrivate::startBounce() {
|
void PsMacWindowPrivate::startBounce() {
|
||||||
|
@ -146,26 +175,16 @@ void PsMacWindowPrivate::activateWnd(WId winId) {
|
||||||
[wnd orderFront:wnd];
|
[wnd orderFront:wnd];
|
||||||
}
|
}
|
||||||
|
|
||||||
void PsMacWindowPrivate::showNotify(unsigned long long peer, const char *utf8title, const char *utf8subtitle, const char *utf8msg) {
|
void PsMacWindowPrivate::showNotify(uint64 peer, const QString &title, const QString &subtitle, const QString &msg) {
|
||||||
NSUserNotification *notification = [[NSUserNotification alloc] init];
|
NSUserNotification *notification = [[NSUserNotification alloc] init];
|
||||||
|
|
||||||
NSDictionary *uinfo = [[NSDictionary alloc] initWithObjectsAndKeys:[NSNumber numberWithUnsignedLongLong:peer],@"peer",nil];
|
[notification setUserInfo:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithUnsignedLongLong:peer],@"peer",[NSNumber numberWithUnsignedLongLong:cInstance()],@"inst",nil]];
|
||||||
[notification setUserInfo:uinfo];
|
|
||||||
[uinfo release];
|
|
||||||
|
|
||||||
NSString *title = [[NSString alloc] initWithUTF8String:utf8title];
|
[notification setTitle:QNSString(title).s()];
|
||||||
[notification setTitle:title];
|
[notification setSubtitle:QNSString(subtitle).s()];
|
||||||
[title release];
|
[notification setInformativeText:QNSString(msg).s()];
|
||||||
|
|
||||||
NSString *subtitle = [[NSString alloc] initWithUTF8String:utf8subtitle];
|
|
||||||
[notification setSubtitle:subtitle];
|
|
||||||
[subtitle release];
|
|
||||||
|
|
||||||
NSString *msg = [[NSString alloc] initWithUTF8String:utf8msg];
|
[notification setHasReplyButton:YES];
|
||||||
[notification setInformativeText:msg];
|
|
||||||
[msg release];
|
|
||||||
|
|
||||||
// [notification setHasReplyButton:YES];
|
|
||||||
|
|
||||||
[notification setSoundName:nil];
|
[notification setSoundName:nil];
|
||||||
|
|
||||||
|
@ -175,6 +194,11 @@ void PsMacWindowPrivate::showNotify(unsigned long long peer, const char *utf8tit
|
||||||
[notification release];
|
[notification release];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PsMacWindowPrivate::enableShadow(WId winId) {
|
||||||
|
// [[(NSView*)winId window] setStyleMask:NSBorderlessWindowMask];
|
||||||
|
// [[(NSView*)winId window] setHasShadow:YES];
|
||||||
|
}
|
||||||
|
|
||||||
void PsMacWindowPrivate::clearNotifies(unsigned long long peer) {
|
void PsMacWindowPrivate::clearNotifies(unsigned long long peer) {
|
||||||
NSUserNotificationCenter *center = [NSUserNotificationCenter defaultUserNotificationCenter];
|
NSUserNotificationCenter *center = [NSUserNotificationCenter defaultUserNotificationCenter];
|
||||||
if (peer) {
|
if (peer) {
|
||||||
|
@ -189,25 +213,19 @@ void PsMacWindowPrivate::clearNotifies(unsigned long long peer) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _debugShowAlert(const char *utf8str) {
|
void objc_debugShowAlert(const QString &str) {
|
||||||
NSString *text = [[NSString alloc] initWithUTF8String: utf8str];
|
[[NSAlert alertWithMessageText:@"Debug Message" defaultButton:@"OK" alternateButton:nil otherButton:nil informativeTextWithFormat:@"%@", QNSString(str).s()] runModal];
|
||||||
NSAlert *alert = [NSAlert alertWithMessageText:@"Debug Message" defaultButton:@"OK" alternateButton:nil otherButton:nil informativeTextWithFormat:@"%@", text];
|
|
||||||
[alert runModal];
|
|
||||||
[alert release];
|
|
||||||
[text release];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void _outputDebugString(const char *utf8str) {
|
void objc_outputDebugString(const QString &str) {
|
||||||
NSString *text = [[NSString alloc] initWithUTF8String:utf8str];
|
NSLog(@"%@", QNSString(str).s());
|
||||||
NSLog(@"%@", text);
|
|
||||||
[text release];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PsMacWindowPrivate::~PsMacWindowPrivate() {
|
PsMacWindowPrivate::~PsMacWindowPrivate() {
|
||||||
delete data;
|
delete data;
|
||||||
}
|
}
|
||||||
|
|
||||||
int64 _idleTime() { // taken from https://github.com/trueinteractions/tint/issues/53
|
int64 objc_idleTime() { // taken from https://github.com/trueinteractions/tint/issues/53
|
||||||
CFMutableDictionaryRef properties = 0;
|
CFMutableDictionaryRef properties = 0;
|
||||||
CFTypeRef obj;
|
CFTypeRef obj;
|
||||||
mach_port_t masterPort;
|
mach_port_t masterPort;
|
||||||
|
@ -256,3 +274,391 @@ int64 _idleTime() { // taken from https://github.com/trueinteractions/tint/issue
|
||||||
IOObjectRelease(iter);
|
IOObjectRelease(iter);
|
||||||
return (result == err) ? -1 : int64(result);
|
return (result == err) ? -1 : int64(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void objc_showInFinder(const QString &file, const QString &path) {
|
||||||
|
[[NSWorkspace sharedWorkspace] selectFile:QNSString(file).s() inFileViewerRootedAtPath:QNSString(path).s()];
|
||||||
|
}
|
||||||
|
|
||||||
|
@interface NSURL(CompareUrls)
|
||||||
|
|
||||||
|
- (BOOL) isEquivalent:(NSURL *)aURL;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation NSURL(CompareUrls)
|
||||||
|
|
||||||
|
- (BOOL) isEquivalent:(NSURL *)aURL {
|
||||||
|
if ([self isEqual:aURL]) return YES;
|
||||||
|
if ([[self scheme] caseInsensitiveCompare:[aURL scheme]] != NSOrderedSame) return NO;
|
||||||
|
if ([[self host] caseInsensitiveCompare:[aURL host]] != NSOrderedSame) return NO;
|
||||||
|
if ([[self path] compare:[aURL path]] != NSOrderedSame) return NO;
|
||||||
|
if ([[self port] compare:[aURL port]] != NSOrderedSame) return NO;
|
||||||
|
if ([[self query] compare:[aURL query]] != NSOrderedSame) return NO;
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface ChooseApplicationDelegate : NSObject<NSOpenSavePanelDelegate> {
|
||||||
|
}
|
||||||
|
|
||||||
|
- (id) init:(NSArray *)recommendedApps withPanel:(NSOpenPanel *)creator withSelector:(NSPopUpButton *)menu withGood:(NSTextField *)goodLabel withBad:(NSTextField *)badLabel withIcon:(NSImageView *)badIcon withAccessory:(NSView *)acc;
|
||||||
|
- (BOOL) panel:(id)sender shouldEnableURL:(NSURL *)url;
|
||||||
|
- (void) panelSelectionDidChange:(id)sender;
|
||||||
|
- (void) menuDidClose;
|
||||||
|
- (void) dealloc;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation ChooseApplicationDelegate {
|
||||||
|
BOOL onlyRecommended;
|
||||||
|
NSArray *apps;
|
||||||
|
NSOpenPanel *panel;
|
||||||
|
NSPopUpButton *selector;
|
||||||
|
NSTextField *good, *bad;
|
||||||
|
NSImageView *icon;
|
||||||
|
NSString *recom;
|
||||||
|
NSView *accessory;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (id) init:(NSArray *)recommendedApps withPanel:(NSOpenPanel *)creator withSelector:(NSPopUpButton *)menu withGood:(NSTextField *)goodLabel withBad:(NSTextField *)badLabel withIcon:(NSImageView *)badIcon withAccessory:(NSView *)acc {
|
||||||
|
if (self = [super init]) {
|
||||||
|
onlyRecommended = YES;
|
||||||
|
recom = [objc_lang(lng_mac_recommended_apps).s() copy];
|
||||||
|
apps = recommendedApps;
|
||||||
|
panel = creator;
|
||||||
|
selector = menu;
|
||||||
|
good = goodLabel;
|
||||||
|
bad = badLabel;
|
||||||
|
icon = badIcon;
|
||||||
|
accessory = acc;
|
||||||
|
[selector setAction:@selector(menuDidClose)];
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL) isRecommended:(NSURL *)url {
|
||||||
|
if (apps) {
|
||||||
|
for (id app in apps) {
|
||||||
|
if ([(NSURL*)app isEquivalent:url]) {
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL) panel:(id)sender shouldEnableURL:(NSURL *)url {
|
||||||
|
NSNumber *isDirectory;
|
||||||
|
if ([url getResourceValue:&isDirectory forKey:NSURLIsDirectoryKey error:nil] && isDirectory != nil && [isDirectory boolValue]) {
|
||||||
|
if (onlyRecommended) {
|
||||||
|
CFStringRef ext = CFURLCopyPathExtension((CFURLRef)url);
|
||||||
|
NSNumber *isPackage;
|
||||||
|
if ([url getResourceValue:&isPackage forKey:NSURLIsPackageKey error:nil] && isPackage != nil && [isPackage boolValue]) {
|
||||||
|
return [self isRecommended:url];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) panelSelectionDidChange:(id)sender {
|
||||||
|
NSArray *urls = [panel URLs];
|
||||||
|
if ([urls count]) {
|
||||||
|
if ([self isRecommended:[urls firstObject]]) {
|
||||||
|
[bad removeFromSuperview];
|
||||||
|
[icon removeFromSuperview];
|
||||||
|
[accessory addSubview:good];
|
||||||
|
} else {
|
||||||
|
[good removeFromSuperview];
|
||||||
|
[accessory addSubview:bad];
|
||||||
|
[accessory addSubview:icon];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
[good removeFromSuperview];
|
||||||
|
[bad removeFromSuperview];
|
||||||
|
[icon removeFromSuperview];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) menuDidClose {
|
||||||
|
onlyRecommended = [[[selector selectedItem] title] isEqualToString:recom];
|
||||||
|
[self refreshPanelTable];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL) refreshDataInViews: (NSArray*)subviews {
|
||||||
|
for (id view in subviews) {
|
||||||
|
NSString *cls = [view className];
|
||||||
|
if ([cls isEqualToString:@"FI_TBrowserTableView"]) {
|
||||||
|
[view reloadData];
|
||||||
|
} else if ([cls isEqualToString:@"FI_TListView"] || [cls isEqualToString:@"FI_TIconView"]) {
|
||||||
|
[view reloadData];
|
||||||
|
return YES;
|
||||||
|
} else {
|
||||||
|
NSArray *next = [view subviews];
|
||||||
|
if ([next count] && [self refreshDataInViews:next]) {
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
- (void) refreshPanelTable {
|
||||||
|
[self refreshDataInViews:[[panel contentView] subviews]];
|
||||||
|
[panel validateVisibleColumns];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) dealloc {
|
||||||
|
if (apps) {
|
||||||
|
[apps release];
|
||||||
|
[recom release];
|
||||||
|
}
|
||||||
|
[super dealloc];
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
void objc_openFile(const QString &f, bool openwith) {
|
||||||
|
NSString *file = QNSString(f).s();
|
||||||
|
if (openwith || [[NSWorkspace sharedWorkspace] openFile:file] == NO) {
|
||||||
|
@try {
|
||||||
|
NSURL *url = [NSURL fileURLWithPath:file];
|
||||||
|
NSString *ext = [url pathExtension];
|
||||||
|
NSArray *names =[url pathComponents];
|
||||||
|
NSString *name = [names count] ? [names lastObject] : @"";
|
||||||
|
NSArray *apps = (NSArray*)LSCopyApplicationURLsForURL(CFURLRef(url), kLSRolesAll);
|
||||||
|
|
||||||
|
NSOpenPanel *openPanel = [NSOpenPanel openPanel];
|
||||||
|
|
||||||
|
NSView *accessory = [[NSView alloc] init];
|
||||||
|
|
||||||
|
[openPanel setAccessoryView:accessory];
|
||||||
|
NSRect fullRect = [[accessory superview] frame];
|
||||||
|
fullRect.origin = NSMakePoint(0, 0);
|
||||||
|
fullRect.size.height = st::macAccessoryHeight;
|
||||||
|
[accessory setFrame:fullRect];
|
||||||
|
[accessory setAutoresizesSubviews:YES];
|
||||||
|
|
||||||
|
NSPopUpButton *selector = [[NSPopUpButton alloc] init];
|
||||||
|
[accessory addSubview:selector];
|
||||||
|
[selector addItemWithTitle:objc_lang(lng_mac_recommended_apps).s()];
|
||||||
|
[selector addItemWithTitle:objc_lang(lng_mac_all_apps).s()];
|
||||||
|
[selector sizeToFit];
|
||||||
|
|
||||||
|
NSTextField *enableLabel = [[NSTextField alloc] init];
|
||||||
|
[accessory addSubview:enableLabel];
|
||||||
|
[enableLabel setStringValue:objc_lang(lng_mac_enable_filter).s()];
|
||||||
|
[enableLabel setFont:[selector font]];
|
||||||
|
[enableLabel setBezeled:NO];
|
||||||
|
[enableLabel setDrawsBackground:NO];
|
||||||
|
[enableLabel setEditable:NO];
|
||||||
|
[enableLabel setSelectable:NO];
|
||||||
|
[enableLabel sizeToFit];
|
||||||
|
|
||||||
|
NSRect selectorFrame = [selector frame], enableFrame = [enableLabel frame];
|
||||||
|
enableFrame.size.width += st::macEnableFilterAdd;
|
||||||
|
enableFrame.origin.x = (fullRect.size.width - selectorFrame.size.width - enableFrame.size.width) / 2.;
|
||||||
|
selectorFrame.origin.x = (fullRect.size.width - selectorFrame.size.width + enableFrame.size.width) / 2.;
|
||||||
|
enableFrame.origin.y = fullRect.size.height - selectorFrame.size.height - st::macEnableFilterTop + (selectorFrame.size.height - enableFrame.size.height) / 2.;
|
||||||
|
selectorFrame.origin.y = fullRect.size.height - selectorFrame.size.height - st::macSelectorTop;
|
||||||
|
[enableLabel setFrame:enableFrame];
|
||||||
|
[enableLabel setAutoresizingMask:NSViewMinXMargin|NSViewMaxXMargin];
|
||||||
|
[selector setFrame:selectorFrame];
|
||||||
|
[selector setAutoresizingMask:NSViewMinXMargin|NSViewMaxXMargin];
|
||||||
|
|
||||||
|
NSButton *button = [[NSButton alloc] init];
|
||||||
|
[accessory addSubview:button];
|
||||||
|
[button setButtonType:NSSwitchButton];
|
||||||
|
[button setFont:[selector font]];
|
||||||
|
[button setTitle:objc_lang(lng_mac_always_open_with).s()];
|
||||||
|
[button sizeToFit];
|
||||||
|
NSRect alwaysRect = [button frame];
|
||||||
|
alwaysRect.origin.x = (fullRect.size.width - alwaysRect.size.width) / 2;
|
||||||
|
alwaysRect.origin.y = selectorFrame.origin.y - alwaysRect.size.height - st::macAlwaysThisAppTop;
|
||||||
|
[button setFrame:alwaysRect];
|
||||||
|
[button setAutoresizingMask:NSViewMinXMargin|NSViewMaxXMargin];
|
||||||
|
|
||||||
|
NSTextField *goodLabel = [[NSTextField alloc] init];
|
||||||
|
[goodLabel setStringValue:[objc_lang(lng_mac_this_app_can_open).s() stringByReplacingOccurrencesOfString:@"{file}" withString:name]];
|
||||||
|
[goodLabel setFont:[NSFont systemFontOfSize:[NSFont smallSystemFontSize]]];
|
||||||
|
[goodLabel setBezeled:NO];
|
||||||
|
[goodLabel setDrawsBackground:NO];
|
||||||
|
[goodLabel setEditable:NO];
|
||||||
|
[goodLabel setSelectable:NO];
|
||||||
|
[goodLabel sizeToFit];
|
||||||
|
NSRect goodFrame = [goodLabel frame];
|
||||||
|
goodFrame.origin.x = (fullRect.size.width - goodFrame.size.width) / 2.;
|
||||||
|
goodFrame.origin.y = alwaysRect.origin.y - goodFrame.size.height - st::macAppHintTop;
|
||||||
|
[goodLabel setFrame:goodFrame];
|
||||||
|
|
||||||
|
NSTextField *badLabel = [[NSTextField alloc] init];
|
||||||
|
[badLabel setStringValue:[objc_lang(lng_mac_not_known_app).s() stringByReplacingOccurrencesOfString:@"{file}" withString:name]];
|
||||||
|
[badLabel setFont:[goodLabel font]];
|
||||||
|
[badLabel setBezeled:NO];
|
||||||
|
[badLabel setDrawsBackground:NO];
|
||||||
|
[badLabel setEditable:NO];
|
||||||
|
[badLabel setSelectable:NO];
|
||||||
|
[badLabel sizeToFit];
|
||||||
|
NSImageView *badIcon = [[NSImageView alloc] init];
|
||||||
|
NSImage *badImage = [NSImage imageNamed:NSImageNameCaution];
|
||||||
|
[badIcon setImage:badImage];
|
||||||
|
[badIcon setFrame:NSMakeRect(0, 0, st::macCautionIconSize.width(), st::macCautionIconSize.height())];
|
||||||
|
|
||||||
|
NSRect badFrame = [badLabel frame], badIconFrame = [badIcon frame];
|
||||||
|
badFrame.origin.x = (fullRect.size.width - badFrame.size.width + badIconFrame.size.width) / 2.;
|
||||||
|
badIconFrame.origin.x = (fullRect.size.width - badFrame.size.width - badIconFrame.size.width) / 2.;
|
||||||
|
badFrame.origin.y = alwaysRect.origin.y - badFrame.size.height - st::macAppHintTop;
|
||||||
|
badIconFrame.origin.y = badFrame.origin.y;
|
||||||
|
[badLabel setFrame:badFrame];
|
||||||
|
[badIcon setFrame:badIconFrame];
|
||||||
|
|
||||||
|
ChooseApplicationDelegate *delegate = [[ChooseApplicationDelegate alloc] init:apps withPanel:openPanel withSelector:selector withGood:goodLabel withBad:badLabel withIcon:badIcon withAccessory:accessory];
|
||||||
|
[openPanel setDelegate:delegate];
|
||||||
|
|
||||||
|
[openPanel setCanChooseDirectories:NO];
|
||||||
|
[openPanel setCanChooseFiles:YES];
|
||||||
|
[openPanel setAllowsMultipleSelection:NO];
|
||||||
|
[openPanel setResolvesAliases:YES];
|
||||||
|
[openPanel setTitle:objc_lang(lng_mac_choose_app).s()];
|
||||||
|
[openPanel setMessage:[[objc_lang(lng_mac_choose_text).s() stringByReplacingOccurrencesOfString:@"{file}" withString:name] stringByAppendingFormat:@"%d", [[NSProcessInfo processInfo] processIdentifier]]];
|
||||||
|
|
||||||
|
NSArray *appsPaths = [[NSFileManager defaultManager] URLsForDirectory:NSApplicationDirectory inDomains:NSLocalDomainMask];
|
||||||
|
if ([appsPaths count]) [openPanel setDirectoryURL:[appsPaths firstObject]];
|
||||||
|
[openPanel beginWithCompletionHandler:^(NSInteger result){
|
||||||
|
if (result == NSFileHandlingPanelOKButton) {
|
||||||
|
if ([[openPanel URLs] count] > 0) {
|
||||||
|
NSURL *app = [[openPanel URLs] objectAtIndex:0];
|
||||||
|
NSString *path = [app path];
|
||||||
|
if ([button state] == NSOnState) {
|
||||||
|
NSArray *UTIs = (NSArray *)UTTypeCreateAllIdentifiersForTag(kUTTagClassFilenameExtension,
|
||||||
|
(CFStringRef)ext,
|
||||||
|
nil);
|
||||||
|
for (NSString *UTI in UTIs) {
|
||||||
|
LSSetDefaultRoleHandlerForContentType((CFStringRef)UTI,
|
||||||
|
kLSRolesEditor,
|
||||||
|
(CFStringRef)[[NSBundle bundleWithPath:path] bundleIdentifier]);
|
||||||
|
}
|
||||||
|
|
||||||
|
[UTIs release];
|
||||||
|
}
|
||||||
|
[[NSWorkspace sharedWorkspace] openFile:file withApplication:[app path]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[selector release];
|
||||||
|
[button release];
|
||||||
|
[enableLabel release];
|
||||||
|
[goodLabel release];
|
||||||
|
[badLabel release];
|
||||||
|
[badIcon release];
|
||||||
|
[accessory release];
|
||||||
|
[delegate release];
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
@catch (NSException *exception) {
|
||||||
|
[[NSWorkspace sharedWorkspace] openFile:file];
|
||||||
|
}
|
||||||
|
@finally {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[file release];
|
||||||
|
}
|
||||||
|
|
||||||
|
void objc_finish() {
|
||||||
|
if (!objcLang.isEmpty()) {
|
||||||
|
objcLang.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL _execUpdater(BOOL update = YES) {
|
||||||
|
NSString *path = @"", *args = @"";
|
||||||
|
@try {
|
||||||
|
path = [[NSBundle mainBundle] bundlePath];
|
||||||
|
if (!path) {
|
||||||
|
LOG(("Could not get bundle path!!"));
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
path = [path stringByAppendingString:@"/Contents/Frameworks/Updater"];
|
||||||
|
|
||||||
|
NSMutableArray *args = [[NSMutableArray alloc] initWithObjects:@"-workpath", QNSString(cWorkingDir()).s(), @"-tosettings", @"-procid", nil];
|
||||||
|
[args addObject:[NSString stringWithFormat:@"%d", [[NSProcessInfo processInfo] processIdentifier]]];
|
||||||
|
if (!update) [args addObject:@"-noupdate"];
|
||||||
|
if (cFromAutoStart()) [args addObject:@"-autostart"];
|
||||||
|
if (cDebug()) [args addObject:@"-debug"];
|
||||||
|
if (cDataFile() != (cTestMode() ? qsl("data_test") : qsl("data"))) {
|
||||||
|
[args addObject:@"-key"];
|
||||||
|
[args addObject:QNSString(cDataFile()).s()];
|
||||||
|
}
|
||||||
|
|
||||||
|
DEBUG_LOG(("Application Info: executing %1 %2").arg(QString::fromUtf8([path cStringUsingEncoding:NSUTF8StringEncoding])).arg(QString::fromUtf8([[args componentsJoinedByString:@" "] cStringUsingEncoding:NSUTF8StringEncoding])));
|
||||||
|
if (![NSTask launchedTaskWithLaunchPath:path arguments:args]) {
|
||||||
|
LOG(("Task not launched while executing %1 %2").arg(QString::fromUtf8([path cStringUsingEncoding:NSUTF8StringEncoding])).arg(QString::fromUtf8([[args componentsJoinedByString:@" "] cStringUsingEncoding:NSUTF8StringEncoding])));
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@catch (NSException *exception) {
|
||||||
|
LOG(("Exception caught while executing %1 %2").arg(QString::fromUtf8([path cStringUsingEncoding:NSUTF8StringEncoding])).arg(QString::fromUtf8([args cStringUsingEncoding:NSUTF8StringEncoding])));
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
@finally {
|
||||||
|
}
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool objc_execUpdater() {
|
||||||
|
return !!_execUpdater();
|
||||||
|
}
|
||||||
|
|
||||||
|
void objc_execTelegram() {
|
||||||
|
_execUpdater(NO);
|
||||||
|
}
|
||||||
|
|
||||||
|
void objc_activateProgram() {
|
||||||
|
[NSApp activateIgnoringOtherApps:YES];
|
||||||
|
}
|
||||||
|
|
||||||
|
bool objc_moveFile(const QString &from, const QString &to) {
|
||||||
|
NSString *f = QNSString(from).s(), *t = QNSString(to).s();
|
||||||
|
if ([[NSFileManager defaultManager] fileExistsAtPath:t]) {
|
||||||
|
NSData *data = [NSData dataWithContentsOfFile:f];
|
||||||
|
if (data) {
|
||||||
|
if ([data writeToFile:t atomically:YES]) {
|
||||||
|
if ([[NSFileManager defaultManager] removeItemAtPath:f error:nil]) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if ([[NSFileManager defaultManager] moveItemAtPath:f toPath:t error:nil]) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void objc_deleteDir(const QString &dir) {
|
||||||
|
[[NSFileManager defaultManager] removeItemAtPath:QNSString(dir).s() error:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
QString objc_appDataPath() {
|
||||||
|
NSURL *url = [[NSFileManager defaultManager] URLForDirectory:NSApplicationSupportDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:nil];
|
||||||
|
if (url) {
|
||||||
|
return QString::fromUtf8([[url path] fileSystemRepresentation]) + '/' + QString::fromWCharArray(AppName) + '/';
|
||||||
|
}
|
||||||
|
return QString();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString objc_currentCountry() {
|
||||||
|
NSLocale *currentLocale = [NSLocale currentLocale]; // get the current locale.
|
||||||
|
NSString *countryCode = [currentLocale objectForKey:NSLocaleCountryCode];
|
||||||
|
return countryCode ? QString::fromUtf8([countryCode cStringUsingEncoding:NSUTF8StringEncoding]) : QString();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString objc_currentLang() {
|
||||||
|
NSLocale *currentLocale = [NSLocale currentLocale]; // get the current locale.
|
||||||
|
NSString *currentLang = [currentLocale objectForKey:NSLocaleLanguageCode];
|
||||||
|
return currentLang ? QString::fromUtf8([currentLang cStringUsingEncoding:NSUTF8StringEncoding]) : QString();
|
||||||
|
}
|
||||||
|
|
|
@ -872,6 +872,15 @@ PsMainWindow::PsMainWindow(QWidget *parent) : QMainWindow(parent), ps_hWnd(0), p
|
||||||
notifyWaitTimer.setSingleShot(true);
|
notifyWaitTimer.setSingleShot(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PsMainWindow::psNotIdle() const {
|
||||||
|
psIdleTimer.stop();
|
||||||
|
if (psIdle) {
|
||||||
|
psIdle = false;
|
||||||
|
if (App::main()) App::main()->setOnline();
|
||||||
|
if (App::wnd()) App::wnd()->checkHistoryActivation();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void PsMainWindow::psIdleTimeout() {
|
void PsMainWindow::psIdleTimeout() {
|
||||||
LASTINPUTINFO lii;
|
LASTINPUTINFO lii;
|
||||||
lii.cbSize = sizeof(LASTINPUTINFO);
|
lii.cbSize = sizeof(LASTINPUTINFO);
|
||||||
|
@ -879,15 +888,16 @@ void PsMainWindow::psIdleTimeout() {
|
||||||
if (res) {
|
if (res) {
|
||||||
uint64 ticks = GetTickCount();
|
uint64 ticks = GetTickCount();
|
||||||
if (lii.dwTime >= ticks - IdleMsecs) {
|
if (lii.dwTime >= ticks - IdleMsecs) {
|
||||||
psIdle = false;
|
psNotIdle();
|
||||||
psIdleTimer.stop();
|
|
||||||
if (App::main()) App::main()->setOnline();
|
|
||||||
}
|
}
|
||||||
|
} else { // error {
|
||||||
|
psNotIdle();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PsMainWindow::psIsActive() const {
|
bool PsMainWindow::psIsActive(int state) const {
|
||||||
return isActiveWindow() && isVisible() && !(windowState() & Qt::WindowMinimized);
|
if (state < 0) state = this->windowState();
|
||||||
|
return isActiveWindow() && isVisible() && !(state & Qt::WindowMinimized) && !psIdle;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PsMainWindow::psIsOnline(int windowState) const {
|
bool PsMainWindow::psIsOnline(int windowState) const {
|
||||||
|
@ -909,9 +919,10 @@ bool PsMainWindow::psIsOnline(int windowState) const {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
psIdle = false;
|
psNotIdle();
|
||||||
psIdleTimer.stop();
|
|
||||||
}
|
}
|
||||||
|
} else { // error
|
||||||
|
psNotIdle();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -2639,6 +2650,9 @@ void psShowInFolder(const QString &name) {
|
||||||
ShellExecute(0, 0, qsl("explorer").toStdWString().c_str(), (qsl("/select,") + nameEscaped).toStdWString().c_str(), 0, SW_SHOWNORMAL);
|
ShellExecute(0, 0, qsl("explorer").toStdWString().c_str(), (qsl("/select,") + nameEscaped).toStdWString().c_str(), 0, SW_SHOWNORMAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void psFinish() {
|
||||||
|
}
|
||||||
|
|
||||||
void psExecUpdater() {
|
void psExecUpdater() {
|
||||||
QString targs = qsl("-update");
|
QString targs = qsl("-update");
|
||||||
if (cFromAutoStart()) targs += qsl(" -autostart");
|
if (cFromAutoStart()) targs += qsl(" -autostart");
|
||||||
|
|
|
@ -102,7 +102,7 @@ public:
|
||||||
void psFlash();
|
void psFlash();
|
||||||
void psNotifySettingGot();
|
void psNotifySettingGot();
|
||||||
|
|
||||||
bool psIsActive() const;
|
bool psIsActive(int state = -1) const;
|
||||||
bool psIsOnline(int windowState) const;
|
bool psIsOnline(int windowState) const;
|
||||||
|
|
||||||
void psUpdateWorkmode();
|
void psUpdateWorkmode();
|
||||||
|
@ -136,6 +136,8 @@ public slots:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
void psNotIdle() const;
|
||||||
|
|
||||||
bool posInited;
|
bool posInited;
|
||||||
QSystemTrayIcon *trayIcon;
|
QSystemTrayIcon *trayIcon;
|
||||||
QMenu *trayIconMenu;
|
QMenu *trayIconMenu;
|
||||||
|
@ -259,3 +261,4 @@ void psExecTelegram();
|
||||||
void psPostprocessFile(const QString &name);
|
void psPostprocessFile(const QString &name);
|
||||||
void psOpenFile(const QString &name, bool openWith = false);
|
void psOpenFile(const QString &name, bool openWith = false);
|
||||||
void psShowInFolder(const QString &name);
|
void psShowInFolder(const QString &name);
|
||||||
|
void psFinish();
|
||||||
|
|
|
@ -67,19 +67,26 @@ QString gLangFile;
|
||||||
|
|
||||||
bool gRetina = false;
|
bool gRetina = false;
|
||||||
float64 gRetinaFactor = 1.;
|
float64 gRetinaFactor = 1.;
|
||||||
|
int32 gIntRetinaFactor = 1;
|
||||||
bool gCustomNotifies = false;
|
bool gCustomNotifies = false;
|
||||||
|
|
||||||
|
uint64 gInstance = 0.;
|
||||||
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
DBIPlatform gPlatform = dbipWindows;
|
DBIPlatform gPlatform = dbipWindows;
|
||||||
|
QUrl gUpdateURL = QUrl(qsl("http://tdesktop.com/win/tupdates/current"));
|
||||||
#elif defined Q_OS_MAC
|
#elif defined Q_OS_MAC
|
||||||
DBIPlatform gPlatform = dbipMac;
|
DBIPlatform gPlatform = dbipMac;
|
||||||
|
QUrl gUpdateURL = QUrl(qsl("http://tdesktop.com/mac/tupdates/current"));
|
||||||
#elif defined Q_OS_LINUX
|
#elif defined Q_OS_LINUX
|
||||||
DBIPlatform gPlatform = dbipLinux;
|
DBIPlatform gPlatform = dbipLinux;
|
||||||
|
QUrl gUpdateURL = QUrl(qsl("http://tdesktop.com/linux/tupdates/current"));
|
||||||
#else
|
#else
|
||||||
#error Unknown platform
|
#error Unknown platform
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void settingsParseArgs(int argc, char *argv[]) {
|
void settingsParseArgs(int argc, char *argv[]) {
|
||||||
|
memset_rand(&gInstance, sizeof(gInstance));
|
||||||
gExeDir = psCurrentExeDirectory(argc, argv);
|
gExeDir = psCurrentExeDirectory(argc, argv);
|
||||||
for (int32 i = 0; i < argc; ++i) {
|
for (int32 i = 0; i < argc; ++i) {
|
||||||
if (string("-release") == argv[i]) {
|
if (string("-release") == argv[i]) {
|
||||||
|
|
|
@ -132,8 +132,12 @@ DeclareReadSetting(QString, LangFile);
|
||||||
|
|
||||||
DeclareSetting(bool, Retina);
|
DeclareSetting(bool, Retina);
|
||||||
DeclareSetting(float64, RetinaFactor);
|
DeclareSetting(float64, RetinaFactor);
|
||||||
|
DeclareSetting(int32, IntRetinaFactor);
|
||||||
DeclareSetting(bool, CustomNotifies);
|
DeclareSetting(bool, CustomNotifies);
|
||||||
|
|
||||||
|
DeclareReadSetting(uint64, Instance);
|
||||||
|
|
||||||
DeclareReadSetting(DBIPlatform, Platform);
|
DeclareReadSetting(DBIPlatform, Platform);
|
||||||
|
DeclareReadSetting(QUrl, UpdateURL);
|
||||||
|
|
||||||
void settingsParseArgs(int argc, char *argv[]);
|
void settingsParseArgs(int argc, char *argv[]);
|
||||||
|
|
|
@ -32,7 +32,7 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
|
|
||||||
Slider::Slider(QWidget *parent, const style::slider &st, int32 count, int32 sel) : QWidget(parent),
|
Slider::Slider(QWidget *parent, const style::slider &st, int32 count, int32 sel) : QWidget(parent),
|
||||||
_count(count), _sel(snap(sel, 0, _count)), _wasSel(_sel), _st(st), _pressed(false) {
|
_count(count), _sel(snap(sel, 0, _count)), _wasSel(_sel), _st(st), _pressed(false) {
|
||||||
resize(_st.width, _st.bar.height());
|
resize(_st.width, _st.bar.pxHeight());
|
||||||
setCursor(style::cur_pointer);
|
setCursor(style::cur_pointer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ void Slider::mousePressEvent(QMouseEvent *e) {
|
||||||
|
|
||||||
void Slider::mouseMoveEvent(QMouseEvent *e) {
|
void Slider::mouseMoveEvent(QMouseEvent *e) {
|
||||||
if (_pressed) {
|
if (_pressed) {
|
||||||
int32 newSel = snap(qRound((_count - 1) * float64(e->pos().x() - _st.bar.width() / 2) / (width() - _st.bar.width())), 0, _count - 1);
|
int32 newSel = snap(qRound((_count - 1) * float64(e->pos().x() - _st.bar.pxWidth() / 2) / (width() - _st.bar.pxWidth())), 0, _count - 1);
|
||||||
if (newSel != _sel) {
|
if (newSel != _sel) {
|
||||||
_sel = newSel;
|
_sel = newSel;
|
||||||
update();
|
update();
|
||||||
|
@ -81,7 +81,7 @@ void Slider::paintEvent(QPaintEvent *e) {
|
||||||
p.drawLine(0, i, width() - 1, i);
|
p.drawLine(0, i, width() - 1, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32 x = qFloor(_sel * float64(width() - _st.bar.width()) / (_count - 1)), y = (height() - _st.bar.height()) / 2;
|
int32 x = qFloor(_sel * float64(width() - _st.bar.pxWidth()) / (_count - 1)), y = (height() - _st.bar.pxHeight()) / 2;
|
||||||
p.drawPixmap(QPoint(x, y), App::sprite(), _st.bar);
|
p.drawPixmap(QPoint(x, y), App::sprite(), _st.bar);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,10 +135,10 @@ SettingsInner::SettingsInner(Settings *parent) : QWidget(parent),
|
||||||
_viewEmojis(this, lang(lng_settings_view_emojis)),
|
_viewEmojis(this, lang(lng_settings_view_emojis)),
|
||||||
|
|
||||||
_enterSend(this, qsl("send_key"), 0, lang(lng_settings_send_enter), !cCtrlEnter()),
|
_enterSend(this, qsl("send_key"), 0, lang(lng_settings_send_enter), !cCtrlEnter()),
|
||||||
_ctrlEnterSend(this, qsl("send_key"), 1, lang(lng_settings_send_ctrlenter), cCtrlEnter()),
|
_ctrlEnterSend(this, qsl("send_key"), 1, lang((cPlatform() == dbipMac) ? lng_settings_send_cmdenter : lng_settings_send_ctrlenter), cCtrlEnter()),
|
||||||
|
|
||||||
_downloadPathWidth(st::linkFont->m.width(lang(lng_download_path_label))),
|
|
||||||
_dontAskDownloadPath(this, lang(lng_download_path_dont_ask), !cAskDownloadPath()),
|
_dontAskDownloadPath(this, lang(lng_download_path_dont_ask), !cAskDownloadPath()),
|
||||||
|
_downloadPathWidth(st::linkFont->m.width(lang(lng_download_path_label))),
|
||||||
_downloadPathEdit(this, cDownloadPath().isEmpty() ? lang(lng_download_path_temp) : st::linkFont->m.elidedText(QDir::toNativeSeparators(cDownloadPath()), Qt::ElideRight, st::setWidth - st::setVersionLeft - _downloadPathWidth)),
|
_downloadPathEdit(this, cDownloadPath().isEmpty() ? lang(lng_download_path_temp) : st::linkFont->m.elidedText(QDir::toNativeSeparators(cDownloadPath()), Qt::ElideRight, st::setWidth - st::setVersionLeft - _downloadPathWidth)),
|
||||||
_downloadPathClear(this, lang(lng_download_path_clear)),
|
_downloadPathClear(this, lang(lng_download_path_clear)),
|
||||||
_tempDirClearingWidth(st::linkFont->m.width(lang(lng_download_path_clearing))),
|
_tempDirClearingWidth(st::linkFont->m.width(lang(lng_download_path_clearing))),
|
||||||
|
@ -150,8 +150,8 @@ SettingsInner::SettingsInner(Settings *parent) : QWidget(parent),
|
||||||
// advanced
|
// advanced
|
||||||
_connectionType(this, lang(lng_connection_auto)),
|
_connectionType(this, lang(lng_connection_auto)),
|
||||||
_resetSessions(this, lang(lng_settings_reset)),
|
_resetSessions(this, lang(lng_settings_reset)),
|
||||||
_resetDone(false),
|
_logOut(this, lang(lng_settings_logout), st::btnLogout),
|
||||||
_logOut(this, lang(lng_settings_logout), st::btnLogout)
|
_resetDone(false)
|
||||||
{
|
{
|
||||||
if (_self) {
|
if (_self) {
|
||||||
_nameText.setText(st::setNameFont, _nameCache, _textNameOptions);
|
_nameText.setText(st::setNameFont, _nameCache, _textNameOptions);
|
||||||
|
@ -345,36 +345,40 @@ void SettingsInner::paintEvent(QPaintEvent *e) {
|
||||||
p.drawText(_left + st::setVersionLeft, top + st::setVersionTop + st::linkFont->ascent, textToDraw);
|
p.drawText(_left + st::setVersionLeft, top + st::setVersionTop + st::linkFont->ascent, textToDraw);
|
||||||
top += st::setVersionHeight;
|
top += st::setVersionHeight;
|
||||||
|
|
||||||
top += _workmodeTray.height() + st::setLittleSkip;
|
if (cPlatform() == dbipWindows) {
|
||||||
top += _workmodeWindow.height() + st::setSectionSkip;
|
top += _workmodeTray.height() + st::setLittleSkip;
|
||||||
|
top += _workmodeWindow.height() + st::setSectionSkip;
|
||||||
top += _autoStart.height() + st::setLittleSkip;
|
|
||||||
top += _startMinimized.height();
|
top += _autoStart.height() + st::setLittleSkip;
|
||||||
|
top += _startMinimized.height();
|
||||||
p.setFont(st::setHeaderFont->f);
|
}
|
||||||
p.setPen(st::setHeaderColor->p);
|
|
||||||
p.drawText(_left + st::setHeaderLeft, top + st::setHeaderTop + st::setHeaderFont->ascent, lang(lng_settings_scale_label));
|
if (!cRetina()) {
|
||||||
top += st::setHeaderSkip;
|
p.setFont(st::setHeaderFont->f);
|
||||||
top += _dpiAutoScale.height() + st::setLittleSkip;
|
p.setPen(st::setHeaderColor->p);
|
||||||
|
p.drawText(_left + st::setHeaderLeft, top + st::setHeaderTop + st::setHeaderFont->ascent, lang(lng_settings_scale_label));
|
||||||
top += _dpiSlider.height() + st::dpiFont4->height;
|
top += st::setHeaderSkip;
|
||||||
int32 sLeft = _dpiSlider.x() + _dpiWidth1 / 2, sWidth = _dpiSlider.width();
|
top += _dpiAutoScale.height() + st::setLittleSkip;
|
||||||
float64 sStep = (sWidth - _dpiWidth1 / 2 - _dpiWidth4 / 2) / float64(dbisScaleCount - 2);
|
|
||||||
p.setFont(st::dpiFont1->f);
|
top += _dpiSlider.height() + st::dpiFont4->height;
|
||||||
|
int32 sLeft = _dpiSlider.x() + _dpiWidth1 / 2, sWidth = _dpiSlider.width();
|
||||||
p.setPen((scaleIs(dbisOne) ? st::dpiActive : st::dpiInactive)->p);
|
float64 sStep = (sWidth - _dpiWidth1 / 2 - _dpiWidth4 / 2) / float64(dbisScaleCount - 2);
|
||||||
p.drawText(sLeft + qRound(0 * sStep) - _dpiWidth1 / 2, top - (st::dpiFont4->height - st::dpiFont1->height) / 2 - st::dpiFont1->descent, scaleLabel(dbisOne));
|
p.setFont(st::dpiFont1->f);
|
||||||
p.setFont(st::dpiFont2->f);
|
|
||||||
p.setPen((scaleIs(dbisOneAndQuarter) ? st::dpiActive : st::dpiInactive)->p);
|
p.setPen((scaleIs(dbisOne) ? st::dpiActive : st::dpiInactive)->p);
|
||||||
p.drawText(sLeft + qRound(1 * sStep) - _dpiWidth2 / 2, top - (st::dpiFont4->height - st::dpiFont2->height) / 2 - st::dpiFont2->descent, scaleLabel(dbisOneAndQuarter));
|
p.drawText(sLeft + qRound(0 * sStep) - _dpiWidth1 / 2, top - (st::dpiFont4->height - st::dpiFont1->height) / 2 - st::dpiFont1->descent, scaleLabel(dbisOne));
|
||||||
p.setFont(st::dpiFont3->f);
|
p.setFont(st::dpiFont2->f);
|
||||||
p.setPen((scaleIs(dbisOneAndHalf) ? st::dpiActive : st::dpiInactive)->p);
|
p.setPen((scaleIs(dbisOneAndQuarter) ? st::dpiActive : st::dpiInactive)->p);
|
||||||
p.drawText(sLeft + qRound(2 * sStep) - _dpiWidth3 / 2, top - (st::dpiFont4->height - st::dpiFont3->height) / 2 - st::dpiFont3->descent, scaleLabel(dbisOneAndHalf));
|
p.drawText(sLeft + qRound(1 * sStep) - _dpiWidth2 / 2, top - (st::dpiFont4->height - st::dpiFont2->height) / 2 - st::dpiFont2->descent, scaleLabel(dbisOneAndQuarter));
|
||||||
p.setFont(st::dpiFont4->f);
|
p.setFont(st::dpiFont3->f);
|
||||||
p.setPen((scaleIs(dbisTwo) ? st::dpiActive : st::dpiInactive)->p);
|
p.setPen((scaleIs(dbisOneAndHalf) ? st::dpiActive : st::dpiInactive)->p);
|
||||||
p.drawText(sLeft + qRound(3 * sStep) - _dpiWidth4 / 2, top - (st::dpiFont4->height - st::dpiFont4->height) / 2 - st::dpiFont4->descent, scaleLabel(dbisTwo));
|
p.drawText(sLeft + qRound(2 * sStep) - _dpiWidth3 / 2, top - (st::dpiFont4->height - st::dpiFont3->height) / 2 - st::dpiFont3->descent, scaleLabel(dbisOneAndHalf));
|
||||||
p.setFont(st::linkFont->f);
|
p.setFont(st::dpiFont4->f);
|
||||||
|
p.setPen((scaleIs(dbisTwo) ? st::dpiActive : st::dpiInactive)->p);
|
||||||
|
p.drawText(sLeft + qRound(3 * sStep) - _dpiWidth4 / 2, top - (st::dpiFont4->height - st::dpiFont4->height) / 2 - st::dpiFont4->descent, scaleLabel(dbisTwo));
|
||||||
|
p.setFont(st::linkFont->f);
|
||||||
|
}
|
||||||
|
|
||||||
if (_self) {
|
if (_self) {
|
||||||
// chat options
|
// chat options
|
||||||
p.setFont(st::setHeaderFont->f);
|
p.setFont(st::setHeaderFont->f);
|
||||||
|
@ -451,16 +455,19 @@ void SettingsInner::resizeEvent(QResizeEvent *e) {
|
||||||
_restartNow.move(_left + st::setWidth - _restartNow.width(), top + st::setVersionTop);
|
_restartNow.move(_left + st::setWidth - _restartNow.width(), top + st::setVersionTop);
|
||||||
top += st::setVersionHeight;
|
top += st::setVersionHeight;
|
||||||
|
|
||||||
_workmodeTray.move(_left, top); top += _workmodeTray.height() + st::setLittleSkip;
|
if (cPlatform() == dbipWindows) {
|
||||||
_workmodeWindow.move(_left, top); top += _workmodeWindow.height() + st::setSectionSkip;
|
_workmodeTray.move(_left, top); top += _workmodeTray.height() + st::setLittleSkip;
|
||||||
|
_workmodeWindow.move(_left, top); top += _workmodeWindow.height() + st::setSectionSkip;
|
||||||
_autoStart.move(_left, top); top += _autoStart.height() + st::setLittleSkip;
|
|
||||||
_startMinimized.move(_left, top); top += _startMinimized.height();
|
_autoStart.move(_left, top); top += _autoStart.height() + st::setLittleSkip;
|
||||||
|
_startMinimized.move(_left, top); top += _startMinimized.height();
|
||||||
top += st::setHeaderSkip;
|
}
|
||||||
_dpiAutoScale.move(_left, top); top += _dpiAutoScale.height() + st::setLittleSkip;
|
if (!cRetina()) {
|
||||||
_dpiSlider.move(_left, top); top += _dpiSlider.height() + st::dpiFont4->height;
|
top += st::setHeaderSkip;
|
||||||
|
_dpiAutoScale.move(_left, top); top += _dpiAutoScale.height() + st::setLittleSkip;
|
||||||
|
_dpiSlider.move(_left, top); top += _dpiSlider.height() + st::dpiFont4->height;
|
||||||
|
}
|
||||||
|
|
||||||
// chat options
|
// chat options
|
||||||
if (_self) {
|
if (_self) {
|
||||||
top += st::setHeaderSkip;
|
top += st::setHeaderSkip;
|
||||||
|
@ -625,14 +632,27 @@ void SettingsInner::showAll() {
|
||||||
|
|
||||||
// general
|
// general
|
||||||
_autoUpdate.show();
|
_autoUpdate.show();
|
||||||
|
|
||||||
_workmodeTray.show();
|
|
||||||
_workmodeWindow.show();
|
|
||||||
|
|
||||||
_autoStart.show();
|
|
||||||
setUpdatingState(_updatingState, true);
|
setUpdatingState(_updatingState, true);
|
||||||
_startMinimized.show();
|
if (cPlatform() == dbipWindows) {
|
||||||
_dpiSlider.show();
|
_workmodeTray.show();
|
||||||
|
_workmodeWindow.show();
|
||||||
|
|
||||||
|
_autoStart.show();
|
||||||
|
_startMinimized.show();
|
||||||
|
} else {
|
||||||
|
_workmodeTray.hide();
|
||||||
|
_workmodeWindow.hide();
|
||||||
|
|
||||||
|
_autoStart.hide();
|
||||||
|
_startMinimized.hide();
|
||||||
|
}
|
||||||
|
if (cRetina()) {
|
||||||
|
_dpiSlider.hide();
|
||||||
|
_dpiAutoScale.hide();
|
||||||
|
} else {
|
||||||
|
_dpiSlider.show();
|
||||||
|
_dpiAutoScale.show();
|
||||||
|
}
|
||||||
|
|
||||||
// chat options
|
// chat options
|
||||||
if (_self) {
|
if (_self) {
|
||||||
|
|
|
@ -34,7 +34,11 @@ Copyright (c) 2014 John Preston, https://tdesktop.com
|
||||||
#include <QtNetwork/QNetworkReply>
|
#include <QtNetwork/QNetworkReply>
|
||||||
#include <QtNetwork/QNetworkProxy>
|
#include <QtNetwork/QNetworkProxy>
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN // use Lzma SDK for win
|
||||||
#include <LzmaLib.h>
|
#include <LzmaLib.h>
|
||||||
|
#else
|
||||||
|
#include <lzma.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined Q_OS_WIN
|
#if defined Q_OS_WIN
|
||||||
#define _NEED_WIN_GENERATE_DUMP
|
#define _NEED_WIN_GENERATE_DUMP
|
||||||
|
|
|
@ -45,8 +45,8 @@ void SysBtn::onStateChange(int oldState, ButtonStateChangeSource source) {
|
||||||
void SysBtn::paintEvent(QPaintEvent *e) {
|
void SysBtn::paintEvent(QPaintEvent *e) {
|
||||||
QPainter p(this);
|
QPainter p(this);
|
||||||
|
|
||||||
int x = (width() - _st.img.width()) / 2, y = (height() - _st.img.height()) / 2;
|
int x = (width() - _st.img.pxWidth()) / 2, y = (height() - _st.img.pxHeight()) / 2;
|
||||||
p.fillRect(x, y, _st.img.width(), _st.img.height(), a_color.current());
|
p.fillRect(x, y, _st.img.pxWidth(), _st.img.pxHeight(), a_color.current());
|
||||||
p.drawPixmap(QPoint(x, y), App::sprite(), _st.img);
|
p.drawPixmap(QPoint(x, y), App::sprite(), _st.img);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue