mirror of
https://github.com/barry-ran/QtScrcpy.git
synced 2025-04-19 19:15:07 +00:00
feat: Option to show/hide the toolbar when connecting a device. (#1042)
* Option to show/hide the toolbar when connecting a device. * Modify the code as required.
This commit is contained in:
parent
076f9ba4c7
commit
5354ae0173
10 changed files with 121 additions and 93 deletions
Binary file not shown.
|
@ -135,10 +135,6 @@
|
|||
<source>Start Config</source>
|
||||
<translation>Start Config</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>record save path:</source>
|
||||
<translation>record save path:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>select path</source>
|
||||
<translation>select path</translation>
|
||||
|
@ -297,5 +293,13 @@
|
|||
<source>auto update</source>
|
||||
<translation>auto update</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>show toolbar</source>
|
||||
<translation>show toolbar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>record save path:</source>
|
||||
<translation>record save path:</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
Binary file not shown.
|
@ -135,10 +135,6 @@
|
|||
<source>Start Config</source>
|
||||
<translation>启动配置</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>record save path:</source>
|
||||
<translation>录像保存路径:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>select path</source>
|
||||
<translation>选择路径</translation>
|
||||
|
@ -297,5 +293,13 @@
|
|||
<source>auto update</source>
|
||||
<translation>自动刷新</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>show toolbar</source>
|
||||
<translation>显示工具栏</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>record save path:</source>
|
||||
<translation>录像保存路径</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
|
@ -195,6 +195,7 @@ void Dialog::updateBootConfig(bool toView)
|
|||
ui->stayAwakeCheck->setChecked(config.keepAlive);
|
||||
ui->useSingleModeCheck->setChecked(config.simpleMode);
|
||||
ui->autoUpdatecheckBox->setChecked(config.autoUpdateDevice);
|
||||
ui->showToolbar->setChecked(config.showToolbar);
|
||||
} else {
|
||||
UserBootConfig config;
|
||||
|
||||
|
@ -213,6 +214,8 @@ void Dialog::updateBootConfig(bool toView)
|
|||
config.keepAlive = ui->stayAwakeCheck->isChecked();
|
||||
config.simpleMode = ui->useSingleModeCheck->isChecked();
|
||||
config.autoUpdateDevice = ui->autoUpdatecheckBox->isChecked();
|
||||
config.showToolbar = ui->showToolbar->isChecked();
|
||||
|
||||
Config::getInstance().setUserBootConfig(config);
|
||||
}
|
||||
}
|
||||
|
@ -447,14 +450,15 @@ void Dialog::onDeviceConnected(bool success, const QString &serial, const QStrin
|
|||
if (!success) {
|
||||
return;
|
||||
}
|
||||
|
||||
auto videoForm = new VideoForm(ui->framelessCheck->isChecked(), Config::getInstance().getSkin());
|
||||
auto videoForm = new VideoForm(ui->framelessCheck->isChecked(), Config::getInstance().getSkin(), ui->showToolbar->isChecked());
|
||||
videoForm->setSerial(serial);
|
||||
|
||||
qsc::IDeviceManage::getInstance().getDevice(serial)->setUserData(static_cast<void*>(videoForm));
|
||||
qsc::IDeviceManage::getInstance().getDevice(serial)->registerDeviceObserver(videoForm);
|
||||
|
||||
|
||||
videoForm->showFPS(ui->fpsCheck->isChecked());
|
||||
|
||||
if (ui->alwaysTopCheck->isChecked()) {
|
||||
videoForm->staysOnTop();
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1293</width>
|
||||
<height>454</height>
|
||||
<height>502</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
|
@ -255,7 +255,7 @@
|
|||
</sizepolicy>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::ClickFocus</enum>
|
||||
<enum>Qt::FocusPolicy::ClickFocus</enum>
|
||||
</property>
|
||||
<property name="documentTitle">
|
||||
<string/>
|
||||
|
@ -626,6 +626,80 @@
|
|||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="4">
|
||||
<widget class="QCheckBox" name="fpsCheck">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>show fps</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QCheckBox" name="notDisplayCheck">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<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="1" column="0">
|
||||
<widget class="QCheckBox" name="alwaysTopCheck">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<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="0" column="0">
|
||||
<widget class="QCheckBox" name="recordScreenCheck">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>record screen</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QCheckBox" name="useReverseCheck">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>reverse connection</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QCheckBox" name="closeScreenCheck">
|
||||
<property name="sizePolicy">
|
||||
|
@ -652,80 +726,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QCheckBox" name="alwaysTopCheck">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<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="0" column="1">
|
||||
<widget class="QCheckBox" name="notDisplayCheck">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<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">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>reverse connection</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QCheckBox" name="recordScreenCheck">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>record screen</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="4">
|
||||
<widget class="QCheckBox" name="fpsCheck">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>show fps</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="4">
|
||||
<widget class="QCheckBox" name="stayAwakeCheck">
|
||||
<property name="sizePolicy">
|
||||
|
@ -739,6 +739,13 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QCheckBox" name="showToolbar">
|
||||
<property name="text">
|
||||
<string>show toolbar</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -1146,7 +1153,7 @@
|
|||
</sizepolicy>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
<enum>Qt::Orientation::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
|
|
|
@ -21,13 +21,14 @@
|
|||
#include "ui_videoform.h"
|
||||
#include "videoform.h"
|
||||
|
||||
VideoForm::VideoForm(bool framelessWindow, bool skin, QWidget *parent) : QWidget(parent), ui(new Ui::videoForm), m_skin(skin)
|
||||
VideoForm::VideoForm(bool framelessWindow, bool skin, bool showToolbar, QWidget *parent) : QWidget(parent), ui(new Ui::videoForm), m_skin(skin)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
initUI();
|
||||
installShortcut();
|
||||
updateShowSize(size());
|
||||
bool vertical = size().height() > size().width();
|
||||
this->show_toolbar = showToolbar;
|
||||
if (m_skin) {
|
||||
updateStyleSheet(vertical);
|
||||
}
|
||||
|
@ -479,7 +480,7 @@ void VideoForm::switchFullScreen()
|
|||
if (m_skin) {
|
||||
updateStyleSheet(m_frameSize.height() > m_frameSize.width());
|
||||
}
|
||||
showToolForm(true);
|
||||
showToolForm(this->show_toolbar);
|
||||
#ifdef Q_OS_WIN32
|
||||
::SetThreadExecutionState(ES_CONTINUOUS);
|
||||
#endif
|
||||
|
@ -721,9 +722,9 @@ void VideoForm::paintEvent(QPaintEvent *paint)
|
|||
void VideoForm::showEvent(QShowEvent *event)
|
||||
{
|
||||
Q_UNUSED(event)
|
||||
if (!isFullScreen()) {
|
||||
if (!isFullScreen() && this->show_toolbar) {
|
||||
QTimer::singleShot(500, this, [this](){
|
||||
showToolForm();
|
||||
showToolForm(this->show_toolbar);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ class VideoForm : public QWidget, public qsc::DeviceObserver
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit VideoForm(bool framelessWindow = false, bool skin = true, QWidget *parent = 0);
|
||||
explicit VideoForm(bool framelessWindow = false, bool skin = true, bool showToolBar = true, QWidget *parent = 0);
|
||||
~VideoForm();
|
||||
|
||||
void staysOnTop(bool top = true);
|
||||
|
@ -32,7 +32,6 @@ public:
|
|||
void removeBlackRect();
|
||||
void showFPS(bool show);
|
||||
void switchFullScreen();
|
||||
|
||||
bool isHost();
|
||||
|
||||
private:
|
||||
|
@ -85,6 +84,9 @@ private:
|
|||
bool m_skin = true;
|
||||
QPoint m_fullScreenBeforePos;
|
||||
QString m_serial;
|
||||
|
||||
//Whether to display the toolbar when connecting a device.
|
||||
bool show_toolbar = true;
|
||||
};
|
||||
|
||||
#endif // VIDEOFORM_H
|
||||
|
|
|
@ -96,6 +96,9 @@
|
|||
#define COMMON_TRAY_MESSAGE_SHOWN_KEY "TrayMessageShown"
|
||||
#define COMMON_TRAY_MESSAGE_SHOWN_DEF false
|
||||
|
||||
#define COMMON_SHOW_TOOLBAR_KEY "showToolbar"
|
||||
#define COMMON_SHOW_TOOLBAR_DEF true
|
||||
|
||||
// device config
|
||||
#define SERIAL_WINDOW_RECT_KEY_X "WindowRectX"
|
||||
#define SERIAL_WINDOW_RECT_KEY_Y "WindowRectY"
|
||||
|
@ -163,6 +166,7 @@ void Config::setUserBootConfig(const UserBootConfig &config)
|
|||
m_userData->setValue(COMMON_KEEP_ALIVE_KEY, config.keepAlive);
|
||||
m_userData->setValue(COMMON_SIMPLE_MODE_KEY, config.simpleMode);
|
||||
m_userData->setValue(COMMON_AUTO_UPDATE_DEVICE_KEY, config.autoUpdateDevice);
|
||||
m_userData->setValue(COMMON_SHOW_TOOLBAR_KEY, config.showToolbar);
|
||||
m_userData->endGroup();
|
||||
m_userData->sync();
|
||||
}
|
||||
|
@ -186,6 +190,7 @@ UserBootConfig Config::getUserBootConfig()
|
|||
config.keepAlive = m_userData->value(COMMON_KEEP_ALIVE_KEY, COMMON_KEEP_ALIVE_DEF).toBool();
|
||||
config.simpleMode = m_userData->value(COMMON_SIMPLE_MODE_KEY, COMMON_SIMPLE_MODE_DEF).toBool();
|
||||
config.autoUpdateDevice = m_userData->value(COMMON_AUTO_UPDATE_DEVICE_KEY, COMMON_AUTO_UPDATE_DEVICE_DEF).toBool();
|
||||
config.showToolbar =m_userData->value(COMMON_SHOW_TOOLBAR_KEY,COMMON_SHOW_TOOLBAR_DEF).toBool();
|
||||
m_userData->endGroup();
|
||||
return config;
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@ struct UserBootConfig
|
|||
bool keepAlive = false;
|
||||
bool simpleMode = false;
|
||||
bool autoUpdateDevice = true;
|
||||
bool showToolbar = true;
|
||||
};
|
||||
|
||||
class QSettings;
|
||||
|
|
Loading…
Add table
Reference in a new issue