[polari/wip/kunaljain/image-paste-service: 1/2] Make paste functions generic
- From: Kunal Jain <kunaljain src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [polari/wip/kunaljain/image-paste-service: 1/2] Make paste functions generic
- Date: Wed, 10 Feb 2016 12:10:47 +0000 (UTC)
commit 10a0ddf600ec6924f43fe6b3d8540df3088a757f
Author: Kunaal Jain <kunaalus gmail com>
Date: Wed Feb 10 16:25:51 2016 +0530
Make paste functions generic
data/resources/entry-area.ui | 2 +-
src/application.js | 12 ++++++------
src/entryArea.js | 3 ++-
src/pasteManager.js | 12 +++++++-----
4 files changed, 16 insertions(+), 13 deletions(-)
---
diff --git a/data/resources/entry-area.ui b/data/resources/entry-area.ui
index 40af1e0..f7beca8 100644
--- a/data/resources/entry-area.ui
+++ b/data/resources/entry-area.ui
@@ -123,7 +123,7 @@
<property name="label" translatable="yes">_Paste</property>
<property name="visible">True</property>
<property name="receives-default">True</property>
- <property name="action-name">app.paste-text</property>
+ <property name="action-name">app.paste-content</property>
<property name="use-underline">True</property>
<style>
<class name="suggested-action"/>
diff --git a/src/application.js b/src/application.js
index 28cbaba..df2f1eb 100644
--- a/src/application.js
+++ b/src/application.js
@@ -67,9 +67,9 @@ const Application = new Lang.Class({
{ name: 'message-user',
activate: Lang.bind(this, this._onMessageUser),
parameter_type: GLib.VariantType.new('(sssu)') },
- { name: 'paste-text',
- activate: Lang.bind(this, this._onPasteText),
- parameter_type: GLib.VariantType.new('s') },
+ { name: 'paste-content',
+ activate: Lang.bind(this, this._onPasteContent),
+ parameter_type: GLib.VariantType.new('(si)') },
{ name: 'leave-room',
activate: Lang.bind(this, this._onLeaveRoom),
parameter_type: GLib.VariantType.new('(ss)') },
@@ -376,9 +376,9 @@ const Application = new Lang.Class({
}));
},
- _onPasteText: function(action, parameter) {
- let text = parameter.deep_unpack();
- this.pasteManager.pasteText(text);
+ _onPasteContent: function(action, parameter) {
+ let [data, type] = parameter.deep_unpack();
+ this.pasteManager.pasteContent(data, type);
},
_onLeaveRoom: function(action, parameter) {
diff --git a/src/entryArea.js b/src/entryArea.js
index a9f8612..e15dcb0 100644
--- a/src/entryArea.js
+++ b/src/entryArea.js
@@ -9,6 +9,7 @@ const Lang = imports.lang;
const Mainloop = imports.mainloop;
const TabCompletion = imports.tabCompletion;
const Tp = imports.gi.TelepathyGLib;
+const PasteManager = imports.pasteManager;
const MAX_NICK_UPDATE_TIME = 5; /* s */
const MAX_LINES = 5;
@@ -210,7 +211,7 @@ const EntryArea = new Lang.Class({
ngettext("Paste %s line of text to public paste service?",
"Paste %s lines of text to public paste service?",
nLines).format(nLines);
- this._pasteButton.action_target = new GLib.Variant('s', text);
+ this._pasteButton.action_target = new GLib.Variant('(si)', [text, PasteManager.DndTargetType.TEXT]);
this.visible_child_name = 'multiline';
this._pasteButton.grab_focus();
},
diff --git a/src/pasteManager.js b/src/pasteManager.js
index cccd048..2aeb419 100644
--- a/src/pasteManager.js
+++ b/src/pasteManager.js
@@ -73,12 +73,14 @@ const PasteManager = new Lang.Class({
this._widgets.push(widget);
},
- pasteText: function(text) {
+ pasteContent: function(data, type) {
let app = Gio.Application.get_default();
- let n = new UploadNotification("text");
- app.notificationQueue.addNotification(n);
- this._pasteText(text, n);
+ if (type == DndTargetType.TEXT) {
+ let n = new UploadNotification("text");
+ app.notificationQueue.addNotification(n);
+ this._pasteText(data, n);
+ }
},
_pasteText: function(text, notification) {
@@ -217,7 +219,7 @@ const PasteManager = new Lang.Class({
let success = false;
switch(info) {
case DndTargetType.TEXT:
- this.pasteText(data.get_text());
+ this.pasteContent(data.get_text(), DndTargetType.TEXT);
success = true;
break;
case DndTargetType.IMAGE:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]