mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 09:23:03 +00:00
chore: 整理项目代码,方便维护
整理代码 对QScreen相关的操作合并到DisplayManager中,便于维护 Log: 整理项目代码,方便维护 Influence: 无 Task: https://pms.uniontech.com/task-view-112769.html Change-Id: I3efbc2bf45fc1f210fd2e1b9908fc76b317eed71
This commit is contained in:
parent
044f13a219
commit
ebd7ef9c18
@ -35,6 +35,7 @@ DisplayManager::DisplayManager(QObject *parent)
|
|||||||
{
|
{
|
||||||
connect(qApp, &QApplication::primaryScreenChanged, this, &DisplayManager::primaryScreenChanged);
|
connect(qApp, &QApplication::primaryScreenChanged, this, &DisplayManager::primaryScreenChanged);
|
||||||
if (Utils::IS_WAYLAND_DISPLAY) {
|
if (Utils::IS_WAYLAND_DISPLAY) {
|
||||||
|
// TODO wayland下无主屏概念,此方案并不是最优解,窗管如果扩展了这部分协议,我们可以通过协议达成此目的
|
||||||
m_displayInter = new DisplayInter("com.deepin.daemon.Display", "/com/deepin/daemon/Display",QDBusConnection::sessionBus(), this);
|
m_displayInter = new DisplayInter("com.deepin.daemon.Display", "/com/deepin/daemon/Display",QDBusConnection::sessionBus(), this);
|
||||||
connect(m_displayInter, &__Display::PrimaryChanged, this, &DisplayManager::dockInfoChanged);
|
connect(m_displayInter, &__Display::PrimaryChanged, this, &DisplayManager::dockInfoChanged);
|
||||||
connect(m_displayInter, &__Display::DisplayModeChanged, this, &DisplayManager::dockInfoChanged);
|
connect(m_displayInter, &__Display::DisplayModeChanged, this, &DisplayManager::dockInfoChanged);
|
||||||
@ -152,8 +153,6 @@ bool DisplayManager::isCopyMode()
|
|||||||
*/
|
*/
|
||||||
void DisplayManager::updateScreenDockInfo()
|
void DisplayManager::updateScreenDockInfo()
|
||||||
{
|
{
|
||||||
// TODO 目前仅仅支持双屏,如果超过双屏,会出现异常,这里可以考虑做成通用的处理规则
|
|
||||||
|
|
||||||
// 先清除原先的数据,然后再更新
|
// 先清除原先的数据,然后再更新
|
||||||
m_screenPositionMap.clear();
|
m_screenPositionMap.clear();
|
||||||
|
|
||||||
@ -189,7 +188,7 @@ void DisplayManager::updateScreenDockInfo()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 适配多个屏幕的情况
|
// 适配任意多个屏幕的情况
|
||||||
for(auto s : m_screens) {
|
for(auto s : m_screens) {
|
||||||
QList<QScreen *> otherScreens = m_screens;
|
QList<QScreen *> otherScreens = m_screens;
|
||||||
otherScreens.removeAll(s);
|
otherScreens.removeAll(s);
|
||||||
@ -290,6 +289,7 @@ void DisplayManager::screenCountChanged()
|
|||||||
for (auto s : to_remove_list) {
|
for (auto s : to_remove_list) {
|
||||||
disconnect(s);
|
disconnect(s);
|
||||||
m_screens.removeOne(s);
|
m_screens.removeOne(s);
|
||||||
|
Q_EMIT screenRemoved(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 创建关联
|
// 创建关联
|
||||||
@ -312,6 +312,7 @@ void DisplayManager::screenCountChanged()
|
|||||||
connect(s, &QScreen::refreshRateChanged, this, &DisplayManager::dockInfoChanged);
|
connect(s, &QScreen::refreshRateChanged, this, &DisplayManager::dockInfoChanged);
|
||||||
|
|
||||||
m_screens.append(s);
|
m_screens.append(s);
|
||||||
|
Q_EMIT screenAdded(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 屏幕数量发生变化,应该刷新一下任务栏的显示
|
// 屏幕数量发生变化,应该刷新一下任务栏的显示
|
||||||
|
@ -35,6 +35,14 @@ using namespace Dock;
|
|||||||
class QScreen;
|
class QScreen;
|
||||||
class QTimer;
|
class QTimer;
|
||||||
class QGSettings;
|
class QGSettings;
|
||||||
|
/**
|
||||||
|
* @brief The DisplayManager class
|
||||||
|
* @note 1、对QScreen信息的获取和监听进行了封装,不应该在此程序的其他处再出现类似的代码,而是从当前实例中进行提供
|
||||||
|
* @note 2、对显示相关数据的读写尽可能通过Qt库进行,而不是通过一些DBus服务,
|
||||||
|
* @note 目的一是为了解耦
|
||||||
|
* @note 二是DBus服务的稳定性较低,有部分问题存在
|
||||||
|
* @note 三是DBus服务(特指Display相关)刚开始的目的是为了做一些架构和特殊机器的兼容适配工作,因为qt适配开展较慢,所以才有了DBus服务的存在,目前qt已足够稳定,我们不应该再大量使用后端提供的Display服务
|
||||||
|
*/
|
||||||
class DisplayManager: public QObject, public Singleton<DisplayManager>
|
class DisplayManager: public QObject, public Singleton<DisplayManager>
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -60,8 +68,10 @@ private Q_SLOTS:
|
|||||||
void onGSettingsChanged(const QString &key);
|
void onGSettingsChanged(const QString &key);
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void primaryScreenChanged();
|
void primaryScreenChanged(QScreen *s);
|
||||||
void screenInfoChanged(); // 屏幕信息发生变化,需要调整任务栏显示,只需要这一个信号,其他的都不要,简化流程
|
void screenInfoChanged(); // 屏幕信息发生变化,需要调整任务栏显示,只需要这一个信号,其他的都不要,简化流程
|
||||||
|
void screenAdded(QScreen *s);
|
||||||
|
void screenRemoved(QScreen *s);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QList<QScreen *> m_screens;
|
QList<QScreen *> m_screens;
|
||||||
|
@ -24,6 +24,8 @@
|
|||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "displaymanager.h"
|
#include "displaymanager.h"
|
||||||
|
|
||||||
|
#include <DWindowManagerHelper>
|
||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QScreen>
|
#include <QScreen>
|
||||||
#include <QEvent>
|
#include <QEvent>
|
||||||
@ -45,10 +47,9 @@ const QString OnlyShowPrimary = "onlyShowPrimary";
|
|||||||
// 保证以下数据更新顺序(大环节顺序不要变,内部还有一些小的调整,比如任务栏显示区域更新的时候,里面内容的布局方向可能也要更新...)
|
// 保证以下数据更新顺序(大环节顺序不要变,内部还有一些小的调整,比如任务栏显示区域更新的时候,里面内容的布局方向可能也要更新...)
|
||||||
// Monitor数据->屏幕是否可停靠更新->监视唤醒区域更新,任务栏显示区域更新->拖拽区域更新->通知后端接口,通知窗管
|
// Monitor数据->屏幕是否可停靠更新->监视唤醒区域更新,任务栏显示区域更新->拖拽区域更新->通知后端接口,通知窗管
|
||||||
|
|
||||||
MultiScreenWorker::MultiScreenWorker(QWidget *parent, DWindowManagerHelper *helper)
|
MultiScreenWorker::MultiScreenWorker(QWidget *parent)
|
||||||
: QObject(parent)
|
: QObject(parent)
|
||||||
, m_parent(parent)
|
, m_parent(parent)
|
||||||
, m_wmHelper(helper)
|
|
||||||
, m_eventInter(new XEventMonitor("com.deepin.api.XEventMonitor", "/com/deepin/api/XEventMonitor", QDBusConnection::sessionBus(), this))
|
, m_eventInter(new XEventMonitor("com.deepin.api.XEventMonitor", "/com/deepin/api/XEventMonitor", QDBusConnection::sessionBus(), this))
|
||||||
, m_extralEventInter(new XEventMonitor("com.deepin.api.XEventMonitor", "/com/deepin/api/XEventMonitor", QDBusConnection::sessionBus(), this))
|
, m_extralEventInter(new XEventMonitor("com.deepin.api.XEventMonitor", "/com/deepin/api/XEventMonitor", QDBusConnection::sessionBus(), this))
|
||||||
, m_touchEventInter(new XEventMonitor("com.deepin.api.XEventMonitor", "/com/deepin/api/XEventMonitor", QDBusConnection::sessionBus(), this))
|
, m_touchEventInter(new XEventMonitor("com.deepin.api.XEventMonitor", "/com/deepin/api/XEventMonitor", QDBusConnection::sessionBus(), this))
|
||||||
@ -178,7 +179,7 @@ void MultiScreenWorker::updateDaemonDockSize(int dockSize)
|
|||||||
m_dockInter->setWindowSizeEfficient(uint(dockSize));
|
m_dockInter->setWindowSizeEfficient(uint(dockSize));
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiScreenWorker::handleDbusSignal(QDBusMessage msg)
|
void MultiScreenWorker::handleDBusSignal(QDBusMessage msg)
|
||||||
{
|
{
|
||||||
QList<QVariant> arguments = msg.arguments();
|
QList<QVariant> arguments = msg.arguments();
|
||||||
// 参数固定长度
|
// 参数固定长度
|
||||||
@ -299,10 +300,12 @@ void MultiScreenWorker::onWindowSizeChanged(uint value)
|
|||||||
m_monitorUpdateTimer->start();
|
m_monitorUpdateTimer->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MultiScreenWorker::primaryScreenChanged()
|
void MultiScreenWorker::primaryScreenChanged(QScreen *screen)
|
||||||
{
|
{
|
||||||
|
Q_ASSERT(screen);
|
||||||
|
|
||||||
// 先更新主屏信息
|
// 先更新主屏信息
|
||||||
m_ds.updatePrimary(DIS_INS->primary());
|
m_ds.updatePrimary(screen->name());
|
||||||
|
|
||||||
// 无效值
|
// 无效值
|
||||||
if (DIS_INS->screenRawHeight() == 0 || DIS_INS->screenRawWidth() == 0) {
|
if (DIS_INS->screenRawHeight() == 0 || DIS_INS->screenRawWidth() == 0) {
|
||||||
@ -723,6 +726,8 @@ void MultiScreenWorker::onRequestNotifyWindowManager()
|
|||||||
if ((!DIS_INS->isCopyMode() && m_ds.current() != m_ds.primary()) || m_hideMode != HideMode::KeepShowing) {
|
if ((!DIS_INS->isCopyMode() && m_ds.current() != m_ds.primary()) || m_hideMode != HideMode::KeepShowing) {
|
||||||
lastRect = QRect();
|
lastRect = QRect();
|
||||||
|
|
||||||
|
qInfo() << "clear wm struct";
|
||||||
|
|
||||||
if (Utils::IS_WAYLAND_DISPLAY) {
|
if (Utils::IS_WAYLAND_DISPLAY) {
|
||||||
QList<QVariant> varList;
|
QList<QVariant> varList;
|
||||||
varList.append(0);//dock位置
|
varList.append(0);//dock位置
|
||||||
@ -914,7 +919,6 @@ void MultiScreenWorker::initMembers()
|
|||||||
|
|
||||||
void MultiScreenWorker::initConnection()
|
void MultiScreenWorker::initConnection()
|
||||||
{
|
{
|
||||||
connect(qApp, &QApplication::primaryScreenChanged, this, &MultiScreenWorker::primaryScreenChanged);
|
|
||||||
connect(DIS_INS, &DisplayManager::primaryScreenChanged, this, &MultiScreenWorker::primaryScreenChanged);
|
connect(DIS_INS, &DisplayManager::primaryScreenChanged, this, &MultiScreenWorker::primaryScreenChanged);
|
||||||
connect(DIS_INS, &DisplayManager::screenInfoChanged, this, &MultiScreenWorker::requestUpdateMonitorInfo);
|
connect(DIS_INS, &DisplayManager::screenInfoChanged, this, &MultiScreenWorker::requestUpdateMonitorInfo);
|
||||||
|
|
||||||
@ -939,7 +943,7 @@ void MultiScreenWorker::initConnection()
|
|||||||
"org.freedesktop.DBus.Properties",
|
"org.freedesktop.DBus.Properties",
|
||||||
"PropertiesChanged",
|
"PropertiesChanged",
|
||||||
"sa{sv}as",
|
"sa{sv}as",
|
||||||
this, SLOT(handleDbusSignal(QDBusMessage)));
|
this, SLOT(handleDBusSignal(QDBusMessage)));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
connect(this, &MultiScreenWorker::requestUpdateFrontendGeometry, this, &MultiScreenWorker::onRequestUpdateFrontendGeometry);
|
connect(this, &MultiScreenWorker::requestUpdateFrontendGeometry, this, &MultiScreenWorker::onRequestUpdateFrontendGeometry);
|
||||||
@ -1068,7 +1072,7 @@ void MultiScreenWorker::displayAnimation(const QString &screen, const Position &
|
|||||||
ani->setEasingCurve(QEasingCurve::InOutCubic);
|
ani->setEasingCurve(QEasingCurve::InOutCubic);
|
||||||
|
|
||||||
#ifndef DISABLE_SHOW_ANIMATION
|
#ifndef DISABLE_SHOW_ANIMATION
|
||||||
const bool composite = m_wmHelper->hasComposite(); // 判断是否开启特效模式
|
const bool composite = DWindowManagerHelper::instance()->hasComposite(); // 判断是否开启特效模式
|
||||||
const int duration = composite ? ANIMATIONTIME : 0;
|
const int duration = composite ? ANIMATIONTIME : 0;
|
||||||
#else
|
#else
|
||||||
const int duration = 0;
|
const int duration = 0;
|
||||||
@ -1173,7 +1177,7 @@ void MultiScreenWorker::changeDockPosition(QString fromScreen, QString toScreen,
|
|||||||
ani1->setEasingCurve(QEasingCurve::InOutCubic);
|
ani1->setEasingCurve(QEasingCurve::InOutCubic);
|
||||||
ani2->setEasingCurve(QEasingCurve::InOutCubic);
|
ani2->setEasingCurve(QEasingCurve::InOutCubic);
|
||||||
|
|
||||||
const bool composite = m_wmHelper->hasComposite();
|
const bool composite = DWindowManagerHelper::instance()->hasComposite();
|
||||||
#ifndef DISABLE_SHOW_ANIMATION
|
#ifndef DISABLE_SHOW_ANIMATION
|
||||||
const int duration = composite ? ANIMATIONTIME : 0;
|
const int duration = composite ? ANIMATIONTIME : 0;
|
||||||
#else
|
#else
|
||||||
@ -1821,32 +1825,33 @@ void MultiScreenWorker::tryToShowDock(int eventX, int eventY)
|
|||||||
ScreenChangeMonitor::ScreenChangeMonitor(DockScreen *ds, QObject *parent)
|
ScreenChangeMonitor::ScreenChangeMonitor(DockScreen *ds, QObject *parent)
|
||||||
: QObject (parent)
|
: QObject (parent)
|
||||||
{
|
{
|
||||||
connect(qApp, &QApplication::primaryScreenChanged, this, [ this, ds ](QScreen *primaryScreen) {
|
#define DATETOSTRING(date) date.toString("hh:mm:ss:zzz")
|
||||||
if (!primaryScreen)
|
|
||||||
return;
|
connect(DIS_INS, &DisplayManager::primaryScreenChanged, this, [ this, ds ](QScreen *primaryScreen) {
|
||||||
|
Q_ASSERT(primaryScreen);
|
||||||
|
|
||||||
// 在screenAdded之后,又会发送一次主屏幕的变更的信息
|
// 在screenAdded之后,又会发送一次主屏幕的变更的信息
|
||||||
qInfo() << "primary Screen Changed,primary Screen" << primaryScreen->name();
|
qInfo() << "primary screen changed, primary Screen" << primaryScreen->name();
|
||||||
if (changedInSeconds())
|
if (changedInSeconds())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_lastScreenName = ds->current();
|
m_lastScreenName = ds->current();
|
||||||
m_changePrimaryName = primaryScreen->name();
|
m_changePrimaryName = primaryScreen->name();
|
||||||
m_changeTime = QDateTime::currentDateTime();
|
m_changeTime = QDateTime::currentDateTime();
|
||||||
qInfo() << "primary Changed Info:lastScreen:" << m_lastScreenName << "changeTime:" << m_changeTime;
|
qInfo() << "primary changed from: " << m_lastScreenName << "to: " << DATETOSTRING(m_changeTime);
|
||||||
});
|
});
|
||||||
connect(qApp, &QApplication::screenAdded, this, [ this ](QScreen *newScreen) {
|
connect(DIS_INS, &DisplayManager::screenAdded, this, [ this ](QScreen *newScreen) {
|
||||||
if (newScreen) {
|
if (newScreen) {
|
||||||
m_newScreenName = newScreen->name();
|
m_newScreenName = newScreen->name();
|
||||||
m_newTime = QDateTime::currentDateTime();
|
m_newTime = QDateTime::currentDateTime();
|
||||||
qInfo() <<"screen added:" << m_newScreenName << ", added time:" << m_newTime;
|
qInfo() <<"screen added:" << m_newScreenName << ", time:" << DATETOSTRING(m_newTime);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
connect(qApp, &QApplication::screenRemoved, this, [ this ](QScreen *rmScreen) {
|
connect(DIS_INS, &DisplayManager::screenRemoved, this, [ this ](QScreen *rmScreen) {
|
||||||
if (rmScreen) {
|
if (rmScreen) {
|
||||||
m_removeScreenName = rmScreen->name();
|
m_removeScreenName = rmScreen->name();
|
||||||
m_removeTime = QDateTime::currentDateTime();
|
m_removeTime = QDateTime::currentDateTime();
|
||||||
qInfo() <<"screen removed:" << m_removeScreenName << ", removed time:" << m_removeTime;
|
qInfo() <<"screen removed:" << m_removeScreenName << ", time:" << DATETOSTRING(m_removeTime);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -31,8 +31,6 @@
|
|||||||
#include <com_deepin_api_xeventmonitor.h>
|
#include <com_deepin_api_xeventmonitor.h>
|
||||||
#include <com_deepin_dde_launcher.h>
|
#include <com_deepin_dde_launcher.h>
|
||||||
|
|
||||||
#include <DWindowManagerHelper>
|
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QFlag>
|
#include <QFlag>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
@ -130,7 +128,7 @@ public:
|
|||||||
|
|
||||||
typedef QFlags<RunState> RunStates;
|
typedef QFlags<RunState> RunStates;
|
||||||
|
|
||||||
MultiScreenWorker(QWidget *parent, DWindowManagerHelper *helper);
|
MultiScreenWorker(QWidget *parent);
|
||||||
|
|
||||||
void initShow();
|
void initShow();
|
||||||
|
|
||||||
@ -176,9 +174,10 @@ public slots:
|
|||||||
void onAutoHideChanged(bool autoHide);
|
void onAutoHideChanged(bool autoHide);
|
||||||
void updateDaemonDockSize(int dockSize);
|
void updateDaemonDockSize(int dockSize);
|
||||||
void onRequestUpdateRegionMonitor();
|
void onRequestUpdateRegionMonitor();
|
||||||
void handleDbusSignal(QDBusMessage);
|
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
void handleDBusSignal(QDBusMessage);
|
||||||
|
|
||||||
// Region Monitor
|
// Region Monitor
|
||||||
void onRegionMonitorChanged(int x, int y, const QString &key);
|
void onRegionMonitorChanged(int x, int y, const QString &key);
|
||||||
void onExtralRegionMonitorChanged(int x, int y, const QString &key);
|
void onExtralRegionMonitorChanged(int x, int y, const QString &key);
|
||||||
@ -190,7 +189,7 @@ private slots:
|
|||||||
void updateDisplay();
|
void updateDisplay();
|
||||||
|
|
||||||
void onWindowSizeChanged(uint value);
|
void onWindowSizeChanged(uint value);
|
||||||
void primaryScreenChanged();
|
void primaryScreenChanged(QScreen *screen);
|
||||||
void updateParentGeometry(const QVariant &value, const Position &pos);
|
void updateParentGeometry(const QVariant &value, const Position &pos);
|
||||||
void updateParentGeometry(const QVariant &value);
|
void updateParentGeometry(const QVariant &value);
|
||||||
|
|
||||||
@ -218,6 +217,7 @@ private slots:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
MainWindow *parent();
|
MainWindow *parent();
|
||||||
|
|
||||||
// 初始化数据信息
|
// 初始化数据信息
|
||||||
void initMembers();
|
void initMembers();
|
||||||
void initDBus();
|
void initDBus();
|
||||||
@ -251,7 +251,6 @@ private:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
QWidget *m_parent;
|
QWidget *m_parent;
|
||||||
DWindowManagerHelper *m_wmHelper;
|
|
||||||
|
|
||||||
// monitor screen
|
// monitor screen
|
||||||
XEventMonitor *m_eventInter;
|
XEventMonitor *m_eventInter;
|
||||||
@ -304,6 +303,7 @@ class ScreenChangeMonitor : public QObject
|
|||||||
public:
|
public:
|
||||||
ScreenChangeMonitor(DockScreen *ds, QObject *parent);
|
ScreenChangeMonitor(DockScreen *ds, QObject *parent);
|
||||||
~ScreenChangeMonitor();
|
~ScreenChangeMonitor();
|
||||||
|
|
||||||
bool needUsedLastScreen() const;
|
bool needUsedLastScreen() const;
|
||||||
const QString lastScreen();
|
const QString lastScreen();
|
||||||
|
|
||||||
@ -315,8 +315,10 @@ private:
|
|||||||
|
|
||||||
QString m_changePrimaryName;
|
QString m_changePrimaryName;
|
||||||
QDateTime m_changeTime;
|
QDateTime m_changeTime;
|
||||||
|
|
||||||
QString m_newScreenName;
|
QString m_newScreenName;
|
||||||
QDateTime m_newTime;
|
QDateTime m_newTime;
|
||||||
|
|
||||||
QString m_removeScreenName;
|
QString m_removeScreenName;
|
||||||
QDateTime m_removeTime;
|
QDateTime m_removeTime;
|
||||||
};
|
};
|
||||||
|
@ -82,7 +82,7 @@ MainWindow::MainWindow(QWidget *parent)
|
|||||||
, m_mainPanel(new MainPanelControl(this))
|
, m_mainPanel(new MainPanelControl(this))
|
||||||
, m_platformWindowHandle(this)
|
, m_platformWindowHandle(this)
|
||||||
, m_wmHelper(DWindowManagerHelper::instance())
|
, m_wmHelper(DWindowManagerHelper::instance())
|
||||||
, m_multiScreenWorker(new MultiScreenWorker(this, m_wmHelper))
|
, m_multiScreenWorker(new MultiScreenWorker(this))
|
||||||
, m_menuWorker(new MenuWorker(m_multiScreenWorker->dockInter(), this))
|
, m_menuWorker(new MenuWorker(m_multiScreenWorker->dockInter(), this))
|
||||||
, m_shadowMaskOptimizeTimer(new QTimer(this))
|
, m_shadowMaskOptimizeTimer(new QTimer(this))
|
||||||
, m_dbusDaemonInterface(QDBusConnection::sessionBus().interface())
|
, m_dbusDaemonInterface(QDBusConnection::sessionBus().interface())
|
||||||
@ -353,7 +353,7 @@ void MainWindow::initConnections()
|
|||||||
|
|
||||||
// -拖拽任务栏改变高度或宽度-------------------------------------------------------------------------------
|
// -拖拽任务栏改变高度或宽度-------------------------------------------------------------------------------
|
||||||
connect(m_updateDragAreaTimer, &QTimer::timeout, this, &MainWindow::resetDragWindow);
|
connect(m_updateDragAreaTimer, &QTimer::timeout, this, &MainWindow::resetDragWindow);
|
||||||
//TODO 后端考虑删除这块,目前还不能删除,调整任务栏高度的时候,任务栏外部区域有变化
|
//TODO 后面考虑删除这块,目前还不能删除,调整任务栏高度的时候,任务栏外部区域有变化
|
||||||
connect(m_updateDragAreaTimer, &QTimer::timeout, m_multiScreenWorker, &MultiScreenWorker::onRequestUpdateRegionMonitor);
|
connect(m_updateDragAreaTimer, &QTimer::timeout, m_multiScreenWorker, &MultiScreenWorker::onRequestUpdateRegionMonitor);
|
||||||
|
|
||||||
connect(m_dragWidget, &DragWidget::dragPointOffset, this, [ = ] { qApp->setProperty(DRAG_STATE_PROP, true); });
|
connect(m_dragWidget, &DragWidget::dragPointOffset, this, [ = ] { qApp->setProperty(DRAG_STATE_PROP, true); });
|
||||||
|
@ -36,7 +36,7 @@ class Test_MultiScreenWorker : public ::testing::Test
|
|||||||
TEST_F(Test_MultiScreenWorker, coverage_test)
|
TEST_F(Test_MultiScreenWorker, coverage_test)
|
||||||
{
|
{
|
||||||
MainWindow window;
|
MainWindow window;
|
||||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
MultiScreenWorker *worker = new MultiScreenWorker(&window);
|
||||||
|
|
||||||
qDebug() << worker->dockRect("test screen");
|
qDebug() << worker->dockRect("test screen");
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ TEST_F(Test_MultiScreenWorker, coverage_test)
|
|||||||
worker->updateDaemonDockSize(20);
|
worker->updateDaemonDockSize(20);
|
||||||
|
|
||||||
QDBusMessage msg;
|
QDBusMessage msg;
|
||||||
worker->handleDbusSignal(msg);
|
worker->handleDBusSignal(msg);
|
||||||
|
|
||||||
worker->onRegionMonitorChanged(0, 0, worker->m_registerKey);
|
worker->onRegionMonitorChanged(0, 0, worker->m_registerKey);
|
||||||
|
|
||||||
@ -59,7 +59,6 @@ TEST_F(Test_MultiScreenWorker, coverage_test)
|
|||||||
worker->checkXEventMonitorService();
|
worker->checkXEventMonitorService();
|
||||||
worker->showAniFinished();
|
worker->showAniFinished();
|
||||||
worker->hideAniFinished();
|
worker->hideAniFinished();
|
||||||
worker->primaryScreenChanged();
|
|
||||||
worker->onRequestUpdateFrontendGeometry();
|
worker->onRequestUpdateFrontendGeometry();
|
||||||
worker->isCopyMode();
|
worker->isCopyMode();
|
||||||
worker->onRequestUpdatePosition(Dock::Position::Top, Dock::Position::Bottom);
|
worker->onRequestUpdatePosition(Dock::Position::Top, Dock::Position::Bottom);
|
||||||
@ -74,7 +73,7 @@ TEST_F(Test_MultiScreenWorker, coverage_test)
|
|||||||
TEST_F(Test_MultiScreenWorker, onDisplayModeChanged)
|
TEST_F(Test_MultiScreenWorker, onDisplayModeChanged)
|
||||||
{
|
{
|
||||||
MainWindow window;
|
MainWindow window;
|
||||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
MultiScreenWorker *worker = new MultiScreenWorker(&window);
|
||||||
|
|
||||||
worker->onDisplayModeChanged(static_cast<DisplayMode>(0));
|
worker->onDisplayModeChanged(static_cast<DisplayMode>(0));
|
||||||
worker->m_hideMode = HideMode::KeepShowing;
|
worker->m_hideMode = HideMode::KeepShowing;
|
||||||
@ -99,7 +98,7 @@ TEST_F(Test_MultiScreenWorker, onDisplayModeChanged)
|
|||||||
TEST_F(Test_MultiScreenWorker, displayAnimation_onRequestUpdateRegionMonitor)
|
TEST_F(Test_MultiScreenWorker, displayAnimation_onRequestUpdateRegionMonitor)
|
||||||
{
|
{
|
||||||
MainWindow window;
|
MainWindow window;
|
||||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
MultiScreenWorker *worker = new MultiScreenWorker(&window);
|
||||||
|
|
||||||
worker->m_position = Dock::Position::Left;
|
worker->m_position = Dock::Position::Left;
|
||||||
worker->displayAnimation("primary", MultiScreenWorker::AniAction::Show);
|
worker->displayAnimation("primary", MultiScreenWorker::AniAction::Show);
|
||||||
@ -138,7 +137,7 @@ TEST_F(Test_MultiScreenWorker, displayAnimation_onRequestUpdateRegionMonitor)
|
|||||||
TEST_F(Test_MultiScreenWorker, onTouchPress_onTouchRelease)
|
TEST_F(Test_MultiScreenWorker, onTouchPress_onTouchRelease)
|
||||||
{
|
{
|
||||||
MainWindow window;
|
MainWindow window;
|
||||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
MultiScreenWorker *worker = new MultiScreenWorker(&window);
|
||||||
|
|
||||||
QPoint p(0, 0);
|
QPoint p(0, 0);
|
||||||
worker->rawXPosition(p);
|
worker->rawXPosition(p);
|
||||||
@ -174,7 +173,7 @@ TEST_F(Test_MultiScreenWorker, onTouchPress_onTouchRelease)
|
|||||||
TEST_F(Test_MultiScreenWorker, onDelayAutoHideChanged)
|
TEST_F(Test_MultiScreenWorker, onDelayAutoHideChanged)
|
||||||
{
|
{
|
||||||
MainWindow window;
|
MainWindow window;
|
||||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
MultiScreenWorker *worker = new MultiScreenWorker(&window);
|
||||||
|
|
||||||
worker->m_hideMode = HideMode::SmartHide;
|
worker->m_hideMode = HideMode::SmartHide;
|
||||||
worker->m_hideState = HideState::Show;
|
worker->m_hideState = HideState::Show;
|
||||||
@ -195,7 +194,7 @@ TEST_F(Test_MultiScreenWorker, onDelayAutoHideChanged)
|
|||||||
TEST_F(Test_MultiScreenWorker, onPositionChanged)
|
TEST_F(Test_MultiScreenWorker, onPositionChanged)
|
||||||
{
|
{
|
||||||
MainWindow window;
|
MainWindow window;
|
||||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
MultiScreenWorker *worker = new MultiScreenWorker(&window);
|
||||||
|
|
||||||
worker->m_hideMode = HideMode::KeepHidden;
|
worker->m_hideMode = HideMode::KeepHidden;
|
||||||
worker->onPositionChanged(static_cast<Position>(0));
|
worker->onPositionChanged(static_cast<Position>(0));
|
||||||
@ -220,7 +219,7 @@ TEST_F(Test_MultiScreenWorker, onPositionChanged)
|
|||||||
TEST_F(Test_MultiScreenWorker, reInitDisplayData)
|
TEST_F(Test_MultiScreenWorker, reInitDisplayData)
|
||||||
{
|
{
|
||||||
MainWindow window;
|
MainWindow window;
|
||||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
MultiScreenWorker *worker = new MultiScreenWorker(&window);
|
||||||
|
|
||||||
worker->reInitDisplayData();
|
worker->reInitDisplayData();
|
||||||
|
|
||||||
@ -231,7 +230,7 @@ TEST_F(Test_MultiScreenWorker, reInitDisplayData)
|
|||||||
TEST_F(Test_MultiScreenWorker, onRequestUpdateMonitorInfo)
|
TEST_F(Test_MultiScreenWorker, onRequestUpdateMonitorInfo)
|
||||||
{
|
{
|
||||||
MainWindow window;
|
MainWindow window;
|
||||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
MultiScreenWorker *worker = new MultiScreenWorker(&window);
|
||||||
|
|
||||||
worker->onRequestUpdateMonitorInfo();
|
worker->onRequestUpdateMonitorInfo();
|
||||||
|
|
||||||
@ -242,7 +241,7 @@ TEST_F(Test_MultiScreenWorker, onRequestUpdateMonitorInfo)
|
|||||||
TEST_F(Test_MultiScreenWorker, updateParentGeometry)
|
TEST_F(Test_MultiScreenWorker, updateParentGeometry)
|
||||||
{
|
{
|
||||||
MainWindow window;
|
MainWindow window;
|
||||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
MultiScreenWorker *worker = new MultiScreenWorker(&window);
|
||||||
|
|
||||||
worker->updateParentGeometry(QRect(0, 0, 10, 10), Position::Top);
|
worker->updateParentGeometry(QRect(0, 0, 10, 10), Position::Top);
|
||||||
worker->updateParentGeometry(QRect(0, 0, 10, 10), Position::Bottom);
|
worker->updateParentGeometry(QRect(0, 0, 10, 10), Position::Bottom);
|
||||||
@ -256,7 +255,7 @@ TEST_F(Test_MultiScreenWorker, updateParentGeometry)
|
|||||||
TEST_F(Test_MultiScreenWorker, onWindowSizeChanged)
|
TEST_F(Test_MultiScreenWorker, onWindowSizeChanged)
|
||||||
{
|
{
|
||||||
MainWindow window;
|
MainWindow window;
|
||||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
MultiScreenWorker *worker = new MultiScreenWorker(&window);
|
||||||
|
|
||||||
worker->onWindowSizeChanged(-1);
|
worker->onWindowSizeChanged(-1);
|
||||||
|
|
||||||
@ -267,7 +266,7 @@ TEST_F(Test_MultiScreenWorker, onWindowSizeChanged)
|
|||||||
TEST_F(Test_MultiScreenWorker, updateDisplay)
|
TEST_F(Test_MultiScreenWorker, updateDisplay)
|
||||||
{
|
{
|
||||||
MainWindow window;
|
MainWindow window;
|
||||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
MultiScreenWorker *worker = new MultiScreenWorker(&window);
|
||||||
|
|
||||||
worker->updateDisplay();
|
worker->updateDisplay();
|
||||||
|
|
||||||
@ -278,7 +277,7 @@ TEST_F(Test_MultiScreenWorker, updateDisplay)
|
|||||||
TEST_F(Test_MultiScreenWorker, onExtralRegionMonitorChanged)
|
TEST_F(Test_MultiScreenWorker, onExtralRegionMonitorChanged)
|
||||||
{
|
{
|
||||||
MainWindow window;
|
MainWindow window;
|
||||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
MultiScreenWorker *worker = new MultiScreenWorker(&window);
|
||||||
|
|
||||||
worker->onExtralRegionMonitorChanged(0, 0, "test");
|
worker->onExtralRegionMonitorChanged(0, 0, "test");
|
||||||
|
|
||||||
@ -300,7 +299,7 @@ TEST_F(Test_MultiScreenWorker, onExtralRegionMonitorChanged)
|
|||||||
TEST_F(Test_MultiScreenWorker, onRegionMonitorChanged)
|
TEST_F(Test_MultiScreenWorker, onRegionMonitorChanged)
|
||||||
{
|
{
|
||||||
MainWindow window;
|
MainWindow window;
|
||||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
MultiScreenWorker *worker = new MultiScreenWorker(&window);
|
||||||
|
|
||||||
worker->onRegionMonitorChanged(0, 0, "test");
|
worker->onRegionMonitorChanged(0, 0, "test");
|
||||||
|
|
||||||
@ -325,7 +324,7 @@ TEST_F(Test_MultiScreenWorker, dockScreen)
|
|||||||
TEST_F(Test_MultiScreenWorker, screenworker_test3)
|
TEST_F(Test_MultiScreenWorker, screenworker_test3)
|
||||||
{
|
{
|
||||||
MainWindow window;
|
MainWindow window;
|
||||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
MultiScreenWorker *worker = new MultiScreenWorker(&window);
|
||||||
|
|
||||||
worker->resetDockScreen();
|
worker->resetDockScreen();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user