Use external video player by hidden setting (#3021)

Signed-off-by: Behnam Emamian <emamian@persianprocess.com> (github: BehnamEmamian)
This commit is contained in:
Behnam Emamian 2017-02-17 23:50:27 +11:00 committed by Christoph
parent e071e2cf6f
commit 54c409d967
5 changed files with 28 additions and 4 deletions

View File

@ -559,6 +559,7 @@ enum {
dbiNotificationsCorner = 0x46,
dbiTheme = 0x47,
dbiDialogsWidthRatio = 0x48,
dbiUseExternalVideoPlayer = 0x49,
dbiEncryptedWithSalt = 333,
dbiEncrypted = 444,
@ -928,6 +929,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;
@ -1656,6 +1665,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());
{
RecentEmojisPreload v(cRecentEmojisPreload());

View File

@ -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;

View File

@ -69,6 +69,7 @@ DeclareSetting(bool, AutoStart);
DeclareSetting(bool, StartMinimized);
DeclareSetting(bool, StartInTray);
DeclareSetting(bool, SendToMenu);
DeclareSetting(bool, UseExternalVideoPlayer);
enum LaunchMode {
LaunchModeNormal = 0,
LaunchModeAutoStart,

View File

@ -88,6 +88,14 @@ void fillCodes() {
main->getDifference();
}
});
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) {

View File

@ -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() {