mirror of
https://github.com/vale981/tdesktop
synced 2025-03-06 02:01:40 -05:00
Merge branch 'master' into temp
Conflicts: Telegram/SourceFiles/settings/settings_widget.cpp
This commit is contained in:
commit
36fc7d1991
7 changed files with 81 additions and 41 deletions
|
@ -185,7 +185,8 @@ namespace {
|
|||
// is applied once for blocks list in a history and once for items list in the found block
|
||||
template <bool TopToBottom, typename T>
|
||||
int binarySearchBlocksOrItems(const T &list, int edge) {
|
||||
auto start = 0, end = list.size();
|
||||
// static_cast to work around GCC bug #78693
|
||||
auto start = 0, end = static_cast<int>(list.size());
|
||||
while (end - start > 1) {
|
||||
auto middle = (start + end) / 2;
|
||||
auto top = list[middle]->y;
|
||||
|
|
|
@ -561,6 +561,7 @@ enum {
|
|||
dbiNotificationsCorner = 0x46,
|
||||
dbiTheme = 0x47,
|
||||
dbiDialogsWidthRatio = 0x48,
|
||||
dbiUseExternalVideoPlayer = 0x49,
|
||||
|
||||
dbiEncryptedWithSalt = 333,
|
||||
dbiEncrypted = 444,
|
||||
|
@ -931,6 +932,14 @@ bool _readSetting(quint32 blockId, QDataStream &stream, int version) {
|
|||
cSetSendToMenu(v == 1);
|
||||
} break;
|
||||
|
||||
case dbiUseExternalVideoPlayer: {
|
||||
qint32 v;
|
||||
stream >> v;
|
||||
if (!_checkStreamStatus(stream)) return false;
|
||||
|
||||
cSetUseExternalVideoPlayer(v == 1);
|
||||
} break;
|
||||
|
||||
case dbiSoundNotify: {
|
||||
qint32 v;
|
||||
stream >> v;
|
||||
|
@ -1710,6 +1719,7 @@ void _writeUserSettings() {
|
|||
data.stream << quint32(dbiModerateMode) << qint32(Global::ModerateModeEnabled() ? 1 : 0);
|
||||
data.stream << quint32(dbiAutoPlay) << qint32(cAutoPlayGif() ? 1 : 0);
|
||||
data.stream << quint32(dbiDialogsWidthRatio) << qint32(snap(qRound(Global::DialogsWidthRatio() * 1000000), 0, 1000000));
|
||||
data.stream << quint32(dbiUseExternalVideoPlayer) << qint32(cUseExternalVideoPlayer());
|
||||
|
||||
{
|
||||
data.stream << quint32(dbiRecentEmoji) << recentEmojiPreloadData;
|
||||
|
|
|
@ -51,6 +51,7 @@ bool gStartMinimized = false;
|
|||
bool gStartInTray = false;
|
||||
bool gAutoStart = false;
|
||||
bool gSendToMenu = false;
|
||||
bool gUseExternalVideoPlayer = false;
|
||||
bool gAutoUpdate = true;
|
||||
TWindowPos gWindowPos;
|
||||
LaunchMode gLaunchMode = LaunchModeNormal;
|
||||
|
|
|
@ -69,6 +69,7 @@ DeclareSetting(bool, AutoStart);
|
|||
DeclareSetting(bool, StartMinimized);
|
||||
DeclareSetting(bool, StartInTray);
|
||||
DeclareSetting(bool, SendToMenu);
|
||||
DeclareSetting(bool, UseExternalVideoPlayer);
|
||||
enum LaunchMode {
|
||||
LaunchModeNormal = 0,
|
||||
LaunchModeAutoStart,
|
||||
|
|
|
@ -102,6 +102,14 @@ void fillCodes() {
|
|||
Codes.insert(qsl("edittheme"), []() {
|
||||
Window::Theme::Editor::Start();
|
||||
});
|
||||
Codes.insert(qsl("videoplayer"), []() {
|
||||
auto text = cUseExternalVideoPlayer() ? qsl("Use internal video player?") : qsl("Use external video player?");
|
||||
Ui::show(Box<ConfirmBox>(text, [] {
|
||||
cSetUseExternalVideoPlayer(!cUseExternalVideoPlayer());
|
||||
Local::writeUserSettings();
|
||||
Ui::hideLayer();
|
||||
}));
|
||||
});
|
||||
}
|
||||
|
||||
void codesFeedString(const QString &text) {
|
||||
|
|
|
@ -99,10 +99,14 @@ void MainWindow::showPhoto(PhotoData *photo, PeerData *peer) {
|
|||
}
|
||||
|
||||
void MainWindow::showDocument(DocumentData *doc, HistoryItem *item) {
|
||||
if (_mediaView->isHidden()) Ui::hideLayer(true);
|
||||
_mediaView->showDocument(doc, item);
|
||||
_mediaView->activateWindow();
|
||||
_mediaView->setFocus();
|
||||
if (cUseExternalVideoPlayer() && doc->isVideo()) {
|
||||
QDesktopServices::openUrl(QUrl("file:///" + doc->location(false).fname));
|
||||
} else {
|
||||
if (_mediaView->isHidden()) Ui::hideLayer(true);
|
||||
_mediaView->showDocument(doc, item);
|
||||
_mediaView->activateWindow();
|
||||
_mediaView->setFocus();
|
||||
}
|
||||
}
|
||||
|
||||
bool MainWindow::ui_isMediaViewShown() {
|
||||
|
|
|
@ -1,30 +1,35 @@
|
|||
# Build instructions for Visual Studio 2015
|
||||
|
||||
* [Prepare folder](#prepare-folder)
|
||||
* [Clone source code](#clone-source-code)
|
||||
* [Prepare libraries](#prepare-libraries)
|
||||
+ [OpenSSL](#openssl)
|
||||
+ [LZMA SDK 9.20](#lzma-sdk-920)
|
||||
- [Building library](#building-library)
|
||||
+ [zlib 1.2.8](#zlib-128)
|
||||
- [Building library](#building-library-1)
|
||||
+ [libexif 0.6.20](#libexif-0620)
|
||||
- [Building library](#building-library-2)
|
||||
+ [OpenAL Soft, slightly patched](#openal-soft-slightly-patched)
|
||||
- [Building library](#building-library-3)
|
||||
+ [Opus codec](#opus-codec)
|
||||
- [Building libraries](#building-libraries)
|
||||
+ [FFmpeg](#ffmpeg)
|
||||
- [Building libraries](#building-libraries-1)
|
||||
+ [Qt 5.6.2, slightly patched](#qt-560-slightly-patched)
|
||||
- [Apply the patch](#apply-the-patch)
|
||||
- [Install Windows SDKs](#install-windows-sdks)
|
||||
- [Building library](#building-library-4)
|
||||
+ [Qt5Package](#qt5package)
|
||||
+ [Google Breakpad](#google-breakpad)
|
||||
- [Install](#install)
|
||||
- [Build](#build)
|
||||
* [Building Telegram Desktop](#building-telegram-desktop)
|
||||
- [Prepare folder](#prepare-folder)
|
||||
- [Clone source code](#clone-source-code)
|
||||
- [Prepare libraries](#prepare-libraries)
|
||||
* [OpenSSL](#openssl)
|
||||
* [LZMA SDK 9.20](#lzma-sdk-920)
|
||||
+ [Building library](#building-library)
|
||||
* [zlib 1.2.8](#zlib-128)
|
||||
+ [Building library](#building-library-1)
|
||||
* [libexif 0.6.20](#libexif-0620)
|
||||
+ [Building library](#building-library-2)
|
||||
* [OpenAL Soft, slightly patched](#openal-soft-slightly-patched)
|
||||
+ [Building library](#building-library-3)
|
||||
* [Opus codec](#opus-codec)
|
||||
+ [Building libraries](#building-libraries)
|
||||
* [FFmpeg](#ffmpeg)
|
||||
+ [Building libraries](#building-libraries-1)
|
||||
* [Qt 5.6.2, slightly patched](#qt-562-slightly-patched)
|
||||
+ [Apply the patch](#apply-the-patch)
|
||||
+ [Install Windows SDKs](#install-windows-sdks)
|
||||
+ [Building library](#building-library-4)
|
||||
* [Qt5Package](#qt5package)
|
||||
* [Google Breakpad](#google-breakpad)
|
||||
+ [Installation](#installation)
|
||||
- [depot_tools](#depot_tools)
|
||||
- [Breakpad](#breakpad)
|
||||
+ [Build](#build)
|
||||
- [Building Telegram Desktop](#building-telegram-desktop)
|
||||
+ [Setup GYP/Ninja and generate VS solution](#setup-gypninja-and-generate-vs-solution)
|
||||
+ [Configure VS](#configure-vs)
|
||||
+ [Build the project](#build-the-project)
|
||||
|
||||
## Prepare folder
|
||||
|
||||
|
@ -86,7 +91,7 @@ Extract to **D:\\TBuild\\Libraries**
|
|||
|
||||
### zlib 1.2.8
|
||||
|
||||
http://www.zlib.net/ > Download [**zlib source code, version 1.2.8, zipfile format**](http://zlib.net/zlib128.zip)
|
||||
http://www.zlib.net/fossils/ > Download [zlib-1.2.8.tar.gz](http://www.zlib.net/fossils/zlib-1.2.8.tar.gz)
|
||||
|
||||
Extract to **D:\\TBuild\\Libraries**
|
||||
|
||||
|
@ -222,28 +227,38 @@ Download, close all VS2015 instances and install for VS2015
|
|||
|
||||
Breakpad is a set of client and server components which implement a crash-reporting system.
|
||||
|
||||
#### Install
|
||||
#### Installation
|
||||
|
||||
* Install Python 2.7.12 from https://www.python.org/downloads/release/python-2712/ > [**Windows x86 MSI installer**](https://www.python.org/ftp/python/2.7.12/python-2.7.12.msi). Make sure that python is added to your `PATH` (there is an option for this in the python installer).
|
||||
* Go to **D:\\TBuild\\Libraries** and run
|
||||
##### depot_tools
|
||||
|
||||
<!-- -->
|
||||
Go to `D:\TBuild\Libraries` and run
|
||||
|
||||
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
|
||||
cd depot_tools
|
||||
gclient config "https://chromium.googlesource.com/breakpad/breakpad.git"
|
||||
gclient sync
|
||||
gclient
|
||||
|
||||
If you get errors like
|
||||
|
||||
Cannot rebase: You have unstaged changes.
|
||||
Please commit or stash them.
|
||||
Failed to update depot_tools.
|
||||
|
||||
run `git reset --hard HEAD` and execute `gclient` again
|
||||
|
||||
##### Breakpad
|
||||
|
||||
cd ..
|
||||
md breakpad && cd breakpad
|
||||
mkdir breakpad && cd breakpad
|
||||
..\depot_tools\fetch breakpad
|
||||
..\depot_tools\gclient sync
|
||||
xcopy src\src\* src /s /i
|
||||
rmdir src\src /s /q
|
||||
|
||||
#### Build
|
||||
|
||||
* Open in VS2015 **D:\\TBuild\\Libraries\\breakpad\\src\\client\\windows\\breakpad_client.sln**
|
||||
* Change "Treat WChar_t As Built in Type" to "No" in all projects & configurations (should be in project>>properties>>C/C++>>Language)
|
||||
* Change "Treat Warnings As Errors" to "No" in all projects & configurations (should be in project>>properties>>C/C++>>General)
|
||||
* Open `D:\TBuild\Libraries\breakpad\src\client\windows\breakpad_client.sln` in VS2015
|
||||
* Change `Treat WChar_t As Built in Type` to `No` in all projects & configurations (should be in Project -> Properties -> C/C++ -> Language)
|
||||
* Change `Treat Warnings As Errors` to `No` in all projects & configurations (should be in Project -> Properties -> C/C++ -> General)
|
||||
* Build Debug configuration
|
||||
* Build Release configuration
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue