QWebChannel 2019.1.18 → 2019.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/QWebChannel.rb +13 -2
- data/lib/QWebChannel/QObject.rb +17 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8f394022d2e3c2f74ab9ef064933c743473667b1
|
4
|
+
data.tar.gz: 654ebbce5769e974100b724a54004f631c3d158e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2969a873dd42c91b616f6f1d4a84d32a10bc233212a08bb243090b720788b12050129c4f60585703ae97628b4378153101f6a9058b7445ab8fec6608f788fc5e
|
7
|
+
data.tar.gz: af18e4c38107e8f748d26dd07c3e2554a10e6e039262b88249afcc67fa5888a1004600a05323268eb7194fea287b2ee3edf01e782c35177e9068a8766298be8f
|
data/lib/QWebChannel.rb
CHANGED
@@ -83,6 +83,7 @@ class QWebChannel
|
|
83
83
|
def exec(data, &block)
|
84
84
|
if !(block_given?)
|
85
85
|
@channel.send(data)
|
86
|
+
return
|
86
87
|
end
|
87
88
|
|
88
89
|
@channel.execId=@channel.execId+1
|
@@ -108,6 +109,18 @@ class QWebChannel
|
|
108
109
|
end
|
109
110
|
end #def handleSignal(message)
|
110
111
|
|
112
|
+
def handlePropertyUpdate(message)
|
113
|
+
message['data'].each do |data| #一个个数据地处理。
|
114
|
+
object= @channel.objects[data['object']] #获取发生变更的对象。
|
115
|
+
|
116
|
+
if (object) #对象存在。
|
117
|
+
object.propertyUpdate(data['signals'], data['properties']) #更新属性。
|
118
|
+
else #对象不存在。
|
119
|
+
end #if (object) #对象存在。
|
120
|
+
end #message['data'].each do |data| #一个个数据地处理。
|
121
|
+
|
122
|
+
@channel.exec({ 'type' => QWebChannelMessageTypes::IDLE })
|
123
|
+
end #def handlePropertyUpdate(message)
|
111
124
|
|
112
125
|
def initialize(websocket, &block)
|
113
126
|
@index = nil #索引对象。
|
@@ -146,9 +159,7 @@ class QWebChannel
|
|
146
159
|
end
|
147
160
|
end
|
148
161
|
|
149
|
-
|
150
162
|
@channel.exec({'type' => QWebChannelMessageTypes::INIT}) do |data|
|
151
|
-
|
152
163
|
puts "data type: #{data.class}"
|
153
164
|
puts "data content: #{data}"
|
154
165
|
|
data/lib/QWebChannel/QObject.rb
CHANGED
@@ -94,6 +94,7 @@ class QObject
|
|
94
94
|
self.instance_eval %Q{
|
95
95
|
def #{propertyName}
|
96
96
|
propertyIndex=@propertyNameIndexMap["#{propertyName}"] #获取属性索引。
|
97
|
+
puts "propertyIndex: #{propertyIndex}, propertyName: #{propertyName}, object: #{@object}" #Debug.
|
97
98
|
@object.__propertyCache__[propertyIndex]
|
98
99
|
end
|
99
100
|
}
|
@@ -111,9 +112,10 @@ class QObject
|
|
111
112
|
if (valueToSend.is_a?(QObject) && @webChannel.objects[valueToSend.__id__] != nil)
|
112
113
|
valueToSend={"id" => valueToSend.__id__}
|
113
114
|
|
114
|
-
@webChannel.exec( {"type" => QWebChannelMessageTypes::SETPROPERTY, "object" => @object.__id__ , "property" => propertyIndex, "value" => valueToSend } )
|
115
115
|
end
|
116
116
|
|
117
|
+
puts "Sending set property message" #Debug.
|
118
|
+
@webChannel.exec( {"type" => QWebChannelMessageTypes::SETPROPERTY, "object" => @object.__id__ , "property" => propertyIndex, "value" => valueToSend } )
|
117
119
|
|
118
120
|
|
119
121
|
end
|
@@ -133,6 +135,20 @@ class QObject
|
|
133
135
|
end #if (connections)
|
134
136
|
end #def invokeSignalCallbacks(signalName, signalArgs)
|
135
137
|
|
138
|
+
def propertyUpdate(signals, propertyMap)
|
139
|
+
propertyMap.each do |propertyIndex, propertyValue|
|
140
|
+
puts "updating property, index: #{propertyIndex}, value: #{propertyValue}, object: #{@object}" #Debug.
|
141
|
+
@object.__propertyCache__[propertyIndex]=propertyValue
|
142
|
+
puts "updating property, property cache: #{@object.__propertyCache__}" #Debug.
|
143
|
+
puts "updating property, updated property value: #{@object.__propertyCache__[propertyIndex]}" #Debug.
|
144
|
+
|
145
|
+
end #propertyMap.each do |propertyIndex, propertyValue|
|
146
|
+
|
147
|
+
signals.each do |signalName|
|
148
|
+
invokeSignalCallbacks(signalName, signals[signalName])
|
149
|
+
end #signals.each do |signalName|
|
150
|
+
end #def propertyUpdate(signals, propertyMap)
|
151
|
+
|
136
152
|
def signalEmitted(signalName, signalArgs)
|
137
153
|
puts "signalArgs: #{signalArgs}" #debug.
|
138
154
|
invokeSignalCallbacks(signalName, self.unwrapQObject(signalArgs))
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: QWebChannel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2019.1.
|
4
|
+
version: 2019.1.23
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hxcan Cai
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-01-
|
11
|
+
date: 2019-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: websocket-eventmachine-client
|
@@ -81,7 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
81
81
|
version: '0'
|
82
82
|
requirements: []
|
83
83
|
rubyforge_project:
|
84
|
-
rubygems_version: 2.
|
84
|
+
rubygems_version: 2.5.2.3
|
85
85
|
signing_key:
|
86
86
|
specification_version: 4
|
87
87
|
summary: QWebChannel ruby.
|