feat: update Qt 5.15

This commit is contained in:
rankun 2020-06-20 09:31:43 +08:00
commit 1b6a70245d
10 changed files with 55 additions and 65 deletions

View file

@ -16,7 +16,7 @@ jobs:
runs-on: macos-latest runs-on: macos-latest
strategy: strategy:
matrix: matrix:
qt-ver: [5.12.6] qt-ver: [5.15.0]
qt-arch-install: [clang_64] qt-arch-install: [clang_64]
clang-arch: [x64] clang-arch: [x64]
env: env:
@ -31,7 +31,7 @@ jobs:
path: ${{ env.qt-install-path }}/${{ matrix.qt-arch-install }} path: ${{ env.qt-install-path }}/${{ matrix.qt-arch-install }}
key: ${{ runner.os }}/${{ matrix.qt-ver }}/${{ matrix.qt-arch-install }} key: ${{ runner.os }}/${{ matrix.qt-ver }}/${{ matrix.qt-arch-install }}
- name: Install Qt - name: Install Qt
uses: jurplel/install-qt-action@v2.6.2 uses: jurplel/install-qt-action@v2.7.1
with: with:
version: ${{ matrix.qt-ver }} version: ${{ matrix.qt-ver }}
cached: ${{ steps.cache-qt.outputs.cache-hit }} cached: ${{ steps.cache-qt.outputs.cache-hit }}

View file

@ -18,7 +18,7 @@ jobs:
strategy: strategy:
matrix: matrix:
os: [ubuntu-16.04,ubuntu-18.04] os: [ubuntu-16.04,ubuntu-18.04]
qt-ver: [5.12.6] qt-ver: [5.15.0]
qt-arch-install: [gcc_64] qt-arch-install: [gcc_64]
gcc-arch: [x64] gcc-arch: [x64]
env: env:
@ -33,7 +33,7 @@ jobs:
path: ${{ env.qt-install-path }}/${{ matrix.qt-arch-install }} path: ${{ env.qt-install-path }}/${{ matrix.qt-arch-install }}
key: ${{ runner.os }}/${{ matrix.qt-ver }}/${{ matrix.qt-arch-install }} key: ${{ runner.os }}/${{ matrix.qt-ver }}/${{ matrix.qt-arch-install }}
- name: Install Qt - name: Install Qt
uses: jurplel/install-qt-action@v2.6.2 uses: jurplel/install-qt-action@v2.7.1
with: with:
version: ${{ matrix.qt-ver }} version: ${{ matrix.qt-ver }}
cached: ${{ steps.cache-qt.outputs.cache-hit }} cached: ${{ steps.cache-qt.outputs.cache-hit }}

View file

@ -14,29 +14,30 @@ on:
jobs: jobs:
build: build:
name: Build name: Build
# windows-latest目前是windows server 2019,选择2016是2016安装的是vs2017 # windows-latest目前是windows server 2019
# windows server 2019安装的是vs2019windows server 2016安装的是vs2017
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on # https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on
runs-on: windows-2016 runs-on: windows-2019
# 矩阵配置 https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix # 矩阵配置 https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix
strategy: strategy:
matrix: matrix:
qt-ver: [5.12.6] qt-ver: [5.15.0]
qt-arch: [win64_msvc2017_64, win32_msvc2017] qt-arch: [win64_msvc2019_64, win32_msvc2019]
# 配置qt-arch的额外设置msvc-archqt-arch-install # 配置qt-arch的额外设置msvc-archqt-arch-install
include: include:
- qt-arch: win64_msvc2017_64 - qt-arch: win64_msvc2019_64
msvc-arch: x64 msvc-arch: x64
qt-arch-install: msvc2017_64 qt-arch-install: msvc2019_64
- qt-arch: win32_msvc2017 - qt-arch: win32_msvc2019
msvc-arch: x86 msvc-arch: x86
qt-arch-install: msvc2017 qt-arch-install: msvc2019
# job env,所有steps都可以访问 # job env,所有steps都可以访问
# 不同级别env详解 https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#env # 不同级别env详解 https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#env
# 使用表达式语法${{}}访问上下文 https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions # 使用表达式语法${{}}访问上下文 https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions
env: env:
target-name: QtScrcpy target-name: QtScrcpy
vcvarsall-path: 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat' vcvarsall-path: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat'
qt-install-path: ${{ github.workspace }}/${{ matrix.qt-ver }} qt-install-path: ${{ github.workspace }}/${{ matrix.qt-ver }}
plantform-des: win plantform-des: win
# 步骤 # 步骤
@ -50,7 +51,7 @@ jobs:
# 安装Qt # 安装Qt
- name: Install Qt - name: Install Qt
# 使用外部action。这个action专门用来安装Qt # 使用外部action。这个action专门用来安装Qt
uses: jurplel/install-qt-action@v2.6.2 uses: jurplel/install-qt-action@v2.7.1
with: with:
# Version of Qt to install # Version of Qt to install
version: ${{ matrix.qt-ver }} version: ${{ matrix.qt-ver }}

View file

@ -116,9 +116,9 @@ QStringList AdbProcess::getDevicesSerialFromStdOut()
{ {
// get devices serial by adb devices // get devices serial by adb devices
QStringList serials; QStringList serials;
QStringList devicesInfoList = m_standardOutput.split(QRegExp("\r\n|\n"), QString::SkipEmptyParts); QStringList devicesInfoList = m_standardOutput.split(QRegExp("\r\n|\n"), Qt::SkipEmptyParts);
for (QString deviceInfo : devicesInfoList) { for (QString deviceInfo : devicesInfoList) {
QStringList deviceInfos = deviceInfo.split(QRegExp("\t"), QString::SkipEmptyParts); QStringList deviceInfos = deviceInfo.split(QRegExp("\t"), Qt::SkipEmptyParts);
if (2 == deviceInfos.count() && 0 == deviceInfos[1].compare("device")) { if (2 == deviceInfos.count() && 0 == deviceInfos[1].compare("device")) {
serials << deviceInfos[0]; serials << deviceInfos[0];
} }

View file

@ -50,24 +50,16 @@ void InputConvertNormal::mouseEvent(const QMouseEvent *from, const QSize &frameS
void InputConvertNormal::wheelEvent(const QWheelEvent *from, const QSize &frameSize, const QSize &showSize) void InputConvertNormal::wheelEvent(const QWheelEvent *from, const QSize &frameSize, const QSize &showSize)
{ {
if (!from || 0 == from->delta()) { if (!from || from->angleDelta().isNull()) {
return; return;
} }
// delta // delta
qint32 hScroll = 0; qint32 hScroll = from->angleDelta().x() / abs(from->angleDelta().x()) * 2;
qint32 vScroll = 0; qint32 vScroll = from->angleDelta().y() / abs(from->angleDelta().y()) * 2;
switch (from->orientation()) {
case Qt::Horizontal:
hScroll = from->delta() / abs(from->delta()) * 2;
break;
case Qt::Vertical:
vScroll = from->delta() / abs(from->delta()) * 2;
break;
}
// pos // pos
QPointF pos = from->posF(); QPointF pos = from->position();
// convert pos // convert pos
pos.setX(pos.x() * frameSize.width() / showSize.width()); pos.setX(pos.x() * frameSize.width() / showSize.width());
pos.setY(pos.y() * frameSize.height() / showSize.height()); pos.setY(pos.y() * frameSize.height() / showSize.height());
@ -279,7 +271,7 @@ AndroidKeycode InputConvertNormal::convertKeyCode(int key, Qt::KeyboardModifiers
keyCode = AKEYCODE_0; keyCode = AKEYCODE_0;
break; break;
case Qt::Key_1: case Qt::Key_1:
case Qt::Key_Exclam:// ! case Qt::Key_Exclam: // !
keyCode = AKEYCODE_1; keyCode = AKEYCODE_1;
break; break;
case Qt::Key_2: case Qt::Key_2:
@ -289,11 +281,11 @@ AndroidKeycode InputConvertNormal::convertKeyCode(int key, Qt::KeyboardModifiers
keyCode = AKEYCODE_3; keyCode = AKEYCODE_3;
break; break;
case Qt::Key_4: case Qt::Key_4:
case Qt::Key_Dollar://$ case Qt::Key_Dollar: //$
keyCode = AKEYCODE_4; keyCode = AKEYCODE_4;
break; break;
case Qt::Key_5: case Qt::Key_5:
case Qt::Key_Percent:// % case Qt::Key_Percent: // %
keyCode = AKEYCODE_5; keyCode = AKEYCODE_5;
break; break;
case Qt::Key_6: case Qt::Key_6:
@ -313,53 +305,53 @@ AndroidKeycode InputConvertNormal::convertKeyCode(int key, Qt::KeyboardModifiers
case Qt::Key_Space: case Qt::Key_Space:
keyCode = AKEYCODE_SPACE; keyCode = AKEYCODE_SPACE;
break; break;
case Qt::Key_Comma://, case Qt::Key_Comma: //,
case Qt::Key_Less://< case Qt::Key_Less: //<
keyCode = AKEYCODE_COMMA; keyCode = AKEYCODE_COMMA;
break; break;
case Qt::Key_Period://. case Qt::Key_Period: //.
case Qt::Key_Greater://> case Qt::Key_Greater: //>
keyCode = AKEYCODE_PERIOD; keyCode = AKEYCODE_PERIOD;
break; break;
case Qt::Key_Minus://- case Qt::Key_Minus: //-
case Qt::Key_Underscore: //_ case Qt::Key_Underscore: //_
keyCode = AKEYCODE_MINUS; keyCode = AKEYCODE_MINUS;
break; break;
case Qt::Key_Equal://= case Qt::Key_Equal: //=
keyCode = AKEYCODE_EQUALS; keyCode = AKEYCODE_EQUALS;
break; break;
case Qt::Key_BracketLeft://[ case Qt::Key_BracketLeft: //[
case Qt::Key_BraceLeft: //{ case Qt::Key_BraceLeft: //{
keyCode = AKEYCODE_LEFT_BRACKET; keyCode = AKEYCODE_LEFT_BRACKET;
break; break;
case Qt::Key_BracketRight://] case Qt::Key_BracketRight: //]
case Qt::Key_BraceRight: //} case Qt::Key_BraceRight: //}
keyCode = AKEYCODE_RIGHT_BRACKET; keyCode = AKEYCODE_RIGHT_BRACKET;
break; break;
case Qt::Key_Backslash:// \ ???? case Qt::Key_Backslash: // \ ????
case Qt::Key_Bar: //| case Qt::Key_Bar: //|
keyCode = AKEYCODE_BACKSLASH; keyCode = AKEYCODE_BACKSLASH;
break; break;
case Qt::Key_Semicolon://; case Qt::Key_Semicolon: //;
case Qt::Key_Colon: //: case Qt::Key_Colon: //:
keyCode = AKEYCODE_SEMICOLON; keyCode = AKEYCODE_SEMICOLON;
break; break;
case Qt::Key_Apostrophe://' case Qt::Key_Apostrophe: //'
case Qt::Key_QuoteDbl: //" case Qt::Key_QuoteDbl: //"
keyCode = AKEYCODE_APOSTROPHE; keyCode = AKEYCODE_APOSTROPHE;
break; break;
case Qt::Key_Slash:// / case Qt::Key_Slash: // /
case Qt::Key_Question://? case Qt::Key_Question: //?
keyCode = AKEYCODE_SLASH; keyCode = AKEYCODE_SLASH;
break; break;
case Qt::Key_At://@ case Qt::Key_At: //@
keyCode = AKEYCODE_AT; keyCode = AKEYCODE_AT;
break; break;
case Qt::Key_Plus://+ case Qt::Key_Plus: //+
keyCode = AKEYCODE_PLUS; keyCode = AKEYCODE_PLUS;
break; break;
case Qt::Key_QuoteLeft://` case Qt::Key_QuoteLeft: //`
case Qt::Key_AsciiTilde://~ case Qt::Key_AsciiTilde: //~
keyCode = AKEYCODE_GRAVE; keyCode = AKEYCODE_GRAVE;
break; break;
case Qt::Key_NumberSign: //# case Qt::Key_NumberSign: //#

View file

@ -1,6 +1,7 @@
#ifndef DEVICE_H #ifndef DEVICE_H
#define DEVICE_H #define DEVICE_H
#include <QElapsedTimer>
#include <QPointer> #include <QPointer>
#include <QTime> #include <QTime>
@ -116,7 +117,7 @@ private:
// ui // ui
QPointer<VideoForm> m_videoForm; QPointer<VideoForm> m_videoForm;
QTime m_startTimeCount; QElapsedTimer m_startTimeCount;
DeviceParams m_params; DeviceParams m_params;
GroupControlState m_controlState = GCS_FREE; GroupControlState m_controlState = GCS_FREE;

View file

@ -595,17 +595,13 @@ void VideoForm::mouseDoubleClickEvent(QMouseEvent *event)
void VideoForm::wheelEvent(QWheelEvent *event) void VideoForm::wheelEvent(QWheelEvent *event)
{ {
if (m_videoWidget->geometry().contains(event->pos())) { if (m_videoWidget->geometry().contains(event->position().toPoint())) {
if (!m_device) { if (!m_device) {
return; return;
} }
QPointF pos = m_videoWidget->mapFrom(this, event->pos()); QPointF pos = m_videoWidget->mapFrom(this, event->position().toPoint());
/* QWheelEvent wheelEvent(
QWheelEvent(const QPointF &pos, const QPointF& globalPos, int delta, pos, event->globalPosition(), event->pixelDelta(), event->angleDelta(), event->buttons(), event->modifiers(), event->phase(), event->inverted());
Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers,
Qt::Orientation orient = Qt::Vertical);
*/
QWheelEvent wheelEvent(pos, event->globalPosF(), event->delta(), event->buttons(), event->modifiers(), event->orientation());
emit m_device->wheelEvent(&wheelEvent, m_videoWidget->frameSize(), m_videoWidget->size()); emit m_device->wheelEvent(&wheelEvent, m_videoWidget->frameSize(), m_videoWidget->size());
} }
} }

View file

@ -137,7 +137,7 @@ void Dialog::execAdbCmd()
} }
QString cmd = ui->adbCommandEdt->text().trimmed(); QString cmd = ui->adbCommandEdt->text().trimmed();
outLog("adb " + cmd, false); outLog("adb " + cmd, false);
m_adb.execute(ui->serialBox->currentText().trimmed(), cmd.split(" ", QString::SkipEmptyParts)); m_adb.execute(ui->serialBox->currentText().trimmed(), cmd.split(" ", Qt::SkipEmptyParts));
} }
QString Dialog::getGameScript(const QString &fileName) QString Dialog::getGameScript(const QString &fileName)

View file

@ -241,7 +241,7 @@ There are several reasons listed as below according to importance (high to low).
All the dependencies are provided and it is easy to compile. All the dependencies are provided and it is easy to compile.
### PC client ### PC client
1. Set up the Qt development environment on the target platform (Qt >= 5.12.0, vs >= 2017 (mingw not supported)) 1. Set up the Qt development environment on the target platform (Qt == 5.15.0, vs == 2017 (mingw not supported))
2. Clone the project 2. Clone the project
3. Open the project root directory all.pro with QtCreator 3. Open the project root directory all.pro with QtCreator
4. Compile and run 4. Compile and run

View file

@ -240,7 +240,7 @@ Mac OS平台你可以直接使用我编译好的可执行程序:
尽量提供了所有依赖资源,方便傻瓜式编译。 尽量提供了所有依赖资源,方便傻瓜式编译。
### PC端 ### PC端
1. 目标平台上搭建Qt开发环境(Qt >= 5.12.0, vs >= 2017 (**不支持mingw**)) 1. 目标平台上搭建Qt开发环境(Qt == 5.15, vs == 2017 (**不支持mingw**))
2. 克隆该项目 2. 克隆该项目
3. 使用QtCreator打开项目根目录all.pro 3. 使用QtCreator打开项目根目录all.pro
4. 编译,运行即可 4. 编译,运行即可