QWebChannel 2019.1.18 → 2019.1.23

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: 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.