[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdeplasma-addons] applets/quickshare/plasmoid/contents/ui: Use QtQuick DropArea instead of KDeclara
From: Aleix Pol <aleixpol () kde ! org>
Date: 2015-11-26 13:14:40
Message-ID: E1a1wNk-0002Ff-UD () scm ! kde ! org
[Download RAW message or body]
Git commit 21893fb93a79b93842d46a54dbfa75bcf74ac339 by Aleix Pol.
Committed on 26/11/2015 at 13:14.
Pushed by apol into branch 'master'.
Use QtQuick DropArea instead of KDeclarative's
KDeclarative's has some performance issues and it's preferable to stick to
Qt's version.
M +27 -20 applets/quickshare/plasmoid/contents/ui/main.qml
http://commits.kde.org/kdeplasma-addons/21893fb93a79b93842d46a54dbfa75bcf74ac339
diff --git a/applets/quickshare/plasmoid/contents/ui/main.qml \
b/applets/quickshare/plasmoid/contents/ui/main.qml index 2d937aa..c5644a4 \
100644
--- a/applets/quickshare/plasmoid/contents/ui/main.qml
+++ b/applets/quickshare/plasmoid/contents/ui/main.qml
@@ -24,9 +24,8 @@ import org.kde.plasma.components 2.0 as PlasmaComponents
import org.kde.kquickcontrolsaddons 2.0 as QtExtra
import QtQuick.Layouts 1.1
import org.kde.plasma.private.purpose 1.0
-import org.kde.draganddrop 2.0 as DragDrop
-DragDrop.DropArea {
+DropArea {
id: root
Plasmoid.preferredRepresentation: Plasmoid.fullRepresentation
@@ -35,10 +34,10 @@ DragDrop.DropArea {
Layout.minimumWidth: 0
Layout.minimumHeight: 0
- preventStealing: true
-
property string url: ""
property string errorMessage: ""
+ property var pasteUrls: []
+ property int nextPaste: 0
function firstMimeType(formats) {
for (var v in formats) {
@@ -66,18 +65,28 @@ DragDrop.DropArea {
return parts[parts.length - 1];
}
- onDragEnter: {
+ function objectToArray(object) {
+ var array = [];
+ for(var v in object) {
+ array.push(object[v]);
+ }
+ return array;
+ }
+
+ onEntered: {
root.state = "idle";
var mimetype;
- if (event.mimeData.hasUrls) {
- mimetype = urlsMimetype(event.mimeData.urls);
+ if (drag.hasUrls) {
+ mimetype = urlsMimetype(objectToArray(drag.urls));
} else {
- mimetype = firstMimeType(event.mimeData.formats);
+ mimetype = firstMimeType(drag.formats);
}
icon.source = mimetype.iconName;
- event.accepted = true
+ drag.accepted = true
+ }
+ onExited: {
+ icon.source = "edit-paste"
}
- onDragLeave: icon.source = "edit-paste"
QtExtra.Clipboard {
id: clipboard
@@ -178,21 +187,19 @@ DragDrop.DropArea {
root.state = "configuration"
}
- onDrop: {
- var mimeData = event.mimeData;
- var mimetype = firstMimeType(mimeData.formats).name;
- if (mimeData.hasUrls) {
- sendData(mimeData.urls, urlsMimetype(mimeData.urls).name);
+ onDropped: {
+ if (drop.hasUrls) {
+ var urls = objectToArray(drop.urls);
+
+ sendData(urls, urlsMimetype(urls).name);
} else {
- var data = mimeData.getDataAsByteArray(mimetype);
+ var mimetype = firstMimeType(drop.formats).name;
+ var data = mimeData.getDataAsArrayBuffer(mimetype);
sendBase64Data(PurposeHelper.variantToBase64(data), mimetype);
}
- event.accepted = true;
+ drop.accepted = true;
}
- property var pasteUrls: []
- property int nextPaste: 0
-
Component.onCompleted: {
plasmoid.setAction("paste", i18n("Paste"), "edit-paste");
plasmoid.setActionSeparator("pastes");
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic