bugfix: whole item accept all mouse event on classic mode

This commit is contained in:
杨万青 2015-08-07 20:42:19 +08:00
parent bbc980c425
commit 68b4fdebfb
8 changed files with 60 additions and 16 deletions

View File

@ -142,8 +142,11 @@ bool AppBackground::getIsFashionMode() const
return DockModeData::instance()->getDockMode() == Dock::FashionMode;
}
void AppBackground::slotMouseRelease()
void AppBackground::slotMouseRelease(QMouseEvent *event)
{
if (event->button() != Qt::LeftButton)
return;
m_bePress = true;
if (!m_isActived && getIsFashionMode())
m_activeLabel->showActiveWithAnimation();

View File

@ -6,6 +6,7 @@
#include <QStyle>
#include <QPropertyAnimation>
#include <QPainter>
#include <QMouseEvent>
#include <QDebug>
#include "Controller/dockmodedata.h"
@ -55,7 +56,7 @@ public:
bool getIsFashionMode() const;
public slots:
void slotMouseRelease();
void slotMouseRelease(QMouseEvent *event);
private:
void initActiveLabel();

View File

@ -65,22 +65,30 @@ void AppIcon::setIcon(const QString &iconPath)
void AppIcon::mousePressEvent(QMouseEvent *ev)
{
emit mousePress(ev);
if (m_modeData->getDockMode() == Dock::FashionMode)
emit mousePress(ev);
else
QLabel::mousePressEvent(ev);
}
void AppIcon::mouseReleaseEvent(QMouseEvent *ev)
{
emit mouseRelease(ev);
if (m_modeData->getDockMode() == Dock::FashionMode)
emit mouseRelease(ev);
else
QLabel::mousePressEvent(ev);
}
void AppIcon::enterEvent(QEvent *)
{
emit mouseEnter();
if (m_modeData->getDockMode() == Dock::FashionMode)
emit mouseEnter();
}
void AppIcon::leaveEvent(QEvent *)
{
emit mouseLeave();
if (m_modeData->getDockMode() == Dock::FashionMode)
emit mouseLeave();
}
// iconName should be a icon name constraints to the freeedesktop standard.

View File

@ -83,14 +83,14 @@ AppItemData AppItem::itemData() const
void AppItem::slotMousePress(QMouseEvent *event)
{
//qWarning() << "mouse press...";
emit mousePress(event->globalX(), event->globalY());
emit mousePress(event);
hidePreview();
}
void AppItem::slotMouseRelease(QMouseEvent *event)
{
//qWarning() << "mouse release...";
emit mouseRelease(event->globalX(), event->globalY());
emit mouseRelease(event);
if (event->button() == Qt::LeftButton)
m_entryProxyer->Activate(event->globalX(),event->globalY());
@ -375,6 +375,34 @@ void AppItem::dropEvent(QDropEvent *event)
qWarning() << "Item get drop:" << event->pos();
}
void AppItem::mousePressEvent(QMouseEvent *event)
{
if (m_dockModeData->getDockMode() != Dock::FashionMode)
slotMousePress(event);
else
QFrame::mousePressEvent(event);
}
void AppItem::mouseReleaseEvent(QMouseEvent *event)
{
if (m_dockModeData->getDockMode() != Dock::FashionMode)
slotMouseRelease(event);
else
QFrame::mouseReleaseEvent(event);
}
void AppItem::enterEvent(QEvent *event)
{
if (m_dockModeData->getDockMode() != Dock::FashionMode)
slotMouseEnter();
}
void AppItem::leaveEvent(QEvent *event)
{
if (m_dockModeData->getDockMode() != Dock::FashionMode)
slotMouseLeave();
}
AppItem::~AppItem()
{
if (m_preview)

View File

@ -58,6 +58,10 @@ protected:
void dragEnterEvent(QDragEnterEvent * event);
void dragLeaveEvent(QDragLeaveEvent * event);
void dropEvent(QDropEvent * event);
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void enterEvent(QEvent *event);
void leaveEvent(QEvent *event);
private slots:
void slotMousePress(QMouseEvent *event);

View File

@ -30,16 +30,16 @@ void LauncherItem::leaveEvent(QEvent *)
hidePreview();
}
void LauncherItem::slotMousePress()
void LauncherItem::slotMousePress(QMouseEvent *event)
{
emit mousePress(globalX(), globalY());
emit mousePress(event);
hidePreview();
}
void LauncherItem::slotMouseRelease()
void LauncherItem::slotMouseRelease(QMouseEvent *event)
{
emit mouseRelease(globalX(), globalY());
emit mouseRelease(event);
m_launcherProcess->start("dde-launcher",QStringList());
}

View File

@ -28,8 +28,8 @@ protected:
void leaveEvent(QEvent *);
private slots:
void slotMousePress();
void slotMouseRelease();
void slotMousePress(QMouseEvent *event);
void slotMouseRelease(QMouseEvent *event);
private:
void changeDockMode(Dock::DockMode newMode, Dock::DockMode oldMode);

View File

@ -61,8 +61,8 @@ signals:
void dragExited(QDragLeaveEvent * event);
void mouseEntered();
void mouseExited();
void mousePress(int x, int y);
void mouseRelease(int x, int y);
void mousePress(QMouseEvent *event);
void mouseRelease(QMouseEvent *event);
void widthChanged();
void posChanged();
void frameUpdate();