diff --git a/dde-dock/src/Controller/appmanager.cpp b/dde-dock/src/Controller/appmanager.cpp index 67d07c99e..178ac4075 100644 --- a/dde-dock/src/Controller/appmanager.cpp +++ b/dde-dock/src/Controller/appmanager.cpp @@ -13,7 +13,7 @@ void AppManager::updateEntries() for (int i = 0; i < entryList.count(); i ++) { DBusEntryProxyer *dep = new DBusEntryProxyer(entryList.at(i).path()); - if (dep->isValid() && dep->type() == "App") + if (dep->isValid() && dep->type() == "App" && dep->data().value("title") != "dde-dock") { AppItem *item = new AppItem(); item->setEntryProxyer(dep); diff --git a/dde-dock/src/Panel/panel.cpp b/dde-dock/src/Panel/panel.cpp index 146e26541..59ef81b18 100644 --- a/dde-dock/src/Panel/panel.cpp +++ b/dde-dock/src/Panel/panel.cpp @@ -61,10 +61,6 @@ void Panel::showScreenMask() connect(maskWidget,SIGNAL(itemDropped(QPoint)),this,SLOT(slotItemDropped())); connect(maskWidget,SIGNAL(itemEntered()),this,SLOT(slotEnteredMask())); connect(maskWidget,SIGNAL(itemExited()),this,SLOT(slotExitedMask())); - - //TODO change to Other ways to do this,it will hide the drag icon - parentWidget->hide(); - parentWidget->show(); } void Panel::hideScreenMask() diff --git a/dde-dock/src/Widgets/appicon.cpp b/dde-dock/src/Widgets/appicon.cpp index e5f4b3983..7de2b119e 100644 --- a/dde-dock/src/Widgets/appicon.cpp +++ b/dde-dock/src/Widgets/appicon.cpp @@ -22,16 +22,23 @@ void AppIcon::setIcon(const QString &iconPath) if (sysIconPath != "") { iconPixmap.load(sysIconPath); + m_iconPath = sysIconPath; } else { iconPixmap.load(iconPath); + m_iconPath = iconPath; } this->setPixmap(iconPixmap); QLabel::setPixmap(this->pixmap()->scaled(m_modeData->getAppIconSize(),m_modeData->getAppIconSize(), Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation)); } +QString AppIcon::getIconPath() const +{ + return m_iconPath; +} + QString AppIcon::getSysIcon(const QString &iconName, int size) { char *name = iconName.toUtf8().data(); diff --git a/dde-dock/src/Widgets/appicon.h b/dde-dock/src/Widgets/appicon.h index 4c971ed8c..89b4b77c2 100644 --- a/dde-dock/src/Widgets/appicon.h +++ b/dde-dock/src/Widgets/appicon.h @@ -15,6 +15,7 @@ public: explicit AppIcon(QWidget *parent = 0,Qt::WindowFlags f = 0); void setIcon(const QString &iconPath); + QString getIconPath() const; signals: @@ -23,6 +24,7 @@ public slots: QString getSysIcon(const QString &iconName, int size = 48); private: DockModeData *m_modeData = DockModeData::instance(); + QString m_iconPath; }; #endif // APPICON_H diff --git a/dde-dock/src/Widgets/appitem.cpp b/dde-dock/src/Widgets/appitem.cpp index ca6bfd5aa..25a77cc37 100644 --- a/dde-dock/src/Widgets/appitem.cpp +++ b/dde-dock/src/Widgets/appitem.cpp @@ -222,16 +222,17 @@ void AppItem::mousePressEvent(QMouseEvent * event) //qWarning() << "mouse press..."; emit mousePress(event->globalX(), event->globalY()); - if (event->button() == Qt::LeftButton) - m_entryProxyer->Activate(0,0); - else if (event->button() == Qt::RightButton) - showMenu(event->globalX(),event->globalY()); } void AppItem::mouseReleaseEvent(QMouseEvent * event) { // qWarning() << "mouse release..."; emit mouseRelease(event->globalX(), event->globalY()); + + if (event->button() == Qt::LeftButton) + m_entryProxyer->Activate(event->globalX(),event->globalY()); + else if (event->button() == Qt::RightButton) + showMenu(event->globalX(),event->globalY()); } void AppItem::mouseDoubleClickEvent(QMouseEvent * event) @@ -249,11 +250,11 @@ void AppItem::mouseMoveEvent(QMouseEvent *event) { QDrag* drag = new QDrag(this); QMimeData* data = new QMimeData(); - QImage dataImg(m_itemData.iconPath); + QImage dataImg(m_appIcon->getIconPath()); data->setImageData(QVariant(dataImg)); drag->setMimeData(data); - QPixmap pixmap(m_itemData.iconPath); + QPixmap pixmap(m_appIcon->getIconPath()); drag->setPixmap(pixmap); drag->setHotSpot(QPoint(15,15)); diff --git a/dde-dock/src/Widgets/screenmask.cpp b/dde-dock/src/Widgets/screenmask.cpp index 7813ba10c..a85446faf 100644 --- a/dde-dock/src/Widgets/screenmask.cpp +++ b/dde-dock/src/Widgets/screenmask.cpp @@ -4,7 +4,7 @@ ScreenMask::ScreenMask(QWidget *parent) : QWidget(parent) { QRect rec = QApplication::desktop()->screenGeometry(); this->resize(rec.width(),rec.height()); - this->setWindowFlags(Qt::ToolTip); + this->setWindowFlags(Qt::FramelessWindowHint); this->setWindowOpacity(0); setAcceptDrops(true); @@ -43,5 +43,11 @@ void ScreenMask::dropEvent(QDropEvent *event) emit itemDropped(event->pos()); } + else + { + qWarning() << "Image is NULL!"; + } + + this->close(); }