From 1c2289f2ce18b7a4eff15c9a06979769efe3f991 Mon Sep 17 00:00:00 2001 From: John Preston Date: Wed, 28 Jan 2015 16:29:01 +0300 Subject: [PATCH] alt-up and alt-down scroll through dialogs, fixed compile on windows --- Telegram/SourceFiles/gui/flattextarea.cpp | 4 ++-- Telegram/SourceFiles/historywidget.cpp | 18 ++++++++++++++++-- Telegram/SourceFiles/settings.cpp | 10 +++++----- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/Telegram/SourceFiles/gui/flattextarea.cpp b/Telegram/SourceFiles/gui/flattextarea.cpp index 32c2607ffd..a7d25975d9 100644 --- a/Telegram/SourceFiles/gui/flattextarea.cpp +++ b/Telegram/SourceFiles/gui/flattextarea.cpp @@ -547,10 +547,10 @@ void FlatTextarea::keyPressEvent(QKeyEvent *e) { if (tc == textCursor()) { bool check = false; if (e->key() == Qt::Key_PageUp || e->key() == Qt::Key_Up) { - tc.movePosition(QTextCursor::Start); + tc.movePosition(QTextCursor::Start, e->modifiers().testFlag(Qt::ShiftModifier) ? QTextCursor::KeepAnchor : QTextCursor::MoveAnchor); check = true; } else if (e->key() == Qt::Key_PageDown || e->key() == Qt::Key_Down) { - tc.movePosition(QTextCursor::End); + tc.movePosition(QTextCursor::End, e->modifiers().testFlag(Qt::ShiftModifier) ? QTextCursor::KeepAnchor : QTextCursor::MoveAnchor); check = true; } if (check) { diff --git a/Telegram/SourceFiles/historywidget.cpp b/Telegram/SourceFiles/historywidget.cpp index 5a70e5ba70..6066a08ec1 100644 --- a/Telegram/SourceFiles/historywidget.cpp +++ b/Telegram/SourceFiles/historywidget.cpp @@ -3384,9 +3384,23 @@ void HistoryWidget::keyPressEvent(QKeyEvent *e) { _scroll.scrollToY(_scroll.scrollTop() - _scroll.height()); } } else if (e->key() == Qt::Key_Down) { - _scroll.scrollToY(_scroll.scrollTop() + _scroll.height() / 10); + if (e->modifiers() & Qt::AltModifier) { + PeerData *after = 0; + MsgId afterMsgId = 0; + App::main()->peerAfter(histPeer, hist ? hist->activeMsgId : 0, after, afterMsgId); + if (after) App::main()->showPeer(after->id, afterMsgId); + } else if (!(e->modifiers() & (Qt::ShiftModifier | Qt::MetaModifier | Qt::ControlModifier))) { + _scroll.scrollToY(_scroll.scrollTop() + _scroll.height() / 10); + } } else if (e->key() == Qt::Key_Up) { - _scroll.scrollToY(_scroll.scrollTop() - _scroll.height() / 10); + if (e->modifiers() & Qt::AltModifier) { + PeerData *before = 0; + MsgId beforeMsgId = 0; + App::main()->peerBefore(histPeer, hist ? hist->activeMsgId : 0, before, beforeMsgId); + if (before) App::main()->showPeer(before->id, beforeMsgId); + } else if (!(e->modifiers() & (Qt::ShiftModifier | Qt::MetaModifier | Qt::ControlModifier))) { + _scroll.scrollToY(_scroll.scrollTop() - _scroll.height() / 10); + } } else if ((e->key() == Qt::Key_Tab || e->key() == Qt::Key_Backtab) && ((e->modifiers() & Qt::ControlModifier) || (e->modifiers() & Qt::MetaModifier))) { PeerData *p = 0; MsgId m = 0; diff --git a/Telegram/SourceFiles/settings.cpp b/Telegram/SourceFiles/settings.cpp index 6dbc2881c3..f97fe603f0 100644 --- a/Telegram/SourceFiles/settings.cpp +++ b/Telegram/SourceFiles/settings.cpp @@ -129,11 +129,11 @@ int gNotifyDefaultDelay = 1500; int gOtherOnline = 0; void settingsParseArgs(int argc, char *argv[]) { - if (cPlatform() == dbipMac) { - gCustomNotifies = (QSysInfo::macVersion() < QSysInfo::MV_10_8); - } else { - gCustomNotifies = true; - } +#ifdef Q_OS_MAC + gCustomNotifies = (QSysInfo::macVersion() < QSysInfo::MV_10_8); +#else + gCustomNotifies = true; +#endif memset_rand(&gInstance, sizeof(gInstance)); gExeDir = psCurrentExeDirectory(argc, argv); gExeName = psCurrentExeName(argc, argv);