mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-02 15:45:21 +00:00
test: 添加单元测试代码
添加单元测试代码 Log: Change-Id: I243bcf2e5f1057eb909e68a2c77f86ba3f9f9f7e
This commit is contained in:
parent
be1f9b2be9
commit
816f0edc87
@ -114,19 +114,7 @@ AppItem::AppItem(const QGSettings *appSettings, const QGSettings *activeAppSetti
|
||||
connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, &AppItem::onThemeTypeChanged);
|
||||
|
||||
/** 日历 1S定时判断是否刷新icon的处理 */
|
||||
connect(m_refershIconTimer, &QTimer::timeout, this, [ = ]() {
|
||||
if (QDate::currentDate() != m_curDate) {
|
||||
m_curDate = QDate::currentDate();
|
||||
refreshIcon();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
AppItem::~AppItem()
|
||||
{
|
||||
stopSwingEffect();
|
||||
|
||||
m_appNameTips->deleteLater();
|
||||
connect(m_refershIconTimer, &QTimer::timeout, this, &AppItem::onRefreshIcon);
|
||||
}
|
||||
|
||||
/**将属于同一个应用的窗口合并到同一个应用图标
|
||||
@ -304,7 +292,7 @@ void AppItem::mouseReleaseEvent(QMouseEvent *e)
|
||||
return;
|
||||
}
|
||||
|
||||
int curTimestamp = QX11Info::getTimestamp();
|
||||
int curTimestamp = QDateTime::currentSecsSinceEpoch();
|
||||
if ((curTimestamp - m_lastclickTimes) < 300)
|
||||
return;
|
||||
|
||||
@ -452,17 +440,6 @@ void AppItem::leaveEvent(QEvent *e)
|
||||
}
|
||||
}
|
||||
|
||||
void AppItem::showEvent(QShowEvent *e)
|
||||
{
|
||||
DockItem::showEvent(e);
|
||||
|
||||
QTimer::singleShot(0, this, [ = ] {
|
||||
onGSettingsChanged("enable");
|
||||
});
|
||||
|
||||
refreshIcon();
|
||||
}
|
||||
|
||||
void AppItem::showHoverTips()
|
||||
{
|
||||
if (checkGSettingsControl()) {
|
||||
@ -641,6 +618,20 @@ void AppItem::refreshIcon()
|
||||
m_updateIconGeometryTimer->start();
|
||||
}
|
||||
|
||||
void AppItem::onRefreshIcon()
|
||||
{
|
||||
if (QDate::currentDate() == m_curDate)
|
||||
return;
|
||||
|
||||
m_curDate = QDate::currentDate();
|
||||
refreshIcon();
|
||||
}
|
||||
|
||||
void AppItem::onResetPreview()
|
||||
{
|
||||
m_appPreviewTips = nullptr;
|
||||
}
|
||||
|
||||
void AppItem::activeChanged()
|
||||
{
|
||||
m_active = !m_active;
|
||||
@ -659,9 +650,9 @@ void AppItem::showPreview()
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestHidePopup, this, &AppItem::hidePopup);
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestCheckWindows, m_itemEntryInter, &DockEntryInter::Check);
|
||||
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestActivateWindow, this, [ = ]() { m_appPreviewTips = nullptr; });
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestCancelPreviewWindow, this, [ = ]() { m_appPreviewTips = nullptr; });
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestHidePopup, this, [ = ]() { m_appPreviewTips = nullptr; });
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestActivateWindow, this, &AppItem::onResetPreview);
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestCancelPreviewWindow, this, &AppItem::onResetPreview);
|
||||
connect(m_appPreviewTips, &PreviewContainer::requestHidePopup, this, &AppItem::onResetPreview);
|
||||
|
||||
showPopupWindow(m_appPreviewTips, true);
|
||||
}
|
||||
@ -681,7 +672,7 @@ void AppItem::playSwingEffect()
|
||||
m_itemAnimation = pair.second;
|
||||
|
||||
QTimeLine *tl = m_itemAnimation->timeLine();
|
||||
connect(tl, &QTimeLine::stateChanged, [ = ](QTimeLine::State newState) {
|
||||
connect(tl, &QTimeLine::stateChanged, this, [ = ](QTimeLine::State newState) {
|
||||
if (newState == QTimeLine::NotRunning) {
|
||||
m_swingEffectView->hide();
|
||||
layout()->removeWidget(m_swingEffectView);
|
||||
@ -746,3 +737,21 @@ void AppItem::onThemeTypeChanged(DGuiApplicationHelper::ColorType themeType)
|
||||
m_themeType = themeType;
|
||||
update();
|
||||
}
|
||||
|
||||
// 放到最下面是因为析构函数和匿名函数会影响lcov统计单元测试的覆盖率
|
||||
AppItem::~AppItem()
|
||||
{
|
||||
stopSwingEffect();
|
||||
m_appNameTips->deleteLater();
|
||||
}
|
||||
|
||||
void AppItem::showEvent(QShowEvent *e)
|
||||
{
|
||||
DockItem::showEvent(e);
|
||||
|
||||
QTimer::singleShot(0, this, [ = ] {
|
||||
onGSettingsChanged("enable");
|
||||
});
|
||||
|
||||
refreshIcon();
|
||||
}
|
||||
|
@ -101,6 +101,9 @@ private slots:
|
||||
bool checkGSettingsControl() const;
|
||||
void onThemeTypeChanged(DGuiApplicationHelper::ColorType themeType);
|
||||
|
||||
void onRefreshIcon();
|
||||
void onResetPreview();
|
||||
|
||||
private:
|
||||
const QGSettings *m_appSettings;
|
||||
const QGSettings *m_activeAppSettings;
|
||||
|
@ -23,58 +23,19 @@
|
||||
#include "appdragwidget.h"
|
||||
#include "utils.h"
|
||||
|
||||
class AppGraphicsObject : public QGraphicsObject
|
||||
{
|
||||
public:
|
||||
explicit AppGraphicsObject(QGraphicsItem *parent = Q_NULLPTR) : QGraphicsObject(parent) {}
|
||||
~AppGraphicsObject() override { }
|
||||
|
||||
void setAppPixmap(QPixmap pix)
|
||||
{
|
||||
m_appPixmap = pix;
|
||||
resetProperty();
|
||||
update();
|
||||
}
|
||||
|
||||
void resetProperty()
|
||||
{
|
||||
setScale(1.0);
|
||||
setRotation(0);
|
||||
setOpacity(1.0);
|
||||
update();
|
||||
}
|
||||
|
||||
QRectF boundingRect() const override
|
||||
{
|
||||
return m_appPixmap.rect();
|
||||
}
|
||||
|
||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = Q_NULLPTR) override {
|
||||
Q_UNUSED(option);
|
||||
Q_UNUSED(widget);
|
||||
|
||||
Q_ASSERT(!m_appPixmap.isNull());
|
||||
|
||||
painter->drawPixmap(QPoint(0, 0), m_appPixmap);
|
||||
}
|
||||
|
||||
private:
|
||||
QPixmap m_appPixmap;
|
||||
};
|
||||
|
||||
AppDragWidget::AppDragWidget(QWidget *parent)
|
||||
: QGraphicsView(parent)
|
||||
, m_object(new AppGraphicsObject)
|
||||
, m_scene(new QGraphicsScene(this))
|
||||
, m_followMouseTimer(new QTimer(this))
|
||||
, m_animScale(new QPropertyAnimation(m_object, "scale", this))
|
||||
, m_animRotation(new QPropertyAnimation(m_object, "rotation", this))
|
||||
, m_animOpacity(new QPropertyAnimation(m_object, "opacity", this))
|
||||
, m_animScale(new QPropertyAnimation(m_object.get(), "scale", this))
|
||||
, m_animRotation(new QPropertyAnimation(m_object.get(), "rotation", this))
|
||||
, m_animOpacity(new QPropertyAnimation(m_object.get(), "opacity", this))
|
||||
, m_animGroup(new QParallelAnimationGroup(this))
|
||||
, m_goBackAnim(new QPropertyAnimation(this, "pos", this))
|
||||
, m_dockPosition(Dock::Position::Bottom)
|
||||
, m_removeTips(new TipsWidget)
|
||||
, m_popupWindow(new DockPopupWindow)
|
||||
, m_removeTips(new TipsWidget(this))
|
||||
, m_popupWindow(new DockPopupWindow(this))
|
||||
, m_distanceMultiple(Utils::SettingValue("com.deepin.dde.dock.distancemultiple", "/com/deepin/dde/dock/distancemultiple/", "distance-multiple", 1.5).toDouble())
|
||||
{
|
||||
m_removeTips->setText(tr("Remove"));
|
||||
@ -90,7 +51,7 @@ AppDragWidget::AppDragWidget(QWidget *parent)
|
||||
m_popupWindow->setArrowHeight(10);
|
||||
m_popupWindow->setRadius(18);
|
||||
|
||||
m_scene->addItem(m_object);
|
||||
m_scene->addItem(m_object.get());
|
||||
setScene(m_scene);
|
||||
|
||||
setWindowFlags(Qt::WindowStaysOnTopHint | Qt::X11BypassWindowManagerHint);
|
||||
@ -107,24 +68,10 @@ AppDragWidget::AppDragWidget(QWidget *parent)
|
||||
|
||||
m_followMouseTimer->setSingleShot(false);
|
||||
m_followMouseTimer->setInterval(1);
|
||||
connect(m_followMouseTimer, &QTimer::timeout, [this] {
|
||||
QPoint destPos = QCursor::pos();
|
||||
if (DWindowManagerHelper::instance()->hasComposite()) {
|
||||
move(destPos.x() - width() / 2, destPos.y() - height() / 2);
|
||||
} else {
|
||||
move(destPos.x(), destPos.y()); //窗口特效未开启时会隐藏m_object绘制的图标,移动的图标为QDrag绘制的图标,大小为(10,10)
|
||||
}
|
||||
});
|
||||
connect(m_followMouseTimer, &QTimer::timeout, this, &AppDragWidget::onFollowMouse);
|
||||
m_followMouseTimer->start();
|
||||
}
|
||||
|
||||
AppDragWidget::~AppDragWidget()
|
||||
{
|
||||
delete m_removeTips;
|
||||
delete m_popupWindow;
|
||||
delete m_object;
|
||||
}
|
||||
|
||||
void AppDragWidget::mouseMoveEvent(QMouseEvent *event)
|
||||
{
|
||||
QGraphicsView::mouseMoveEvent(event);
|
||||
@ -375,6 +322,16 @@ bool AppDragWidget::isRemoveItem()
|
||||
return false;
|
||||
}
|
||||
|
||||
void AppDragWidget::onFollowMouse()
|
||||
{
|
||||
QPoint destPos = QCursor::pos();
|
||||
if (DWindowManagerHelper::instance()->hasComposite()) {
|
||||
move(destPos.x() - width() / 2, destPos.y() - height() / 2);
|
||||
} else {
|
||||
move(destPos.x(), destPos.y()); //窗口特效未开启时会隐藏m_object绘制的图标,移动的图标为QDrag绘制的图标,大小为(10,10)
|
||||
}
|
||||
}
|
||||
|
||||
void AppDragWidget::enterEvent(QEvent *event)
|
||||
{
|
||||
Q_UNUSED(event);
|
||||
|
@ -37,13 +37,51 @@
|
||||
#include "../widgets/tipswidget.h"
|
||||
#include "dockpopupwindow.h"
|
||||
|
||||
class AppGraphicsObject;
|
||||
class AppGraphicsObject : public QGraphicsObject
|
||||
{
|
||||
public:
|
||||
explicit AppGraphicsObject(QGraphicsItem *parent = Q_NULLPTR)
|
||||
: QGraphicsObject(parent) {}
|
||||
~AppGraphicsObject() override {}
|
||||
|
||||
void setAppPixmap(QPixmap pix)
|
||||
{
|
||||
m_appPixmap = pix;
|
||||
resetProperty();
|
||||
update();
|
||||
}
|
||||
|
||||
void resetProperty()
|
||||
{
|
||||
setScale(1.0);
|
||||
setRotation(0);
|
||||
setOpacity(1.0);
|
||||
update();
|
||||
}
|
||||
|
||||
QRectF boundingRect() const override
|
||||
{
|
||||
return m_appPixmap.rect();
|
||||
}
|
||||
|
||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = Q_NULLPTR) override {
|
||||
Q_UNUSED(option);
|
||||
Q_UNUSED(widget);
|
||||
|
||||
Q_ASSERT(!m_appPixmap.isNull());
|
||||
|
||||
painter->drawPixmap(QPoint(0, 0), m_appPixmap);
|
||||
}
|
||||
|
||||
private:
|
||||
QPixmap m_appPixmap;
|
||||
};
|
||||
|
||||
class AppDragWidget : public QGraphicsView
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit AppDragWidget(QWidget *parent = Q_NULLPTR);
|
||||
virtual ~AppDragWidget() override;
|
||||
|
||||
void setAppPixmap(const QPixmap &pix);
|
||||
void setDockInfo(Dock::Position dockPosition, const QRect &dockGeometry);
|
||||
@ -73,8 +111,11 @@ private:
|
||||
void showRemoveTips();
|
||||
bool isRemoveItem();
|
||||
|
||||
private Q_SLOTS:
|
||||
void onFollowMouse();
|
||||
|
||||
private:
|
||||
QPointer<AppGraphicsObject> m_object;
|
||||
QScopedPointer<AppGraphicsObject> m_object;
|
||||
QGraphicsScene *m_scene;
|
||||
QTimer *m_followMouseTimer;
|
||||
QPropertyAnimation *m_animScale;
|
||||
|
@ -289,6 +289,7 @@ void AppSnapshot::mousePressEvent(QMouseEvent *e)
|
||||
bool AppSnapshot::eventFilter(QObject *watched, QEvent *e)
|
||||
{
|
||||
if (watched == m_closeBtn2D) {
|
||||
// TODO 判断条件重复
|
||||
if (watched == m_closeBtn2D && (e->type() == QEvent::HoverEnter || e->type() == QEvent::HoverMove)) {
|
||||
m_closeBtn2D->setIcon(QIcon(":/icons/resources/close_round_hover.svg"));
|
||||
} else if (watched == m_closeBtn2D && e->type() == QEvent::HoverLeave) {
|
||||
|
@ -121,7 +121,6 @@ void FloatingPreview::paintEvent(QPaintEvent *e)
|
||||
return;
|
||||
|
||||
const QImage &snapshot = m_tracked->snapshot();
|
||||
const QRectF &snapshot_geometry = m_tracked->snapshotGeometry();
|
||||
|
||||
if (snapshot.isNull())
|
||||
return;
|
||||
@ -130,10 +129,6 @@ void FloatingPreview::paintEvent(QPaintEvent *e)
|
||||
painter.setRenderHint(QPainter::Antialiasing);
|
||||
|
||||
const QRectF r = rect().marginsRemoved(QMargins(BORDER_MARGIN, BORDER_MARGIN, BORDER_MARGIN, BORDER_MARGIN));
|
||||
const auto ratio = devicePixelRatioF();
|
||||
|
||||
const qreal offset_x = width() / 2.0 - snapshot_geometry.width() / ratio / 2 - snapshot_geometry.left() / ratio;
|
||||
const qreal offset_y = height() / 2.0 - snapshot_geometry.height() / ratio / 2 - snapshot_geometry.top() / ratio;
|
||||
|
||||
DStyleHelper dstyle(style());
|
||||
const int radius = dstyle.pixelMetric(DStyle::PM_FrameRadius);
|
||||
|
@ -87,7 +87,7 @@ void PreviewContainer::setWindowInfos(const WindowInfoMap &infos, const WindowLi
|
||||
emit requestHidePopup();
|
||||
}
|
||||
|
||||
adjustSize();
|
||||
adjustSize(m_wmHelper->hasComposite());
|
||||
}
|
||||
|
||||
void PreviewContainer::updateSnapshots()
|
||||
@ -103,7 +103,7 @@ void PreviewContainer::updateLayoutDirection(const Dock::Position dockPos)
|
||||
else
|
||||
m_windowListLayout->setDirection(QBoxLayout::TopToBottom);
|
||||
|
||||
adjustSize();
|
||||
adjustSize(m_wmHelper->hasComposite());
|
||||
}
|
||||
|
||||
void PreviewContainer::checkMouseLeave()
|
||||
@ -133,10 +133,9 @@ void PreviewContainer::prepareHide()
|
||||
m_mouseLeaveTimer->start();
|
||||
}
|
||||
|
||||
void PreviewContainer::adjustSize()
|
||||
void PreviewContainer::adjustSize(const bool composite)
|
||||
{
|
||||
const int count = m_snapshots.size();
|
||||
const bool composite = m_wmHelper->hasComposite();
|
||||
|
||||
if (composite) {
|
||||
// 3D
|
||||
@ -184,15 +183,7 @@ void PreviewContainer::appendSnapWidget(const WId wid)
|
||||
connect(snap, &AppSnapshot::clicked, this, &PreviewContainer::onSnapshotClicked, Qt::QueuedConnection);
|
||||
connect(snap, &AppSnapshot::entered, this, &PreviewContainer::previewEntered, Qt::QueuedConnection);
|
||||
connect(snap, &AppSnapshot::requestCheckWindow, this, &PreviewContainer::requestCheckWindows, Qt::QueuedConnection);
|
||||
connect(snap, &AppSnapshot::requestCloseAppSnapshot, this, [this]() {
|
||||
if (!m_wmHelper->hasComposite())
|
||||
return ;
|
||||
|
||||
if (m_currentWId != m_snapshots.lastKey()) {
|
||||
Q_EMIT requestHidePopup();
|
||||
Q_EMIT requestCancelPreviewWindow();
|
||||
}
|
||||
});
|
||||
connect(snap, &AppSnapshot::requestCloseAppSnapshot, this, &PreviewContainer::onRequestCloseAppSnapshot);
|
||||
|
||||
m_windowListLayout->addWidget(snap);
|
||||
if (m_snapshots.size() >= (QDesktopWidget().screenGeometry(this).width() / (SNAP_WIDTH / 2)))
|
||||
@ -290,3 +281,14 @@ void PreviewContainer::previewFloating()
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
void PreviewContainer::onRequestCloseAppSnapshot()
|
||||
{
|
||||
if (!m_wmHelper->hasComposite())
|
||||
return ;
|
||||
|
||||
if (m_currentWId != m_snapshots.lastKey()) {
|
||||
Q_EMIT requestHidePopup();
|
||||
Q_EMIT requestCancelPreviewWindow();
|
||||
}
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ public slots:
|
||||
void prepareHide();
|
||||
|
||||
private:
|
||||
void adjustSize();
|
||||
void adjustSize(const bool composite);
|
||||
void appendSnapWidget(const WId wid);
|
||||
|
||||
void enterEvent(QEvent *e);
|
||||
@ -72,6 +72,7 @@ private slots:
|
||||
void onSnapshotClicked(const WId wid);
|
||||
void previewEntered(const WId wid);
|
||||
void previewFloating();
|
||||
void onRequestCloseAppSnapshot();
|
||||
|
||||
private:
|
||||
bool m_needActivate;
|
||||
|
@ -42,7 +42,6 @@ DockItem::DockItem(QWidget *parent)
|
||||
, m_draging(false)
|
||||
, m_popupTipsDelayTimer(new QTimer(this))
|
||||
, m_popupAdjustDelayTimer(new QTimer(this))
|
||||
|
||||
{
|
||||
if (PopupWindow.isNull()) {
|
||||
DockPopupWindow *arrowRectangle = new DockPopupWindow(nullptr);
|
||||
@ -62,8 +61,6 @@ DockItem::DockItem(QWidget *parent)
|
||||
|
||||
m_popupAdjustDelayTimer->setInterval(10);
|
||||
m_popupAdjustDelayTimer->setSingleShot(true);
|
||||
//FIXME: 可能是qt的bug,概率性导致崩溃,待修复
|
||||
// setGraphicsEffect(m_hoverEffect);
|
||||
|
||||
connect(m_popupTipsDelayTimer, &QTimer::timeout, this, &DockItem::showHoverTips);
|
||||
connect(m_popupAdjustDelayTimer, &QTimer::timeout, this, &DockItem::updatePopupPosition, Qt::QueuedConnection);
|
||||
@ -74,11 +71,15 @@ DockItem::DockItem(QWidget *parent)
|
||||
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||
}
|
||||
|
||||
DockItem::~DockItem()
|
||||
{
|
||||
if (m_popupShown)
|
||||
popupWindowAccept();
|
||||
}
|
||||
|
||||
QSize DockItem::sizeHint() const
|
||||
{
|
||||
int size = qMin(maximumWidth(), maximumHeight());
|
||||
if (size > ITEM_MAXSIZE)
|
||||
size = ITEM_MAXSIZE;
|
||||
int size = qMin(qMin(maximumWidth(), maximumHeight()), ITEM_MAXSIZE);
|
||||
|
||||
return QSize(size, size);
|
||||
}
|
||||
@ -88,12 +89,6 @@ QString DockItem::accessibleName()
|
||||
return QString();
|
||||
}
|
||||
|
||||
DockItem::~DockItem()
|
||||
{
|
||||
if (m_popupShown)
|
||||
popupWindowAccept();
|
||||
}
|
||||
|
||||
void DockItem::setDockPosition(const Position side)
|
||||
{
|
||||
DockPosition = side;
|
||||
|
@ -55,7 +55,7 @@ public:
|
||||
static void setDockPosition(const Position side);
|
||||
static void setDockDisplayMode(const DisplayMode mode);
|
||||
|
||||
inline virtual ItemType itemType() const {Q_UNREACHABLE(); return App;}
|
||||
inline virtual ItemType itemType() const {return App;}
|
||||
|
||||
QSize sizeHint() const override;
|
||||
virtual QString accessibleName();
|
||||
|
@ -59,14 +59,6 @@ void LauncherItem::refreshIcon()
|
||||
update();
|
||||
}
|
||||
|
||||
void LauncherItem::showEvent(QShowEvent* event) {
|
||||
QTimer::singleShot(0, this, [=] {
|
||||
onGSettingsChanged("enable");
|
||||
});
|
||||
|
||||
return DockItem::showEvent(event);
|
||||
}
|
||||
|
||||
void LauncherItem::paintEvent(QPaintEvent *e)
|
||||
{
|
||||
DockItem::paintEvent(e);
|
||||
@ -140,3 +132,11 @@ bool LauncherItem::checkGSettingsControl() const
|
||||
return m_gsettings && m_gsettings->keys().contains("control")
|
||||
&& m_gsettings->get("control").toBool();
|
||||
}
|
||||
|
||||
void LauncherItem::showEvent(QShowEvent* event) {
|
||||
QTimer::singleShot(0, this, [=] {
|
||||
onGSettingsChanged("enable");
|
||||
});
|
||||
|
||||
return DockItem::showEvent(event);
|
||||
}
|
||||
|
@ -39,10 +39,6 @@ MenuWorker::MenuWorker(DBusDock *dockInter,QWidget *parent)
|
||||
|
||||
}
|
||||
|
||||
MenuWorker::~MenuWorker()
|
||||
{
|
||||
}
|
||||
|
||||
QMenu *MenuWorker::createMenu()
|
||||
{
|
||||
QMenu *settingsMenu = new QMenu;
|
||||
@ -246,7 +242,6 @@ QMenu *MenuWorker::createMenu()
|
||||
|
||||
delete menuSettings;
|
||||
menuSettings = nullptr;
|
||||
|
||||
return settingsMenu;
|
||||
}
|
||||
|
||||
|
@ -37,7 +37,6 @@ class MenuWorker : public QObject
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit MenuWorker(DBusDock *dockInter,QWidget *parent = nullptr);
|
||||
~ MenuWorker();
|
||||
|
||||
void showDockSettingsMenu();
|
||||
|
||||
|
@ -66,11 +66,6 @@ MultiScreenWorker::MultiScreenWorker(QWidget *parent, DWindowManagerHelper *help
|
||||
initUI();
|
||||
}
|
||||
|
||||
MultiScreenWorker::~MultiScreenWorker()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void MultiScreenWorker::initShow()
|
||||
{
|
||||
// 仅在初始化时调用一次
|
||||
@ -163,30 +158,7 @@ void MultiScreenWorker::onAutoHideChanged(bool autoHide)
|
||||
setStates(AutoHide, autoHide);
|
||||
|
||||
if (testState(AutoHide)) {
|
||||
/**
|
||||
* 当任务栏由一直隐藏模式切换至一直显示模式时,由于信号先调用的这里,再调用的DBus服务去修改m_hideMode的值,
|
||||
* 导致这里走的是KeepHidden,任务栏表现为直接隐藏了,而不是一直显示。
|
||||
* 引入特性:右键菜单关闭后,延时500ms任务栏才执行动画
|
||||
*/
|
||||
QTimer::singleShot(500, [ = ] {
|
||||
switch (m_hideMode) {
|
||||
case HideMode::KeepHidden: {
|
||||
// 这时候鼠标如果在任务栏上,就不能隐藏
|
||||
if (!parent()->geometry().contains(QCursor::pos()))
|
||||
displayAnimation(m_ds.current(), AniAction::Hide);
|
||||
} break;
|
||||
case HideMode::SmartHide: {
|
||||
if (m_hideState == HideState::Show) {
|
||||
displayAnimation(m_ds.current(), AniAction::Show);
|
||||
} else if (m_hideState == HideState::Hide) {
|
||||
displayAnimation(m_ds.current(), AniAction::Hide);
|
||||
}
|
||||
} break;
|
||||
case HideMode::KeepShowing:
|
||||
displayAnimation(m_ds.current(), AniAction::Show);
|
||||
break;
|
||||
}
|
||||
});
|
||||
QTimer::singleShot(500, this, &MultiScreenWorker::onDelayAutoHideChanged);
|
||||
}
|
||||
}
|
||||
|
||||
@ -216,13 +188,13 @@ void MultiScreenWorker::handleDbusSignal(QDBusMessage msg)
|
||||
QStringList keys = changedProps.keys();
|
||||
foreach (const QString &prop, keys) {
|
||||
if (prop == "Position") {
|
||||
onPositionChanged();
|
||||
onPositionChanged(static_cast<Position>(changedProps.value(prop).toInt()));
|
||||
} else if (prop == "DisplayMode") {
|
||||
onDisplayModeChanged();
|
||||
onDisplayModeChanged(static_cast<DisplayMode>(changedProps.value(prop).toInt()));
|
||||
} else if (prop == "HideMode") {
|
||||
onHideModeChanged();
|
||||
onHideModeChanged(static_cast<HideMode>(changedProps.value(prop).toInt()));
|
||||
} else if (prop == "HideState") {
|
||||
onHideStateChanged();
|
||||
onHideStateChanged(static_cast<HideState>(changedProps.value(prop).toInt()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -275,8 +247,6 @@ void MultiScreenWorker::onExtralRegionMonitorChanged(int x, int y, const QString
|
||||
displayAnimation(m_ds.current(), AniAction::Show);
|
||||
} else if ((m_hideMode == HideMode::KeepHidden || m_hideMode == HideMode::SmartHide) && m_hideState == HideState::Hide) {
|
||||
displayAnimation(m_ds.current(), AniAction::Hide);
|
||||
} else {
|
||||
Q_UNREACHABLE();
|
||||
}
|
||||
}
|
||||
|
||||
@ -314,6 +284,26 @@ void MultiScreenWorker::hideAniFinished()
|
||||
emit requestNotifyWindowManager();
|
||||
}
|
||||
|
||||
void MultiScreenWorker::updateDisplay()
|
||||
{
|
||||
//1、屏幕停靠信息,
|
||||
//2、任务栏当前显示在哪个屏幕也需要更新
|
||||
//2、监视任务栏唤醒区域信息,
|
||||
//3、任务栏高度或宽度调整的拖拽区域,
|
||||
//4、通知窗管的任务栏显示区域信息,
|
||||
//5、通知后端的任务栏显示区域信息
|
||||
if (DIS_INS->screens().size() == 0) {
|
||||
qWarning() << "No Screen Can Display.";
|
||||
return;
|
||||
}
|
||||
// 更新所在屏幕
|
||||
resetDockScreen();
|
||||
// 通知后端
|
||||
onRequestUpdateFrontendGeometry();
|
||||
// 通知窗管
|
||||
onRequestNotifyWindowManager();
|
||||
}
|
||||
|
||||
void MultiScreenWorker::onWindowSizeChanged(uint value)
|
||||
{
|
||||
Q_UNUSED(value);
|
||||
@ -388,9 +378,8 @@ void MultiScreenWorker::updateParentGeometry(const QVariant &value)
|
||||
updateParentGeometry(value, m_position);
|
||||
}
|
||||
|
||||
void MultiScreenWorker::onPositionChanged()
|
||||
void MultiScreenWorker::onPositionChanged(const Position &position)
|
||||
{
|
||||
const Position position = Dock::Position(m_dockInter->position());
|
||||
Position lastPos = m_position;
|
||||
if (lastPos == position)
|
||||
return;
|
||||
@ -419,10 +408,8 @@ void MultiScreenWorker::onPositionChanged()
|
||||
}
|
||||
}
|
||||
|
||||
void MultiScreenWorker::onDisplayModeChanged()
|
||||
void MultiScreenWorker::onDisplayModeChanged(const DisplayMode &displayMode)
|
||||
{
|
||||
DisplayMode displayMode = Dock::DisplayMode(m_dockInter->displayMode());
|
||||
|
||||
if (displayMode == m_displayMode)
|
||||
return;
|
||||
|
||||
@ -452,10 +439,8 @@ void MultiScreenWorker::onDisplayModeChanged()
|
||||
emit requestNotifyWindowManager();
|
||||
}
|
||||
|
||||
void MultiScreenWorker::onHideModeChanged()
|
||||
void MultiScreenWorker::onHideModeChanged(const HideMode &hideMode)
|
||||
{
|
||||
HideMode hideMode = Dock::HideMode(m_dockInter->hideMode());
|
||||
|
||||
if (m_hideMode == hideMode)
|
||||
return;
|
||||
|
||||
@ -468,18 +453,14 @@ void MultiScreenWorker::onHideModeChanged()
|
||||
displayAnimation(m_ds.current(), AniAction::Show);
|
||||
} else if ((m_hideMode == HideMode::KeepHidden || m_hideMode == HideMode::SmartHide) && m_hideState == HideState::Hide) {
|
||||
displayAnimation(m_ds.current(), AniAction::Hide);
|
||||
} else {
|
||||
Q_UNREACHABLE();
|
||||
}
|
||||
|
||||
emit requestUpdateFrontendGeometry();
|
||||
emit requestNotifyWindowManager();
|
||||
}
|
||||
|
||||
void MultiScreenWorker::onHideStateChanged()
|
||||
void MultiScreenWorker::onHideStateChanged(const Dock::HideState &state)
|
||||
{
|
||||
const Dock::HideState state = Dock::HideState(m_dockInter->hideState());
|
||||
|
||||
if (state == Dock::Unknown)
|
||||
return;
|
||||
|
||||
@ -504,8 +485,6 @@ void MultiScreenWorker::onHideStateChanged()
|
||||
if (getDockShowGeometry(m_ds.current(), m_position, m_displayMode).contains(QCursor::pos()))
|
||||
return;
|
||||
displayAnimation(m_ds.current(), AniAction::Hide);
|
||||
} else {
|
||||
Q_UNREACHABLE();
|
||||
}
|
||||
}
|
||||
|
||||
@ -728,6 +707,36 @@ void MultiScreenWorker::onRequestUpdateFrontendGeometry()
|
||||
emit requestUpdateDockEntry();
|
||||
}
|
||||
|
||||
void MultiScreenWorker::onRequestUpdateLayout()
|
||||
{
|
||||
parent()->panel()->setFixedSize(dockRect(m_ds.current(), position(), HideMode::KeepShowing, displayMode()).size());
|
||||
parent()->panel()->move(0, 0);
|
||||
parent()->panel()->setDisplayMode(displayMode());
|
||||
parent()->panel()->setPositonValue(position());
|
||||
parent()->panel()->update();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 判断屏幕是否为复制模式的依据,第一个屏幕的X和Y值是否和其他的屏幕的X和Y值相等
|
||||
* 对于复制模式,这两个值肯定是相等的,如果不是复制模式,这两个值肯定不等,目前支持双屏
|
||||
*/
|
||||
bool MultiScreenWorker::isCopyMode()
|
||||
{
|
||||
QList<QScreen *> screens = DIS_INS->screens();
|
||||
if (screens.size() < 2)
|
||||
return false;
|
||||
|
||||
// 在多个屏幕的情况下,如果所有屏幕的位置的X和Y值都相等,则认为是复制模式
|
||||
QRect rect0 = screens[0]->availableGeometry();
|
||||
for (int i = 1; i < screens.size(); i++) {
|
||||
QRect rect = screens[i]->availableGeometry();
|
||||
if (rect0.x() != rect.x() || rect0.y() != rect.y())
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 这里用到xcb去设置任务栏的高度,比较特殊,参考_NET_WM_STRUT_PARTIAL属性
|
||||
* 在屏幕旋转后,所有参数以控制中心自定义设置里主屏显示的图示为准(旋转不用特殊处理)
|
||||
@ -944,33 +953,11 @@ void MultiScreenWorker::initConnection()
|
||||
|
||||
connect(m_delayWakeTimer, &QTimer::timeout, this, &MultiScreenWorker::onRequestDelayShowDock);
|
||||
|
||||
// 更新任务栏内容展示
|
||||
connect(this, &MultiScreenWorker::requestUpdateLayout, this, [ = ] {
|
||||
parent()->panel()->setFixedSize(dockRect(m_ds.current(), position(), HideMode::KeepShowing, displayMode()).size());
|
||||
parent()->panel()->move(0, 0);
|
||||
parent()->panel()->setDisplayMode(displayMode());
|
||||
parent()->panel()->setPositonValue(position());
|
||||
parent()->panel()->update();
|
||||
});
|
||||
// 更新任务栏内容展示方式
|
||||
connect(this, &MultiScreenWorker::requestUpdateLayout, this, &MultiScreenWorker::onRequestUpdateLayout);
|
||||
|
||||
//1、屏幕停靠信息,
|
||||
//2、任务栏当前显示在哪个屏幕也需要更新
|
||||
//2、监视任务栏唤醒区域信息,
|
||||
//3、任务栏高度或宽度调整的拖拽区域,
|
||||
//4、通知窗管的任务栏显示区域信息,
|
||||
//5、通知后端的任务栏显示区域信息
|
||||
connect(m_monitorUpdateTimer, &QTimer::timeout, this, [ = ] {
|
||||
if (DIS_INS->screens().size() == 0) {
|
||||
qWarning() << "No Screen Can Display.";
|
||||
return;
|
||||
}
|
||||
// 更新所在屏幕
|
||||
resetDockScreen();
|
||||
// 通知后端
|
||||
onRequestUpdateFrontendGeometry();
|
||||
// 通知窗管
|
||||
onRequestNotifyWindowManager();
|
||||
});
|
||||
// 刷新所有显示的内容,布局,方向,大小,位置等
|
||||
connect(m_monitorUpdateTimer, &QTimer::timeout, this, &MultiScreenWorker::updateDisplay);
|
||||
}
|
||||
|
||||
void MultiScreenWorker::initUI()
|
||||
@ -981,10 +968,10 @@ void MultiScreenWorker::initUI()
|
||||
parent()->panel()->setFixedSize(dockRect(m_ds.current(), m_position, HideMode::KeepShowing, m_displayMode).size());
|
||||
parent()->panel()->move(0, 0);
|
||||
|
||||
onPositionChanged();
|
||||
onDisplayModeChanged();
|
||||
onHideModeChanged();
|
||||
onHideStateChanged();
|
||||
onPositionChanged(static_cast<Position>(dockInter()->position()));
|
||||
onDisplayModeChanged(static_cast<DisplayMode>(dockInter()->displayMode()));
|
||||
onHideModeChanged(static_cast<HideMode>(dockInter()->hideMode()));
|
||||
onHideStateChanged(static_cast<HideState>(dockInter()->hideState()));
|
||||
onOpacityChanged(m_dockInter->opacity());
|
||||
|
||||
// 初始化透明度
|
||||
@ -1358,10 +1345,10 @@ void MultiScreenWorker::checkDaemonDockService()
|
||||
reInitDisplayData();
|
||||
|
||||
// operation
|
||||
onPositionChanged();
|
||||
onDisplayModeChanged();
|
||||
onHideModeChanged();
|
||||
onHideStateChanged();
|
||||
onPositionChanged(static_cast<Position>(dockInter()->position()));
|
||||
onDisplayModeChanged(static_cast<DisplayMode>(dockInter()->displayMode()));
|
||||
onHideModeChanged(static_cast<HideMode>(dockInter()->hideMode()));
|
||||
onHideStateChanged(static_cast<HideState>(dockInter()->hideState()));
|
||||
onOpacityChanged(m_dockInter->opacity());
|
||||
|
||||
disconnect(ifc);
|
||||
@ -1613,6 +1600,32 @@ void MultiScreenWorker::onTouchRelease(int type, int x, int y, const QString &ke
|
||||
tryToShowDock(x, y);
|
||||
}
|
||||
|
||||
void MultiScreenWorker::onDelayAutoHideChanged()
|
||||
{
|
||||
switch (m_hideMode) {
|
||||
case HideMode::KeepHidden:
|
||||
{
|
||||
// 这时候鼠标如果在任务栏上,就不能隐藏
|
||||
if (!parent()->geometry().contains(QCursor::pos()))
|
||||
displayAnimation(m_ds.current(), AniAction::Hide);
|
||||
}
|
||||
break;
|
||||
case HideMode::SmartHide: {
|
||||
if (m_hideState == HideState::Show)
|
||||
{
|
||||
displayAnimation(m_ds.current(), AniAction::Show);
|
||||
} else if (m_hideState == HideState::Hide) {
|
||||
displayAnimation(m_ds.current(), AniAction::Hide);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case HideMode::KeepShowing:
|
||||
displayAnimation(m_ds.current(), AniAction::Show);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief tryToShowDock 根据xEvent监控区域信号的x,y坐标处理任务栏唤醒显示
|
||||
* @param eventX 监控信号x坐标
|
||||
|
@ -133,7 +133,6 @@ public:
|
||||
typedef QFlags<RunState> RunStates;
|
||||
|
||||
MultiScreenWorker(QWidget *parent, DWindowManagerHelper *helper);
|
||||
~MultiScreenWorker();
|
||||
|
||||
void initShow();
|
||||
|
||||
@ -186,29 +185,35 @@ private slots:
|
||||
void showAniFinished();
|
||||
void hideAniFinished();
|
||||
|
||||
void updateDisplay();
|
||||
|
||||
void onWindowSizeChanged(uint value);
|
||||
void primaryScreenChanged();
|
||||
void updateParentGeometry(const QVariant &value, const Position &pos);
|
||||
void updateParentGeometry(const QVariant &value);
|
||||
|
||||
// 任务栏属性变化
|
||||
void onPositionChanged();
|
||||
void onDisplayModeChanged();
|
||||
void onHideModeChanged();
|
||||
void onHideStateChanged();
|
||||
void onPositionChanged(const Position &position);
|
||||
void onDisplayModeChanged(const DisplayMode &displayMode);
|
||||
void onHideModeChanged(const HideMode &hideMode);
|
||||
void onHideStateChanged(const Dock::HideState &state);
|
||||
void onOpacityChanged(const double value);
|
||||
|
||||
// 通知后端任务栏所在位置
|
||||
void onRequestUpdateFrontendGeometry();
|
||||
|
||||
void onRequestUpdateLayout();
|
||||
void onRequestNotifyWindowManager();
|
||||
void onRequestUpdatePosition(const Position &fromPos, const Position &toPos);
|
||||
void onRequestUpdateMonitorInfo();
|
||||
void onRequestDelayShowDock();
|
||||
|
||||
// 触摸手势操作
|
||||
void onTouchPress(int type, int x, int y, const QString &key);
|
||||
void onTouchRelease(int type, int x, int y, const QString &key);
|
||||
|
||||
void onDelayAutoHideChanged();
|
||||
|
||||
private:
|
||||
MainWindow *parent();
|
||||
// 初始化数据信息
|
||||
@ -239,6 +244,7 @@ private:
|
||||
QScreen *screenByName(const QString &screenName);
|
||||
bool onScreenEdge(const QString &screenName, const QPoint &point);
|
||||
const QPoint rawXPosition(const QPoint &scaledPos);
|
||||
static bool isCopyMode();
|
||||
|
||||
void updateDockScreen();
|
||||
void updatePrimaryScreenDockStatus();
|
||||
|
File diff suppressed because one or more lines are too long
@ -23,16 +23,19 @@
|
||||
#define THEMEAPPICON_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QIcon>
|
||||
|
||||
class ThemeAppIcon : public QObject
|
||||
class ThemeAppIcon
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ThemeAppIcon(QObject *parent = 0);
|
||||
explicit ThemeAppIcon();
|
||||
~ThemeAppIcon();
|
||||
|
||||
static QIcon getIcon(const QString &name);
|
||||
static bool getIcon(QPixmap &pix, const QString iconName, const int size, bool reObtain = false);
|
||||
|
||||
private:
|
||||
static bool createCalendarIcon(const QString &fileName);
|
||||
};
|
||||
|
||||
#endif // THEMEAPPICON_H
|
||||
|
@ -22,13 +22,6 @@ TouchSignalManager::TouchSignalManager(QObject *parent)
|
||||
connect(m_gestureInter, &Gesture::TouchMoving, this, &TouchSignalManager::touchMove);
|
||||
}
|
||||
|
||||
TouchSignalManager::~TouchSignalManager()
|
||||
{
|
||||
if (!m_touchManager) {
|
||||
m_touchManager->deleteLater();
|
||||
}
|
||||
}
|
||||
|
||||
TouchSignalManager *TouchSignalManager::instance()
|
||||
{
|
||||
if (!m_touchManager) {
|
||||
|
@ -33,7 +33,6 @@ class TouchSignalManager : public QObject
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
virtual ~TouchSignalManager();
|
||||
static TouchSignalManager *instance();
|
||||
bool isDragIconPress() const;
|
||||
|
||||
|
@ -172,19 +172,6 @@ inline QScreen *screenAtByScaled(const QPoint &point) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
inline bool isSettingConfigured(const QString& id, const QString& path, const QString& keyName)
|
||||
{
|
||||
if (!QGSettings::isSchemaInstalled(id.toUtf8())) {
|
||||
return false;
|
||||
}
|
||||
QGSettings setting(id.toUtf8(), path.toUtf8());
|
||||
QVariant v = setting.get(keyName);
|
||||
if (!v.isValid()) {
|
||||
return false;
|
||||
}
|
||||
return v.toBool();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 比较两个插件版本号的大小
|
||||
* @param pluginApi1 第一个插件版本号
|
||||
|
@ -68,6 +68,7 @@ MainPanelControl::MainPanelControl(QWidget *parent)
|
||||
, m_placeholderItem(nullptr)
|
||||
, m_appDragWidget(nullptr)
|
||||
, m_dislayMode(Efficient)
|
||||
, m_trayIconCount(0)
|
||||
, m_tray(nullptr)
|
||||
, m_isHover(false)
|
||||
, m_needRecoveryWin(false)
|
||||
@ -92,10 +93,6 @@ MainPanelControl::MainPanelControl(QWidget *parent)
|
||||
m_traySpliter->setFixedSize(0,0);
|
||||
}
|
||||
|
||||
MainPanelControl::~MainPanelControl()
|
||||
{
|
||||
}
|
||||
|
||||
void MainPanelControl::initUi()
|
||||
{
|
||||
/* 固定区域 */
|
||||
@ -349,9 +346,7 @@ void MainPanelControl::setPositonValue(Dock::Position position)
|
||||
return;
|
||||
|
||||
m_position = position;
|
||||
QTimer::singleShot(0, this, [=] {
|
||||
updateMainPanelLayout();
|
||||
});
|
||||
QTimer::singleShot(0, this, &MainPanelControl::updateMainPanelLayout);
|
||||
}
|
||||
|
||||
/**向任务栏插入各类应用,并将属于同一个应用的窗口合并到同一个应用图标
|
||||
@ -361,6 +356,9 @@ void MainPanelControl::setPositonValue(Dock::Position position)
|
||||
*/
|
||||
void MainPanelControl::insertItem(int index, DockItem *item)
|
||||
{
|
||||
if (!item)
|
||||
return;
|
||||
|
||||
item->installEventFilter(this);
|
||||
|
||||
switch (item->itemType()) {
|
||||
@ -386,10 +384,8 @@ void MainPanelControl::insertItem(int index, DockItem *item)
|
||||
if (item->itemType() != DockItem::App)
|
||||
resizeDockIcon();
|
||||
|
||||
QTimer::singleShot(0, [ = ] {
|
||||
updatePluginsLayout();
|
||||
});
|
||||
item->checkEntry();
|
||||
QTimer::singleShot(0, this, &MainPanelControl::updatePluginsLayout);
|
||||
}
|
||||
|
||||
/**从任务栏移除某一应用,并更新任务栏图标大小
|
||||
@ -1147,7 +1143,7 @@ void MainPanelControl::calcuDockIconSize(int w, int h, PluginsItem *trashPlugin,
|
||||
// 三方插件
|
||||
for (int i = 0; i < m_pluginLayout->count(); ++ i) {
|
||||
QLayout *layout = m_pluginLayout->itemAt(i)->layout();
|
||||
if (layout) {
|
||||
if (layout && layout->itemAt(0)) {
|
||||
PluginsItem *pItem = static_cast<PluginsItem *>(layout->itemAt(0)->widget());
|
||||
if (pItem) {
|
||||
if (pItem->sizeHint().height() == -1) {
|
||||
@ -1197,7 +1193,7 @@ void MainPanelControl::calcuDockIconSize(int w, int h, PluginsItem *trashPlugin,
|
||||
//而不对日期时间插件设置边距
|
||||
for (int i = 0; i < m_pluginLayout->count(); ++ i) {
|
||||
QLayout *layout = m_pluginLayout->itemAt(i)->layout();
|
||||
if (layout) {
|
||||
if (layout && layout->itemAt(0)) {
|
||||
PluginsItem *pItem = static_cast<PluginsItem *>(layout->itemAt(0)->widget());
|
||||
|
||||
if (pItem && pItem->pluginName() != "datetime") {
|
||||
|
@ -54,7 +54,6 @@ class MainPanelControl : public QWidget
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit MainPanelControl(QWidget *parent = nullptr);
|
||||
~MainPanelControl() override;
|
||||
|
||||
void setPositonValue(Position position);
|
||||
void setDisplayMode(DisplayMode dislayMode);
|
||||
|
@ -59,7 +59,7 @@ using org::kde::StatusNotifierWatcher;
|
||||
using DBusDock = com::deepin::dde::daemon::Dock;
|
||||
|
||||
// let startdde know that we've already started.
|
||||
void RegisterDdeSession()
|
||||
void MainWindow::RegisterDdeSession()
|
||||
{
|
||||
QString envName("DDE_SESSION_PROCESS_COOKIE_ID");
|
||||
|
||||
@ -139,11 +139,6 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
}
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief MainWindow::launch
|
||||
* 任务栏初次启动时调用此方法,里面是做了一些初始化操作
|
||||
@ -180,10 +175,7 @@ void MainWindow::callShow()
|
||||
launch();
|
||||
|
||||
// 预留200ms提供给窗口初始化再通知startdde,不影响启动速度
|
||||
QTimer::singleShot(200, this, []{
|
||||
qDebug() << "\n\ndde-dock startup RegisterDdeSession";
|
||||
RegisterDdeSession();
|
||||
});
|
||||
QTimer::singleShot(200, this, &MainWindow::RegisterDdeSession);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -350,17 +342,7 @@ void MainWindow::initConnections()
|
||||
|
||||
// 响应后端触控屏拖拽任务栏高度长按信号
|
||||
connect(TouchSignalManager::instance(), &TouchSignalManager::middleTouchPress, this, &MainWindow::touchRequestResizeDock);
|
||||
connect(TouchSignalManager::instance(), &TouchSignalManager::touchMove, m_dragWidget, [ this ]() {
|
||||
static QPoint lastPos;
|
||||
QPoint curPos = QCursor::pos();
|
||||
if (lastPos == curPos) {
|
||||
return;
|
||||
}
|
||||
lastPos = curPos;
|
||||
qApp->postEvent(m_dragWidget, new QMouseEvent(QEvent::MouseMove, m_dragWidget->mapFromGlobal(curPos)
|
||||
, QPoint(), curPos, Qt::LeftButton, Qt::LeftButton
|
||||
, Qt::NoModifier, Qt::MouseEventSynthesizedByApplication));
|
||||
});
|
||||
connect(TouchSignalManager::instance(), &TouchSignalManager::touchMove, m_dragWidget, &DragWidget::onTouchMove);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -59,6 +59,23 @@ public:
|
||||
m_dragStatus = false;
|
||||
}
|
||||
|
||||
public slots:
|
||||
void onTouchMove(double scaleX, double scaleY)
|
||||
{
|
||||
Q_UNUSED(scaleX);
|
||||
Q_UNUSED(scaleY);
|
||||
|
||||
static QPoint lastPos;
|
||||
QPoint curPos = QCursor::pos();
|
||||
if (lastPos == curPos) {
|
||||
return;
|
||||
}
|
||||
lastPos = curPos;
|
||||
qApp->postEvent(this, new QMouseEvent(QEvent::MouseMove, mapFromGlobal(curPos)
|
||||
, QPoint(), curPos, Qt::LeftButton, Qt::LeftButton
|
||||
, Qt::NoModifier, Qt::MouseEventSynthesizedByApplication));
|
||||
}
|
||||
|
||||
signals:
|
||||
void dragPointOffset(QPoint);
|
||||
void dragFinished();
|
||||
@ -112,7 +129,7 @@ class MainWindow : public DBlurEffectWidget
|
||||
|
||||
public:
|
||||
explicit MainWindow(QWidget *parent = nullptr);
|
||||
~MainWindow() override;
|
||||
|
||||
void setEffectEnabled(const bool enabled);
|
||||
void setComposite(const bool hasComposite);
|
||||
void setGeometry(const QRect &rect);
|
||||
@ -148,6 +165,7 @@ signals:
|
||||
void panelGeometryChanged();
|
||||
|
||||
public slots:
|
||||
void RegisterDdeSession();
|
||||
void resetDragWindow(); // 任务栏调整高度或宽度后需调用此函数
|
||||
|
||||
private slots:
|
||||
|
@ -25,7 +25,9 @@ target_include_directories(${PLUGIN_NAME} PUBLIC ${DtkWidget_INCLUDE_DIRS}
|
||||
${DFrameworkDBus_INCLUDE_DIRS}
|
||||
${QGSettings_INCLUDE_DIRS}
|
||||
../../interfaces
|
||||
../../frame)
|
||||
../../frame
|
||||
componments)
|
||||
|
||||
target_link_libraries(${PLUGIN_NAME} PRIVATE
|
||||
${DtkWidget_LIBRARIES}
|
||||
${DFrameworkDBus_LIBRARIES}
|
||||
|
@ -21,10 +21,10 @@
|
||||
*/
|
||||
|
||||
#include "bluetoothadapteritem.h"
|
||||
#include "componments/adapter.h"
|
||||
#include "adapter.h"
|
||||
#include "bluetoothconstants.h"
|
||||
#include "refreshbutton.h"
|
||||
#include "util/horizontalseperator.h"
|
||||
#include "horizontalseperator.h"
|
||||
|
||||
#include <DFontSizeManager>
|
||||
#include <DLabel>
|
||||
|
@ -23,7 +23,7 @@
|
||||
#ifndef BLUETOOTHADAPTERITEM_H
|
||||
#define BLUETOOTHADAPTERITEM_H
|
||||
|
||||
#include "componments/device.h"
|
||||
#include "device.h"
|
||||
#include "bluetoothapplet.h"
|
||||
|
||||
#include <QWidget>
|
||||
|
@ -26,7 +26,7 @@
|
||||
#include "adaptersmanager.h"
|
||||
#include "adapter.h"
|
||||
#include "bluetoothadapteritem.h"
|
||||
#include "util/horizontalseperator.h"
|
||||
#include "horizontalseperator.h"
|
||||
|
||||
#include <DApplicationHelper>
|
||||
#include <DDBusSender>
|
||||
|
@ -37,7 +37,7 @@ FashionTrayItem::FashionTrayItem(TrayPlugin *trayPlugin, QWidget *parent)
|
||||
m_mainBoxLayout(new QBoxLayout(QBoxLayout::Direction::LeftToRight, this))
|
||||
, m_attentionDelayTimer(new QTimer(this))
|
||||
, m_trayPlugin(trayPlugin)
|
||||
, m_controlWidget(new FashionTrayControlWidget(trayPlugin->dockPosition()))
|
||||
, m_controlWidget(new FashionTrayControlWidget(trayPlugin->dockPosition(), this))
|
||||
, m_normalContainer(new NormalContainer(m_trayPlugin, this))
|
||||
, m_attentionContainer(new AttentionContainer(m_trayPlugin, this))
|
||||
, m_holdContainer(new HoldContainer(m_trayPlugin, this))
|
||||
|
@ -1,3 +1,5 @@
|
||||
ADD_COMPILE_OPTIONS(-fno-access-control)
|
||||
|
||||
cmake_minimum_required(VERSION 3.7)
|
||||
|
||||
set(BIN_NAME dde_dock_unit_test)
|
||||
@ -6,7 +8,20 @@ set(BIN_NAME dde_dock_unit_test)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
# 源文件
|
||||
file(GLOB_RECURSE SRCS "*.h" "*.cpp" "../widgets/*.h" "../widgets/*.cpp")
|
||||
file(GLOB_RECURSE SRCS
|
||||
"*.h"
|
||||
"*.cpp"
|
||||
"../widgets/*.h"
|
||||
"../widgets/*.cpp")
|
||||
|
||||
# Sources files
|
||||
file(GLOB_RECURSE PLUGIN_SRCS
|
||||
"../plugins/bluetooth/*.h"
|
||||
"../plugins/bluetooth/*.cpp"
|
||||
"../plugins/bluetooth/componments/*.h"
|
||||
"../plugins/bluetooth/componments/*.cpp"
|
||||
"../frame/util/horizontalseperator.h"
|
||||
"../frame/util/horizontalseperator.cpp")
|
||||
|
||||
# 用于测试覆盖率的编译条件
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage -lgcov")
|
||||
@ -36,7 +51,13 @@ pkg_check_modules(DFrameworkDBus REQUIRED dframeworkdbus)
|
||||
pkg_check_modules(XCB_EWMH REQUIRED xcb-ewmh x11)
|
||||
|
||||
# 添加执行文件信息
|
||||
add_executable(${BIN_NAME} ${SRCS} ${INTERFACES} ${SRC_PATH} ../frame/item/item.qrc ut_res.qrc)
|
||||
add_executable(${BIN_NAME}
|
||||
${SRCS}
|
||||
${INTERFACES}
|
||||
${SRC_PATH}
|
||||
${PLUGIN_SRCS}
|
||||
../frame/item/item.qrc
|
||||
ut_res.qrc)
|
||||
|
||||
# 包含路径
|
||||
target_include_directories(${BIN_NAME} PUBLIC
|
||||
@ -47,6 +68,8 @@ target_include_directories(${BIN_NAME} PUBLIC
|
||||
${QGSettings_INCLUDE_DIRS}
|
||||
../interfaces
|
||||
fakedbus
|
||||
../plugins/bluetooth
|
||||
../plugins/bluetooth/componments
|
||||
)
|
||||
|
||||
# 链接库
|
||||
|
@ -56,7 +56,8 @@ TEST_F(Test_DockItemManager, appIsOnDock_test)
|
||||
{
|
||||
manager->appIsOnDock("test");
|
||||
|
||||
// manager->startLoadPlugins();
|
||||
manager->startLoadPlugins();
|
||||
QTest::qWait(10);
|
||||
}
|
||||
|
||||
TEST_F(Test_DockItemManager, get_method_test)
|
||||
@ -64,7 +65,6 @@ TEST_F(Test_DockItemManager, get_method_test)
|
||||
manager->itemList();
|
||||
manager->pluginList();
|
||||
|
||||
qDebug() << manager->m_itemList.size();
|
||||
for (auto item: manager->m_itemList)
|
||||
qDebug() << item->itemType();
|
||||
}
|
||||
@ -74,7 +74,7 @@ TEST_F(Test_DockItemManager, refreshItemsIcon_test)
|
||||
manager->refreshItemsIcon();
|
||||
}
|
||||
|
||||
TEST_F(Test_DockItemManager, cover_test)
|
||||
TEST_F(Test_DockItemManager, coverage_test)
|
||||
{
|
||||
manager->updatePluginsItemOrderKey();
|
||||
manager->itemAdded("", 0);
|
||||
@ -85,6 +85,9 @@ TEST_F(Test_DockItemManager, cover_test)
|
||||
QScopedPointer<TestPlugin> testPlugin(new TestPlugin);
|
||||
TrayPluginItem item(testPlugin.get(), "", "");
|
||||
manager->pluginItemInserted(&item);
|
||||
|
||||
manager->itemMoved(manager->itemList().first(), &item);
|
||||
|
||||
manager->pluginItemRemoved(&item);
|
||||
|
||||
manager->appItemRemoved("");
|
||||
|
58
tests/controller/ut_dockplugincontroller.cpp
Normal file
58
tests/controller/ut_dockplugincontroller.cpp
Normal file
@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright (C) 2018 ~ 2020 Uniontech Technology Co., Ltd.
|
||||
*
|
||||
* Author: fanpengcheng <fanpengcheng@uniontech.com>
|
||||
*
|
||||
* Maintainer: fanpengcheng <fanpengcheng@uniontech.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include <QObject>
|
||||
#include <QDebug>
|
||||
#include <QTest>
|
||||
|
||||
#include <DWindowManagerHelper>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "dockpluginscontroller.h"
|
||||
#include "abstractpluginscontroller.h"
|
||||
#include "../../plugins/bluetooth/bluetoothplugin.h"
|
||||
|
||||
class Test_DockPluginsController : public ::testing::Test
|
||||
{
|
||||
public:
|
||||
virtual void SetUp() override;
|
||||
virtual void TearDown() override;
|
||||
|
||||
public:
|
||||
DockPluginsController *controller = nullptr;
|
||||
};
|
||||
|
||||
void Test_DockPluginsController::SetUp()
|
||||
{
|
||||
controller = new DockPluginsController();
|
||||
}
|
||||
|
||||
void Test_DockPluginsController::TearDown()
|
||||
{
|
||||
delete controller;
|
||||
}
|
||||
|
||||
TEST_F(Test_DockPluginsController, test)
|
||||
{
|
||||
controller->loadPlugin("/usr/lib/dde-dock/plugins/libtray.so");
|
||||
// BluetoothPlugin * const p = new BluetoothPlugin;
|
||||
// p->init(controller);
|
||||
}
|
@ -54,7 +54,7 @@ TEST_F(Test_DisplayManager, method_test)
|
||||
ASSERT_EQ(spy.count(), 1);
|
||||
}
|
||||
|
||||
TEST_F(Test_DisplayManager, coverage_test) // 提高覆盖率,还没想好怎么做这种
|
||||
TEST_F(Test_DisplayManager, coverage_test)
|
||||
{
|
||||
DisplayManager::instance()->onGSettingsChanged("onlyShowPrimary");
|
||||
}
|
||||
|
@ -40,17 +40,15 @@ void Test_AppDrag::TearDown()
|
||||
{
|
||||
}
|
||||
|
||||
TEST_F(Test_AppDrag, drag_test)
|
||||
TEST_F(Test_AppDrag, coverage_test)
|
||||
{
|
||||
QWidget *w = new QWidget;
|
||||
AppDrag *drag = new AppDrag(w);
|
||||
QWidget w;
|
||||
AppDrag drag(&w);
|
||||
QPixmap pix(":/res/all_settings_on.png");
|
||||
drag->setPixmap(pix);
|
||||
drag.setPixmap(pix);
|
||||
|
||||
ASSERT_TRUE(drag->appDragWidget());
|
||||
ASSERT_TRUE(drag.appDragWidget());
|
||||
|
||||
drag->exec();
|
||||
|
||||
delete w;
|
||||
w = nullptr;
|
||||
// drag->exec();
|
||||
// drag->exec(Qt::MoveAction, Qt::IgnoreAction);
|
||||
}
|
||||
|
@ -23,78 +23,106 @@
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#define private public
|
||||
#include "appdragwidget.h"
|
||||
#undef private
|
||||
|
||||
class Test_AppDragWidget : public ::testing::Test
|
||||
{};
|
||||
|
||||
TEST_F(Test_AppDragWidget, popupMarkPoint)
|
||||
{
|
||||
public:
|
||||
virtual void SetUp() override;
|
||||
virtual void TearDown() override;
|
||||
};
|
||||
|
||||
void Test_AppDragWidget::SetUp()
|
||||
{
|
||||
}
|
||||
|
||||
void Test_AppDragWidget::TearDown()
|
||||
{
|
||||
}
|
||||
|
||||
TEST_F(Test_AppDragWidget, funtion_test)
|
||||
{
|
||||
AppDragWidget *dragWidget = new AppDragWidget;
|
||||
|
||||
AppDragWidget dragWidget;
|
||||
QPixmap pix(":/res/all_settings_on.png");
|
||||
dragWidget->setAppPixmap(pix);
|
||||
dragWidget->setOriginPos(QPoint(-1, -1));
|
||||
dragWidget.setAppPixmap(pix);
|
||||
dragWidget.setOriginPos(QPoint(-1, -1));
|
||||
|
||||
dragWidget->popupMarkPoint(Dock::Position::Top);
|
||||
dragWidget->popupMarkPoint(Dock::Position::Bottom);
|
||||
dragWidget->popupMarkPoint(Dock::Position::Left);
|
||||
dragWidget->popupMarkPoint(Dock::Position::Right);
|
||||
dragWidget.popupMarkPoint(Dock::Position::Top);
|
||||
dragWidget.popupMarkPoint(Dock::Position::Bottom);
|
||||
dragWidget.popupMarkPoint(Dock::Position::Left);
|
||||
dragWidget.popupMarkPoint(Dock::Position::Right);
|
||||
|
||||
dragWidget->showRemoveTips();
|
||||
dragWidget->showGoBackAnimation();
|
||||
dragWidget.showRemoveTips();
|
||||
dragWidget.showGoBackAnimation();
|
||||
|
||||
dragWidget->show();
|
||||
dragWidget->hide();
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
QTest::mouseClick(dragWidget,Qt::LeftButton, Qt::NoModifier, QPoint(dragWidget->rect().center()));
|
||||
TEST_F(Test_AppDragWidget, isRemoveAble)
|
||||
{
|
||||
AppDragWidget dragWidget;
|
||||
|
||||
// dragWidget.show();
|
||||
// dragWidget.hide();
|
||||
|
||||
QTest::mouseClick(&dragWidget,Qt::LeftButton, Qt::NoModifier, QPoint(dragWidget.rect().center()));
|
||||
|
||||
// bottom
|
||||
const QRect &rect = QRect(QPoint(0, 1040), QPoint(1920, 1080));
|
||||
dragWidget->setDockInfo(Dock::Position::Bottom, rect);
|
||||
ASSERT_TRUE(dragWidget->isRemoveAble(QPoint(10, 10)));
|
||||
ASSERT_FALSE(dragWidget->isRemoveAble(QPoint(10, 1070)));
|
||||
ASSERT_TRUE(dragWidget->isRemoveAble(QPoint(1910, 10)));
|
||||
ASSERT_FALSE(dragWidget->isRemoveAble(QPoint(1910, 1070)));
|
||||
dragWidget.setDockInfo(Dock::Position::Bottom, rect);
|
||||
dragWidget.isRemoveItem();
|
||||
ASSERT_TRUE(dragWidget.isRemoveAble(QPoint(10, 10)));
|
||||
ASSERT_FALSE(dragWidget.isRemoveAble(QPoint(10, 1070)));
|
||||
ASSERT_TRUE(dragWidget.isRemoveAble(QPoint(1910, 10)));
|
||||
ASSERT_FALSE(dragWidget.isRemoveAble(QPoint(1910, 1070)));
|
||||
|
||||
// top
|
||||
const QRect &rect1 = QRect(QPoint(0, 0), QPoint(1920, 40));
|
||||
dragWidget->setDockInfo(Dock::Position::Top, rect1);
|
||||
ASSERT_FALSE(dragWidget->isRemoveAble(QPoint(10, 10)));
|
||||
ASSERT_TRUE(dragWidget->isRemoveAble(QPoint(10, 1070)));
|
||||
ASSERT_FALSE(dragWidget->isRemoveAble(QPoint(1910, 10)));
|
||||
ASSERT_TRUE(dragWidget->isRemoveAble(QPoint(1910, 1070)));
|
||||
dragWidget.setDockInfo(Dock::Position::Top, rect1);
|
||||
dragWidget.isRemoveItem();
|
||||
ASSERT_FALSE(dragWidget.isRemoveAble(QPoint(10, 10)));
|
||||
ASSERT_TRUE(dragWidget.isRemoveAble(QPoint(10, 1070)));
|
||||
ASSERT_FALSE(dragWidget.isRemoveAble(QPoint(1910, 10)));
|
||||
ASSERT_TRUE(dragWidget.isRemoveAble(QPoint(1910, 1070)));
|
||||
|
||||
// left
|
||||
const QRect &rect2 = QRect(QPoint(0, 0), QPoint(40, 1080));
|
||||
dragWidget->setDockInfo(Dock::Position::Left, rect2);
|
||||
ASSERT_FALSE(dragWidget->isRemoveAble(QPoint(10, 10)));
|
||||
ASSERT_FALSE(dragWidget->isRemoveAble(QPoint(10, 1070)));
|
||||
ASSERT_TRUE(dragWidget->isRemoveAble(QPoint(1910, 10)));
|
||||
ASSERT_TRUE(dragWidget->isRemoveAble(QPoint(1910, 1070)));
|
||||
dragWidget.setDockInfo(Dock::Position::Left, rect2);
|
||||
dragWidget.isRemoveItem();
|
||||
ASSERT_FALSE(dragWidget.isRemoveAble(QPoint(10, 10)));
|
||||
ASSERT_FALSE(dragWidget.isRemoveAble(QPoint(10, 1070)));
|
||||
ASSERT_TRUE(dragWidget.isRemoveAble(QPoint(1910, 10)));
|
||||
ASSERT_TRUE(dragWidget.isRemoveAble(QPoint(1910, 1070)));
|
||||
|
||||
// right
|
||||
const QRect &rect3 = QRect(QPoint(1880, 0), QPoint(1920, 1080));
|
||||
dragWidget->setDockInfo(Dock::Position::Right, rect3);
|
||||
ASSERT_TRUE(dragWidget->isRemoveAble(QPoint(10, 10)));
|
||||
ASSERT_TRUE(dragWidget->isRemoveAble(QPoint(10, 1070)));
|
||||
ASSERT_FALSE(dragWidget->isRemoveAble(QPoint(1910, 10)));
|
||||
ASSERT_FALSE(dragWidget->isRemoveAble(QPoint(1910, 1070)));
|
||||
|
||||
delete dragWidget;
|
||||
dragWidget = nullptr;
|
||||
dragWidget.setDockInfo(Dock::Position::Right, rect3);
|
||||
dragWidget.isRemoveItem();
|
||||
ASSERT_TRUE(dragWidget.isRemoveAble(QPoint(10, 10)));
|
||||
ASSERT_TRUE(dragWidget.isRemoveAble(QPoint(10, 1070)));
|
||||
ASSERT_FALSE(dragWidget.isRemoveAble(QPoint(1910, 10)));
|
||||
ASSERT_FALSE(dragWidget.isRemoveAble(QPoint(1910, 1070)));
|
||||
}
|
||||
|
||||
TEST_F(Test_AppDragWidget, coverage_test)
|
||||
{
|
||||
AppDragWidget dragWidget;
|
||||
|
||||
dragWidget.showRemoveAnimation();
|
||||
dragWidget.onRemoveAnimationStateChanged(QAbstractAnimation::State::Stopped, QAbstractAnimation::State::Running);
|
||||
}
|
||||
|
||||
TEST_F(Test_AppDragWidget, event_test)
|
||||
{
|
||||
AppDragWidget dragWidget;
|
||||
|
||||
QMouseEvent mouseMoveEvent_(QEvent::MouseMove, QPointF(0, 0), Qt::RightButton, Qt::RightButton, Qt::ControlModifier);
|
||||
dragWidget.mouseMoveEvent(&mouseMoveEvent_);
|
||||
|
||||
QMimeData *data = new QMimeData;
|
||||
data->setText("test");
|
||||
QDropEvent dropEvent_(QPointF(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::ControlModifier);
|
||||
dragWidget.dropEvent(&dropEvent_);
|
||||
|
||||
QDragEnterEvent dragEnterEvent_(QPoint(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::NoModifier);
|
||||
dragWidget.dragEnterEvent(&dragEnterEvent_);
|
||||
|
||||
QDragMoveEvent dragMoveEvent_(QPoint(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::NoModifier);
|
||||
dragWidget.dragMoveEvent(&dragMoveEvent_);
|
||||
|
||||
QHideEvent hideEvent_;
|
||||
dragWidget.hideEvent(&hideEvent_);
|
||||
|
||||
QEvent enterEvent_(QEvent::Enter);
|
||||
dragWidget.enterEvent(&enterEvent_);
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
@ -32,22 +32,97 @@
|
||||
#undef private
|
||||
|
||||
class Test_AppSnapshot : public ::testing::Test
|
||||
{
|
||||
public:
|
||||
virtual void SetUp() override;
|
||||
virtual void TearDown() override;
|
||||
{};
|
||||
|
||||
public:
|
||||
AppSnapshot *shot = nullptr;
|
||||
};
|
||||
|
||||
void Test_AppSnapshot::SetUp()
|
||||
TEST_F(Test_AppSnapshot, eventFilter)
|
||||
{
|
||||
shot = new AppSnapshot(1000000);
|
||||
AppSnapshot snapShot(1000000);
|
||||
|
||||
QEvent hoverEnterEvent(QEvent::HoverEnter);
|
||||
snapShot.eventFilter(snapShot.m_closeBtn2D, &hoverEnterEvent);
|
||||
|
||||
QEvent hoverMoveEvent(QEvent::HoverMove);
|
||||
snapShot.eventFilter(snapShot.m_closeBtn2D, &hoverMoveEvent);
|
||||
|
||||
QEvent hoverLeaveEvent(QEvent::HoverLeave);
|
||||
snapShot.eventFilter(snapShot.m_closeBtn2D, &hoverLeaveEvent);
|
||||
|
||||
QEvent mousePressEvent(QEvent::MouseButtonPress);
|
||||
snapShot.eventFilter(snapShot.m_closeBtn2D, &mousePressEvent);
|
||||
}
|
||||
|
||||
void Test_AppSnapshot::TearDown()
|
||||
TEST_F(Test_AppSnapshot, paintEvent)
|
||||
{
|
||||
delete shot;
|
||||
shot = nullptr;
|
||||
AppSnapshot snapShot(1000000);
|
||||
QRect rect(0, 0, 10, 10);
|
||||
QPaintEvent paintEvent(rect);
|
||||
snapShot.paintEvent(&paintEvent);
|
||||
}
|
||||
|
||||
TEST_F(Test_AppSnapshot, enterEvent)
|
||||
{
|
||||
AppSnapshot snapShot(1000000);
|
||||
QEvent enterEvent(QEvent::Enter);
|
||||
snapShot.enterEvent(&enterEvent);
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_AppSnapshot, event_test)
|
||||
{
|
||||
AppSnapshot snapShot(1000000);
|
||||
|
||||
QMouseEvent event1(QEvent::MouseButtonPress, QPointF(0, 0), Qt::LeftButton, Qt::RightButton, Qt::ControlModifier);
|
||||
snapShot.mousePressEvent(&event1);
|
||||
|
||||
QMouseEvent event2(QEvent::MouseButtonRelease, QPointF(0, 0), Qt::RightButton, Qt::RightButton, Qt::ControlModifier);
|
||||
snapShot.mouseReleaseEvent(&event2);
|
||||
|
||||
QMouseEvent event3(QEvent::MouseMove, QPointF(0, 0), Qt::LeftButton, Qt::LeftButton, Qt::ControlModifier);
|
||||
snapShot.mouseMoveEvent(&event3);
|
||||
|
||||
QMouseEvent event4(QEvent::MouseMove, QPointF(0, 0), Qt::RightButton, Qt::RightButton, Qt::ControlModifier);
|
||||
snapShot.mouseMoveEvent(&event4);
|
||||
|
||||
QResizeEvent event5((QSize()), QSize());
|
||||
snapShot.resizeEvent(&event5);
|
||||
|
||||
QEvent event6(QEvent::Leave);
|
||||
snapShot.leaveEvent(&event6);
|
||||
|
||||
QShowEvent event7;
|
||||
snapShot.showEvent(&event7);
|
||||
|
||||
QMimeData *data = new QMimeData;
|
||||
data->setText("test");
|
||||
QDropEvent event8(QPointF(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::ControlModifier);
|
||||
snapShot.dropEvent(&event8);
|
||||
|
||||
QDragEnterEvent event9(QPoint(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::NoModifier);
|
||||
snapShot.dragEnterEvent(&event9);
|
||||
|
||||
QDragMoveEvent event10(QPoint(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::NoModifier);
|
||||
snapShot.dragMoveEvent(&event10);
|
||||
}
|
||||
|
||||
TEST_F(Test_AppSnapshot, setWindowState)
|
||||
{
|
||||
AppSnapshot snapShot(1000000);
|
||||
|
||||
snapShot.m_isWidowHidden = true;
|
||||
snapShot.setWindowState();
|
||||
|
||||
snapShot.m_isWidowHidden = false;
|
||||
snapShot.setWindowState();
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_AppSnapshot, coverage_test)
|
||||
{
|
||||
AppSnapshot snapShot(1000000);
|
||||
snapShot.closeWindow();
|
||||
|
||||
QImage img;
|
||||
snapShot.rectRemovedShadow(img, nullptr);
|
||||
}
|
||||
|
@ -31,45 +31,74 @@
|
||||
#undef private
|
||||
|
||||
class Test_FloatingPreview : public ::testing::Test
|
||||
{
|
||||
public:
|
||||
virtual void SetUp() override;
|
||||
virtual void TearDown() override;
|
||||
};
|
||||
{};
|
||||
|
||||
void Test_FloatingPreview::SetUp()
|
||||
TEST_F(Test_FloatingPreview, eventFilter)
|
||||
{
|
||||
FloatingPreview view;
|
||||
|
||||
QEvent hoverEnterEvent(QEvent::HoverEnter);
|
||||
view.eventFilter(view.m_closeBtn3D, &hoverEnterEvent);
|
||||
|
||||
QEvent hoverLeaveEvent(QEvent::HoverLeave);
|
||||
view.eventFilter(view.m_closeBtn3D, &hoverLeaveEvent);
|
||||
|
||||
QEvent mousePressEvent(QEvent::MouseButtonPress);
|
||||
view.eventFilter(view.m_closeBtn3D, &mousePressEvent);
|
||||
}
|
||||
|
||||
void Test_FloatingPreview::TearDown()
|
||||
TEST_F(Test_FloatingPreview, trackedWid)
|
||||
{
|
||||
FloatingPreview view;
|
||||
AppSnapshot snap(1000000);
|
||||
|
||||
view.trackWindow(&snap);
|
||||
view.onCloseBtnClicked();
|
||||
|
||||
ASSERT_TRUE(view.trackedWid());
|
||||
}
|
||||
|
||||
TEST_F(Test_FloatingPreview, view_test)
|
||||
TEST_F(Test_FloatingPreview, paintEvent)
|
||||
{
|
||||
QWidget *parent = new QWidget;
|
||||
FloatingPreview *view = new FloatingPreview(parent);
|
||||
FloatingPreview view;
|
||||
QPaintEvent event((QRect()));
|
||||
view.paintEvent(&event);
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_FloatingPreview, hideEvent)
|
||||
{
|
||||
FloatingPreview view;
|
||||
|
||||
AppSnapshot snap(1000000);
|
||||
view.trackWindow(&snap);
|
||||
|
||||
QHideEvent event;
|
||||
view.hideEvent(&event);
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_FloatingPreview, coverage_test)
|
||||
{
|
||||
QWidget parent;
|
||||
FloatingPreview view(&parent);
|
||||
AppSnapshot *shot = new AppSnapshot(1000);
|
||||
view->trackWindow(shot);
|
||||
shot->fetchSnapshot();
|
||||
shot->m_snapshot = QImage(":/res/dde-calendar.svg");
|
||||
view.trackWindow(shot);
|
||||
|
||||
ASSERT_TRUE(view->m_titleBtn->text() == shot->title());
|
||||
ASSERT_EQ(view->trackedWindow(), shot);
|
||||
// ASSERT_EQ(view->trackedWid(), shot->wid());
|
||||
ASSERT_TRUE(view.m_titleBtn->text() == shot->title());
|
||||
ASSERT_EQ(view.trackedWindow(), shot);
|
||||
|
||||
QSignalSpy spy(shot, &AppSnapshot::clicked);
|
||||
QTest::mouseClick(view, Qt::LeftButton, Qt::NoModifier);
|
||||
QTest::mouseClick(&view, Qt::LeftButton, Qt::NoModifier);
|
||||
ASSERT_EQ(spy.count(), 1);
|
||||
|
||||
// view->m_closeBtn3D->click();
|
||||
|
||||
view->hide();
|
||||
ASSERT_TRUE(shot->contentsMargins() == QMargins(0, 0, 0, 0));
|
||||
|
||||
view->trackWindow(nullptr);
|
||||
ASSERT_TRUE(view->m_titleBtn->text().isEmpty());
|
||||
ASSERT_EQ(view->trackedWindow(), shot);
|
||||
|
||||
delete parent;
|
||||
parent = nullptr;
|
||||
view.trackWindow(nullptr);
|
||||
ASSERT_TRUE(view.m_titleBtn->text().isEmpty());
|
||||
ASSERT_EQ(view.trackedWindow(), shot);
|
||||
}
|
||||
|
||||
|
@ -25,24 +25,11 @@
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#define private public
|
||||
#include "previewcontainer.h"
|
||||
#undef private
|
||||
#include "appspreviewprovider.h"
|
||||
|
||||
class Test_PreviewContainer : public ::testing::Test
|
||||
{
|
||||
public:
|
||||
virtual void SetUp() override;
|
||||
virtual void TearDown() override;
|
||||
};
|
||||
|
||||
void Test_PreviewContainer::SetUp()
|
||||
{
|
||||
}
|
||||
|
||||
void Test_PreviewContainer::TearDown()
|
||||
{
|
||||
}
|
||||
{};
|
||||
|
||||
TEST_F(Test_PreviewContainer, coverage_test)
|
||||
{
|
||||
@ -58,17 +45,24 @@ TEST_F(Test_PreviewContainer, coverage_test)
|
||||
map.insert(2, info);
|
||||
map.insert(3, info);
|
||||
|
||||
container->setWindowInfos(map, map.keys());
|
||||
WId id(1000);
|
||||
AppSnapshot *snap = new AppSnapshot(id);
|
||||
container->m_snapshots.insert(id, snap);
|
||||
snap->requestCloseAppSnapshot();
|
||||
container->setWindowInfos(map, QList<quint32> () << 1 << 2 << 3 << 4);
|
||||
|
||||
for (const WId id: map.keys()) {
|
||||
container->appendSnapWidget(id);
|
||||
}
|
||||
|
||||
container->previewEntered(id);
|
||||
container->m_waitForShowPreviewTimer->start();
|
||||
|
||||
container->updateSnapshots();
|
||||
container->updateLayoutDirection(Dock::Position::Bottom);
|
||||
ASSERT_EQ(container->m_windowListLayout->direction(), QBoxLayout::LeftToRight);
|
||||
ASSERT_EQ(container->m_windowListLayout->direction(), container->m_wmHelper->hasComposite() ? QBoxLayout::LeftToRight : QBoxLayout::TopToBottom);
|
||||
container->updateLayoutDirection(Dock::Position::Top);
|
||||
ASSERT_EQ(container->m_windowListLayout->direction(), QBoxLayout::LeftToRight);
|
||||
ASSERT_EQ(container->m_windowListLayout->direction(), container->m_wmHelper->hasComposite() ? QBoxLayout::LeftToRight : QBoxLayout::TopToBottom);
|
||||
container->updateLayoutDirection(Dock::Position::Left);
|
||||
ASSERT_EQ(container->m_windowListLayout->direction(), QBoxLayout::TopToBottom);
|
||||
container->updateLayoutDirection(Dock::Position::Right);
|
||||
@ -85,9 +79,83 @@ TEST_F(Test_PreviewContainer, coverage_test)
|
||||
QDragEnterEvent dragEnterEvent(QPoint(10, 10), Qt::CopyAction, &mimeData, Qt::LeftButton, Qt::NoModifier);
|
||||
qApp->sendEvent(container, &dragEnterEvent);
|
||||
|
||||
// QDragLeaveEvent dragLeaveEvent;
|
||||
// qApp->sendEvent(container, &dragLeaveEvent);
|
||||
container->prepareHide();
|
||||
container->adjustSize(true);
|
||||
container->adjustSize(false);
|
||||
|
||||
delete snap;
|
||||
delete container;
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_PreviewContainer, checkMouseLeave)
|
||||
{
|
||||
PreviewContainer container;
|
||||
container.checkMouseLeave();
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_PreviewContainer, dragLeaveEvent)
|
||||
{
|
||||
PreviewContainer container;
|
||||
QDragLeaveEvent dragLeaveEvent_;
|
||||
container.dragLeaveEvent(&dragLeaveEvent_);
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
TEST_F(Test_PreviewContainer, previewFloating)
|
||||
{
|
||||
PreviewContainer container;
|
||||
container.previewFloating();
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_PreviewContainer, event_test)
|
||||
{
|
||||
PreviewContainer *container = new PreviewContainer();
|
||||
|
||||
QMouseEvent event1(QEvent::MouseButtonPress, QPointF(0, 0), Qt::LeftButton, Qt::RightButton, Qt::ControlModifier);
|
||||
container->mousePressEvent(&event1);
|
||||
|
||||
QMouseEvent event2(QEvent::MouseButtonRelease, QPointF(0, 0), Qt::RightButton, Qt::RightButton, Qt::ControlModifier);
|
||||
container->mouseReleaseEvent(&event2);
|
||||
|
||||
QMouseEvent event3(QEvent::MouseMove, QPointF(0, 0), Qt::LeftButton, Qt::LeftButton, Qt::ControlModifier);
|
||||
container->mouseMoveEvent(&event3);
|
||||
|
||||
QMouseEvent event4(QEvent::MouseMove, QPointF(0, 0), Qt::RightButton, Qt::RightButton, Qt::ControlModifier);
|
||||
container->mouseMoveEvent(&event4);
|
||||
|
||||
QResizeEvent event5((QSize()), QSize());
|
||||
container->resizeEvent(&event5);
|
||||
|
||||
QEvent event6(QEvent::Leave);
|
||||
container->leaveEvent(&event6);
|
||||
|
||||
QShowEvent event7;
|
||||
container->showEvent(&event7);
|
||||
|
||||
QMimeData *data = new QMimeData;
|
||||
data->setText("test");
|
||||
QDropEvent event8(QPointF(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::ControlModifier);
|
||||
container->dropEvent(&event8);
|
||||
|
||||
QDragEnterEvent event9(QPoint(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::NoModifier);
|
||||
container->dragEnterEvent(&event9);
|
||||
|
||||
QDragMoveEvent event10(QPoint(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::NoModifier);
|
||||
container->dragMoveEvent(&event10);
|
||||
|
||||
delete container;
|
||||
container = nullptr;
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_PreviewContainer, PreviewWindow)
|
||||
{
|
||||
WindowList list;
|
||||
PreviewContainer *preview = PreviewWindow(WindowInfoMap(), list, Dock::Position::Top);
|
||||
|
||||
ASSERT_TRUE(preview);
|
||||
|
||||
delete preview;
|
||||
}
|
||||
|
@ -36,6 +36,11 @@ QWidget *TestPlugin::itemWidget(const QString &)
|
||||
return m_widget;
|
||||
}
|
||||
|
||||
const QString TestPlugin::itemContextMenu(const QString &itemKey)
|
||||
{
|
||||
return QString("test plugin menu: " + itemKey);
|
||||
}
|
||||
|
||||
int TestPlugin::itemSortKey(const QString &)
|
||||
{
|
||||
return m_sortKey;
|
||||
|
@ -17,6 +17,7 @@ public:
|
||||
virtual const QString pluginDisplayName() const override;
|
||||
virtual void init(PluginProxyInterface *proxyInter) override;
|
||||
virtual QWidget *itemWidget(const QString &itemKey) override;
|
||||
virtual const QString itemContextMenu(const QString &itemKey) override;
|
||||
virtual int itemSortKey(const QString &itemKey) override;
|
||||
virtual void setSortKey(const QString &itemKey, const int order) override;
|
||||
virtual PluginSizePolicy pluginSizePolicy() const override;
|
||||
|
@ -26,9 +26,7 @@
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "utils.h"
|
||||
#define private public
|
||||
#include "appitem.h"
|
||||
#undef private
|
||||
|
||||
using namespace ::testing;
|
||||
|
||||
@ -37,75 +35,157 @@ class Test_AppItem : public ::testing::Test
|
||||
public:
|
||||
virtual void SetUp() override;
|
||||
virtual void TearDown() override;
|
||||
|
||||
AppItem *appItem;
|
||||
const QGSettings *appSettings;
|
||||
const QGSettings *activeSettings;
|
||||
const QGSettings *dockedSettings;
|
||||
};
|
||||
|
||||
void Test_AppItem::SetUp()
|
||||
{
|
||||
appSettings = Utils::ModuleSettingsPtr("app");
|
||||
activeSettings = Utils::ModuleSettingsPtr("activeapp");
|
||||
dockedSettings = Utils::ModuleSettingsPtr("dockapp");
|
||||
|
||||
appItem = new AppItem(appSettings, activeSettings, dockedSettings, QDBusObjectPath("/com/deepin/dde/daemon/Dock/entries/e0T6045b766"));
|
||||
}
|
||||
|
||||
void Test_AppItem::TearDown()
|
||||
{
|
||||
delete appItem;
|
||||
delete appSettings;
|
||||
delete activeSettings;
|
||||
delete dockedSettings;
|
||||
}
|
||||
|
||||
TEST_F(Test_AppItem, paintEvent)
|
||||
{
|
||||
QPaintEvent e((QRect()));
|
||||
|
||||
WindowInfoMap map;
|
||||
WindowInfo info;
|
||||
map.insert(0,info);
|
||||
map.insert(1,info);
|
||||
map.insert(2,info);
|
||||
appItem->updateWindowInfos(map);
|
||||
|
||||
DockItem::setDockDisplayMode(DisplayMode::Fashion);
|
||||
appItem->setDockInfo(Dock::Position::Top, QRect(QPoint(0,0), QPoint(1920, 40)));
|
||||
appItem->paintEvent(&e);
|
||||
appItem->setDockInfo(Dock::Position::Bottom, QRect(QPoint(0,0), QPoint(1920, 40)));
|
||||
appItem->paintEvent(&e);
|
||||
appItem->setDockInfo(Dock::Position::Left, QRect(QPoint(0,0), QPoint(1920, 40)));
|
||||
appItem->paintEvent(&e);
|
||||
appItem->setDockInfo(Dock::Position::Right, QRect(QPoint(0,0), QPoint(1920, 40)));
|
||||
appItem->paintEvent(&e);
|
||||
|
||||
DockItem::setDockDisplayMode(DisplayMode::Efficient);
|
||||
appItem->setDockInfo(Dock::Position::Top, QRect(QPoint(0,0), QPoint(1920, 40)));
|
||||
appItem->paintEvent(&e);
|
||||
appItem->setDockInfo(Dock::Position::Bottom, QRect(QPoint(0,0), QPoint(1920, 40)));
|
||||
appItem->paintEvent(&e);
|
||||
appItem->setDockInfo(Dock::Position::Left, QRect(QPoint(0,0), QPoint(1920, 40)));
|
||||
appItem->paintEvent(&e);
|
||||
appItem->setDockInfo(Dock::Position::Right, QRect(QPoint(0,0), QPoint(1920, 40)));
|
||||
appItem->paintEvent(&e);
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_AppItem, coverage_test)
|
||||
{
|
||||
const QGSettings *appSettings = Utils::ModuleSettingsPtr("app");
|
||||
const QGSettings *activeSettings = Utils::ModuleSettingsPtr("activeapp");
|
||||
const QGSettings *dockedSettings = Utils::ModuleSettingsPtr("dockapp");
|
||||
|
||||
AppItem *appItem = new AppItem(appSettings, activeSettings, dockedSettings, QDBusObjectPath("/com/deepin/dde/daemon/Dock/entries/e0T6045b766"));
|
||||
|
||||
// 触发信号测试
|
||||
// emit appItem->m_refershIconTimer->start(10);
|
||||
appItem->m_refershIconTimer->start(10);
|
||||
QTest::qWait(20);
|
||||
|
||||
// FIXME: 测试不到?
|
||||
appItem->checkEntry();
|
||||
appItem->undock();
|
||||
|
||||
appItem->setDockDisplayMode(Dock::Efficient);
|
||||
appItem->update();
|
||||
QTest::qWait(10);
|
||||
appItem->setDockDisplayMode(Dock::Fashion);
|
||||
appItem->update();
|
||||
QTest::qWait(10);
|
||||
// appItem->updateWindowIconGeometries();
|
||||
appItem->appIcon();
|
||||
|
||||
ASSERT_TRUE(appItem->itemType() == AppItem::App);
|
||||
|
||||
appItem->setDockInfo(Dock::Position::Top, QRect(QPoint(0,0), QPoint(1920, 40)));
|
||||
|
||||
ASSERT_TRUE(appItem->accessibleName() == appItem->m_itemEntryInter->name());
|
||||
|
||||
appItem->show();
|
||||
appItem->checkAttentionEffect();
|
||||
appItem->onGSettingsChanged("enabled");
|
||||
appItem->checkGSettingsControl();
|
||||
appItem->showHoverTips();
|
||||
appItem->popupTips();
|
||||
appItem->startDrag();
|
||||
appItem->playSwingEffect();
|
||||
appItem->invokedMenuItem("invalid", true);
|
||||
appItem->contextMenu();
|
||||
|
||||
appItem->resize(100, 100);
|
||||
|
||||
QTest::qWait(10);
|
||||
|
||||
ASSERT_TRUE(appItem->isVisible());
|
||||
|
||||
appItem->hide();
|
||||
|
||||
QTest::qWait(10);
|
||||
|
||||
ASSERT_TRUE(!appItem->isVisible());
|
||||
|
||||
QTest::mousePress(appItem, Qt::LeftButton, Qt::NoModifier);
|
||||
QTest::mouseRelease(appItem, Qt::LeftButton, Qt::NoModifier);
|
||||
QTest::qWait(400);
|
||||
// QTest::mouseClick(appItem, Qt::MiddleButton, Qt::NoModifier);
|
||||
// QTest::qWait(400);
|
||||
// QTest::mouseClick(appItem, Qt::LeftButton, Qt::NoModifier, QPoint(-1, -1));
|
||||
// QTest::qWait(400);
|
||||
// QTest::mouseMove(appItem, appItem->geometry().center());
|
||||
|
||||
delete appItem;
|
||||
appItem = nullptr;
|
||||
delete appSettings;
|
||||
appSettings = nullptr;
|
||||
delete activeSettings;
|
||||
activeSettings = nullptr;
|
||||
delete dockedSettings;
|
||||
dockedSettings = nullptr;
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_AppItem, appDragWidget)
|
||||
{
|
||||
appItem->appDragWidget();
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_AppItem, mouseReleaseEvent)
|
||||
{
|
||||
QMouseEvent event(QEvent::MouseButtonRelease, QPointF(0, 0), Qt::MiddleButton, Qt::MiddleButton, Qt::ControlModifier);
|
||||
appItem->mouseReleaseEvent(&event);
|
||||
|
||||
QTest::qWait(350);
|
||||
appItem->mouseReleaseEvent(&event);
|
||||
|
||||
QMouseEvent event2(QEvent::MouseButtonRelease, QPointF(0, 0), Qt::LeftButton, Qt::LeftButton, Qt::ControlModifier);
|
||||
QTest::qWait(350);
|
||||
appItem->mouseReleaseEvent(&event2);
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_AppItem, QWheelEvent)
|
||||
{
|
||||
QWheelEvent event(QPointF(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
|
||||
appItem->wheelEvent(&event);
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_AppItem, event_test)
|
||||
{
|
||||
QMouseEvent event1(QEvent::MouseButtonPress, QPointF(0, 0), Qt::LeftButton, Qt::RightButton, Qt::ControlModifier);
|
||||
appItem->mousePressEvent(&event1);
|
||||
|
||||
QMouseEvent event3(QEvent::MouseMove, QPointF(0, 0), Qt::LeftButton, Qt::LeftButton, Qt::ControlModifier);
|
||||
appItem->mouseMoveEvent(&event3);
|
||||
|
||||
QMouseEvent event4(QEvent::MouseMove, QPointF(0, 0), Qt::RightButton, Qt::RightButton, Qt::ControlModifier);
|
||||
appItem->mouseMoveEvent(&event4);
|
||||
|
||||
QResizeEvent event5((QSize()), QSize());
|
||||
appItem->resizeEvent(&event5);
|
||||
|
||||
QEvent event6(QEvent::Leave);
|
||||
appItem->leaveEvent(&event6);
|
||||
|
||||
QShowEvent event7;
|
||||
appItem->showEvent(&event7);
|
||||
|
||||
QMimeData *data = new QMimeData;
|
||||
data->setText("test");
|
||||
QDropEvent event8(QPointF(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::ControlModifier);
|
||||
appItem->dropEvent(&event8);
|
||||
|
||||
QDragEnterEvent event9(QPoint(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::NoModifier);
|
||||
appItem->dragEnterEvent(&event9);
|
||||
|
||||
QDragMoveEvent event10(QPoint(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::NoModifier);
|
||||
appItem->dragMoveEvent(&event10);
|
||||
}
|
||||
|
||||
TEST_F(Test_AppItem, checkEntry)
|
||||
{
|
||||
appItem->checkEntry();
|
||||
appItem->accessibleName();
|
||||
|
||||
ASSERT_EQ(appItem->appId(), appItem->m_id);
|
||||
|
||||
appItem->isValid();
|
||||
}
|
||||
|
@ -21,6 +21,7 @@
|
||||
|
||||
#include <QObject>
|
||||
#include <QThread>
|
||||
#include <QTest>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
#include <gmock/gmock.h>
|
||||
@ -57,7 +58,7 @@ TEST_F(Test_DockItem, dockitem_test)
|
||||
ASSERT_NE(dockItem, nullptr);
|
||||
}
|
||||
|
||||
TEST_F(Test_DockItem, dockitem_show_test)
|
||||
TEST_F(Test_DockItem, show_test)
|
||||
{
|
||||
dockItem->show();
|
||||
|
||||
@ -66,7 +67,7 @@ TEST_F(Test_DockItem, dockitem_show_test)
|
||||
ASSERT_EQ(dockItem->isVisible(), true);
|
||||
}
|
||||
|
||||
TEST_F(Test_DockItem, dockitem_hide_test)
|
||||
TEST_F(Test_DockItem, hide_test)
|
||||
{
|
||||
dockItem->hide();
|
||||
|
||||
@ -80,31 +81,54 @@ TEST_F(Test_DockItem, cover_test)
|
||||
DockItem::setDockPosition(Dock::Top);
|
||||
DockItem::setDockDisplayMode(Dock::Fashion);
|
||||
|
||||
// ASSERT_EQ(dockItem->itemType(), DockItem::App);
|
||||
ASSERT_EQ(dockItem->itemType(), DockItem::App);
|
||||
dockItem->sizeHint();
|
||||
ASSERT_EQ(dockItem->accessibleName(), "");
|
||||
|
||||
dockItem->refreshIcon();
|
||||
dockItem->contextMenu();
|
||||
dockItem->popupTips();
|
||||
dockItem->popupWindowAccept();
|
||||
// dockItem->showPopupApplet(new QWidget);
|
||||
dockItem->showPopupApplet(new QWidget);
|
||||
dockItem->invokedMenuItem("", true);
|
||||
dockItem->checkAndResetTapHoldGestureState();
|
||||
|
||||
ASSERT_EQ(dockItem->accessibleName(), "");
|
||||
}
|
||||
|
||||
TEST_F(Test_DockItem, event_test)
|
||||
{
|
||||
dockItem->m_popupShown = true;
|
||||
dockItem->update();
|
||||
DockItem *item = new DockItem;
|
||||
item->m_popupShown = true;
|
||||
item->update();
|
||||
|
||||
QMouseEvent event(QEvent::MouseButtonPress, QPointF(0.0, 0.0), Qt::NoButton, Qt::NoButton, Qt::NoModifier);
|
||||
qApp->sendEvent(dockItem, &event);
|
||||
qApp->sendEvent(item, &event);
|
||||
|
||||
QEnterEvent event1(QPointF(0.0, 0.0), QPointF(0.0, 0.0), QPointF(0.0, 0.0));
|
||||
qApp->sendEvent(dockItem, &event1);
|
||||
qApp->sendEvent(item, &event1);
|
||||
|
||||
QEvent event2(QEvent::Leave);
|
||||
qApp->sendEvent(dockItem, &event2);
|
||||
qApp->sendEvent(item, &event2);
|
||||
|
||||
QTest::qWait(10);
|
||||
|
||||
QEvent e(QEvent::Enter);
|
||||
item->enterEvent(&e);
|
||||
|
||||
item->menuActionClicked(new QAction());
|
||||
|
||||
item->onContextMenuAccepted();
|
||||
|
||||
item->showHoverTips();
|
||||
|
||||
QTimer::singleShot(10, [ &item ] {
|
||||
delete item;
|
||||
item = nullptr;
|
||||
});
|
||||
item->showContextMenu();
|
||||
|
||||
QTest::qWait(1000);
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_DockItem, topleftPoint_test)
|
||||
@ -121,4 +145,6 @@ TEST_F(Test_DockItem, topleftPoint_test)
|
||||
DockItem::setDockPosition(Dock::Left);
|
||||
dockItem->popupMarkPoint();
|
||||
dockItem->topleftPoint();
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
@ -46,23 +46,72 @@ void Test_LauncherItem::TearDown()
|
||||
{
|
||||
}
|
||||
|
||||
TEST_F(Test_LauncherItem, launcher_test)
|
||||
TEST_F(Test_LauncherItem, event_test)
|
||||
{
|
||||
LauncherItem *launcherItem = new LauncherItem;
|
||||
QMouseEvent event1(QEvent::MouseButtonPress, QPointF(0, 0), Qt::LeftButton, Qt::RightButton, Qt::ControlModifier);
|
||||
launcherItem->mousePressEvent(&event1);
|
||||
|
||||
QMouseEvent event2(QEvent::MouseButtonRelease, QPointF(0, 0), Qt::RightButton, Qt::RightButton, Qt::ControlModifier);
|
||||
launcherItem->mouseReleaseEvent(&event2);
|
||||
|
||||
QMouseEvent event3(QEvent::MouseMove, QPointF(0, 0), Qt::LeftButton, Qt::LeftButton, Qt::ControlModifier);
|
||||
launcherItem->mouseMoveEvent(&event3);
|
||||
|
||||
QMouseEvent event4(QEvent::MouseMove, QPointF(0, 0), Qt::RightButton, Qt::RightButton, Qt::ControlModifier);
|
||||
launcherItem->mouseMoveEvent(&event4);
|
||||
|
||||
QResizeEvent event5((QSize()), QSize());
|
||||
launcherItem->resizeEvent(&event5);
|
||||
|
||||
QEvent event6(QEvent::Leave);
|
||||
launcherItem->leaveEvent(&event6);
|
||||
|
||||
QShowEvent event7;
|
||||
launcherItem->showEvent(&event7);
|
||||
|
||||
QMimeData *data = new QMimeData;
|
||||
data->setText("test");
|
||||
QDropEvent event8(QPointF(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::ControlModifier);
|
||||
launcherItem->dropEvent(&event8);
|
||||
|
||||
QDragEnterEvent event9(QPoint(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::NoModifier);
|
||||
launcherItem->dragEnterEvent(&event9);
|
||||
|
||||
QDragMoveEvent event10(QPoint(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::NoModifier);
|
||||
launcherItem->dragMoveEvent(&event10);
|
||||
|
||||
delete launcherItem;
|
||||
}
|
||||
|
||||
TEST_F(Test_LauncherItem, coverage_test)
|
||||
{
|
||||
LauncherItem *launcherItem = new LauncherItem;
|
||||
ASSERT_EQ(launcherItem->itemType(), LauncherItem::Launcher);
|
||||
launcherItem->refreshIcon();
|
||||
launcherItem->show();
|
||||
QThread::msleep(10);
|
||||
// launcherItem->show();
|
||||
// QThread::msleep(10);
|
||||
|
||||
launcherItem->hide();
|
||||
QThread::msleep(10);
|
||||
// launcherItem->hide();
|
||||
// QThread::msleep(10);
|
||||
|
||||
launcherItem->resize(100,100);
|
||||
launcherItem->popupTips();
|
||||
|
||||
QTest::mouseClick(launcherItem, Qt::LeftButton, Qt::NoModifier, launcherItem->geometry().center());
|
||||
launcherItem->onGSettingsChanged("invalid");
|
||||
launcherItem->onGSettingsChanged("enable");
|
||||
|
||||
delete launcherItem;
|
||||
launcherItem = nullptr;
|
||||
}
|
||||
|
||||
TEST_F(Test_LauncherItem, paintEvent)
|
||||
{
|
||||
LauncherItem item;
|
||||
item.setVisible(true);
|
||||
item.show();
|
||||
|
||||
QRect rect;
|
||||
QPaintEvent e(rect);
|
||||
item.paintEvent(&e);
|
||||
}
|
||||
|
@ -4,9 +4,7 @@
|
||||
|
||||
#include "testplugin.h"
|
||||
|
||||
#define private public
|
||||
#include "pluginsitem.h"
|
||||
#undef private
|
||||
|
||||
using namespace ::testing;
|
||||
|
||||
@ -67,16 +65,18 @@ TEST_F(Ut_PluginsItem, cover)
|
||||
{
|
||||
TestPlugin plugin;
|
||||
PluginsItem item(&plugin, "", "");
|
||||
|
||||
item.sizeHint();
|
||||
|
||||
ASSERT_TRUE(item.centralWidget());
|
||||
|
||||
item.setDraging(true);
|
||||
item.refreshIcon();
|
||||
item.onGSettingsChanged("");
|
||||
item.startDrag();
|
||||
item.mouseClicked();
|
||||
|
||||
QWidget widget;
|
||||
item.showPopupWindow(&widget);
|
||||
ASSERT_FALSE(item.contextMenu().isEmpty());
|
||||
|
||||
ASSERT_TRUE(item.centralWidget());
|
||||
}
|
||||
|
||||
TEST_F(Ut_PluginsItem, event_test)
|
||||
@ -87,4 +87,28 @@ TEST_F(Ut_PluginsItem, event_test)
|
||||
QTest::mousePress(&item, Qt::LeftButton, Qt::NoModifier);
|
||||
QTest::mousePress(&item, Qt::RightButton, Qt::NoModifier);
|
||||
QTest::mouseMove(&item, QPoint());
|
||||
|
||||
QMouseEvent event1(QEvent::MouseMove, QPointF(0, 0), Qt::LeftButton, Qt::LeftButton, Qt::ControlModifier);
|
||||
item.mouseMoveEvent(&event1);
|
||||
|
||||
QMouseEvent event2(QEvent::MouseMove, QPointF(0, 0), Qt::RightButton, Qt::RightButton, Qt::ControlModifier);
|
||||
item.mouseMoveEvent(&event2);
|
||||
|
||||
QMouseEvent event3(QEvent::MouseButtonRelease, QPointF(0, 0), Qt::LeftButton, Qt::RightButton, Qt::ControlModifier);
|
||||
item.mouseReleaseEvent(&event3);
|
||||
|
||||
QMouseEvent event4(QEvent::MouseButtonRelease, QPointF(0, 0), Qt::RightButton, Qt::RightButton, Qt::ControlModifier);
|
||||
item.mouseReleaseEvent(&event4);
|
||||
|
||||
QPointF p;
|
||||
QEnterEvent event5(p, p, p);
|
||||
item.enterEvent(&event5);
|
||||
|
||||
QEvent event6(QEvent::Leave);
|
||||
item.leaveEvent(&event6);
|
||||
|
||||
QShowEvent event7;
|
||||
item.showEvent(&event7);
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ void Ut_TrayPluginItem::TearDown()
|
||||
{
|
||||
}
|
||||
|
||||
TEST_F(Ut_TrayPluginItem, all_test)
|
||||
TEST_F(Ut_TrayPluginItem, coverage_test)
|
||||
{
|
||||
TestPlugin plugin;
|
||||
TrayPluginItem item(&plugin, "", "");
|
||||
|
@ -32,10 +32,7 @@
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
// gerrit编译时没有显示器,需要指定环境变量,本地Debug模式编译时不要设置这个宏,导致获取不到显示器相关信息
|
||||
#ifndef QT_DEBUG
|
||||
qputenv("QT_QPA_PLATFORM", "offscreen");
|
||||
#endif
|
||||
|
||||
DockApplication app(argc, argv);
|
||||
|
||||
@ -46,5 +43,6 @@ int main(int argc, char **argv)
|
||||
#ifdef QT_DEBUG
|
||||
__sanitizer_set_report_path("asan.log");
|
||||
#endif
|
||||
|
||||
return RUN_ALL_TESTS();
|
||||
}
|
||||
|
@ -1,93 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2018 ~ 2020 Uniontech Technology Co., Ltd.
|
||||
*
|
||||
* Author: weizhixiang <weizhixiang@uniontech.com>
|
||||
*
|
||||
* Maintainer: weizhixiang <weizhixiang@uniontech.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <QObject>
|
||||
#include <QThread>
|
||||
#include <QTest>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#define private public
|
||||
#include "mainpanelcontrol.h"
|
||||
#undef private
|
||||
|
||||
using namespace ::testing;
|
||||
|
||||
class Test_MainPanelControl : public ::testing::Test
|
||||
{
|
||||
public:
|
||||
virtual void SetUp() override;
|
||||
virtual void TearDown() override;
|
||||
|
||||
public:
|
||||
MainPanelControl *mainPanel = nullptr;
|
||||
};
|
||||
|
||||
void Test_MainPanelControl::SetUp()
|
||||
{
|
||||
mainPanel = new MainPanelControl();
|
||||
}
|
||||
|
||||
void Test_MainPanelControl::TearDown()
|
||||
{
|
||||
delete mainPanel;
|
||||
mainPanel = nullptr;
|
||||
}
|
||||
|
||||
TEST_F(Test_MainPanelControl, coverage_test)
|
||||
{
|
||||
ASSERT_TRUE(mainPanel);
|
||||
|
||||
mainPanel->setPositonValue(Dock::Position::Top);
|
||||
mainPanel->updateMainPanelLayout();
|
||||
QTest::qWait(10);
|
||||
|
||||
mainPanel->setPositonValue(Dock::Position::Bottom);
|
||||
mainPanel->updateMainPanelLayout();
|
||||
QTest::qWait(10);
|
||||
|
||||
mainPanel->setPositonValue(Dock::Position::Left);
|
||||
mainPanel->updateMainPanelLayout();
|
||||
QTest::qWait(10);
|
||||
|
||||
mainPanel->setPositonValue(Dock::Position::Right);
|
||||
mainPanel->updateMainPanelLayout();
|
||||
QTest::qWait(10);
|
||||
}
|
||||
|
||||
TEST_F(Test_MainPanelControl, event_test)
|
||||
{
|
||||
QApplication::postEvent(mainPanel, new QEvent(QEvent::DragLeave));
|
||||
QApplication::postEvent(mainPanel, new QEvent(QEvent::DragEnter));
|
||||
QApplication::postEvent(mainPanel, new QEvent(QEvent::Drop));
|
||||
QApplication::postEvent(mainPanel, new QEvent(QEvent::MouseButtonPress));
|
||||
QApplication::postEvent(mainPanel, new QEvent(QEvent::DragMove));
|
||||
QApplication::postEvent(mainPanel, new QEvent(QEvent::Resize));
|
||||
}
|
||||
|
||||
TEST_F(Test_MainPanelControl, cover_test)
|
||||
{
|
||||
QScopedPointer<QWidget> w(new QWidget);
|
||||
mainPanel->removeAppAreaItem(w.get());
|
||||
mainPanel->removeTrayAreaItem(w.get());
|
||||
mainPanel->updateAppAreaSonWidgetSize();
|
||||
mainPanel->checkNeedShowDesktop();
|
||||
}
|
@ -69,11 +69,11 @@ TEST_F(Test_DockApplication, dockapplication_touchstate_test)
|
||||
TEST_F(Test_DockApplication, dockapplication_touchpoints_test)
|
||||
{
|
||||
// 三点触摸
|
||||
QList<QTouchEvent::TouchPoint> list;
|
||||
list << QTouchEvent::TouchPoint(0) << QTouchEvent::TouchPoint(1) << QTouchEvent::TouchPoint(2);
|
||||
QTouchEvent threePointsTouchEvent(QEvent::TouchUpdate, nullptr, Qt::NoModifier, Qt::TouchPointPressed, list);
|
||||
QApplication::sendEvent(qApp, &threePointsTouchEvent);
|
||||
QTest::qWait(10);
|
||||
// QList<QTouchEvent::TouchPoint> list;
|
||||
// list << QTouchEvent::TouchPoint(0) << QTouchEvent::TouchPoint(1) << QTouchEvent::TouchPoint(2);
|
||||
// QTouchEvent threePointsTouchEvent(QEvent::TouchUpdate, nullptr, Qt::NoModifier, Qt::TouchPointPressed, list);
|
||||
// QApplication::sendEvent(qApp, &threePointsTouchEvent);
|
||||
// QTest::qWait(10);
|
||||
|
||||
EXPECT_EQ(m_touchPointNum, 0);
|
||||
|
||||
|
@ -51,6 +51,7 @@ TEST_F(Test_DockPopupWindow, coverage_test)
|
||||
{
|
||||
DockPopupWindow *window = new DockPopupWindow;
|
||||
QWidget *w = new QWidget;
|
||||
w->setObjectName("test widget");
|
||||
window->setContent(w);
|
||||
|
||||
window->show(QCursor::pos(), false);
|
||||
@ -63,4 +64,31 @@ TEST_F(Test_DockPopupWindow, coverage_test)
|
||||
|
||||
delete window;
|
||||
window = nullptr;
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_DockPopupWindow, onGlobMouseRelease)
|
||||
{
|
||||
DockPopupWindow *window = new DockPopupWindow;
|
||||
QWidget *w = new QWidget;
|
||||
w->setObjectName("test widget");
|
||||
window->setContent(w);
|
||||
|
||||
window->show(QCursor::pos(), true);
|
||||
|
||||
ASSERT_TRUE(window->model());
|
||||
|
||||
window->onGlobMouseRelease(QPoint(0, 0), DRegionMonitor::WatchedFlags::Button_Middle);
|
||||
window->onGlobMouseRelease(QPoint(0, 0), DRegionMonitor::WatchedFlags::Button_Left);
|
||||
|
||||
qApp->processEvents();
|
||||
QTest::qWait(10);
|
||||
window->ensureRaised();
|
||||
|
||||
QResizeEvent event(QSize(10, 10), QSize(20, 20));
|
||||
qApp->sendEvent(w, &event);
|
||||
QTest::qWait(15);
|
||||
|
||||
delete window;
|
||||
}
|
||||
|
65
tests/util/ut_horizontalseperator.cpp
Normal file
65
tests/util/ut_horizontalseperator.cpp
Normal file
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* Copyright (C) 2018 ~ 2020 Uniontech Technology Co., Ltd.
|
||||
*
|
||||
* Author: fanpengcheng <fanpengcheng@uniontech.com>
|
||||
*
|
||||
* Maintainer: fanpengcheng <fanpengcheng@uniontech.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <QObject>
|
||||
#include <QPaintEvent>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "horizontalseperator.h"
|
||||
|
||||
class Test_HorizontalSeperator : public QObject, public ::testing::Test
|
||||
{
|
||||
public:
|
||||
virtual void SetUp() override;
|
||||
virtual void TearDown() override;
|
||||
|
||||
};
|
||||
|
||||
void Test_HorizontalSeperator::SetUp()
|
||||
{
|
||||
}
|
||||
|
||||
void Test_HorizontalSeperator::TearDown()
|
||||
{
|
||||
}
|
||||
|
||||
TEST_F(Test_HorizontalSeperator, coverage_test)
|
||||
{
|
||||
HorizontalSeperator seperator;
|
||||
ASSERT_EQ(seperator.sizeHint().height(), 2);
|
||||
|
||||
seperator.show();
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_HorizontalSeperator, paintEvent)
|
||||
{
|
||||
HorizontalSeperator seperator;
|
||||
|
||||
QRect rect(0, 0, 10, 10);
|
||||
QPaintEvent e(rect);
|
||||
seperator.paintEvent(&e);
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
|
||||
}
|
@ -29,24 +29,12 @@
|
||||
#include "imageutil.h"
|
||||
|
||||
class Test_ImageUtil : public QObject, public ::testing::Test
|
||||
{
|
||||
public:
|
||||
virtual void SetUp() override;
|
||||
virtual void TearDown() override;
|
||||
|
||||
};
|
||||
|
||||
void Test_ImageUtil::SetUp()
|
||||
{
|
||||
}
|
||||
|
||||
void Test_ImageUtil::TearDown()
|
||||
{
|
||||
}
|
||||
{};
|
||||
|
||||
TEST_F(Test_ImageUtil, coverage_test)
|
||||
{
|
||||
ASSERT_TRUE(ImageUtil::loadSvg("test", QSize(100, 100), 1.5).isNull());
|
||||
ASSERT_EQ(ImageUtil::loadSvg("dde-printer", ":/res/dde-calendar.svg", 100, 1.25).size(), QSize(125, 125));
|
||||
ASSERT_FALSE(ImageUtil::loadSvg(":/res/dde-calendar.svg", QSize(100, 100), 1.5).isNull());
|
||||
ASSERT_EQ(ImageUtil::loadSvg(":/res/dde-calendar.svg", "dde-printer", 100, 1.25).size(), QSize(125, 125));
|
||||
ASSERT_EQ(ImageUtil::loadSvg("123", "456", 100, 1.25).size(), QSize(125, 125));
|
||||
}
|
||||
|
@ -26,39 +26,35 @@
|
||||
#include <gtest/gtest.h>
|
||||
#define private public
|
||||
#include "menuworker.h"
|
||||
#include "dockitemmanager.h"
|
||||
#undef private
|
||||
|
||||
class Test_MenuWorker : public ::testing::Test
|
||||
{
|
||||
public:
|
||||
virtual void SetUp() override;
|
||||
virtual void TearDown() override;
|
||||
};
|
||||
|
||||
void Test_MenuWorker::SetUp()
|
||||
{
|
||||
}
|
||||
|
||||
void Test_MenuWorker::TearDown()
|
||||
{
|
||||
}
|
||||
{};
|
||||
|
||||
TEST_F(Test_MenuWorker, coverage_test)
|
||||
{
|
||||
MenuWorker *worker = new MenuWorker(new DBusDock("com.deepin.dde.daemon.Dock", "/com/deepin/dde/daemon/Dock", QDBusConnection::sessionBus()));
|
||||
|
||||
DockItemManager::instance()->m_pluginsInter->m_pluginsMap.clear();
|
||||
QMenu *menu = worker->createMenu();
|
||||
ASSERT_FALSE(menu->isEmpty());
|
||||
|
||||
// worker->showDockSettingsMenu();
|
||||
|
||||
delete menu;
|
||||
menu = nullptr;
|
||||
|
||||
ASSERT_TRUE(worker->m_autoHide);
|
||||
worker->setAutoHide(false);
|
||||
ASSERT_FALSE(worker->m_autoHide);
|
||||
worker->setAutoHide(true);
|
||||
ASSERT_TRUE(worker->m_autoHide);
|
||||
|
||||
delete worker;
|
||||
worker = nullptr;
|
||||
}
|
||||
|
||||
TEST_F(Test_MenuWorker, setAutoHide)
|
||||
{
|
||||
MenuWorker *worker = new MenuWorker(new DBusDock("com.deepin.dde.daemon.Dock", "/com/deepin/dde/daemon/Dock", QDBusConnection::sessionBus()));
|
||||
|
||||
ASSERT_TRUE(worker->m_autoHide);
|
||||
worker->setAutoHide(false);
|
||||
|
||||
ASSERT_FALSE(worker->m_autoHide);
|
||||
worker->setAutoHide(true);
|
||||
ASSERT_TRUE(worker->m_autoHide);
|
||||
|
||||
delete worker;
|
||||
}
|
||||
|
@ -20,39 +20,315 @@
|
||||
*/
|
||||
|
||||
#include <QObject>
|
||||
#include <QTest>
|
||||
|
||||
#include <DWindowManagerHelper>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#define private public
|
||||
#include "mainwindow.h"
|
||||
#include "multiscreenworker.h"
|
||||
#undef private
|
||||
|
||||
class Test_MultiScreenWorker : public ::testing::Test
|
||||
{
|
||||
public:
|
||||
virtual void SetUp() override;
|
||||
virtual void TearDown() override;
|
||||
{};
|
||||
|
||||
public:
|
||||
MainWindow *mainwindow;
|
||||
MultiScreenWorker *worker = nullptr;
|
||||
};
|
||||
|
||||
void Test_MultiScreenWorker::SetUp()
|
||||
TEST_F(Test_MultiScreenWorker, coverage_test)
|
||||
{
|
||||
// mainwindow = new MainWindow();
|
||||
// worker = new MultiScreenWorker(mainwindow, DWindowManagerHelper::instance());
|
||||
MainWindow window;
|
||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
||||
|
||||
qDebug() << worker->dockRect("test screen");
|
||||
|
||||
worker->m_displayMode = DisplayMode::Fashion;
|
||||
worker->updateDaemonDockSize(40);
|
||||
|
||||
worker->m_displayMode = DisplayMode::Efficient;
|
||||
worker->updateDaemonDockSize(20);
|
||||
|
||||
QDBusMessage msg;
|
||||
worker->handleDbusSignal(msg);
|
||||
|
||||
worker->onRegionMonitorChanged(0, 0, worker->m_registerKey);
|
||||
|
||||
Dock::Position pos = Dock::Position::Bottom;
|
||||
Dock::DisplayMode dis = Dock::DisplayMode::Fashion;
|
||||
worker->getDockShowGeometry("", pos, dis);
|
||||
worker->getDockHideGeometry("", pos, dis);
|
||||
|
||||
worker->checkXEventMonitorService();
|
||||
worker->showAniFinished();
|
||||
worker->hideAniFinished();
|
||||
worker->primaryScreenChanged();
|
||||
worker->onRequestUpdateFrontendGeometry();
|
||||
worker->isCopyMode();
|
||||
worker->onRequestUpdatePosition(Dock::Position::Top, Dock::Position::Bottom);
|
||||
worker->onAutoHideChanged(false);
|
||||
worker->onOpacityChanged(0.5);
|
||||
worker->onRequestDelayShowDock();
|
||||
|
||||
delete worker;
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
void Test_MultiScreenWorker::TearDown()
|
||||
TEST_F(Test_MultiScreenWorker, onDisplayModeChanged)
|
||||
{
|
||||
// delete worker;
|
||||
// worker = nullptr;
|
||||
MainWindow window;
|
||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
||||
|
||||
worker->onDisplayModeChanged(static_cast<DisplayMode>(0));
|
||||
worker->m_hideMode = HideMode::KeepShowing;
|
||||
worker->onDisplayModeChanged(static_cast<DisplayMode>(1));
|
||||
|
||||
worker->onHideModeChanged(static_cast<HideMode>(0));
|
||||
worker->m_hideMode = HideMode::KeepShowing;
|
||||
worker->onHideModeChanged(static_cast<HideMode>(1));
|
||||
worker->m_hideMode = HideMode::KeepHidden;
|
||||
worker->onHideModeChanged(static_cast<HideMode>(3));
|
||||
|
||||
worker->onHideStateChanged(static_cast<HideState>(0));
|
||||
worker->m_hideMode = HideMode::KeepShowing;
|
||||
worker->onHideStateChanged(static_cast<HideState>(1));
|
||||
worker->m_hideMode = HideMode::KeepHidden;
|
||||
worker->onHideStateChanged(static_cast<HideState>(2));
|
||||
|
||||
delete worker;
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MultiScreenWorker, dockInter_test)
|
||||
TEST_F(Test_MultiScreenWorker, displayAnimation_onRequestUpdateRegionMonitor)
|
||||
{
|
||||
// ASSERT_TRUE(worker->dockInter());
|
||||
MainWindow window;
|
||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
||||
|
||||
worker->m_position = Dock::Position::Left;
|
||||
worker->displayAnimation("primary", MultiScreenWorker::AniAction::Show);
|
||||
QTest::qWait(300);
|
||||
|
||||
worker->m_position = Dock::Position::Top;
|
||||
worker->displayAnimation("primary", MultiScreenWorker::AniAction::Show);
|
||||
QTest::qWait(300);
|
||||
|
||||
worker->m_position = Dock::Position::Bottom;
|
||||
worker->displayAnimation("primary", MultiScreenWorker::AniAction::Hide);
|
||||
QTest::qWait(300);
|
||||
|
||||
worker->m_position = Dock::Position::Right;
|
||||
worker->displayAnimation("primary", MultiScreenWorker::AniAction::Hide);
|
||||
QTest::qWait(300);
|
||||
|
||||
worker->m_position = Dock::Position::Top;
|
||||
worker->onRequestUpdateRegionMonitor();
|
||||
|
||||
worker->m_position = Dock::Position::Bottom;
|
||||
worker->onRequestUpdateRegionMonitor();
|
||||
|
||||
worker->m_position = Dock::Position::Left;
|
||||
worker->onRequestUpdateRegionMonitor();
|
||||
|
||||
worker->m_position = Dock::Position::Right;
|
||||
worker->onRequestUpdateRegionMonitor();
|
||||
|
||||
ASSERT_EQ(worker->parent(), &window);
|
||||
|
||||
delete worker;
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MultiScreenWorker, onTouchPress_onTouchRelease)
|
||||
{
|
||||
MainWindow window;
|
||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
||||
|
||||
QPoint p(0, 0);
|
||||
worker->rawXPosition(p);
|
||||
|
||||
worker->onTouchPress(0, 0, 0, worker->m_touchRegisterKey);
|
||||
ASSERT_TRUE(worker->testState(MultiScreenWorker::RunState::TouchPress));
|
||||
worker->m_position = Dock::Position::Top;
|
||||
worker->onTouchRelease(0, 0, 100, worker->m_touchRegisterKey);
|
||||
ASSERT_FALSE(worker->testState(MultiScreenWorker::RunState::TouchPress));
|
||||
|
||||
worker->onTouchPress(0, 0, 0, worker->m_touchRegisterKey);
|
||||
ASSERT_TRUE(worker->testState(MultiScreenWorker::RunState::TouchPress));
|
||||
worker->m_position = Dock::Position::Bottom;
|
||||
worker->onTouchRelease(0, 0, 100, worker->m_touchRegisterKey);
|
||||
ASSERT_FALSE(worker->testState(MultiScreenWorker::RunState::TouchPress));
|
||||
|
||||
worker->onTouchPress(0, 0, 0, worker->m_touchRegisterKey);
|
||||
ASSERT_TRUE(worker->testState(MultiScreenWorker::RunState::TouchPress));
|
||||
worker->m_position = Dock::Position::Left;
|
||||
worker->onTouchRelease(0, 0, 100, worker->m_touchRegisterKey);
|
||||
ASSERT_FALSE(worker->testState(MultiScreenWorker::RunState::TouchPress));
|
||||
|
||||
worker->onTouchPress(0, 0, 0, worker->m_touchRegisterKey);
|
||||
ASSERT_TRUE(worker->testState(MultiScreenWorker::RunState::TouchPress));
|
||||
worker->m_position = Dock::Position::Right;
|
||||
worker->onTouchRelease(0, 0, 100, worker->m_touchRegisterKey);
|
||||
ASSERT_FALSE(worker->testState(MultiScreenWorker::RunState::TouchPress));
|
||||
|
||||
delete worker;
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MultiScreenWorker, onDelayAutoHideChanged)
|
||||
{
|
||||
MainWindow window;
|
||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
||||
|
||||
worker->m_hideMode = HideMode::SmartHide;
|
||||
worker->m_hideState = HideState::Show;
|
||||
worker->onDelayAutoHideChanged();
|
||||
worker->m_hideState = HideState::Hide;
|
||||
worker->onDelayAutoHideChanged();
|
||||
|
||||
worker->m_hideMode = HideMode::KeepShowing;
|
||||
worker->onDelayAutoHideChanged();
|
||||
|
||||
worker->m_hideMode = HideMode::KeepHidden;
|
||||
worker->onDelayAutoHideChanged();
|
||||
|
||||
delete worker;
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MultiScreenWorker, onPositionChanged)
|
||||
{
|
||||
MainWindow window;
|
||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
||||
|
||||
worker->m_hideMode = HideMode::KeepHidden;
|
||||
worker->onPositionChanged(static_cast<Position>(0));
|
||||
QTest::qWait(400);
|
||||
|
||||
worker->m_hideMode = HideMode::KeepShowing;
|
||||
worker->onPositionChanged(static_cast<Position>(1));
|
||||
QTest::qWait(400);
|
||||
|
||||
worker->m_hideMode = HideMode::KeepHidden;
|
||||
worker->onPositionChanged(static_cast<Position>(2));
|
||||
QTest::qWait(400);
|
||||
|
||||
worker->m_hideMode = HideMode::KeepShowing;
|
||||
worker->onPositionChanged(static_cast<Position>(3));
|
||||
QTest::qWait(400);
|
||||
|
||||
delete worker;
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MultiScreenWorker, reInitDisplayData)
|
||||
{
|
||||
MainWindow window;
|
||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
||||
|
||||
worker->reInitDisplayData();
|
||||
|
||||
delete worker;
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MultiScreenWorker, onRequestUpdateMonitorInfo)
|
||||
{
|
||||
MainWindow window;
|
||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
||||
|
||||
worker->onRequestUpdateMonitorInfo();
|
||||
|
||||
delete worker;
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MultiScreenWorker, updateParentGeometry)
|
||||
{
|
||||
MainWindow window;
|
||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
||||
|
||||
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::Left);
|
||||
worker->updateParentGeometry(QRect(0, 0, 10, 10), Position::Right);
|
||||
|
||||
delete worker;
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MultiScreenWorker, onWindowSizeChanged)
|
||||
{
|
||||
MainWindow window;
|
||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
||||
|
||||
worker->onWindowSizeChanged(-1);
|
||||
|
||||
delete worker;
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MultiScreenWorker, updateDisplay)
|
||||
{
|
||||
MainWindow window;
|
||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
||||
|
||||
worker->updateDisplay();
|
||||
|
||||
delete worker;
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MultiScreenWorker, onExtralRegionMonitorChanged)
|
||||
{
|
||||
MainWindow window;
|
||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
||||
|
||||
worker->onExtralRegionMonitorChanged(0, 0, "test");
|
||||
|
||||
worker->m_hideMode = HideMode::KeepShowing;
|
||||
worker->m_hideState = HideState::Show;
|
||||
worker->onExtralRegionMonitorChanged(0, 0, worker->m_registerKey);
|
||||
|
||||
worker->m_hideMode = HideMode::SmartHide;
|
||||
worker->onExtralRegionMonitorChanged(0, 0, worker->m_registerKey);
|
||||
|
||||
worker->m_hideMode = HideMode::KeepHidden;
|
||||
worker->m_hideState = HideState::Hide;
|
||||
worker->onExtralRegionMonitorChanged(0, 0, worker->m_registerKey);
|
||||
|
||||
delete worker;
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MultiScreenWorker, onRegionMonitorChanged)
|
||||
{
|
||||
MainWindow window;
|
||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
||||
|
||||
worker->onRegionMonitorChanged(0, 0, "test");
|
||||
|
||||
delete worker;
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MultiScreenWorker, dockScreen)
|
||||
{
|
||||
DockScreen ds("primary");
|
||||
|
||||
ds.updateDockedScreen("screen1");
|
||||
|
||||
ASSERT_EQ(ds.current(), "screen1");
|
||||
ASSERT_EQ(ds.last(), "primary");
|
||||
ASSERT_EQ(ds.primary(), "primary");
|
||||
|
||||
ds.updatePrimary("screen2");
|
||||
ASSERT_EQ(ds.primary(), "screen2");
|
||||
}
|
||||
|
||||
TEST_F(Test_MultiScreenWorker, screenworker_test3)
|
||||
{
|
||||
MainWindow window;
|
||||
MultiScreenWorker *worker = new MultiScreenWorker(&window, DWindowManagerHelper::instance());
|
||||
|
||||
worker->resetDockScreen();
|
||||
|
||||
delete worker;
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
@ -31,43 +31,46 @@
|
||||
#include "statebutton.h"
|
||||
|
||||
class Test_StateButton : public QObject, public ::testing::Test
|
||||
{
|
||||
public:
|
||||
virtual void SetUp() override;
|
||||
virtual void TearDown() override;
|
||||
|
||||
public:
|
||||
StateButton *stateButton = nullptr;
|
||||
};
|
||||
|
||||
void Test_StateButton::SetUp()
|
||||
{
|
||||
stateButton = new StateButton();
|
||||
}
|
||||
|
||||
void Test_StateButton::TearDown()
|
||||
{
|
||||
delete stateButton;
|
||||
stateButton = nullptr;
|
||||
}
|
||||
{};
|
||||
|
||||
TEST_F(Test_StateButton, statebutton_clicked_test)
|
||||
{
|
||||
QSignalSpy spy(stateButton, SIGNAL(click()));
|
||||
QTest::mousePress(stateButton, Qt::LeftButton, Qt::NoModifier);
|
||||
StateButton button;
|
||||
QSignalSpy spy(&button, SIGNAL(click()));
|
||||
QTest::mousePress(&button, Qt::LeftButton, Qt::NoModifier);
|
||||
ASSERT_EQ(spy.count(), 1);
|
||||
}
|
||||
|
||||
TEST_F(Test_StateButton, event_test)
|
||||
{
|
||||
StateButton button;
|
||||
|
||||
QEvent event(QEvent::Enter);
|
||||
qApp->sendEvent(stateButton, &event);
|
||||
button.enterEvent(&event);
|
||||
|
||||
QEvent event2(QEvent::Leave);
|
||||
qApp->sendEvent(stateButton, &event2);
|
||||
button.leaveEvent(&event2);
|
||||
|
||||
stateButton->show();
|
||||
|
||||
QTest::qWait(10);
|
||||
stateButton->setType(StateButton::Fork);
|
||||
|
||||
QTest::qWait(10);
|
||||
stateButton->setType(StateButton::Check);
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_StateButton, paintEvent)
|
||||
{
|
||||
StateButton button;
|
||||
|
||||
QRect rect(0, 0, 10, 10);
|
||||
QPaintEvent e(rect);
|
||||
button.setType(StateButton::Check);
|
||||
button.paintEvent(&e);
|
||||
|
||||
button.setType(StateButton::Fork);
|
||||
button.paintEvent(&e);
|
||||
|
||||
QTest::qWait(10);
|
||||
button.setType(StateButton::Fork);
|
||||
ASSERT_EQ(button.m_type, StateButton::Fork);
|
||||
|
||||
QTest::qWait(10);
|
||||
button.setType(StateButton::Check);
|
||||
ASSERT_EQ(button.m_type, StateButton::Check);
|
||||
}
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include <QPixmap>
|
||||
#include <QDebug>
|
||||
#include <QApplication>
|
||||
#include <QFile>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
@ -35,27 +36,56 @@ public:
|
||||
|
||||
void Ut_ThemeAppIcon::SetUp()
|
||||
{
|
||||
ThemeAppIcon icon;
|
||||
}
|
||||
|
||||
void Ut_ThemeAppIcon::TearDown()
|
||||
{
|
||||
}
|
||||
|
||||
TEST_F(Ut_ThemeAppIcon, getIcon_test)
|
||||
TEST_F(Ut_ThemeAppIcon, getIcon_test1)
|
||||
{
|
||||
ThemeAppIcon appIcon;
|
||||
QPixmap pix1;
|
||||
appIcon.getIcon(pix1, "", 50);
|
||||
ASSERT_FALSE(pix1.isNull());
|
||||
|
||||
QPixmap pix;
|
||||
appIcon.getIcon(pix, "dde-calendar", 50);
|
||||
|
||||
QPixmap pix2;
|
||||
appIcon.getIcon(pix2, "data:image/test", 50);
|
||||
ASSERT_FALSE(pix2.isNull());
|
||||
// 无效图标
|
||||
QString name = "123";
|
||||
ThemeAppIcon::getIcon(name);
|
||||
|
||||
QPixmap pix3;
|
||||
appIcon.getIcon(pix3, ":/res/all_settings_on.png", 50);
|
||||
ASSERT_FALSE(pix3.isNull());
|
||||
// 有效图标
|
||||
ThemeAppIcon::getIcon("dde-calendar");
|
||||
|
||||
ThemeAppIcon::getIcon(pix, "", 50);
|
||||
ThemeAppIcon::getIcon(pix, "", 50, true);
|
||||
|
||||
// 获取base64编码的png图片数据
|
||||
const QString &iconName = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAIhklEQVR4nNRZa0xb5xl+fGx88AVzSebcDV5o0gGJuKWiKpGSLBNlSaN0Uicide2SSdklP5a1EvlRNmlUatnWreu6dU2WaFWn7Me6tipjdFmrToKYZGRAbqxRgqm4JAGH2LMx9jm+Tu+HP9eXY0gcEPSVPh3OOd/led73ed/vO1gDZVNleL7UFk19kEhAXV9fb9q+ffszWq3WvAxJRAOBwGRXV9fbNpttGkA48WVOR0fHHlmW5egyN1mWpc7OzkbCHEdfWVm5SpKkZQ+emyRJUnl5OakEAslo9+7dh0RR1C6BLLIyURTFxsbGQ4SdCGj1ev2GpQZ1v6bX6y2EnQgIKpUqUzVathbDLAixaiMsNaAsjGHnwJdbybwXY5gXRTrRaJS1+EoqFWuLYQtKgEBHIhF2DYVC7ErANRoN1Gr1opBYEALc2+FwGMFgkIGXJIkqBQNP9wReEJJTbSEILUjyEgECL8syfD4fPB4PwmEVuruHEQgE2Dveh8jwKC2EPVAECAj3OgElAl5vEAMDN/H3jsvYt68KXq8XBoOBveMkuKxycnKYtFIjs+gECDgHT1IhkATuxnU3Wlvb496trilBMOhj90SAwI6OurFixeyyJLHc3FxGhkhkQ+S+RvAkJeDkcQ6egAwNTaOtrTMOXqNRo7Awl4GmZ9SfALa88B76+iah0+kxMzPD5iByNGc20rrnCHDgPEGpqVQCbGdH8P77F3H79v+S+q9fXwRJ8jHvcgIeTxRutw+/fOVD/OltE/Y/WYmdOx+C3+9nkeDRuB9ZzUuAe510Tp4i4PTMPuTBa699hDt3PIrjiotXMLIUHTLSu802En/vcHhw4ngX/vpOPw5/dwcqK82MJJEQRZH1JxLzVao5aRJwAkHgCfj09DR71tt7Cy0t72YEv3p1Pp7+Vl1Skmq1WgzdmEzr63R60fZyB2y2MTY3VTCKCC/H88lKMQI8STnwWc+H0dMzgosDY7hw4TPFyWpqSrBnTwXKyldDrVax6kOSoHlIfg2PfwXT03709g6njf3t6x/j7FkLaqotqK+3sjUpEtSIfKYkTyKQKBdqlGS0sCDo8WLru7DbHYrACwsN+N73dzEZ0Bw6nRiXAT9G0HOrtRDPPb8Ddns1Xv3VGUxNTSetPdA/wto/zgyire0pADIjQo6guZRkJSiBJ68TeDov9fc7cOjgqYzgN29egz+cfBZlZQXs3mg0Mh3zxaiRjMiLlA90b7HocPzEM6iqKlacc3zMie8cOoVPPvmMFQqqdISJciRVUhok7KQEnnbSYDCM/w468EH7ZVy6OJq2gCCoUFtrRU2tBXV1xQiFJOTl5UEUCXh6Tae/E2s9kZEkP47+aAcu9I7i4qWbONczhHA4Eh8jyyGcOP4vnOu5gb17t2DL1rUMI2IFIV6u+QBeJh0OCcea/wKPx6/oHbLm5kaUWHMRiUQhimoGniYlkJlOnjz0PCKz8vKivKIAFVsKUf9YKdtHUu3KlXHWTCYdfvbzb2LDBpGNj8+b2JlYGQw5KCoyZgRPdmfKyzTOvZDtuYYfu0lybrc0Z988kw46nSZtLRYB8gz3isEQwC9e2Y/h4bvo+NtVdHdfT5vs1Mku9NjW4pFHrKjfbmCTEiECkqli8MrGd3C6zswEcaH3DgYGxnDpUrpUyeoe3Yi9eyqwabMZarUQL808ynEJcW3SC8p8q7UIPzjyGPY/WcMqxvi4M2niTz+9xdqZf17Fyy89BUGYPdBRxaB5eBIrVbZZz+ei9aftGBmZUgROe8kPjzbAajUyTKKojZdUxSrEtUs6po68hpvNGvzm9QOori5RXGjithuHD/8RH3ZeZxWDNiF+hE70Oj2nakJL2mzjOPjtkxnBl5evw+/eeBrr14vMCYSFV7bUHEvaB7iUEr+iiDFF5Lnnd6K/fxx9/xmDzXYDodDn/9mjqvXWW904f34IR47sxNp1ajaW7+Tk9UAggsGrE2hvv4zBwZtpoDUaAXWPlqK2xoLabRtYZTOZTEnRnHcji4cl1pETIfak29radaiqWo2Gxyvwkx+/h1AokjTu2rXbcLkkrFipZQvzg9/EhB/Hmt+B3x9Q9DiV5RdankBpqYmtbTTOHrP5MWSug11aFUpsnAxNRLLim5TFoscbv38W5RXr0ia0xA5x/MhNY3/96kcZwZeVrcWbbx7Epk0FsTXy2DXxRKqESzECfKNQ9tJskvOJVSoJLS0N6Oujr68ruHbtFoxGHUwmDXw+IS4dozEfo6PpWt+40Ywn9m1FXZ2F9c3N1SV5HbHKpWSkCkUCmQZw45LS6XTsSh7euvVL2LatES5nGKf/fA6BgMze8cozPOxMklpBgR6tL34Dq1aJTF58Pl4e7xVLVgSSBsZ2XTI6foi5ERw9+jXIspeBIa9Sn6GhifgYrVaD5mONMBiC8Psj7GyUCDybjTFrAojJivRKV5JfOCwl1X8C+O/zdjz88Bo0fr0MFRVroNHMbnpEjm963BH3u34agblyYM5JYiUXCd4jUDqdETW1Jdi1ywqfbwZarSp24MtJS9BsLe17IBvLdHiTZR8aGh6KJbORkeSn0gddk9uCRCDVCBSB5P9epCS9l+qSjT1QDsxlvGLx/4/yKD2oZFJtUSKQagsJONWSCFBd/qJZEgE6tH3RjH8Tx2O8kHmwGJZQCBhmuos4nU72tbJy5colhje/mc3s52G4XC7CHKHSIBYVFdXZ7faPCwoKNC6XC1NTU8suEuR5Ap+fnw+32x0sLi7+qtvt7qV3tIWWNjU1tTmdzuBS/wo/n929ezfY1NT0EmEm7HwLNQD4sslk2nTgwIH9ZrPZLAiCepn8esm0HolEwg6HY/L06dMfeL3e6wCGAcxwgHTVAjCSzADkxxJ8Ofx+HI21EAA3gEkCDoC+kKL/DwAA///Rq3L66XsVjwAAAABJRU5ErkJggg==";
|
||||
ThemeAppIcon::getIcon(pix, iconName, 60);
|
||||
}
|
||||
|
||||
TEST_F(Ut_ThemeAppIcon, getIcon_test2)
|
||||
{
|
||||
QPixmap pix;
|
||||
ThemeAppIcon::getIcon(pix, "dde-calendar", 50);
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Ut_ThemeAppIcon, getIcon_test3)
|
||||
{
|
||||
QPixmap pix;
|
||||
ThemeAppIcon::getIcon(pix, "data:image/test", 50);
|
||||
ASSERT_FALSE(pix.isNull());
|
||||
}
|
||||
|
||||
TEST_F(Ut_ThemeAppIcon, getIcon_test4)
|
||||
{
|
||||
QPixmap pix;
|
||||
ThemeAppIcon::getIcon(pix, ":/res/all_settings_on.png", 50);
|
||||
ASSERT_FALSE(pix.isNull());
|
||||
}
|
||||
|
||||
TEST_F(Ut_ThemeAppIcon, createCalendarIcon_test)
|
||||
{
|
||||
const QString &filePath = "/tmp/calendar.svg";
|
||||
ASSERT_TRUE(ThemeAppIcon::createCalendarIcon(filePath));
|
||||
QFile::remove(filePath);
|
||||
}
|
||||
|
@ -52,12 +52,6 @@ TEST_F(Ut_Utils, comparePluginApi_test)
|
||||
QCOMPARE(Utils::comparePluginApi(v3, v1), 1);
|
||||
}
|
||||
|
||||
TEST_F(Ut_Utils, isSettingConfigured_test)
|
||||
{
|
||||
// Utils::isSettingConfigured("com.deepin.dde.dock.mainwindow", "/com/deepin/dde/dock/mainwindow/", "only-show-primary");
|
||||
ASSERT_FALSE(Utils::isSettingConfigured("", "", ""));
|
||||
}
|
||||
|
||||
TEST_F(Ut_Utils, screenAt_test)
|
||||
{
|
||||
Utils::screenAt(QPoint(0, 0));
|
||||
@ -80,3 +74,8 @@ TEST_F(Ut_Utils, renderSVG_test)
|
||||
QCOMPARE(Utils::renderSVG(":/res/all_settings_on.png", QSize(50, 50), 1.0).size(), QSize(50, 50));
|
||||
QCOMPARE(Utils::renderSVG(":/res/all_settings_on.png", QSize(50, 50), 0.5).size(), QSize(25, 25));
|
||||
}
|
||||
|
||||
TEST_F(Ut_Utils, gsettings_test)
|
||||
{
|
||||
ASSERT_FALSE(Utils::SettingValue("", "").isValid());
|
||||
}
|
||||
|
@ -22,11 +22,14 @@
|
||||
#include <QObject>
|
||||
#include <QDebug>
|
||||
#include <QApplication>
|
||||
#include <QPaintEvent>
|
||||
#include <QTest>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#define protected public
|
||||
#include "../widgets/tipswidget.h"
|
||||
#undef protected
|
||||
|
||||
using namespace ::testing;
|
||||
using namespace Dock;
|
||||
@ -52,7 +55,7 @@ void Test_TipsWidget::TearDown()
|
||||
tipsWidget = nullptr;
|
||||
}
|
||||
|
||||
TEST_F(Test_TipsWidget, setText_test)
|
||||
TEST_F(Test_TipsWidget, setText)
|
||||
{
|
||||
const QString text = "hello dde dock";
|
||||
tipsWidget->setText(text);
|
||||
@ -66,7 +69,7 @@ TEST_F(Test_TipsWidget, setText_test)
|
||||
QTest::qWait(10);
|
||||
}
|
||||
|
||||
TEST_F(Test_TipsWidget, setTextList_test)
|
||||
TEST_F(Test_TipsWidget, setTextList)
|
||||
{
|
||||
const QStringList textList = {
|
||||
"hello",
|
||||
@ -83,3 +86,11 @@ TEST_F(Test_TipsWidget, setTextList_test)
|
||||
qApp->sendEvent(tipsWidget, &event);
|
||||
QTest::qWait(10);
|
||||
}
|
||||
|
||||
TEST_F(Test_TipsWidget, paintEvent)
|
||||
{
|
||||
QPaintEvent paintEvent((QRect()));
|
||||
tipsWidget->paintEvent(&paintEvent);
|
||||
|
||||
QTest::qWait(10);
|
||||
}
|
||||
|
368
tests/window/ut_mainpanelcontrol.cpp
Normal file
368
tests/window/ut_mainpanelcontrol.cpp
Normal file
@ -0,0 +1,368 @@
|
||||
/*
|
||||
* Copyright (C) 2018 ~ 2020 Uniontech Technology Co., Ltd.
|
||||
*
|
||||
* Author: weizhixiang <weizhixiang@uniontech.com>
|
||||
*
|
||||
* Maintainer: weizhixiang <weizhixiang@uniontech.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <QObject>
|
||||
#include <QThread>
|
||||
#include <QTest>
|
||||
#include <QGraphicsView>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#define private public
|
||||
#include "mainpanelcontrol.h"
|
||||
#include "appitem.h"
|
||||
#include "dockitem.h"
|
||||
#include "placeholderitem.h"
|
||||
#include "pluginsitem.h"
|
||||
#include "traypluginitem.h"
|
||||
#include "launcheritem.h"
|
||||
#undef private
|
||||
|
||||
#include "../item/testplugin.h"
|
||||
|
||||
using namespace ::testing;
|
||||
|
||||
class Test_MainPanelControl : public ::testing::Test
|
||||
{
|
||||
public:
|
||||
virtual void SetUp() override;
|
||||
virtual void TearDown() override;
|
||||
|
||||
public:
|
||||
MainPanelControl *mainPanel;
|
||||
};
|
||||
|
||||
void Test_MainPanelControl::SetUp()
|
||||
{
|
||||
mainPanel = new MainPanelControl();
|
||||
}
|
||||
|
||||
void Test_MainPanelControl::TearDown()
|
||||
{
|
||||
delete mainPanel;
|
||||
mainPanel = nullptr;
|
||||
}
|
||||
|
||||
TEST_F(Test_MainPanelControl, getTrayVisableItemCount)
|
||||
{
|
||||
MainPanelControl panel;
|
||||
TestPlugin plugin;
|
||||
|
||||
ASSERT_EQ(panel.m_trayIconCount, 0);
|
||||
panel.getTrayVisableItemCount();
|
||||
ASSERT_EQ(panel.m_trayIconCount, 0);
|
||||
|
||||
TrayPluginItem trayPluginItem(&plugin, "tray", "1.2.0");
|
||||
panel.addTrayAreaItem(0, &trayPluginItem);
|
||||
panel.getTrayVisableItemCount();
|
||||
}
|
||||
|
||||
TEST_F(Test_MainPanelControl, paintEvent)
|
||||
{
|
||||
MainPanelControl panel;
|
||||
QRect paintRect(0, 0, 10, 10);
|
||||
QPaintEvent event(paintRect);
|
||||
|
||||
panel.m_isHover = true;
|
||||
panel.paintEvent(&event);
|
||||
|
||||
panel.m_isHover = false;
|
||||
panel.paintEvent(&event);
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MainPanelControl, moveAppSonWidget)
|
||||
{
|
||||
MainPanelControl panel;
|
||||
panel.m_dislayMode = DisplayMode::Fashion;
|
||||
panel.m_position = Position::Top;
|
||||
panel.moveAppSonWidget();
|
||||
|
||||
panel.m_position = Position::Bottom;
|
||||
panel.moveAppSonWidget();
|
||||
|
||||
panel.m_position = Position::Left;
|
||||
panel.moveAppSonWidget();
|
||||
|
||||
panel.m_position = Position::Right;
|
||||
panel.moveAppSonWidget();
|
||||
|
||||
panel.m_dislayMode = DisplayMode::Efficient;
|
||||
panel.m_position = Position::Top;
|
||||
panel.moveAppSonWidget();
|
||||
|
||||
panel.m_position = Position::Bottom;
|
||||
panel.moveAppSonWidget();
|
||||
|
||||
panel.m_position = Position::Left;
|
||||
panel.moveAppSonWidget();
|
||||
|
||||
panel.m_position = Position::Right;
|
||||
panel.moveAppSonWidget();
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MainPanelControl, startDrag)
|
||||
{
|
||||
MainPanelControl panel;
|
||||
TestPlugin plugin;
|
||||
|
||||
AppItem appItem(nullptr, nullptr, nullptr, QDBusObjectPath());
|
||||
panel.addAppAreaItem(0, &appItem);
|
||||
panel.startDrag(&appItem);
|
||||
|
||||
LauncherItem launcherItem;
|
||||
mainPanel->addFixedAreaItem(0, &launcherItem);
|
||||
panel.startDrag(&launcherItem);
|
||||
|
||||
PluginsItem pluginItem(&plugin, "monitor", "1.2.1");
|
||||
mainPanel->addPluginAreaItem(0, &pluginItem);
|
||||
panel.startDrag(&pluginItem);
|
||||
}
|
||||
|
||||
TEST_F(Test_MainPanelControl, eventFilter)
|
||||
{
|
||||
MainPanelControl panel;
|
||||
QResizeEvent event((QSize()), QSize());
|
||||
panel.eventFilter(mainPanel->m_appAreaSonWidget, &event);
|
||||
panel.eventFilter(mainPanel->m_appAreaWidget, &event);
|
||||
|
||||
QEvent enterEvent(QEvent::Enter);
|
||||
panel.eventFilter(mainPanel->m_desktopWidget, &enterEvent);
|
||||
|
||||
QEvent leaveEvent(QEvent::Leave);
|
||||
panel.eventFilter(mainPanel->m_desktopWidget, &leaveEvent);
|
||||
|
||||
QEvent moveEvent(QEvent::Move);
|
||||
panel.eventFilter(mainPanel->m_appAreaWidget, &moveEvent);
|
||||
|
||||
QMouseEvent mouseMoveEvent(QEvent::MouseMove, QPointF(0, 0), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
|
||||
panel.eventFilter(mainPanel, &mouseMoveEvent);
|
||||
|
||||
// QEvent dragMoveEvent(QEvent::DragMove);
|
||||
// mainPanel->eventFilter(static_cast<QGraphicsView *>(mainPanel->m_appDragWidget), &dragMoveEvent);
|
||||
}
|
||||
|
||||
TEST_F(Test_MainPanelControl, moveItem)
|
||||
{
|
||||
MainPanelControl panel;
|
||||
TestPlugin plugin;
|
||||
|
||||
TestPlugin fixedPlugin;
|
||||
fixedPlugin.setType(PluginsItemInterface::PluginType::Fixed);
|
||||
|
||||
DockItem dockItem1;
|
||||
DockItem dockItem2;
|
||||
panel.addAppAreaItem(0, &dockItem1);
|
||||
panel.addAppAreaItem(0, &dockItem2);
|
||||
panel.moveItem(&dockItem1, &dockItem2);
|
||||
|
||||
LauncherItem launcherItem1;
|
||||
LauncherItem launcherItem2;
|
||||
panel.addFixedAreaItem(0, &launcherItem1);
|
||||
panel.addFixedAreaItem(0, &launcherItem2);
|
||||
panel.moveItem(&launcherItem1, &launcherItem2);
|
||||
|
||||
PluginsItem pluginItem1(&plugin, "monitor", "1.2.1");
|
||||
PluginsItem pluginItem2(&plugin, "monitor", "1.2.1");
|
||||
panel.addPluginAreaItem(0, &pluginItem1);
|
||||
panel.addPluginAreaItem(0, &pluginItem2);
|
||||
panel.moveItem(&pluginItem1, &pluginItem2);
|
||||
|
||||
PluginsItem fixedPluginItem1(&fixedPlugin, "monitor", "1.2.1");
|
||||
PluginsItem fixedPluginItem2(&fixedPlugin, "monitor", "1.2.1");
|
||||
panel.addPluginAreaItem(0, &fixedPluginItem1);
|
||||
panel.addPluginAreaItem(0, &fixedPluginItem2);
|
||||
panel.moveItem(&fixedPluginItem1, &fixedPluginItem1);
|
||||
|
||||
// dropTargetItem test
|
||||
panel.dropTargetItem(&dockItem1, QPoint(0, 0));
|
||||
panel.dropTargetItem(&launcherItem1, QPoint(0, 0));
|
||||
panel.dropTargetItem(&pluginItem1, QPoint(0, 0));
|
||||
panel.dropTargetItem(nullptr, QPoint(-1, -1));
|
||||
}
|
||||
|
||||
TEST_F(Test_MainPanelControl, removeItem)
|
||||
{
|
||||
MainPanelControl panel;
|
||||
TestPlugin plugin;
|
||||
|
||||
DockItem dockItem;
|
||||
panel.addAppAreaItem(0, &dockItem);
|
||||
panel.removeItem(&dockItem);
|
||||
|
||||
PlaceholderItem placeHolderItem;
|
||||
panel.addAppAreaItem(0, &placeHolderItem);
|
||||
panel.removeItem(&placeHolderItem);
|
||||
|
||||
LauncherItem launcherItem;
|
||||
panel.addFixedAreaItem(0, &launcherItem);
|
||||
panel.removeItem(&launcherItem);
|
||||
|
||||
TrayPluginItem trayPluginItem(&plugin, "tray", "1.2.0");
|
||||
panel.addTrayAreaItem(0, &trayPluginItem);
|
||||
panel.removeItem(&trayPluginItem);
|
||||
|
||||
PluginsItem pluginItem(&plugin, "monitor", "1.2.1");
|
||||
panel.addPluginAreaItem(0, &pluginItem);
|
||||
panel.removeItem(&pluginItem);
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MainPanelControl, test1)
|
||||
{
|
||||
MainPanelControl panel;
|
||||
DockItem dockItem;
|
||||
|
||||
panel.insertItem(0, &dockItem);
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MainPanelControl, updateMainPanelLayout)
|
||||
{
|
||||
MainPanelControl panel;
|
||||
|
||||
panel.setPositonValue(Dock::Position::Top);
|
||||
panel.updateMainPanelLayout();
|
||||
QTest::qWait(10);
|
||||
|
||||
panel.setPositonValue(Dock::Position::Bottom);
|
||||
panel.updateMainPanelLayout();
|
||||
QTest::qWait(10);
|
||||
|
||||
panel.setPositonValue(Dock::Position::Left);
|
||||
panel.updateMainPanelLayout();
|
||||
QTest::qWait(10);
|
||||
|
||||
panel.setPositonValue(Dock::Position::Right);
|
||||
panel.updateMainPanelLayout();
|
||||
QTest::qWait(10);
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MainPanelControl, event_test)
|
||||
{
|
||||
MainPanelControl panel;
|
||||
|
||||
QMouseEvent event1(QEvent::MouseButtonPress, QPointF(0, 0), Qt::LeftButton, Qt::RightButton, Qt::ControlModifier);
|
||||
panel.mousePressEvent(&event1);
|
||||
|
||||
QMouseEvent event2(QEvent::MouseButtonRelease, QPointF(0, 0), Qt::RightButton, Qt::RightButton, Qt::ControlModifier);
|
||||
panel.mouseReleaseEvent(&event2);
|
||||
|
||||
QMouseEvent event3(QEvent::MouseMove, QPointF(0, 0), Qt::LeftButton, Qt::LeftButton, Qt::ControlModifier);
|
||||
panel.mouseMoveEvent(&event3);
|
||||
|
||||
QMouseEvent event4(QEvent::MouseMove, QPointF(0, 0), Qt::RightButton, Qt::RightButton, Qt::ControlModifier);
|
||||
panel.mouseMoveEvent(&event4);
|
||||
|
||||
QResizeEvent event5((QSize()), QSize());
|
||||
panel.resizeEvent(&event5);
|
||||
|
||||
QEvent event6(QEvent::Leave);
|
||||
panel.leaveEvent(&event6);
|
||||
|
||||
QShowEvent event7;
|
||||
panel.showEvent(&event7);
|
||||
|
||||
QMimeData *data = new QMimeData;
|
||||
data->setText("test");
|
||||
QDropEvent event8(QPointF(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::ControlModifier);
|
||||
panel.dropEvent(&event8);
|
||||
|
||||
QDragEnterEvent event9(QPoint(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::NoModifier);
|
||||
panel.dragEnterEvent(&event9);
|
||||
|
||||
QDragMoveEvent event10(QPoint(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::NoModifier);
|
||||
panel.dragMoveEvent(&event10);
|
||||
}
|
||||
|
||||
TEST_F(Test_MainPanelControl, dragLeaveEvent)
|
||||
{
|
||||
MainPanelControl panel;
|
||||
|
||||
QDragLeaveEvent event11;
|
||||
panel.dragLeaveEvent(&event11);
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MainPanelControl, coverage_test)
|
||||
{
|
||||
MainPanelControl panel;
|
||||
QScopedPointer<QWidget> w(new QWidget);
|
||||
panel.removeAppAreaItem(w.get());
|
||||
panel.removeTrayAreaItem(w.get());
|
||||
panel.updateAppAreaSonWidgetSize();
|
||||
panel.checkNeedShowDesktop();
|
||||
panel.appIsOnDock("123");
|
||||
}
|
||||
|
||||
TEST_F(Test_MainPanelControl, addItem)
|
||||
{
|
||||
MainPanelControl panel;
|
||||
|
||||
panel.setDisplayMode(DisplayMode::Fashion);
|
||||
ASSERT_EQ(panel.m_dislayMode, DisplayMode::Fashion);
|
||||
|
||||
panel.setDisplayMode(DisplayMode::Efficient);
|
||||
ASSERT_EQ(panel.m_dislayMode, DisplayMode::Efficient);
|
||||
|
||||
panel.setPositonValue(Position::Top);
|
||||
QWidget *fixedWidget = new QWidget;
|
||||
QWidget *appWidget = new QWidget;
|
||||
QWidget *pluginWidget = new QWidget;
|
||||
|
||||
panel.addFixedAreaItem(0, fixedWidget);
|
||||
panel.addAppAreaItem(0, appWidget);
|
||||
panel.addPluginAreaItem(0, pluginWidget);
|
||||
|
||||
panel.updateAppAreaSonWidgetSize();
|
||||
|
||||
panel.removeFixedAreaItem(fixedWidget);
|
||||
panel.removeAppAreaItem(appWidget);
|
||||
panel.removePluginAreaItem(pluginWidget);
|
||||
|
||||
panel.setPositonValue(Position::Left);
|
||||
panel.addFixedAreaItem(0, fixedWidget);
|
||||
panel.addAppAreaItem(0, appWidget);
|
||||
panel.addPluginAreaItem(0, pluginWidget);
|
||||
panel.updateAppAreaSonWidgetSize();
|
||||
|
||||
DockItem *dockItem1 = new DockItem;
|
||||
DockItem *dockItem2 = new DockItem;
|
||||
panel.addAppAreaItem(0, dockItem1);
|
||||
panel.addAppAreaItem(0, dockItem2);
|
||||
// panel.moveItem(dockItem1, dockItem2);
|
||||
|
||||
panel.itemUpdated(dockItem2);
|
||||
|
||||
delete fixedWidget;
|
||||
delete appWidget;
|
||||
delete pluginWidget;
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
@ -34,60 +34,226 @@ using namespace ::testing;
|
||||
|
||||
class Test_MainWindow : public ::testing::Test
|
||||
{
|
||||
public:
|
||||
virtual void SetUp() override;
|
||||
virtual void TearDown() override;
|
||||
|
||||
public:
|
||||
MainWindow *m_window = nullptr;
|
||||
};
|
||||
|
||||
void Test_MainWindow::SetUp()
|
||||
TEST_F(Test_MainWindow, onDbusNameOwnerChanged)
|
||||
{
|
||||
m_window = new MainWindow;
|
||||
MainWindow window;
|
||||
window.onDbusNameOwnerChanged("org.kde.StatusNotifierWatcher", "old", "new");
|
||||
}
|
||||
|
||||
void Test_MainWindow::TearDown()
|
||||
TEST_F(Test_MainWindow, compositeChanged)
|
||||
{
|
||||
delete m_window;
|
||||
m_window = nullptr;
|
||||
MainWindow window;
|
||||
window.compositeChanged();
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MainWindow, moveEvent)
|
||||
{
|
||||
MainWindow window;
|
||||
QMouseEvent moveEvent(QEvent::MouseMove, QPointF(0, 0), Qt::LeftButton, Qt::LeftButton, Qt::ControlModifier);
|
||||
window.mouseMoveEvent(&moveEvent);
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MainWindow, mousePressEvent)
|
||||
{
|
||||
// 显示菜单会阻塞住
|
||||
// MainWindow window;
|
||||
// QMouseEvent mousePressEvent(QEvent::MouseButtonPress, QPointF(0, 0), Qt::RightButton, Qt::RightButton, Qt::ControlModifier);
|
||||
// window.mousePressEvent(&mousePressEvent);
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MainWindow, launch)
|
||||
{
|
||||
MainWindow window;
|
||||
|
||||
qApp->setProperty("CANSHOW", false);
|
||||
window.launch();
|
||||
|
||||
qApp->setProperty("CANSHOW", true);
|
||||
window.launch();
|
||||
|
||||
window.callShow();
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MainWindow, RegisterDdeSession)
|
||||
{
|
||||
MainWindow window;
|
||||
window.RegisterDdeSession();
|
||||
|
||||
qputenv("DDE_SESSION_PROCESS_COOKIE_ID", "111");
|
||||
window.RegisterDdeSession();
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
}
|
||||
|
||||
TEST_F(Test_MainWindow, resetDragWindow_test)
|
||||
{
|
||||
MainWindow window;
|
||||
window.m_multiScreenWorker->m_position = Position::Top;
|
||||
window.resetDragWindow();
|
||||
window.onMainWindowSizeChanged(QPoint(10, 10));
|
||||
window.touchRequestResizeDock();
|
||||
|
||||
window.m_multiScreenWorker->m_position = Position::Bottom;
|
||||
window.resetDragWindow();
|
||||
window.onMainWindowSizeChanged(QPoint(10, 10));
|
||||
window.touchRequestResizeDock();
|
||||
|
||||
window.m_multiScreenWorker->m_position = Position::Left;
|
||||
window.resetDragWindow();
|
||||
window.onMainWindowSizeChanged(QPoint(10, 10));
|
||||
window.touchRequestResizeDock();
|
||||
|
||||
window.m_multiScreenWorker->m_position = Position::Right;
|
||||
window.resetDragWindow();
|
||||
window.onMainWindowSizeChanged(QPoint(10, 10));
|
||||
window.touchRequestResizeDock();
|
||||
}
|
||||
|
||||
TEST_F(Test_MainWindow, adjustShadowMask)
|
||||
{
|
||||
MainWindow *window = new MainWindow;
|
||||
|
||||
window->RegisterDdeSession();
|
||||
|
||||
window->m_launched = true;
|
||||
window->adjustShadowMask();
|
||||
|
||||
// window->onDbusNameOwnerChanged(SNI_WATCHER_SERVICE, "old", "new");
|
||||
delete window;
|
||||
}
|
||||
|
||||
TEST_F(Test_MainWindow, event_test)
|
||||
{
|
||||
MainWindow *window = new MainWindow;
|
||||
|
||||
QMouseEvent event4(QEvent::MouseMove, QPointF(0, 0), Qt::RightButton, Qt::RightButton, Qt::ControlModifier);
|
||||
window->mouseMoveEvent(&event4);
|
||||
|
||||
QResizeEvent event5((QSize()), QSize());
|
||||
window->resizeEvent(&event5);
|
||||
|
||||
QMimeData *data = new QMimeData;
|
||||
data->setText("test");
|
||||
|
||||
QDragEnterEvent event9(QPoint(), Qt::DropAction::CopyAction, data, Qt::LeftButton, Qt::NoModifier);
|
||||
window->dragEnterEvent(&event9);
|
||||
|
||||
QKeyEvent event11(QEvent::Type::KeyPress, Qt::Key_Escape, Qt::ControlModifier);
|
||||
window->keyPressEvent(&event11);
|
||||
|
||||
QEnterEvent event12(QPointF(0.0, 0.0), QPointF(0.0, 0.0), QPointF(0.0, 0.0));
|
||||
window->enterEvent(&event12);
|
||||
|
||||
delete window;
|
||||
}
|
||||
|
||||
TEST_F(Test_MainWindow, coverage_test)
|
||||
{
|
||||
ASSERT_TRUE(m_window);
|
||||
MainWindow *window = new MainWindow;
|
||||
|
||||
m_window->getTrayVisableItemCount();
|
||||
m_window->adjustShadowMask();
|
||||
m_window->resetDragWindow();
|
||||
m_window->onMainWindowSizeChanged(QPoint(10, 10));
|
||||
m_window->touchRequestResizeDock();
|
||||
m_window->sendNotifications();
|
||||
window->getTrayVisableItemCount();
|
||||
window->adjustShadowMask();
|
||||
window->resetDragWindow();
|
||||
window->onMainWindowSizeChanged(QPoint(10, 10));
|
||||
window->touchRequestResizeDock();
|
||||
window->sendNotifications();
|
||||
|
||||
m_window->callShow();
|
||||
QTest::qWait(450);
|
||||
window->m_multiScreenWorker->m_hideMode = HideMode::SmartHide;
|
||||
window->m_multiScreenWorker->m_hideState = HideState::Hide;
|
||||
|
||||
//TODO 这里无论输入什么,均返回true
|
||||
// ASSERT_FALSE(m_window->appIsOnDock("testname"));
|
||||
// window->callShow();
|
||||
|
||||
// window->m_multiScreenWorker->m_hideState = HideState::Show;
|
||||
// window->callShow();
|
||||
|
||||
// window->m_multiScreenWorker->m_hideMode = HideMode::KeepShowing;
|
||||
// window->callShow();
|
||||
|
||||
// window->m_multiScreenWorker->m_hideMode = HideMode::KeepHidden;
|
||||
// window->callShow();
|
||||
|
||||
delete window;
|
||||
}
|
||||
|
||||
TEST_F(Test_MainWindow, dragWidget_test)
|
||||
{
|
||||
DragWidget w;
|
||||
|
||||
ASSERT_FALSE(w.m_dragStatus);
|
||||
QTest::mousePress(&w, Qt::LeftButton);
|
||||
ASSERT_TRUE(w.m_dragStatus);
|
||||
|
||||
QMouseEvent event(QEvent::MouseMove, QPointF(0, 0), Qt::LeftButton, Qt::LeftButton, Qt::ControlModifier);
|
||||
w.mouseMoveEvent(&event);
|
||||
|
||||
QTest::mouseRelease(&w, Qt::LeftButton);
|
||||
ASSERT_FALSE(w.m_dragStatus);
|
||||
|
||||
ASSERT_EQ(w.objectName(), "DragWidget");
|
||||
|
||||
w.onTouchMove(1.0, 1.0);
|
||||
|
||||
QEvent enterEvent(QEvent::Enter);
|
||||
qApp->sendEvent(m_window, &enterEvent);
|
||||
QTest::qWait(10);
|
||||
w.enterEvent(&enterEvent);
|
||||
|
||||
QEvent dragEnterEvent(QEvent::Enter);
|
||||
qApp->sendEvent(m_window->m_dragWidget, &dragEnterEvent);
|
||||
QTest::qWait(10);
|
||||
ASSERT_EQ(QApplication::overrideCursor()->shape(), m_window->m_dragWidget->cursor().shape());
|
||||
|
||||
QEvent dragLeaveEvent(QEvent::Leave);
|
||||
qApp->sendEvent(m_window->m_dragWidget, &dragLeaveEvent);
|
||||
QTest::qWait(10);
|
||||
ASSERT_EQ(QApplication::overrideCursor()->shape(), Qt::ArrowCursor);
|
||||
|
||||
// 测试窗口大小变化时是否发出panelGeometryChanged信号
|
||||
QEvent resizeEvent(QEvent::Resize);
|
||||
QSignalSpy signal(m_window, &MainWindow::panelGeometryChanged);
|
||||
qApp->sendEvent(m_window, &resizeEvent);
|
||||
QTest::qWait(10);
|
||||
ASSERT_EQ(signal.count(), 1);
|
||||
QEvent leaveEvent(QEvent::Leave);
|
||||
w.leaveEvent(&leaveEvent);
|
||||
}
|
||||
|
||||
TEST_F(Test_MainWindow, test4)
|
||||
{
|
||||
MainWindow *window = new MainWindow;
|
||||
MultiScreenWorker *worker = window->m_multiScreenWorker;
|
||||
|
||||
worker->reInitDisplayData();
|
||||
|
||||
worker->setStates(MultiScreenWorker::AutoHide, true);
|
||||
worker->onAutoHideChanged(true);
|
||||
QTest::qWait(510);
|
||||
|
||||
worker->dockRectWithoutScale("", Position::Top, HideMode::KeepShowing, DisplayMode::Fashion);
|
||||
worker->dockRectWithoutScale("", Position::Top, HideMode::KeepHidden, DisplayMode::Fashion);
|
||||
worker->dockRectWithoutScale("", Position::Top, HideMode::SmartHide, DisplayMode::Fashion);
|
||||
|
||||
worker->onWindowSizeChanged(1);
|
||||
worker->onRequestUpdateMonitorInfo();
|
||||
|
||||
worker->setStates(MultiScreenWorker::LauncherDisplay, false);
|
||||
worker->onRequestDelayShowDock();
|
||||
|
||||
worker->updateParentGeometry(QRect(), Position::Top);
|
||||
worker->updateParentGeometry(QRect(), Position::Bottom);
|
||||
worker->updateParentGeometry(QRect(), Position::Left);
|
||||
worker->updateParentGeometry(QRect(), Position::Right);
|
||||
|
||||
worker->m_position = Position::Top;
|
||||
worker->onRequestNotifyWindowManager();
|
||||
worker->m_position = Position::Bottom;
|
||||
worker->onRequestNotifyWindowManager();
|
||||
worker->m_position = Position::Left;
|
||||
worker->onRequestNotifyWindowManager();
|
||||
worker->m_position = Position::Right;
|
||||
worker->onRequestNotifyWindowManager();
|
||||
|
||||
worker->m_hideMode = HideMode::SmartHide;
|
||||
worker->onExtralRegionMonitorChanged(0, 0, worker->m_registerKey);
|
||||
|
||||
worker->m_hideMode = HideMode::KeepHidden;
|
||||
worker->onExtralRegionMonitorChanged(0, 0, worker->m_registerKey);
|
||||
|
||||
worker->m_hideMode = HideMode::KeepShowing;
|
||||
worker->onExtralRegionMonitorChanged(0, 0, worker->m_registerKey);
|
||||
|
||||
ASSERT_TRUE(true);
|
||||
delete window;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user