disable drop if item already exists

Change-Id: I5f0b09263b2d66989700d224e0e531bb07280b0f
This commit is contained in:
石博文 2016-07-18 18:33:22 +08:00 committed by Hualet Wang
parent 07bf5bd4df
commit f55a604c3b
4 changed files with 17 additions and 1 deletions

View File

@ -27,6 +27,11 @@ const QList<DockItem *> DockItemController::itemList() const
return m_itemList;
}
bool DockItemController::appIsDocked(const QString &appDesktop) const
{
return m_appInter->IsDocked(appDesktop);
}
void DockItemController::itemMove(DockItem * const moveItem, DockItem * const replaceItem)
{
Q_ASSERT(moveItem != replaceItem);

View File

@ -20,6 +20,7 @@ public:
~DockItemController();
const QList<DockItem *> itemList() const;
bool appIsDocked(const QString &appDesktop) const;
signals:
void itemInserted(const int index, DockItem *item) const;

View File

@ -128,12 +128,20 @@ public Q_SLOTS: // METHODS
return asyncCallWithArgumentList(QStringLiteral("RequestDock"), args);
}
inline QDBusPendingReply<bool> IsDocked(const QString &appDesktop)
{
QList<QVariant> args;
args << appDesktop;
return asyncCallWithArgumentList(QStringLiteral("IsDocked"), args);
}
inline QDBusPendingReply<bool> RequestUndock(const QString &appDesktop)
{
QList<QVariant> args;
args << appDesktop;
return asyncCallWithArgumentList(QStringLiteral("RequestDock"), args);
return asyncCallWithArgumentList(QStringLiteral("RequestUndock"), args);
}
inline QDBusPendingReply<> SetFrontendWindowRect(const int x, const int y, const quint32 width, const quint32 height)

View File

@ -141,6 +141,8 @@ void MainPanel::dragEnterEvent(QDragEnterEvent *e)
if (!e->mimeData()->formats().contains(RequestDockKey))
return;
if (m_itemController->appIsDocked(e->mimeData()->data(RequestDockKey)))
return;
e->accept();
}