knjrbfw 0.0.87 → 0.0.88
Sign up to get free protection for your applications and to get access to all the features.
- 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"
|