Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion panels/dock/taskmanager/abstractitem.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ class AbstractItem : public QObject
virtual void setDocked(bool docked) =0;

virtual void handleClick(const QString& clickItem) = 0;
virtual void handleFileDrop(const QStringList & urls) = 0;

// three type data
virtual QVariant data() = 0;
Expand All @@ -75,4 +76,4 @@ class AbstractItem : public QObject
void dataChanged();

};
}
}
7 changes: 7 additions & 0 deletions panels/dock/taskmanager/appitem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,13 @@ void AppItem::handleClick(const QString& clickItem)

}

void AppItem::handleFileDrop(const QStringList & urls)
{
if (m_desktopfileParser && !m_desktopfileParser.isNull()) {
m_desktopfileParser->launchWithUrls(urls);
}
}

QVariant AppItem::data()
{
QStringList ret;
Expand Down
1 change: 1 addition & 0 deletions panels/dock/taskmanager/appitem.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ class AppItem : public AbstractItem
void setDocked(bool docked) override;

void handleClick(const QString& clickItem) override;
void handleFileDrop(const QStringList & urls) override;

QVariant data() override;

Expand Down
4 changes: 4 additions & 0 deletions panels/dock/taskmanager/desktopfileabstractparser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ void DesktopfileAbstractParser::launchWithAction(const QString& action)

}

void DesktopfileAbstractParser::launchWithUrls(const QStringList & urls)
{
}

void DesktopfileAbstractParser::requestQuit()
{

Expand Down
3 changes: 2 additions & 1 deletion panels/dock/taskmanager/desktopfileabstractparser.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,12 @@ class DesktopfileAbstractParser : public QObject
virtual QString genericName();
virtual QString desktopIcon();
virtual QString xDeepinVendor();

virtual std::pair<bool, QString> isValied();

virtual void launch();
virtual void launchWithAction(const QString& action);
virtual void launchWithUrls(const QStringList & urls);
virtual void requestQuit();
virtual QString type();

Expand Down
7 changes: 6 additions & 1 deletion panels/dock/taskmanager/desktopfileamparser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ DesktopFileAMParser::DesktopFileAMParser(QString id, QObject* parent)
{
if (!m_amIsAvaliable) m_amIsAvaliable = QDBusConnection::sessionBus().
interface()->isServiceRegistered(AM_DBUS_PATH);

connect(&desktopobjectManager, &ObjectManager::InterfacesRemoved, this, [this] (const QDBusObjectPath& path, const QStringList& interfaces) {
if (m_applicationInterface->path() == path.path()) {
getAppItem()->setDocked(false);
Expand Down Expand Up @@ -191,6 +191,11 @@ void DesktopFileAMParser::launchWithAction(const QString& action)
return launchByAMTool(action);
}

void DesktopFileAMParser::launchWithUrls(const QStringList & urls)
{
m_applicationInterface->Launch(QString(), urls, QVariantMap());
}

void DesktopFileAMParser::requestQuit()
{

Expand Down
1 change: 1 addition & 0 deletions panels/dock/taskmanager/desktopfileamparser.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class DesktopFileAMParser : public DesktopfileAbstractParser

virtual void launch() override;
virtual void launchWithAction(const QString& action) override;
virtual void launchWithUrls(const QStringList & urls) override;
virtual void requestQuit() override;

virtual QString id() override;
Expand Down
12 changes: 11 additions & 1 deletion panels/dock/taskmanager/package/AppItem.qml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Item {
required property int visualIndex

signal clickItem(itemId: string, menuId: string)
signal dropFilesOnItem(itemId: string, files: list<string>)
signal dragFinished()

Drag.active: mouseArea.drag.active
Expand Down Expand Up @@ -245,7 +246,7 @@ Item {
NumberAnimation { target: rect; property: "width"; from: originSize * (index + 1); to: originSize * (index + 2); duration: 1200 }
ColorAnimation { target: rect; property: "color"; from: Qt.rgba(1, 1, 1, 0.4); to: Qt.rgba(1, 1, 1, 0.1); duration: 1200 }
}
}
}

// TODO Remove it because of consuming performance.
// D.BoxShadow {
Expand Down Expand Up @@ -384,6 +385,15 @@ Item {
}
}

DropArea {
anchors.fill: parent
keys: ["dfm_app_type_for_drag"]

onDropped: function (drop){
root.dropFilesOnItem(root.itemId, drop.urls)
}
}

onWindowsChanged: {
updateWindowIconGeometryTimer.start()
}
Expand Down
1 change: 1 addition & 0 deletions panels/dock/taskmanager/package/TaskManager.qml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ ContainmentItem {
ListView.delayRemove: Drag.active
Component.onCompleted: {
clickItem.connect(taskmanager.Applet.clickItem)
dropFilesOnItem.connect(taskmanager.Applet.dropFilesOnItem)
}
onDragFinished: function() {
launcherDndDropArea.resetDndState()
Expand Down
8 changes: 8 additions & 0 deletions panels/dock/taskmanager/taskmanager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,14 @@ void TaskManager::clickItem(const QString& itemId, const QString& menuId)
item->handleClick(menuId);
}

void TaskManager::dropFilesOnItem(const QString& itemId, const QStringList& urls)
{
auto item = ItemModel::instance()->getItemById(itemId);
if(!item) return;

item->handleFileDrop(urls);
}

void TaskManager::showItemPreview(const QString &itemId, QObject* relativePositionItem, int32_t previewXoffset, int32_t previewYoffset, uint32_t direction)
{
auto item = ItemModel::instance()->getItemById(itemId).get();
Expand Down
1 change: 1 addition & 0 deletions panels/dock/taskmanager/taskmanager.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ class TaskManager : public DS_NAMESPACE::DContainment
Q_INVOKABLE bool RequestUndock(QString appID);

Q_INVOKABLE void clickItem(const QString& itemid, const QString& menuId);
Q_INVOKABLE void dropFilesOnItem(const QString& itemId, const QStringList& urls);
Q_INVOKABLE void showItemPreview(const QString& itemId, QObject* relativePositionItem, int32_t previewXoffset, int32_t previewYoffset, uint32_t direction);
Q_INVOKABLE void hideItemPreview();

Expand Down