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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d6425a8862df2126405215d7d558adc626823e92
4
- data.tar.gz: af18a573275cc0ae50b37bbfd2b8c999fea9e1ab
3
+ metadata.gz: 8f394022d2e3c2f74ab9ef064933c743473667b1
4
+ data.tar.gz: 654ebbce5769e974100b724a54004f631c3d158e
5
5
  SHA512:
6
- metadata.gz: 64cbf10140ed651dc3c03ea0a913d36a66b73ec41a29e3323f5f556480e785b0fd55bc64a98a94cad6a0c8d8f216b240122ba11f1a0041deb1ada5128d5827e8
7
- data.tar.gz: 202b5b2b7f4c8189a541c20ec85125fc64ebeb159d3cc08ae577f7aef8ae58d3ce52699785a49c7502a404a246ecd8f10a5596c9d21ccb3189e8da8f537f5c35
6
+ metadata.gz: 2969a873dd42c91b616f6f1d4a84d32a10bc233212a08bb243090b720788b12050129c4f60585703ae97628b4378153101f6a9058b7445ab8fec6608f788fc5e
7
+ data.tar.gz: af18e4c38107e8f748d26dd07c3e2554a10e6e039262b88249afcc67fa5888a1004600a05323268eb7194fea287b2ee3edf01e782c35177e9068a8766298be8f
@@ -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
 
@@ -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.18
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-18 00:00:00.000000000 Z
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.4.5.1
84
+ rubygems_version: 2.5.2.3
85
85
  signing_key:
86
86
  specification_version: 4
87
87
  summary: QWebChannel ruby.