knjrbfw 0.0.87 → 0.0.88
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.
- data/VERSION +1 -1
- data/knjrbfw.gemspec +2 -2
- data/lib/knj/gtk2_tv.rb +68 -38
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.88
|
data/knjrbfw.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{knjrbfw}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.88"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kasper Johansen"]
|
12
|
-
s.date = %q{2012-08-
|
12
|
+
s.date = %q{2012-08-22}
|
13
13
|
s.description = %q{Including stuff for HTTP, SSH and much more.}
|
14
14
|
s.email = %q{k@spernj.org}
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/knj/gtk2_tv.rb
CHANGED
@@ -3,11 +3,18 @@ module Knj::Gtk2::Tv
|
|
3
3
|
#Initializes a treeview with a model and a number of columns. Returns a hash containing various data like the renderers.
|
4
4
|
#===Examples
|
5
5
|
# Knj::Gtk2::Tv.init(treeview, ["ID", "Name"])
|
6
|
-
def self.init(tv,
|
6
|
+
def self.init(tv, args)
|
7
7
|
ret = {
|
8
8
|
:renderers => []
|
9
9
|
}
|
10
10
|
|
11
|
+
if args.is_a?(Array)
|
12
|
+
columns = args
|
13
|
+
args = {}
|
14
|
+
else
|
15
|
+
columns = args[:cols]
|
16
|
+
end
|
17
|
+
|
11
18
|
model_args = []
|
12
19
|
columns.each do |args|
|
13
20
|
if args.is_a?(String)
|
@@ -25,7 +32,12 @@ module Knj::Gtk2::Tv
|
|
25
32
|
end
|
26
33
|
end
|
27
34
|
|
28
|
-
|
35
|
+
if args[:type] == :treestore
|
36
|
+
list_store = Gtk::TreeStore.new(*model_args)
|
37
|
+
else
|
38
|
+
list_store = Gtk::ListStore.new(*model_args)
|
39
|
+
end
|
40
|
+
|
29
41
|
tv.model = list_store
|
30
42
|
tv.reorderable = true
|
31
43
|
|
@@ -191,14 +203,17 @@ module Knj::Gtk2::Tv
|
|
191
203
|
end
|
192
204
|
|
193
205
|
renderer = args[:renderers][col_no]
|
206
|
+
raise "Could not find a renderer for column no. '#{col_no}'." if !renderer
|
194
207
|
|
195
208
|
if args[:on_edit]
|
196
209
|
renderer.signal_connect("editing-started") do |renderer, row_no, path|
|
197
210
|
iter = args[:tv].model.get_iter(path)
|
198
211
|
id = args[:tv].model.get_value(iter, args[:id_col])
|
199
|
-
model_obj = args[:ob].get(args[:model_class], id)
|
200
212
|
|
201
|
-
|
213
|
+
if id.to_i > 0
|
214
|
+
model_obj = args[:ob].get(args[:model_class], id)
|
215
|
+
args[:on_edit].call(:renderer => renderer, :row_no => row_no, :path => path, :args => args, :model => model_obj, :col_no => col_no, :col_data => col_data)
|
216
|
+
end
|
202
217
|
end
|
203
218
|
end
|
204
219
|
|
@@ -223,41 +238,44 @@ module Knj::Gtk2::Tv
|
|
223
238
|
renderer.signal_connect("edited") do |renderer, row_no, value|
|
224
239
|
iter = args[:tv].model.get_iter(row_no)
|
225
240
|
id = args[:tv].model.get_value(iter, args[:id_col])
|
226
|
-
model_obj = args[:ob].get(args[:model_class], id)
|
227
|
-
cancel = false
|
228
|
-
callback_hash = {:args => args, :value => value, :model => model_obj, :col_no => col_no, :col_data => col_data}
|
229
|
-
|
230
|
-
if args[:on_edit_done]
|
231
|
-
args[:on_edit_done].call(:renderer => renderer, :row_no => row_no, :done_mode => :canceled, :args => args, :model => model_obj, :col_no => col_no, :col_data => col_data)
|
232
|
-
end
|
233
241
|
|
234
|
-
if
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
242
|
+
if id.to_i > 0
|
243
|
+
model_obj = args[:ob].get(args[:model_class], id)
|
244
|
+
cancel = false
|
245
|
+
callback_hash = {:args => args, :value => value, :model => model_obj, :col_no => col_no, :col_data => col_data}
|
246
|
+
|
247
|
+
if args[:on_edit_done]
|
248
|
+
args[:on_edit_done].call(:renderer => renderer, :row_no => row_no, :done_mode => :canceled, :args => args, :model => model_obj, :col_no => col_no, :col_data => col_data)
|
241
249
|
end
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
+
|
251
|
+
if col_data[:value_callback]
|
252
|
+
begin
|
253
|
+
value = col_data[:value_callback].call(callback_hash)
|
254
|
+
callback_hash[:value] = value
|
255
|
+
rescue => e
|
256
|
+
Knj::Gtk2.msgbox(e.message, "warning")
|
257
|
+
cancel = true
|
258
|
+
end
|
250
259
|
end
|
251
260
|
|
252
261
|
if !cancel
|
253
262
|
begin
|
254
|
-
|
255
|
-
value = col_data[:value_set_callback].call(callback_hash) if col_data.key?(:value_set_callback)
|
256
|
-
iter[col_no] = value
|
263
|
+
args[:change_before].call(callback_hash) if args[:change_before]
|
257
264
|
rescue => e
|
265
|
+
cancel = true
|
258
266
|
Knj::Gtk2.msgbox(e.message, "warning")
|
259
|
-
|
260
|
-
|
267
|
+
end
|
268
|
+
|
269
|
+
if !cancel
|
270
|
+
begin
|
271
|
+
model_obj[col_data[:col]] = value
|
272
|
+
value = col_data[:value_set_callback].call(callback_hash) if col_data.key?(:value_set_callback)
|
273
|
+
iter[col_no] = value
|
274
|
+
rescue => e
|
275
|
+
Knj::Gtk2.msgbox(e.message, "warning")
|
276
|
+
ensure
|
277
|
+
args[:change_after].call(callback_hash) if args[:change_after]
|
278
|
+
end
|
261
279
|
end
|
262
280
|
end
|
263
281
|
end
|
@@ -267,14 +285,26 @@ module Knj::Gtk2::Tv
|
|
267
285
|
renderer.signal_connect("toggled") do |renderer, path|
|
268
286
|
iter = args[:tv].model.get_iter(path)
|
269
287
|
id = args[:tv].model.get_value(iter, 0)
|
270
|
-
model_obj = args[:ob].get(args[:model_class], id)
|
288
|
+
model_obj = args[:ob].get(args[:model_class], id) if id.to_i > 0
|
271
289
|
|
272
|
-
if model_obj
|
273
|
-
|
274
|
-
|
290
|
+
if model_obj and col_data[:col]
|
291
|
+
if model_obj[col_data[:col]].to_i == 1
|
292
|
+
value = false
|
293
|
+
value_i = 0
|
294
|
+
else
|
295
|
+
value = true
|
296
|
+
value_i = 1
|
297
|
+
end
|
275
298
|
else
|
276
|
-
|
277
|
-
|
299
|
+
puts "Test: #{iter[col_no]}"
|
300
|
+
|
301
|
+
if iter[col_no] == 0
|
302
|
+
value = true
|
303
|
+
value_i = 1
|
304
|
+
else
|
305
|
+
value = false
|
306
|
+
value_i = 0
|
307
|
+
end
|
278
308
|
end
|
279
309
|
|
280
310
|
callback_hash = {:args => args, :value => value, :model => model_obj, :col_no => col_no, :col_data => col_data}
|
@@ -300,7 +330,7 @@ module Knj::Gtk2::Tv
|
|
300
330
|
if !cancel
|
301
331
|
args[:change_before].call(callback_hash) if args[:change_before]
|
302
332
|
begin
|
303
|
-
model_obj[col_data[:col]] = value_i
|
333
|
+
model_obj[col_data[:col]] = value_i if model_obj and col_data[:col]
|
304
334
|
|
305
335
|
if col_data.key?(:value_set_callback)
|
306
336
|
value = col_data[:value_set_callback].call(callback_hash)
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: knjrbfw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.88
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Kasper Johansen
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2012-08-
|
13
|
+
date: 2012-08-22 00:00:00 +02:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -394,7 +394,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
394
394
|
requirements:
|
395
395
|
- - ">="
|
396
396
|
- !ruby/object:Gem::Version
|
397
|
-
hash:
|
397
|
+
hash: 2484404489757704635
|
398
398
|
segments:
|
399
399
|
- 0
|
400
400
|
version: "0"
|