QWebChannel 2019.1.9 → 2019.1.18

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0d5ec7275d2cc6fad1feced2008c305adf8ab9a5
4
- data.tar.gz: 33877144b5af5cd54234d4a473eeb18a85c520fa
3
+ metadata.gz: d6425a8862df2126405215d7d558adc626823e92
4
+ data.tar.gz: af18a573275cc0ae50b37bbfd2b8c999fea9e1ab
5
5
  SHA512:
6
- metadata.gz: 6612ea782c3afdbb9d31d9ed041d4bd153c0816ff10ddecd1c715b82972cf3784f28e3d5cf304d1a223506a8b1218c44e7ad890fd899dd45c4aa828f6ce05f68
7
- data.tar.gz: ecf3782bb3c0f4fbd5a2382f2fb8b652a176aefda9283aad3003c7071446a9c102b8c19916dbb0770a32cf850a9a7b2b722d91e7205d7c05df3b18ed050c3971
6
+ metadata.gz: 64cbf10140ed651dc3c03ea0a913d36a66b73ec41a29e3323f5f556480e785b0fd55bc64a98a94cad6a0c8d8f216b240122ba11f1a0041deb1ada5128d5827e8
7
+ data.tar.gz: 202b5b2b7f4c8189a541c20ec85125fc64ebeb159d3cc08ae577f7aef8ae58d3ce52699785a49c7502a404a246ecd8f10a5596c9d21ccb3189e8da8f537f5c35
@@ -158,9 +158,9 @@ class QWebChannel
158
158
  object=QObject.new(objectName, data[objectName], @channel)
159
159
  end
160
160
 
161
- @channel.objects.each do |objectName, objectObject|
161
+ @channel.objects.each do |objectName, objectObject| #一个个地解析出属性。
162
162
  @channel.objects[objectName].unwrapProperties()
163
- end
163
+ end #@channel.objects.each do |objectName, objectObject| #一个个地解析出属性。
164
164
 
165
165
 
166
166
  # puts "Self: #{self}"
@@ -51,10 +51,12 @@ class QObject
51
51
  return qObject
52
52
  end #def unwrapQObject(response)
53
53
 
54
+ #解码出属性。
54
55
  def unwrapProperties()
55
- @object.__propertyCache__.each do |propertyIdx, propertyObject|
56
+ @object.__propertyCache__.each do |propertyIdx, propertyObject| #一个个地解码属性。
57
+ puts "propertyIdx: #{propertyIdx}" #Debug.
56
58
  @object.__propertyCache__[propertyIdx]=@object.unwrapQObject(@object.__propertyCache__[propertyIdx])
57
- end
59
+ end #@object.__propertyCache__.each do |propertyIdx, propertyObject| #一个个地解码属性。
58
60
  end #def unwrapProperties()
59
61
 
60
62
  def []=(signalName, signalObject)
@@ -79,10 +81,11 @@ class QObject
79
81
  addSignal(notifySignalData, true)
80
82
  end #if (notifySignalData)
81
83
 
82
- defineProperty(propertyName) #定义属性。对应于Object.defineProperty.
84
+ defineProperty(propertyName, propertyIndex) #定义属性。对应于Object.defineProperty.
83
85
  end #def bindGetterSetter(propertyInfo)
84
86
 
85
- def defineProperty(propertyName)
87
+ def defineProperty(propertyName, propertyIndex)
88
+ @propertyNameIndexMap[propertyName]=propertyIndex #记录映射关系。
86
89
  # define_property_by_prototype(propertyName)
87
90
 
88
91
 
@@ -90,6 +93,7 @@ class QObject
90
93
  # self.class_eval( " def #{attr_name}; @#{attr_name}; end " )
91
94
  self.instance_eval %Q{
92
95
  def #{propertyName}
96
+ propertyIndex=@propertyNameIndexMap["#{propertyName}"] #获取属性索引。
93
97
  @object.__propertyCache__[propertyIndex]
94
98
  end
95
99
  }
@@ -97,7 +101,9 @@ class QObject
97
101
  #setter
98
102
  self.instance_eval %Q{
99
103
  def #{propertyName}=(val)
104
+ propertyIndex=@propertyNameIndexMap["#{propertyName}"] #获取属性索引。
100
105
 
106
+
101
107
  @object.__propertyCache__[propertyIndex]=val
102
108
 
103
109
  valueToSend=val
@@ -179,6 +185,8 @@ class QObject
179
185
  @signalNameObjectHash={} #信号名字与信号对象的映射。
180
186
  @__id__=name
181
187
  @webChannel=webChannel
188
+ @propertyNameIndexMap={} #记录映射关系。属性名字与属性索引之间的映射关系。
189
+
182
190
  webChannel.objects[name]=self
183
191
 
184
192
  puts "__id__: #{@__id__}" #debug.
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.9
4
+ version: 2019.1.18
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-09 00:00:00.000000000 Z
11
+ date: 2019-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: websocket-eventmachine-client