aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-02-19 18:51:38 +0800
committerobscuren <geffobscura@gmail.com>2015-02-19 18:51:38 +0800
commit0057bb4ef6d55b5d580a4e0421526a477ef93de9 (patch)
treec42682f9399bc59d9a1623a4b159231e434fa8d5
parent03b8c6841be08f19db0f98cea6d0a6f4fd64736f (diff)
downloaddexon-0057bb4ef6d55b5d580a4e0421526a477ef93de9.tar.gz
dexon-0057bb4ef6d55b5d580a4e0421526a477ef93de9.tar.zst
dexon-0057bb4ef6d55b5d580a4e0421526a477ef93de9.zip
WIP QT Clipboard
-rw-r--r--cmd/mist/assets/qml/main.qml1
-rw-r--r--cmd/mist/gui.go1
-rw-r--r--rpc/util.go6
-rw-r--r--ui/qt/clipboard/capi.hpp11
-rw-r--r--ui/qt/clipboard/clipboard.cpp20
-rw-r--r--ui/qt/clipboard/clipboard.go15
-rw-r--r--ui/qt/clipboard/clipboard.hpp23
-rw-r--r--xeth/types.go2
8 files changed, 75 insertions, 4 deletions
diff --git a/cmd/mist/assets/qml/main.qml b/cmd/mist/assets/qml/main.qml
index f9bfd9b8d..5f7f05d83 100644
--- a/cmd/mist/assets/qml/main.qml
+++ b/cmd/mist/assets/qml/main.qml
@@ -246,6 +246,7 @@ ApplicationWindow {
}
}
}
+
}
property var blockModel: ListModel {
diff --git a/cmd/mist/gui.go b/cmd/mist/gui.go
index c9419473c..1e3efd269 100644
--- a/cmd/mist/gui.go
+++ b/cmd/mist/gui.go
@@ -131,6 +131,7 @@ func (gui *Gui) Start(assetPath string) {
context.SetVar("gui", gui)
context.SetVar("eth", gui.uiLib)
context.SetVar("shh", gui.whisper)
+ //clipboard.SetQMLClipboard(context)
win, err := gui.showWallet(context)
if err != nil {
diff --git a/rpc/util.go b/rpc/util.go
index 679d83754..366e315ac 100644
--- a/rpc/util.go
+++ b/rpc/util.go
@@ -80,7 +80,7 @@ type RpcServer interface {
type Log struct {
Address string `json:"address"`
- Topics []string `json:"topics"`
+ Topic []string `json:"topics"`
Data string `json:"data"`
}
@@ -89,11 +89,11 @@ func toLogs(logs state.Logs) (ls []Log) {
for i, log := range logs {
var l Log
- l.Topics = make([]string, len(log.Topics()))
+ l.Topic = make([]string, len(log.Topics()))
l.Address = toHex(log.Address())
l.Data = toHex(log.Data())
for j, topic := range log.Topics() {
- l.Topics[j] = toHex(topic)
+ l.Topic[j] = toHex(topic)
}
ls[i] = l
}
diff --git a/ui/qt/clipboard/capi.hpp b/ui/qt/clipboard/capi.hpp
new file mode 100644
index 000000000..202613469
--- /dev/null
+++ b/ui/qt/clipboard/capi.hpp
@@ -0,0 +1,11 @@
+#pragma once
+
+#include "clipboard.hpp"
+
+typedef void Clipboard_;
+
+Clipboard_ *initClipboard()
+{
+ Clipboard *clipboard = new(Clipboard);
+ return static_cast<Clipboard_*>(clipboard);
+}
diff --git a/ui/qt/clipboard/clipboard.cpp b/ui/qt/clipboard/clipboard.cpp
new file mode 100644
index 000000000..192aa7a2b
--- /dev/null
+++ b/ui/qt/clipboard/clipboard.cpp
@@ -0,0 +1,20 @@
+#include "clipboard.h"
+
+#include <QClipboard>
+
+Clipboard::Clipboard()
+{
+ connect(QApplication::clipboard(), &QClipboard::dataChanged, [this] { emit clipboardChanged();});
+}
+
+QString Clipboard::get() const
+{
+ QClipboard *clipboard = QApplication::clipboard();
+ return clipboard->text();
+}
+
+void Clipboard::toClipboard(QString _text)
+{
+ QClipboard *clipboard = QApplicationion::clipboard();
+ clipboard->setText(_text);
+}
diff --git a/ui/qt/clipboard/clipboard.go b/ui/qt/clipboard/clipboard.go
new file mode 100644
index 000000000..064ee954d
--- /dev/null
+++ b/ui/qt/clipboard/clipboard.go
@@ -0,0 +1,15 @@
+package clipboard
+
+// #cgo CPPFLAGS: -I./
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Quick
+//
+// #include "capi.hpp"
+import "C"
+
+import "github.com/obscuren/qml"
+
+func SetQMLClipboard(context *qml.Context) {
+ context.SetVar("clipboard", (unsafe.Pointer)(C.initClipboard()))
+}
diff --git a/ui/qt/clipboard/clipboard.hpp b/ui/qt/clipboard/clipboard.hpp
new file mode 100644
index 000000000..1aa213ceb
--- /dev/null
+++ b/ui/qt/clipboard/clipboard.hpp
@@ -0,0 +1,23 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+class Clipboard : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(QString get READ get WRITE toClipboard NOTIFY clipboardChanged)
+public:
+ Clipboard();
+ virtual ~Clipboard(){}
+
+ Q_INVOKABLE void toClipboard(QString _text);
+
+signals:
+ void clipboardChanged();
+};
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/xeth/types.go b/xeth/types.go
index a903fccbb..5b2d16018 100644
--- a/xeth/types.go
+++ b/xeth/types.go
@@ -150,7 +150,7 @@ type Transaction struct {
func NewTx(tx *types.Transaction) *Transaction {
hash := toHex(tx.Hash())
receiver := toHex(tx.To())
- if receiver == "0000000000000000000000000000000000000000" {
+ if len(receiver) == 0 {
receiver = toHex(core.AddressFromMessage(tx))
}
sender := toHex(tx.From())