feat: add framess window

This commit is contained in:
rankun 2020-03-16 12:47:10 +08:00
parent 9bcfed92db
commit 748603a587
14 changed files with 151 additions and 101 deletions

View file

@ -35,7 +35,7 @@ Device::Device(DeviceParams params, QObject *parent)
m_decoder = new Decoder(m_vb, this);
m_fileHandler = new FileHandler(this);
m_controller = new Controller(params.gameScript, this);
m_videoForm = new VideoForm(Config::getInstance().getSkin());
m_videoForm = new VideoForm(Config::getInstance().getFramelessWindow(), Config::getInstance().getSkin());
m_videoForm->setDevice(this);
}

View file

@ -25,7 +25,7 @@ extern "C"
#include "libavutil/frame.h"
}
VideoForm::VideoForm(bool skin, QWidget *parent)
VideoForm::VideoForm(bool framelessWindow, bool skin, QWidget *parent)
: QWidget(parent)
, ui(new Ui::videoForm)
, m_skin(skin)
@ -38,6 +38,9 @@ VideoForm::VideoForm(bool skin, QWidget *parent)
if (m_skin) {
updateStyleSheet(vertical);
}
if (framelessWindow) {
setWindowFlags(windowFlags() | Qt::FramelessWindowHint);
}
}
VideoForm::~VideoForm()

View file

@ -17,7 +17,7 @@ class VideoForm : public QWidget
{
Q_OBJECT
public:
explicit VideoForm(bool skin = true, QWidget *parent = 0);
explicit VideoForm(bool framelessWindow = false, bool skin = true, QWidget *parent = 0);
~VideoForm();
void staysOnTop(bool top = true);

View file

@ -98,6 +98,7 @@ void Dialog::initUI()
ui->formatBox->setCurrentIndex(Config::getInstance().getRecordFormatIndex());
ui->recordPathEdt->setText(Config::getInstance().getRecordPath());
ui->framelessCheck->setChecked(Config::getInstance().getFramelessWindow());
#ifdef Q_OS_OSX
// mac need more width
@ -384,3 +385,9 @@ void Dialog::on_formatBox_activated(int index)
{
Config::getInstance().setRecordFormatIndex(index);
}
void Dialog::on_framelessCheck_stateChanged(int arg1)
{
Q_UNUSED(arg1)
Config::getInstance().setFramelessWindow(ui->framelessCheck->isChecked());
}

View file

@ -62,6 +62,8 @@ private slots:
void on_formatBox_activated(int index);
void on_framelessCheck_stateChanged(int arg1);
private:
bool checkAdbRun();
void initUI();

View file

@ -215,6 +215,22 @@
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="alwaysTopCheck">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>always on top</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QCheckBox" name="closeScreenCheck">
<property name="sizePolicy">
@ -228,22 +244,6 @@
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="notDisplayCheck">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>background record</string>
</property>
<property name="checkable">
<bool>false</bool>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QCheckBox" name="useReverseCheck">
<property name="sizePolicy">
@ -260,8 +260,8 @@
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="alwaysTopCheck">
<item row="0" column="1">
<widget class="QCheckBox" name="notDisplayCheck">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
@ -269,13 +269,20 @@
</sizepolicy>
</property>
<property name="text">
<string>always on top</string>
<string>background record</string>
</property>
<property name="checked">
<property name="checkable">
<bool>false</bool>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QCheckBox" name="framelessCheck">
<property name="text">
<string>frameless</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>

Binary file not shown.

View file

@ -16,22 +16,22 @@
<translation type="vanished">file transfer failed</translation>
</message>
<message>
<location filename="../../device/device.cpp" line="134"/>
<location filename="../../device/device.cpp" line="183"/>
<source>install apk</source>
<translation>install apk</translation>
</message>
<message>
<location filename="../../device/device.cpp" line="136"/>
<location filename="../../device/device.cpp" line="185"/>
<source>file transfer</source>
<translation>file transfer</translation>
</message>
<message>
<location filename="../../device/device.cpp" line="139"/>
<location filename="../../device/device.cpp" line="189"/>
<source>wait current %1 to complete</source>
<translation>wait current %1 to complete</translation>
</message>
<message>
<location filename="../../device/device.cpp" line="142"/>
<location filename="../../device/device.cpp" line="192"/>
<source>%1 complete, save in %2</source>
<translation>%1 complete, save in %2</translation>
</message>
@ -41,7 +41,7 @@
<translation type="vanished">%1 complete\n save in %2</translation>
</message>
<message>
<location filename="../../device/device.cpp" line="145"/>
<location filename="../../device/device.cpp" line="195"/>
<source>%1 failed</source>
<translation>%1 failed</translation>
</message>
@ -49,17 +49,17 @@
<context>
<name>Dialog</name>
<message>
<location filename="../../dialog.ui" line="415"/>
<location filename="../../dialog.ui" line="422"/>
<source>Wireless</source>
<translation>Wireless</translation>
</message>
<message>
<location filename="../../dialog.ui" line="499"/>
<location filename="../../dialog.ui" line="506"/>
<source>wireless connect</source>
<translation>wireless connect</translation>
</message>
<message>
<location filename="../../dialog.ui" line="515"/>
<location filename="../../dialog.ui" line="522"/>
<source>wireless disconnect</source>
<translation>wireless disconnect</translation>
</message>
@ -75,7 +75,7 @@
</message>
<message>
<location filename="../../dialog.ui" line="144"/>
<location filename="../../dialog.cpp" line="294"/>
<location filename="../../dialog.cpp" line="305"/>
<source>select path</source>
<translation>select path</translation>
</message>
@ -90,27 +90,32 @@
<translation>record screen</translation>
</message>
<message>
<location filename="../../dialog.ui" line="372"/>
<location filename="../../dialog.ui" line="282"/>
<source>frameless</source>
<translation>frameless</translation>
</message>
<message>
<location filename="../../dialog.ui" line="379"/>
<source>stop all server</source>
<translation>stop all server</translation>
</message>
<message>
<location filename="../../dialog.ui" line="549"/>
<location filename="../../dialog.ui" line="556"/>
<source>adb command:</source>
<translation>adb command:</translation>
</message>
<message>
<location filename="../../dialog.ui" line="585"/>
<location filename="../../dialog.ui" line="592"/>
<source>terminate</source>
<translation>terminate</translation>
</message>
<message>
<location filename="../../dialog.ui" line="572"/>
<location filename="../../dialog.ui" line="579"/>
<source>execute</source>
<translation>execute</translation>
</message>
<message>
<location filename="../../dialog.ui" line="598"/>
<location filename="../../dialog.ui" line="605"/>
<source>clear</source>
<translation>clear</translation>
</message>
@ -124,12 +129,12 @@
<translation type="vanished">auto enable</translation>
</message>
<message>
<location filename="../../dialog.ui" line="240"/>
<location filename="../../dialog.ui" line="272"/>
<source>background record</source>
<translation>background record</translation>
</message>
<message>
<location filename="../../dialog.ui" line="227"/>
<location filename="../../dialog.ui" line="243"/>
<source>screen-off</source>
<translation>screen-off</translation>
</message>
@ -144,7 +149,7 @@
<translation>max size:</translation>
</message>
<message>
<location filename="../../dialog.ui" line="272"/>
<location filename="../../dialog.ui" line="227"/>
<source>always on top</source>
<translation>always on top</translation>
</message>
@ -154,27 +159,27 @@
<translation>refresh script</translation>
</message>
<message>
<location filename="../../dialog.ui" line="389"/>
<location filename="../../dialog.ui" line="396"/>
<source>get device IP</source>
<translation>get device IP</translation>
</message>
<message>
<location filename="../../dialog.ui" line="288"/>
<location filename="../../dialog.ui" line="295"/>
<source>USB line</source>
<translation>USB line</translation>
</message>
<message>
<location filename="../../dialog.ui" line="344"/>
<location filename="../../dialog.ui" line="351"/>
<source>stop server</source>
<translation>stop server</translation>
</message>
<message>
<location filename="../../dialog.ui" line="334"/>
<location filename="../../dialog.ui" line="341"/>
<source>start server</source>
<translation>start server</translation>
</message>
<message>
<location filename="../../dialog.ui" line="324"/>
<location filename="../../dialog.ui" line="331"/>
<source>device serial:</source>
<translation>device serial:</translation>
</message>
@ -188,12 +193,12 @@
<translation>bit rate:</translation>
</message>
<message>
<location filename="../../dialog.ui" line="399"/>
<location filename="../../dialog.ui" line="406"/>
<source>start adbd</source>
<translation>start adbd</translation>
</message>
<message>
<location filename="../../dialog.ui" line="379"/>
<location filename="../../dialog.ui" line="386"/>
<source>refresh devices</source>
<translation>refresh devices</translation>
</message>
@ -206,7 +211,7 @@
<context>
<name>QObject</name>
<message>
<location filename="../../main.cpp" line="80"/>
<location filename="../../main.cpp" line="101"/>
<source>This software is completely open source and free, you can download it at the following address:</source>
<translation>This software is completely open source and free, you can download it at the following address:</translation>
</message>
@ -219,12 +224,12 @@
<translation>Tool</translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="26"/>
<location filename="../../device/ui/toolform.ui" line="33"/>
<source>full screen</source>
<translation>full screen</translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="49"/>
<location filename="../../device/ui/toolform.ui" line="56"/>
<source>expand notify</source>
<translation>expand notify</translation>
</message>
@ -237,52 +242,52 @@
<translation type="vanished">turn on</translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="59"/>
<location filename="../../device/ui/toolform.ui" line="66"/>
<source>touch switch</source>
<translation>touch switch</translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="69"/>
<location filename="../../device/ui/toolform.ui" line="76"/>
<source>close screen</source>
<translation>close screen</translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="79"/>
<location filename="../../device/ui/toolform.ui" line="86"/>
<source>power</source>
<translation>power</translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="89"/>
<location filename="../../device/ui/toolform.ui" line="96"/>
<source>volume up</source>
<translation>volume up</translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="99"/>
<location filename="../../device/ui/toolform.ui" line="106"/>
<source>volume down</source>
<translation>volume down</translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="109"/>
<location filename="../../device/ui/toolform.ui" line="116"/>
<source>app switch</source>
<translation>app switch</translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="119"/>
<location filename="../../device/ui/toolform.ui" line="126"/>
<source>menu</source>
<translation>menu</translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="129"/>
<location filename="../../device/ui/toolform.ui" line="136"/>
<source>home</source>
<translation>home</translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="139"/>
<location filename="../../device/ui/toolform.ui" line="146"/>
<source>return</source>
<translation>return</translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="149"/>
<location filename="../../device/ui/toolform.ui" line="156"/>
<source>screen shot</source>
<translation>screen shot</translation>
</message>
@ -302,7 +307,7 @@
<translation type="vanished">file transfer failed</translation>
</message>
<message>
<location filename="../../device/ui/videoform.cpp" line="415"/>
<location filename="../../device/ui/videoform.cpp" line="657"/>
<source>file does not exist</source>
<translation>file does not exist</translation>
</message>

Binary file not shown.

View file

@ -16,22 +16,22 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../../device/device.cpp" line="134"/>
<location filename="../../device/device.cpp" line="183"/>
<source>install apk</source>
<translation>apk</translation>
</message>
<message>
<location filename="../../device/device.cpp" line="136"/>
<location filename="../../device/device.cpp" line="185"/>
<source>file transfer</source>
<translation></translation>
</message>
<message>
<location filename="../../device/device.cpp" line="139"/>
<location filename="../../device/device.cpp" line="189"/>
<source>wait current %1 to complete</source>
<translation>%1</translation>
</message>
<message>
<location filename="../../device/device.cpp" line="142"/>
<location filename="../../device/device.cpp" line="192"/>
<source>%1 complete, save in %2</source>
<translation>%1,%2</translation>
</message>
@ -41,7 +41,7 @@
<translation type="vanished">%1\n %2</translation>
</message>
<message>
<location filename="../../device/device.cpp" line="145"/>
<location filename="../../device/device.cpp" line="195"/>
<source>%1 failed</source>
<translation>%1 </translation>
</message>
@ -49,17 +49,17 @@
<context>
<name>Dialog</name>
<message>
<location filename="../../dialog.ui" line="415"/>
<location filename="../../dialog.ui" line="422"/>
<source>Wireless</source>
<translation>线</translation>
</message>
<message>
<location filename="../../dialog.ui" line="499"/>
<location filename="../../dialog.ui" line="506"/>
<source>wireless connect</source>
<translation>线</translation>
</message>
<message>
<location filename="../../dialog.ui" line="515"/>
<location filename="../../dialog.ui" line="522"/>
<source>wireless disconnect</source>
<translation>线</translation>
</message>
@ -75,7 +75,7 @@
</message>
<message>
<location filename="../../dialog.ui" line="144"/>
<location filename="../../dialog.cpp" line="294"/>
<location filename="../../dialog.cpp" line="305"/>
<source>select path</source>
<translation></translation>
</message>
@ -90,27 +90,32 @@
<translation></translation>
</message>
<message>
<location filename="../../dialog.ui" line="372"/>
<location filename="../../dialog.ui" line="282"/>
<source>frameless</source>
<translation></translation>
</message>
<message>
<location filename="../../dialog.ui" line="379"/>
<source>stop all server</source>
<translation></translation>
</message>
<message>
<location filename="../../dialog.ui" line="549"/>
<location filename="../../dialog.ui" line="556"/>
<source>adb command:</source>
<translation>adb命令</translation>
</message>
<message>
<location filename="../../dialog.ui" line="585"/>
<location filename="../../dialog.ui" line="592"/>
<source>terminate</source>
<translation></translation>
</message>
<message>
<location filename="../../dialog.ui" line="572"/>
<location filename="../../dialog.ui" line="579"/>
<source>execute</source>
<translation></translation>
</message>
<message>
<location filename="../../dialog.ui" line="598"/>
<location filename="../../dialog.ui" line="605"/>
<source>clear</source>
<translation></translation>
</message>
@ -124,12 +129,12 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../../dialog.ui" line="240"/>
<location filename="../../dialog.ui" line="272"/>
<source>background record</source>
<translation></translation>
</message>
<message>
<location filename="../../dialog.ui" line="227"/>
<location filename="../../dialog.ui" line="243"/>
<source>screen-off</source>
<translation></translation>
</message>
@ -144,7 +149,7 @@
<translation></translation>
</message>
<message>
<location filename="../../dialog.ui" line="272"/>
<location filename="../../dialog.ui" line="227"/>
<source>always on top</source>
<translation></translation>
</message>
@ -154,27 +159,27 @@
<translation></translation>
</message>
<message>
<location filename="../../dialog.ui" line="389"/>
<location filename="../../dialog.ui" line="396"/>
<source>get device IP</source>
<translation>IP</translation>
</message>
<message>
<location filename="../../dialog.ui" line="288"/>
<location filename="../../dialog.ui" line="295"/>
<source>USB line</source>
<translation>USB线</translation>
</message>
<message>
<location filename="../../dialog.ui" line="344"/>
<location filename="../../dialog.ui" line="351"/>
<source>stop server</source>
<translation></translation>
</message>
<message>
<location filename="../../dialog.ui" line="334"/>
<location filename="../../dialog.ui" line="341"/>
<source>start server</source>
<translation></translation>
</message>
<message>
<location filename="../../dialog.ui" line="324"/>
<location filename="../../dialog.ui" line="331"/>
<source>device serial:</source>
<translation></translation>
</message>
@ -188,12 +193,12 @@
<translation></translation>
</message>
<message>
<location filename="../../dialog.ui" line="399"/>
<location filename="../../dialog.ui" line="406"/>
<source>start adbd</source>
<translation>adbd</translation>
</message>
<message>
<location filename="../../dialog.ui" line="379"/>
<location filename="../../dialog.ui" line="386"/>
<source>refresh devices</source>
<translation></translation>
</message>
@ -206,7 +211,7 @@
<context>
<name>QObject</name>
<message>
<location filename="../../main.cpp" line="80"/>
<location filename="../../main.cpp" line="101"/>
<source>This software is completely open source and free, you can download it at the following address:</source>
<translation></translation>
</message>
@ -219,12 +224,12 @@
<translation></translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="26"/>
<location filename="../../device/ui/toolform.ui" line="33"/>
<source>full screen</source>
<translation></translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="49"/>
<location filename="../../device/ui/toolform.ui" line="56"/>
<source>expand notify</source>
<translation></translation>
</message>
@ -237,52 +242,52 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="59"/>
<location filename="../../device/ui/toolform.ui" line="66"/>
<source>touch switch</source>
<translation></translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="69"/>
<location filename="../../device/ui/toolform.ui" line="76"/>
<source>close screen</source>
<translation></translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="79"/>
<location filename="../../device/ui/toolform.ui" line="86"/>
<source>power</source>
<translation></translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="89"/>
<location filename="../../device/ui/toolform.ui" line="96"/>
<source>volume up</source>
<translation></translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="99"/>
<location filename="../../device/ui/toolform.ui" line="106"/>
<source>volume down</source>
<translation></translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="109"/>
<location filename="../../device/ui/toolform.ui" line="116"/>
<source>app switch</source>
<translation></translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="119"/>
<location filename="../../device/ui/toolform.ui" line="126"/>
<source>menu</source>
<translation></translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="129"/>
<location filename="../../device/ui/toolform.ui" line="136"/>
<source>home</source>
<translation></translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="139"/>
<location filename="../../device/ui/toolform.ui" line="146"/>
<source>return</source>
<translation></translation>
</message>
<message>
<location filename="../../device/ui/toolform.ui" line="149"/>
<location filename="../../device/ui/toolform.ui" line="156"/>
<source>screen shot</source>
<translation></translation>
</message>
@ -302,7 +307,7 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../../device/ui/videoform.cpp" line="415"/>
<location filename="../../device/ui/videoform.cpp" line="657"/>
<source>file does not exist</source>
<translation></translation>
</message>

View file

@ -50,6 +50,9 @@
#define SERIAL_WINDOW_RECT_KEY_H "WindowRectH"
#define SERIAL_WINDOW_RECT_KEY_DEF -1
#define COMMON_FRAMELESS_WINDOW_KEY "FramelessWindow"
#define COMMON_FRAMELESS_WINDOW_DEF false
// 最大尺寸 录制格式
QString Config::s_configPath = "";
@ -169,6 +172,22 @@ QRect Config::getRect(const QString &serial)
return rc;
}
void Config::setFramelessWindow(bool frameless)
{
m_userData->beginGroup(GROUP_COMMON);
m_userData->setValue(COMMON_FRAMELESS_WINDOW_KEY, frameless);
m_userData->endGroup();
}
bool Config::getFramelessWindow()
{
bool framelessWindow = false;
m_userData->beginGroup(GROUP_COMMON);
framelessWindow = m_userData->value(COMMON_FRAMELESS_WINDOW_KEY, COMMON_FRAMELESS_WINDOW_DEF).toBool();
m_userData->endGroup();
return framelessWindow;
}
QString Config::getServerVersion()
{
QString server;

View file

@ -32,6 +32,8 @@ public:
void setRecordFormatIndex(int recordFormatIndex);
void setRect(const QString &serial, const QRect &rc);
QRect getRect(const QString &serial);
bool getFramelessWindow();
void setFramelessWindow(bool frameless);
private:
explicit Config(QObject *parent = nullptr);

View file

@ -226,7 +226,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.
### PC client
1. Set up the Qt development environment on the target platform (Qt >= 5.9.7, vs >= 2015 (mingw not supported))
1. Set up the Qt development environment on the target platform (Qt >= 5.12.0, vs >= 2017 (mingw not supported))
2. Clone the project
3. Open the project root directory all.pro with QtCreator
4. Compile and run

View file

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