visualruby 3.0.15 → 3.0.17

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: 3baa011870421fc57b9bbe678959e008841b06ff
4
- data.tar.gz: d2b8d5f1b33cc702a107252d47148261e13db5b6
3
+ metadata.gz: e2434c8926f2476bec1c11354108a4b320cd4583
4
+ data.tar.gz: 5e1d3930bd198f21c7dd1a306f8b410815c6411d
5
5
  SHA512:
6
- metadata.gz: 05870a7169f61f20ee82266832d0764c0d17ddf725865ff34b335cfe7f00b516c4c188d25f8adbd484ff46deae7f32214870a80bad107ef89184c999ae4b447d
7
- data.tar.gz: fafa3284aee0dc41b01be20926c415a25dbf07065fe7551f00b94c96c9dd8d7b67e74f396824edd0d64afce787ee7f218847f2a76b9ab811202714f7ec7f04e0
6
+ metadata.gz: a3d2196193f960088d68eddacef6f32dd231e61d5bccd91898bceda3e96699255e656712b4895d442e8cee86eb718e7c207ff8b8d865347472da07cd695c5126
7
+ data.tar.gz: f6ee408bcdc3e445ae952acdb6568f1870cf679e322c1a71f1f753fe41015e3307ff19a949f79f49e620ed5b409bf28c74df7a91126f8ebd12c1d04610538051
data/.vr_settings.yaml CHANGED
@@ -1,37 +1,27 @@
1
1
  --- !ruby/object:VR_ENV
2
- vr_yaml_file: ".vr_settings.yaml"
3
- width: 1308
4
- height: 761
5
- panel_pos: 360
6
- notebook_panel_position: 400
2
+ vr_yaml_file: "/home/eric/vrp/vr3/.vr_settings.yaml"
3
+ width: 1364
4
+ height: 691
5
+ panel_pos: 297
6
+ notebook_panel_position: 458
7
7
  run_command_line: ruby vr
8
8
  open_files:
9
+ - "/home/eric/vrp/vr3/yard_hack/common.css"
10
+ - "/home/eric/vrp/vr3/src/editor/VR_Tabs.rb"
11
+ - "/home/eric/vrp/vr3/lib/Alert.rb"
12
+ - "/home/eric/vrp/vr3/lib/GladeGUI.rb"
13
+ - "/home/eric/vrp/vr3/src/main/NewProjectGUI.rb"
14
+ - "/home/eric/vrp/vr3/src/main/VR_Main.rb"
9
15
  - "/home/eric/vrp/vr3/src/main/VR_File_Tree.rb"
10
- - "/home/eric/vrp/vr3/src/main/VR_Tools.rb"
11
- - "/home/eric/vrp/vr3/src/main/OpenProject.rb"
12
16
  - "/home/eric/vrp/vr3/vr.gemspec"
13
- - "/home/eric/vrp/vr3/lib/DragDrop.rb"
14
- - "/home/eric/vrp/vr3/site/Quick_Start.md"
15
- - "/home/eric/vrp/vr3/site/ActiveRecord_Totorial.md"
16
- - "/home/eric/vrp/vr3/site/Child_Windows_Tutorial.rdoc"
17
- - "/home/eric/vrp/vr3/site/Download.md"
18
- - "/home/eric/vrp/vr3/site/Generate_RDocs_Tutorial.rdoc"
19
- - "/home/eric/vrp/vr3/site/Help_Contact_Info.rdoc"
20
- - "/home/eric/vrp/vr3/site/ListView_Tutorial.rdoc"
21
- - "/home/eric/vrp/vr3/site/README.md"
22
- - "/home/eric/vrp/vr3/site/RubyGems_Tutorial.rdoc"
23
- - "/home/eric/vrp/vr3/site/Screen_Shots.rdoc"
24
- - "/home/eric/vrp/vr3/site/Signals_Tutorial.rdoc"
25
17
  open_folders:
26
18
  - "/home/eric/vrp/vr3"
27
- - "/home/eric/vrp/vr3/lib"
28
- - "/home/eric/vrp/vr3/lib/oinspect"
29
- - "/home/eric/vrp/vr3/site"
30
19
  - "/home/eric/vrp/vr3/src"
20
+ - "/home/eric/vrp/vr3/src/editor"
31
21
  - "/home/eric/vrp/vr3/src/main"
32
- - "/home/eric/vrp/vr3/src/main/glade"
33
- current_file: "/home/eric/vrp/vr3/site/Screen_Shots.rdoc"
34
- current_line: 19
22
+ - "/home/eric/vrp/vr3/yard_hack"
23
+ current_file: "/home/eric/vrp/vr3/vr.gemspec"
24
+ current_line: 21
35
25
  rdoc_command_line: yardoc lib - site/*.*
36
26
  builder: !ruby/object:Gtk::Builder {}
37
27
  top_level_window: false
@@ -0,0 +1,12 @@
1
+ # @private
2
+ module ActLikeAHash
3
+
4
+ def [] (key)
5
+ instance_variable_get("@" + key.to_s)
6
+ end
7
+
8
+ def []= (key, val)
9
+ instance_variable_put("@" + key_to_s, val)
10
+ end
11
+
12
+ end
data/lib/Alert.rb CHANGED
@@ -34,7 +34,7 @@ module VR
34
34
 
35
35
  @builder[:button_no].show if @flags[:button_no]
36
36
  @builder[:button_cancel].show if @flags[:button_cancel]
37
- set_glade_hash(@flags)
37
+ set_glade_hash(@flags)
38
38
  end
39
39
 
40
40
  def button_yes__clicked(but)
@@ -102,9 +102,11 @@ end
102
102
  # There are many examples in the "alert_box" example project.
103
103
 
104
104
  def alert(message, options = {})
105
- @answer = VR::Alert::DialogAnswer.new()
106
- VR::Alert.new(message, @answer, options).show_glade(options[:parent])
107
- return @answer.answer
105
+ @answer_from_user = VR::Alert::DialogAnswer.new()
106
+ VR::Alert.new(message, @answer_from_user, options).show_glade(options[:parent])
107
+ ans = @answer_from_user.answer
108
+ remove_instance_variable(:@answer_from_user)
109
+ return ans
108
110
  end
109
111
 
110
112
 
data/lib/GladeGUI.rb CHANGED
@@ -84,7 +84,8 @@
84
84
  # set_glade_variables() method.)
85
85
  module GladeGUI
86
86
 
87
- # @attribute A Builder object that holds references to everything from the galde form.
87
+ # @!attribute [rw] builder
88
+ # @return [Gtk::Builder] The builder that holds references to everything in the glade form.
88
89
  attr_accessor :builder
89
90
 
90
91
  ##
@@ -163,7 +164,7 @@ end
163
164
  if @builder
164
165
  @builder.objects.each do |obj|
165
166
  next unless obj.respond_to?(:builder_name)
166
- if obj.builder_name == glade_name or obj.builder_name =~ /^(?:#{class_name(self)}\.|)#{glade_name}\[\d+\]$/ #arrays
167
+ if obj.builder_name == glade_name or obj.builder_name =~ /^(?:#{class_name(self)}\.|)#{glade_name}\[[a-zA-Z\d_-]+\]$/ #arrays
167
168
  obj.signal_connect(signal_name) { |*args| method(meth.to_sym).call(*args) }
168
169
  end
169
170
  end
@@ -239,46 +240,47 @@ end
239
240
  return if not defined? @attributes
240
241
  obj.attributes.each_pair { |key, val| fill_control(class_name(obj) + "." + key, val) }
241
242
  end
242
-
243
+
244
+ # Matches names in glade form to keys in a Hash.
245
+ # @param [Hash] hash The hash with keys that match the names in the glade form.
243
246
  def set_glade_hash(hash)
244
247
  return unless hash.is_a?(Hash)
245
248
  hash.each { |key,val| fill_control( key.to_s, val.to_s) }
246
249
  end
247
250
 
248
- #Populates the glade form from the instance variables of the class.
249
- #This works for Gtk:Button, Gtk::Entry, Gtk::Label and Gtk::Checkbutton.
250
- #So instead of having to assign each widget a value:
251
+ # Populates the glade form from the instance variables of the class.
252
+ # So instead of having to assign each widget a value:
251
253
  #
252
- # @builder["DataObjectGUI.name"].text = @name
253
- # @builder["DataObjectGUI.address"].text = @address
254
- # @builder["DataObjectGUI.email"].text = @eamil
255
- # @builder["DataObjectGUI.phone"].text = @phone
254
+ # @builder["name"].text = @name
255
+ # @builder["address"].text = @address
256
+ # @builder["email"].text = @eamil
257
+ # @builder["phone"].text = @phone
256
258
  #
257
- #you can write one line of code:
259
+ # you can write one line of code:
258
260
  #
259
261
  # set_glade_variables()
260
262
  #
261
- #The optional parameter is seldom used because you usually want the
262
- #glade form to populate from the calling class. If you passed another object,
263
- #the form would populate from it.
263
+ # The optional parameter is seldom used because you usually want the
264
+ # glade form to populate from the calling class. If you passed another object,
265
+ # the form would populate from it.
264
266
  #
265
- #obj - type Object
267
+ # obj - type Object
266
268
  #
267
-
268
-
269
-
270
269
  def set_glade_variables(obj = self)
271
- # set_glade_hash(obj) if obj.is_a?(Hash)
272
270
  obj.instance_variables.each do |name|
273
271
  name = name.to_s #ruby 1.9 passes symbol!
274
- v = obj.instance_variable_get(name)
275
- x = v.to_s
276
- if v.class == Array
277
- (0..v.size-1).each do |i|
278
- fill_control(class_name(obj) + "." + name.gsub("@", "") + "[" + i.to_s + "]", v[i] )
279
- end
272
+ v = obj.instance_variable_get(name)
273
+ name = name.gsub('@', '')
274
+ if v.is_a?(Array)
275
+ v.each_index do |i|
276
+ fill_control("#{name}[#{i.to_s}]", v[i] )
277
+ end
278
+ elsif v.is_a?(Hash)
279
+ v.each_pair do |key, val|
280
+ fill_control("#{name}[#{key.to_s}]", val)
281
+ end
280
282
  else
281
- fill_control(class_name(obj) + "." + name.gsub("@", ""), v)
283
+ fill_control(name, v)
282
284
  end
283
285
  end
284
286
  end
@@ -286,13 +288,13 @@ end
286
288
 
287
289
  def fill_control(glade_name, val)
288
290
  control = @builder[glade_name]
289
- control_name = glade_name.split(".")[1]
290
- control ||= @builder[control_name] if control_name
291
- case control
291
+ return unless control
292
+ case control # order matters-- subclasses?
292
293
  when Gtk::Window then control.title = val
293
294
  when Gtk::CheckButton then control.active = val
294
295
  when Gtk::TextView then control.buffer.text = val.to_s
295
- when Gtk::Entry then control.text = val.to_s
296
+ when Gtk::Entry then control.text = val.to_s
297
+ when Gtk::ColorButton then control.color = Gdk::Color.parse(val.to_s)
296
298
  when Gtk::FontButton then control.font_name = val.to_s
297
299
  when Gtk::LinkButton then control.uri = control.label = val.to_s
298
300
  when Gtk::Label, Gtk::Button then control.label = val.to_s
@@ -301,9 +303,22 @@ end
301
303
  when Gtk::ProgressBar then control.fraction = val.to_f
302
304
  when Gtk::Calendar then control.select_month(val.month, val.year) ; control.select_day(val.day) ; control.mark_day(val.day)
303
305
  when Gtk::Adjustment then control.value = val.to_f
304
- when Gtk::ScrolledWindow, Gtk::Frame, Gtk::VBox, Gtk::HBox then control.add(val)
306
+ when Gtk::ScrolledWindow, Gtk::Frame, Gtk::VBox, Gtk::HBox then control.add(val)
307
+ when Gtk::ComboBoxText then try_to_select_text_in_combobox(control, val.to_s)
305
308
  end
306
- end
309
+ end
310
+
311
+ def try_to_select_text_in_combobox(cb, text)
312
+ i = 0
313
+ cb.model.each do |model, path, iter|
314
+ if iter[0] == text
315
+ cb.active = i
316
+ return
317
+ end
318
+ i = i + 1
319
+ end
320
+ end
321
+
307
322
 
308
323
  #
309
324
  # Populates your instance variables from the glade form.
@@ -327,25 +342,48 @@ end
327
342
  # @param [Object] obj Any object with instance variables with same names as in galde form.
328
343
  # @return none
329
344
  def get_glade_variables(obj = self)
330
- obj.instance_variables.each do |v|
331
- v = v.to_s #fix for ruby 1.9 giving symbols
332
- control = @builder[class_name(obj) + v.gsub("@", ".")]
333
- control ||= @builder[v.gsub("@", "")]
334
- case control
335
- when Gtk::CheckButton then obj.instance_variable_set(v, control.active?)
336
- when Gtk::Entry then obj.instance_variable_set(v, control.text)
337
- when Gtk::TextView then obj.instance_variable_set(v, control.buffer.text)
338
- when Gtk::FontButton then obj.instance_variable_set(v, control.font_name)
339
- when Gtk::Label, Gtk::Button then obj.instance_variable_set(v, control.label)
340
- when Gtk::SpinButton then obj.instance_variable_set(v, control.value)
341
- when Gtk::Image then obj.instance_variable_set(v, control.file)
342
- when Gtk::ProgressBar then obj.instance_variable_set(v, control.fraction)
343
- when Gtk::Calendar then obj.instance_variable_set(v, DateTime.new(*control.date))
344
- when Gtk::Adjustment then obj.instance_variable_set(v, control.value)
345
- end
345
+ obj.instance_variables.each do |var_name|
346
+ var = obj.instance_variable_get(var_name)
347
+ var_name = var_name.to_s.gsub("@", "") #fix for ruby 1.9 giving symbols
348
+ if var.is_a? Hash
349
+ var.each_pair do |key, val|
350
+ if glade_value = get_control_value("#{var_name}[#{key.to_s}]")
351
+ var[key] = glade_value
352
+ end
353
+ end
354
+ obj.instance_variable_set("@"+ var_name, var)
355
+ elsif var.is_a? Array
356
+ var.each_index do |i|
357
+ if glade_value = get_control_value("#{var_name}[#{i.to_s}]")
358
+ var[i] = glade_value
359
+ end
360
+ end
361
+ obj.instance_variable_set("@"+ var_name, var)
362
+ else
363
+ glade_value = get_control_value(var_name)
364
+ if glade_value
365
+ obj.instance_variable_set("@"+ var_name, glade_value)
366
+ end
367
+ end
346
368
  end
347
369
  end
348
-
370
+
371
+ def get_control_value(glade_name)
372
+ return unless control = @builder[glade_name]
373
+ case control
374
+ when Gtk::CheckButton then control.active?
375
+ when Gtk::Entry then control.text
376
+ when Gtk::TextView then control.buffer.text
377
+ when Gtk::FontButton then control.font_name
378
+ when Gtk::ColorButton then control.color.to_s[0..2] + control.color.to_s[5..6] + control.color.to_s[9..10]
379
+ when Gtk::Label, Gtk::Button then control.label
380
+ when Gtk::SpinButton, Gtk::Adjustment then control.value
381
+ when Gtk::Image then control.file
382
+ when Gtk::ProgressBar then control.fraction
383
+ when Gtk::Calendar then DateTime.new(*control.date)
384
+ when Gtk::ComboBoxText then control.active_text
385
+ end
386
+ end
349
387
 
350
388
  def get_glade_active_record(obj)
351
389
  return if not defined? @attributes
@@ -367,8 +405,7 @@ end
367
405
  end
368
406
  end
369
407
 
370
-
371
- # Ignore, just helps figure out name of class including GladeGUI
408
+ # @private
372
409
  def self.included(obj)
373
410
  temp = caller[0].split(":") #correct for windows C:\Users\george etc.
374
411
  caller_path_to_class_file, = temp[0].size == 1 ? temp[0] + ":" + temp[1] : temp[0]
@@ -395,9 +432,8 @@ end
395
432
  parse_signals()
396
433
  set_glade_all()
397
434
  @builder[:window1].show #show_all can't hide widgets in before_show
398
- # @builder[:window1].add_events(Gdk::EventMask.new(:key_press))
399
435
  @top_level_window = Gtk.main_level == 0 ? true : false
400
- Gtk.main if @top_level_window or @builder[:window1].modal? #need new Gtk.main for blocking!
436
+ Gtk.main if @top_level_window or @builder[:window1].modal? # need new Gtk.main for blocking!
401
437
  end
402
438
 
403
439
  # Called when window is destroyed when you execute: <tt>@builder[:window1].destroy</tt>
@@ -417,6 +453,18 @@ end
417
453
  oinspect
418
454
  end
419
455
 
456
+ # retrieves the key inside a glade control name. Useful when handling events where
457
+ # the control name is returned, and you need to match it to an actual hash.
458
+ # @example
459
+ # # Widget in glade form has name of "button[5]"
460
+ # var = @builder["button[5]"]
461
+ # extract_key(var) => "5"
462
+ # @param [String] widget Name for the widget in the glade form.
463
+ # @return [String] the key value.
464
+ def extract_key(widget)
465
+ widget.builder_name[/\[.+?\]/]
466
+ end
467
+
420
468
 
421
469
  #
422
470
  # private def active_record_valid?(show_errors = true)
data/lib/SavableClass.rb CHANGED
@@ -7,7 +7,8 @@ module VR
7
7
  elsif flags[:class]
8
8
  me = flags[:class].new()
9
9
  end
10
- me.instance_variable_set(:@vr_yaml_file, flags[:file_name])
10
+ file_name = File.expand_path(flags[:file_name])
11
+ me.instance_variable_set(:@vr_yaml_file, file_name)
11
12
  me.defaults() if me.respond_to?(:defaults)
12
13
  VR::save_yaml(me)
13
14
  return me
@@ -16,8 +17,9 @@ module VR
16
17
  # todo create folders if don't exist
17
18
  def self.save_yaml(obj, filename = nil)
18
19
  filename ||= obj.instance_variable_get(:@vr_yaml_file)
19
- data = YAML.dump(obj)
20
- File.open(filename, "w") {|f| f.puts(data)}
20
+ dirname = File.dirname(filename)
21
+ FileUtils.mkdir_p(dirname) unless File.directory?(dirname)
22
+ File.open(filename, "w") {|f| f.puts(obj.to_yaml)}
21
23
  end
22
24
 
23
25
  end
@@ -30,16 +30,16 @@ module VR::ObjectInspector
30
30
 
31
31
  end
32
32
 
33
- # @param [Object] obj Any object that you want to display.
34
- # @return none.
33
+
35
34
  # Displays object on screen and halts the program. Anywhere in your code you can halt
36
35
  # the execution, and display an object in a window like this:
37
36
  # alert anyobject
38
37
  #
39
38
  # Also, at any window, if you press the F8 key, the object inspector will run. Try it.
40
-
41
39
  # http://visualruby.net/img/object_inspector.jpg
42
40
  #
41
+ # @param [Object] obj Any object that you want to display.
42
+ # @return none.
43
43
  def oinspect(obj=self)
44
44
  VR::ObjectInspector::ObjectInspectorGUI.new(obj).show_glade()
45
45
  end
@@ -18,12 +18,19 @@ module VR::ViewCommon
18
18
  #
19
19
 
20
20
  def [](col_id)
21
- get_value(id(col_id))
21
+ if col_id.is_a? Fixnum
22
+ super
23
+ else
24
+ get_value(id(col_id))
25
+ end
22
26
  end
23
27
 
24
28
  def []=(col_id,val)
25
- i = id(col_id)
26
- set_value(i, val)
29
+ if col_id.is_a? Fixnum
30
+ super(col_id, val)
31
+ else
32
+ super(id(col_id), val)
33
+ end
27
34
  end
28
35
 
29
36
  # The id() method translates visualruby's colum ID symbols into integers that
data/my_yard.yaml ADDED
@@ -0,0 +1,20 @@
1
+ --- !ruby/object:MyYard
2
+ project_root: "/home/eric/vrp/vr3"
3
+ output_dir: doc
4
+ theme: visualruby
5
+ template: default
6
+ files: lib/**/*.rb
7
+ extra_files: site/*.*
8
+ exclude: ''
9
+ include_public: true
10
+ include_private: false
11
+ include_protected: false
12
+ no_private: true
13
+ export_db: true
14
+ title: Visual Ruby
15
+ vr_yaml_file: "/home/eric/vrp/vr3/my_yard.yaml"
16
+ main: index.html
17
+ builder: !ruby/object:Gtk::Builder {}
18
+ top_level_window: true
19
+ answer: !ruby/object:VR::Alert::DialogAnswer
20
+ answer: true
@@ -4,21 +4,23 @@ class VR_Document < GtkSource::View
4
4
  include GladeGUI
5
5
  include VR_TextViewCommon
6
6
 
7
-
8
- attr_accessor :full_path_file
7
+ attr_accessor :full_path_file, :title
9
8
 
10
9
  def initialize(full_path_file, title_label, main)
11
10
  @main = main
12
11
  super()
13
- @title = title_label #reference to label on tab
14
- reload_from_disk(full_path_file)
12
+ @title = title_label #reference to label on tab
13
+ @full_path_file = full_path_file
14
+ reload_from_disk()
15
15
  hilight_current_line = true
16
16
  show_right_margin = true
17
17
  right_margin_position = 80
18
- auto_indent = true
19
- # lang = GtkSource::LanguageManager.new.get_language(get_language(full_path_file))
20
- lang = GtkSource::LanguageManager.new.guess_language(full_path_file)
21
- buffer.language = lang
18
+ auto_indent = true
19
+ if ["", ".gemspec", ".erb"].include?(File.extname(full_path_file))
20
+ buffer.language = GtkSource::LanguageManager.new.get_language("ruby")
21
+ else
22
+ buffer.language = GtkSource::LanguageManager.new.guess_language(full_path_file)
23
+ end
22
24
  buffer.highlight_syntax = true
23
25
  buffer.highlight_matching_brackets = false
24
26
  @hilight = buffer.create_tag("hilight", { "background" => "#FFF0A0" })
@@ -31,14 +33,6 @@ class VR_Document < GtkSource::View
31
33
  update_style()
32
34
  end
33
35
 
34
- # def get_language(fn)
35
- # case File.extname(full_path_file)
36
- # when ".rb", "", ".gemspec" ; return "ruby"
37
- # when ".erb", ".html" ; return "html"
38
- # else ; return ""
39
- # end
40
- # end
41
-
42
36
  def update_style()
43
37
  override_font(Pango::FontDescription.new($VR_ENV_GLOBAL.font_name))
44
38
  tab_array = Pango::TabArray.new(1, true)
@@ -46,11 +40,9 @@ class VR_Document < GtkSource::View
46
40
  set_tabs(tab_array)
47
41
  end
48
42
 
49
- def reload_from_disk(fn = @full_path_file)
50
- @full_path_file = fn
51
- @title.label = File.basename(@full_path_file)
43
+ def reload_from_disk()
52
44
  buffer.text = File.open(@full_path_file, "r").read if File.file?(@full_path_file.to_s) #protect against nil to_s
53
- buffer.modified = false
45
+ buffer.modified = false
54
46
  @modified_time = mod_time()
55
47
  end
56
48
 
@@ -66,22 +58,6 @@ class VR_Document < GtkSource::View
66
58
  reload_from_disk()
67
59
  end
68
60
  return false #abort!
69
- end
70
-
71
-
72
- def try_to_save(ask = true)
73
- return false if not modified_time_matches()
74
- return true if empty?
75
- if (@title.label == "Untitled")
76
- return save_changes?
77
- elsif (buffer.modified? and ask)
78
- return save_changes?
79
- elsif buffer.modified?
80
- write_to_disk()
81
- return true
82
- else
83
- return true
84
- end
85
61
  end
86
62
 
87
63
  def write_to_disk(fn = @full_path_file)
@@ -93,41 +69,9 @@ class VR_Document < GtkSource::View
93
69
  return true
94
70
  end
95
71
 
96
- def save_changes?
97
- answer = alert "Save chages to: <b> #{File.basename(@full_path_file)}</b> ?",
98
- parent: @main,
99
- button_yes: "Save Changes", button_no: "Discard Changes",
100
- headline: "Save Changes?", button_cancel: "Cancel"
101
- if answer == true # save
102
- return @title.label == "Untitled" ? save_as() : write_to_disk()
103
- elsif answer == false # Discard Changes
104
- reload_from_disk()
105
- return true #continue without saving
106
- end
107
- return false #abort!
108
- end
109
-
110
-
111
-
112
- #todo update file tree, parent window?
113
- def save_as() # returns false or complete file name.
114
- dialog = Gtk::FileChooserDialog.new(
115
- title: "Save File As...",
116
- parent: @main.builder[:window1],
117
- action: :save,
118
- buttons: [["_Cancel", :cancel], ["_Save", :accept]])
72
+
119
73
 
120
- dialog.current_folder = File.dirname(@full_path_file)
121
- dialog.current_name = VR_Document.get_class_title(buffer.text)
122
- resp = dialog.run
123
- dialog.hide
124
- if resp == :accept
125
- write_to_disk(dialog.filename)
126
- @main.file_tree.refresh()
127
- return true
128
- end
129
- return false
130
- end
74
+
131
75
 
132
76
  def jump_to_line(line_num, search_str = nil)
133
77
  while (Gtk.events_pending?)
@@ -5,31 +5,94 @@ class VR_Tabs < Gtk::Notebook
5
5
 
6
6
  include VR_TabSearch
7
7
 
8
- def initialize(main)
8
+ def initialize(main)
9
9
  super()
10
- @docs = Array.new
10
+ @docs = []
11
11
  @main = main
12
- @pix_close = Gdk::Pixbuf.new(File.dirname(__FILE__) + '/../../img/close.png')
13
- @close_filename = File.dirname(__FILE__) + '/../../img/close.png'
14
- self.scrollable = true #after super
12
+ @x_img = File.dirname(__FILE__) + '/../../img/close.png'
13
+ self.scrollable = true #after super
15
14
  self.expand = true
16
15
  end
17
16
 
17
+ #todo update file tree, parent window?
18
+ def save_as() # returns false or complete file name.
19
+ dialog = Gtk::FileChooserDialog.new(
20
+ title: "Save File As...",
21
+ parent: @main.builder[:window1],
22
+ action: :save,
23
+ buttons: [["_Cancel", :cancel], ["_Save", :accept]])
24
+ dialog.current_folder = File.dirname(@docs[page].full_path_file)
25
+ dialog.current_name = VR_Document.get_class_title(@docs[page].buffer.text)
26
+ resp = dialog.run
27
+ dialog.hide
28
+ if resp == :accept
29
+ @docs[page].write_to_disk(dialog.filename)
30
+ destroy_tab()
31
+ clear_events
32
+ load_tab(dialog.filename)
33
+ clear_events
34
+ @main.file_tree.refresh()
35
+ return true
36
+ end
37
+ return false
38
+ end
39
+
40
+ def save_changes?
41
+ answer = alert "Save chages to: <b> #{File.basename(@docs[page].full_path_file)}</b> ?",
42
+ parent: @main,
43
+ button_yes: "Save Changes", button_no: "Discard Changes",
44
+ headline: "Save Changes?", button_cancel: "Cancel"
45
+ if answer == true # save
46
+ if @docs[page].title.label == "Untitled"
47
+ return save_as()
48
+ else
49
+ return @docs[page].write_to_disk()
50
+ end
51
+ elsif answer == false # Discard Changes
52
+ @docs[page].reload_from_disk()
53
+ return true #continue without saving
54
+ end
55
+ return false #abort!
56
+ end
57
+
58
+ def try_to_save(ask = true)
59
+ return false if not @docs[page].modified_time_matches()
60
+ return true if @docs[page].empty?
61
+ if (@docs[page].title.label == "Untitled")
62
+ return save_changes?
63
+ elsif (@docs[page].buffer.modified? and ask)
64
+ return save_changes?
65
+ elsif @docs[page].buffer.modified?
66
+ @docs[page].write_to_disk()
67
+ return true
68
+ else
69
+ return true
70
+ end
71
+ end
72
+
73
+
18
74
  def update_style_all()
19
75
  @docs.each { |doc| doc.update_style() }
20
76
  end
21
77
 
22
- def try_to_save_all(flags)
78
+ # Tries to save and/or close all open documents
79
+ # @param [Hash] flags Optiions
80
+ # @option [Boolean] ask Whether or not to ask to save or save without asking.
81
+ # @option [Boolean] close Close tab when finished
82
+ # @option [String] folder operate only on folders matching this string. Default = "/"
83
+ def try_to_save_all(flags)
23
84
  ask = flags[:ask]
24
- passed = true
25
- @docs.each do |doc|
26
- unless doc.try_to_save(ask)
27
- passed = false
28
- end
29
- end
30
- (n_pages).times { destroy_tab() } if flags[:close]
31
- return passed
32
- end
85
+ folder ||= "/"
86
+ passed = true
87
+ (0..n_pages-1).each do |i|
88
+ page = i
89
+ unless try_to_save(ask)
90
+ passed = false
91
+ end
92
+ end
93
+ (n_pages).times { destroy_tab() } if flags[:close]
94
+ return passed
95
+ end
33
96
 
34
97
  ##todo update file_tree!
35
98
  # def try_to_save_all(ask = true)
@@ -46,8 +109,8 @@ class VR_Tabs < Gtk::Notebook
46
109
 
47
110
 
48
111
  def switch_to(path)
49
- i = @docs.index{ |d| d.full_path_file == path }
50
- return false if i.nil?
112
+ i = tab_number(path)
113
+ return false if i.nil?
51
114
  self.page = i if i != self.page
52
115
  return true
53
116
  end
@@ -59,18 +122,18 @@ class VR_Tabs < Gtk::Notebook
59
122
  end
60
123
  end
61
124
 
62
- def load_tab(full_path_file = Dir.pwd + "/Untitled")
63
- full_path_file = Dir.pwd + "/Untitled" if full_path_file == ""
125
+ def load_tab(full_path_file = Dir.pwd + "/Untitled")
64
126
  return if switch_to(full_path_file)
127
+ return unless File.exist?(full_path_file) or full_path_file == Dir.pwd + "/Untitled"
65
128
  box = Gtk::EventBox.new
66
129
  tab = Gtk::Box.new(:horizontal)
67
- img = Gtk::Image.new(:pixbuf => @pix_close)
130
+ img = Gtk::Image.new(:file => @x_img)
68
131
  box.add(img)
69
132
  title = Gtk::Label.new(File.basename(full_path_file))
70
133
  tab.pack_start(title, :expand=>true, :fill=>true, :padding=>2)
71
- tab.pack_start(box)
134
+ tab.pack_start(box)
72
135
  tab.show_all #needed
73
- text = VR_Document.new(full_path_file, title, @main)
136
+ text = VR_Document.new(full_path_file, title, @main)
74
137
  child = Gtk::ScrolledWindow.new
75
138
  child.add(text)
76
139
  box.signal_connect("button_release_event") {remove_id(text.object_id)}
@@ -78,34 +141,41 @@ class VR_Tabs < Gtk::Notebook
78
141
  if @docs.size == 1 and @docs[0].buffer.text.strip == ""
79
142
  @docs[0] = text
80
143
  self.remove_page(0)
81
- end
144
+ end
82
145
  child.show_all #needed
83
146
  append_page(child, tab)
84
- self.page = self.n_pages - 1
85
- @docs[self.page] = text
147
+ self.page = self.n_pages - 1
148
+ @docs[self.page] = text
86
149
  end
87
150
 
88
151
  #used when little 'x' image is clicked to close.
89
152
  def remove_id(object_id)
90
- i = @docs.index { |doc| doc.object_id == object_id }
91
- if @docs[i].try_to_save(true)
92
- destroy_tab(i)
153
+ i = @docs.index { |doc| doc.object_id == object_id }
154
+ page = i
155
+ clear_events
156
+ if try_to_save(true)
157
+ destroy_tab(i)
93
158
  end
94
159
  end
95
160
 
96
161
  #if its there, destroys it
97
162
  def destroy_file_tab(file_name)
98
- destroy_tab() if switch_to(file_name)
163
+ destroy_tab tab_number(file_name)
99
164
  end
100
165
 
101
- # this spits out a bunch of warnings on remove_page
166
+ def tab_number(file_name)
167
+ @docs.index{ |d| d.full_path_file == file_name}
168
+ end
169
+
170
+ # this spits out a bunch of warnings on remove_page. Changing the page number
171
+ # stops the warnings.
102
172
  def destroy_tab(tab = self.page)
103
- self.page = self.page - 1 # stops some warnings
104
- VR_Tools.clear_events
105
- # self.set_tab_label(get_nth_page(tab), nil)
106
- self.remove_page(tab)
107
- VR_Tools.clear_events
108
- @docs.delete_at(tab)
173
+ return unless tab
174
+ self.page = self.page - 1 # stops some warnings
175
+ clear_events
176
+ @docs.delete_at(tab)
177
+ # self.set_tab_label(get_nth_page(tab), nil)
178
+ self.remove_page(tab) # causes warinings nothing I can do!
109
179
  load_tab() if @docs.empty?
110
180
  end
111
181
 
@@ -114,7 +184,7 @@ class VR_Tabs < Gtk::Notebook
114
184
  end
115
185
 
116
186
  def open_file_names(ar)
117
- ar.each { |fn| load_tab(fn) if File.file?(fn) and fn.include? Dir.pwd}
187
+ ar.each { |fn| load_tab(fn) if File.file?(fn) and fn.include? Dir.pwd}
118
188
  load_tab() if @docs.empty?
119
189
  end
120
190
 
@@ -5,12 +5,11 @@ class NewProjectGUI
5
5
 
6
6
  def initialize(parent)
7
7
  @parent = parent
8
- @projects_home = $VR_ENV_GLOBAL.projects_home + "/"
9
8
  end
10
9
 
11
10
  def buttonCreate__clicked(*args)
12
11
  fn = @builder["entryFolderName"].text
13
- fn = fn.gsub(/[^\w\.\/]/, '_')
12
+ fn = fn.gsub(/[^\w\.\/\-]/, '_')
14
13
  path = File.join($VR_ENV_GLOBAL.projects_home, fn)
15
14
  return if fn.length < 2
16
15
  unless File.directory?(path)
@@ -10,9 +10,9 @@ class OpenProject
10
10
 
11
11
  def before_show
12
12
  @ftv = ProjectTree.new()
13
+ @ftv.show
13
14
  @ftv.set_show_expanders(false)
14
15
  @builder["view"].add(@ftv)
15
- @ftv.visible = true
16
16
  end
17
17
 
18
18
  def ftv__cursor_changed(*a)
@@ -46,14 +46,23 @@ class OpenProject
46
46
  end
47
47
 
48
48
  def buttonOpen__clicked(*a)
49
+ return unless row = @ftv.selected_rows.first
50
+ test_file = File.join(row[:path], VR_ENV::SETTINGS_FILE)
51
+ if File.exists?(test_file)
52
+ @parent.proj_path = row[:path]
53
+ buttonCancel__clicked
54
+ else
55
+ @ftv.expand_or_collapse_folder()
56
+ end
57
+ end
58
+
59
+ def buttonNewWindow__clicked(*a)
49
60
  return unless row = @ftv.selected_rows.first
50
61
  test_file = File.join(row[:path], VR_ENV::SETTINGS_FILE)
51
62
  if File.exists?(test_file)
52
63
  VR_Tools.popen("vr #{row[:path]}")
53
- # @parent.proj_path = row[:path]
54
64
  buttonCancel__clicked
55
65
  else
56
- # alert("This is not a visualruby project. It's a folder that holds visualruby projects.", :parent=>self, :width=>400)
57
66
  @ftv.expand_or_collapse_folder()
58
67
  end
59
68
  end
@@ -7,8 +7,7 @@ class VR_File_Tree < VR::FileTreeView
7
7
  super(Dir.pwd,icon_path)
8
8
  @main = main
9
9
  @api = RubygemsAPI.new
10
- load_glade()
11
- # set_show_expanders(false)
10
+ load_glade() # loads menus
12
11
  end
13
12
 
14
13
  def self__row_activated(*args)
@@ -123,14 +122,19 @@ class VR_File_Tree < VR::FileTreeView
123
122
  def self__key_press_event(view, evt)
124
123
  return unless evt.keyval == 65535 #delete
125
124
  return unless file_name = get_selected_path()
126
- return unless alert("Delete: <b>" + File.basename(file_name) + "</b> ?" , :button_yes => "Delete", :button_no=>"Cancel", :parent=>self, :headline => "Delete FIle?")
127
- if File.file?(file_name)
128
- @main.tabs.destroy_file_tab(file_name)
129
- File.delete(file_name)
130
- elsif File.directory?(file_name) and file_name != Dir.pwd #root!
131
- FileUtils.remove_dir(file_name, true)
132
- end
133
- delete_selected()
125
+ return unless alert("Delete: <b>" + File.basename(file_name) + "</b> ?" ,
126
+ :button_yes => "Delete", :button_no=>"Cancel", :parent=>self, :headline => "Delete File?")
127
+ if File.exist?(file_name) and file_name != Dir.pwd #root!
128
+ delete_me = @main.tabs.docs.select { |d| d.full_path_file.start_with?(file_name) }
129
+ delete_me.each { |d| @main.tabs.destroy_file_tab(d.full_path_file) }
130
+ delete_selected()
131
+ # @main.tabs.destroy_file_tab(file_name)
132
+ #this is where the nasty error occurs. If you save_as a file, then delete the old
133
+ # one, the following line crashes the prgogram.
134
+ # @main.file_tree.model.clear
135
+ FileUtils.rm_rf(file_name)
136
+ end
137
+
134
138
  end
135
139
 
136
140
 
data/src/main/VR_Main.rb CHANGED
@@ -11,20 +11,20 @@ class VR_Main
11
11
  end
12
12
 
13
13
  def before_show
14
-
15
- # there must be a visualruby directory:
14
+
15
+ # there must be a visualruby directory:
16
16
  required_project = File.join(ENV["HOME"],"","visualruby", "examples","alert_box")
17
17
  menuInstallExamples__activate if not File.directory?(required_project)
18
-
18
+
19
19
  # load global settings (requires /home/visuaruby folder exists
20
20
  $VR_ENV_GLOBAL = VR::load_yaml(:class => VR_ENV_GLOBAL, :file_name => VR_ENV_GLOBAL::GLOBAL_SETTINGS_FILE)
21
-
21
+
22
22
  # try to open right project
23
- if not project_valid?(@proj_path)
23
+ if not project_valid?(@proj_path)
24
24
  if not project_valid?($VR_ENV_GLOBAL.default_project)
25
- $VR_ENV_GLOBAL.default_project = required_project
26
- VR::save_yaml($VR_ENV_GLOBAL)
27
- end
25
+ $VR_ENV_GLOBAL.default_project = required_project
26
+ VR::save_yaml($VR_ENV_GLOBAL)
27
+ end
28
28
  @proj_path = $VR_ENV_GLOBAL.default_project
29
29
  end
30
30
 
@@ -50,9 +50,9 @@ class VR_Main
50
50
  @remote_gem_tree = VR_Remote_Gem_Tree.new(self)
51
51
  @builder["scrolledRemoteGems"].add(@remote_gem_tree)
52
52
  @remote_gem_tree.show
53
-
54
- @splash[:window1].destroy
55
- Gtk.main_quit
53
+
54
+ @splash.destroy
55
+ Gtk.main_quit
56
56
 
57
57
  unless project_valid?(@proj_path)
58
58
  toolOpenFolder__clicked # should never gets here.
@@ -134,7 +134,7 @@ class VR_Main
134
134
  end
135
135
 
136
136
  def menuSaveAs__activate(*a)
137
- @tabs.docs[@tabs.page].save_as()
137
+ @tabs.save_as()
138
138
  end
139
139
 
140
140
  def toolRefresh__clicked(*a)
@@ -144,27 +144,27 @@ class VR_Main
144
144
  when 2 then @remote_gem_tree.refresh()
145
145
  end
146
146
  end
147
-
148
- def toolRDoc__clicked(*a)
149
- return unless @tabs.try_to_save_all(:ask => false)
150
- @shell.buffer.text = $VR_ENV.rdoc_command_line + "\n"
147
+
148
+ def toolRDoc__clicked(*a)
149
+ return unless @tabs.try_to_save_all(:ask => false)
150
+ @shell.buffer.text = $VR_ENV.rdoc_command_line + "\n"
151
151
  clear_events
152
152
  @shell.buffer.text += `#{$VR_ENV.rdoc_command_line} 2>&1`
153
- VR_Tools.replace_html_in_docs()
154
- if File.exists?("yard_hack/index.html.replace")
155
- FileUtils.copy("yard_hack/index.html.replace", "doc/index.html")
156
- FileUtils.copy("yard_hack/index.html.replace", "doc/frames.html")
157
- FileUtils.copy("yard_hack/common.css", "doc/css/common.css")
158
- end
159
-
160
- end
161
-
162
- def toolViewRDoc__clicked(*a)
163
- VR_Tools.popen("#{$VR_ENV_GLOBAL.browser} #{Dir.pwd}/doc/index.html")
164
- end
153
+ VR_Tools.replace_html_in_docs()
154
+ if File.exists?("yard_hack/index.html.replace")
155
+ FileUtils.copy("yard_hack/index.html.replace", "doc/index.html")
156
+ FileUtils.copy("yard_hack/index.html.replace", "doc/frames.html")
157
+ FileUtils.copy("yard_hack/common.css", "doc/css/common.css")
158
+ end
159
+
160
+ end
161
+
162
+ def toolViewRDoc__clicked(*a)
163
+ VR_Tools.popen("#{$VR_ENV_GLOBAL.browser} #{Dir.pwd}/doc/index.html")
164
+ end
165
165
 
166
166
  def toolSave__clicked(*a) # saves open tab
167
- @tabs.docs[@tabs.page].try_to_save(false) # false = don't ask
167
+ @tabs.try_to_save(false) # false = don't ask
168
168
  end
169
169
 
170
170
  def menuNewWindow__activate(*a)
@@ -202,21 +202,21 @@ class VR_Main
202
202
  VR_Tools.back_up()
203
203
  end
204
204
 
205
- def toolIndent__clicked(*a)
205
+ def toolIndent__clicked(*a)
206
206
  press_key(65289) #tab
207
207
  end
208
208
 
209
- def toolUnIndent__clicked(*a)
209
+ def toolUnIndent__clicked(*a)
210
210
  press_key(65056, :shift_mask) # shift+tab
211
211
  end
212
-
213
- def press_key(keyval, mask = nil)
214
- evt = Gdk::EventKey.new(:key_press)
215
- evt.state = mask if mask
216
- evt.keyval = keyval
217
- @tabs.docs[@tabs.page].signal_emit(:key_press_event, evt)
218
- end
219
-
212
+
213
+ def press_key(keyval, mask = nil)
214
+ evt = Gdk::EventKey.new(:key_press)
215
+ evt.state = mask if mask
216
+ evt.keyval = keyval
217
+ @tabs.docs[@tabs.page].signal_emit(:key_press_event, evt)
218
+ end
219
+
220
220
 
221
221
  def toolComment__clicked(*a)
222
222
  @tabs.docs[@tabs.page].comment()
@@ -316,5 +316,10 @@ class VR_Main
316
316
  def menuQuit__activate(*a)
317
317
  @builder[:window1].destroy
318
318
  end
319
+
320
+ def tabs__switch_page(_self, x, page_num)
321
+ return unless tab = @tabs.docs[page_num] # needed. sometimes nil
322
+ @builder[:labelStatus].label = "Project: #{@proj_path} File: #{tab.full_path_file}"
323
+ end
319
324
 
320
325
  end
data/src/main/VR_Tools.rb CHANGED
@@ -1,10 +1,4 @@
1
1
  module VR_Tools
2
-
3
- def VR_Tools.clear_events
4
- while (Gtk.events_pending?)
5
- Gtk.main_iteration
6
- end
7
- end
8
2
 
9
3
  def VR_Tools.popen(cmd)
10
4
  begin
@@ -15,8 +9,6 @@ module VR_Tools
15
9
  end
16
10
  end
17
11
 
18
-
19
-
20
12
  def VR_Tools.back_up()
21
13
  path = File.join(ENV["HOME"], "visualruby_backup", Dir.pwd.gsub(ENV["HOME"], ""))
22
14
  t = Time.now
@@ -48,14 +40,13 @@ module VR_Tools
48
40
  main_file = $VR_ENV.run_command_line.split(" ")[1]
49
41
  main_path = "."
50
42
  bindir = "'.'" #( main_path == "bin") ? "'bin'" : "'#{main_path}', 'bin'"
51
- libdir = "'.'" #(main_path == "lib") ? "'lib'" : "'#{main_path}', 'lib'"
43
+ libdir = "'lib'" #(main_path == "lib") ? "'lib'" : "'#{main_path}', 'lib'"
52
44
  str = <<END
53
45
  Gem::Specification.new do |s|
54
46
  s.name = "#{File.basename(Dir.pwd).downcase}" # i.e. visualruby. This name will show up in the gem list.
55
47
  s.version = "0.0.1" # i.e. (major,non-backwards compatable).(backwards compatable).(bugfix)
56
- s.add_dependency "vrlib", ">= 0.0.1"
57
- s.add_dependency "gtk2", ">= 0.0.1"
58
- s.add_dependency "require_all", ">= 0.0.1"
48
+ s.add_dependency "visualruby", ">= 3.0.15"
49
+ s.add_dependency "require_all", ">= 1.2.0"
59
50
  s.has_rdoc = false
60
51
  s.authors = ["Your Name"]
61
52
  s.email = "you@yoursite.com" # optional
@@ -232,6 +232,19 @@
232
232
  <property name="position">3</property>
233
233
  </packing>
234
234
  </child>
235
+ <child>
236
+ <object class="GtkButton" id="buttonNewWindow">
237
+ <property name="label" translatable="yes">Open in New Window</property>
238
+ <property name="visible">True</property>
239
+ <property name="can_focus">True</property>
240
+ <property name="receives_default">True</property>
241
+ </object>
242
+ <packing>
243
+ <property name="expand">False</property>
244
+ <property name="fill">True</property>
245
+ <property name="position">4</property>
246
+ </packing>
247
+ </child>
235
248
  </object>
236
249
  <packing>
237
250
  <property name="expand">False</property>
@@ -32,6 +32,7 @@
32
32
  <property name="visible">True</property>
33
33
  <property name="can_focus">False</property>
34
34
  <property name="label" translatable="yes">New Project</property>
35
+ <accelerator key="n" signal="activate" modifiers="GDK_CONTROL_MASK"/>
35
36
  </object>
36
37
  </child>
37
38
  <child>
@@ -91,6 +92,7 @@
91
92
  <property name="visible">True</property>
92
93
  <property name="can_focus">False</property>
93
94
  <property name="label" translatable="yes">Quit</property>
95
+ <accelerator key="q" signal="activate" modifiers="GDK_CONTROL_MASK"/>
94
96
  </object>
95
97
  </child>
96
98
  </object>
@@ -163,6 +165,7 @@
163
165
  <property name="can_focus">False</property>
164
166
  <property name="tooltip_text" translatable="yes">Visit visualruby.net for complete tutorials on using Visual Ruby</property>
165
167
  <property name="label" translatable="yes">Online Tutorails</property>
168
+ <accelerator key="F1" signal="activate"/>
166
169
  </object>
167
170
  </child>
168
171
  <child>
data/vr CHANGED
@@ -19,19 +19,26 @@ def load_everything
19
19
  require_rel 'lib/'
20
20
  require_rel 'src/'
21
21
 
22
- VR_Main.new(ARGV, @bldr).show_glade()
22
+ VR_Main.new(ARGV, @splash).show_glade()
23
23
 
24
24
  end
25
25
 
26
26
  $root = File.dirname(__FILE__)
27
27
 
28
- @bldr = Gtk::Builder.new
29
- @bldr << File.join($root, "src", "main", "glade", "Splash.glade")
30
- @bldr[:image1].file = File.join($root, "img", "splash.png")
31
- @bldr[:window1].show_all
28
+ @splash = Gtk::Window.new()
29
+ @splash.decorated = false
30
+ img = Gtk::Image.new(file: File.join($root, "img", "splash.png"))
31
+ img.visible = true
32
+ @splash.add(img)
33
+ @splash.show_all
34
+ @splash.position = :center_always
32
35
 
33
36
 
34
- GLib::Timeout.add(40) {
37
+
38
+ GLib::Timeout.add(40) {
39
+ while (Gtk.events_pending?)
40
+ Gtk.main_iteration
41
+ end
35
42
  load_everything
36
43
  }
37
44
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: visualruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.15
4
+ version: 3.0.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Cunningham
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir:
10
10
  - "."
11
11
  cert_chain: []
12
- date: 2016-06-20 00:00:00.000000000 Z
12
+ date: 2016-06-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: gtk3
@@ -83,7 +83,6 @@ files:
83
83
  - "./examples/active_record2/bin/glade/Paycheck.glade"
84
84
  - "./examples/active_record2/db/development.sqlite3"
85
85
  - "./examples/active_record2/main.rb"
86
- - "./examples/alert_box/.vr_settings.yaml"
87
86
  - "./examples/alert_box/bin/AlertBoxDemo.rb"
88
87
  - "./examples/alert_box/bin/glade/AlertBoxDemo.glade"
89
88
  - "./examples/alert_box/main.rb"
@@ -142,15 +141,12 @@ files:
142
141
  - "./examples/listview_objects/bin/glade/DataObject.glade"
143
142
  - "./examples/listview_objects/bin/glade/ListViewObjectsGUI.glade"
144
143
  - "./examples/listview_objects/main.rb"
145
- - "./examples/phantom/.vr_settings.yaml"
146
144
  - "./examples/phantom/main.rb"
147
145
  - "./examples/phantom/src/MyClass.rb"
148
146
  - "./examples/phantom/src/glade/MyClass.glade"
149
- - "./examples/pop_up/.vr_settings.yaml"
150
147
  - "./examples/pop_up/main.rb"
151
148
  - "./examples/pop_up/src/MyClass.rb"
152
149
  - "./examples/pop_up/src/glade/MyClass.glade"
153
- - "./examples/settings_file/.vr_settings.yaml"
154
150
  - "./examples/settings_file/bin/MainApp.rb"
155
151
  - "./examples/settings_file/bin/SavableSettings.rb"
156
152
  - "./examples/settings_file/bin/glade/MainApp.glade"
@@ -175,6 +171,7 @@ files:
175
171
  - "./img/ruby.png"
176
172
  - "./img/splash.png"
177
173
  - "./img/unknown.png"
174
+ - "./lib/ActLikeAHash.rb"
178
175
  - "./lib/Alert.rb"
179
176
  - "./lib/DragDrop.rb"
180
177
  - "./lib/GladeGUI.rb"
@@ -207,6 +204,7 @@ files:
207
204
  - "./lib/treeview/columns/glade/ImageCol.glade"
208
205
  - "./lib/treeview/columns/glade/TextCol.glade"
209
206
  - "./lib/vrlib.rb"
207
+ - "./my_yard.yaml"
210
208
  - "./skeleton/document/New.glade"
211
209
  - "./skeleton/document/NewWindow.rb"
212
210
  - "./skeleton/project/.vr_settings.yaml"
@@ -1,19 +0,0 @@
1
- --- !ruby/object:VR_ENV
2
- vr_yaml_file: ".vr_settings.yaml"
3
- width: 1329
4
- height: 753
5
- panel_pos: 513
6
- notebook_panel_position: 400
7
- run_command_line: ruby main.rb
8
- open_files:
9
- - "/home/eric/vrp/vr3/examples/alert_box/bin/AlertBoxDemo.rb"
10
- open_folders:
11
- - "/home/eric/vrp/vr3/examples/alert_box"
12
- - "/home/eric/vrp/vr3/examples/alert_box/bin"
13
- - "/home/eric/vrp/vr3/examples/alert_box/bin/glade"
14
- current_file: "/home/eric/vrp/vr3/examples/alert_box/bin/AlertBoxDemo.rb"
15
- current_line: 71
16
- rdoc_command_line: rdoc
17
- builder: !ruby/object:Gtk::Builder {}
18
- top_level_window: false
19
- settings_file_version: 1
@@ -1,22 +0,0 @@
1
- --- !ruby/object:VR_ENV
2
- vr_yaml_file: ".vr_settings.yaml"
3
- width: 1102
4
- height: 611
5
- panel_pos: 360
6
- notebook_panel_position: 400
7
- run_command_line: ruby main.rb
8
- open_files:
9
- - "/home/eric/vrp/phantom/main.rb"
10
- - "/home/eric/vrp/phantom/src/MyClass.rb"
11
- open_folders:
12
- - "/home/eric/vrp/phantom"
13
- - "/home/eric/vrp/phantom/src"
14
- - "/home/eric/vrp/phantom/src/glade"
15
- current_file: "/home/eric/vrp/phantom/main.rb"
16
- current_line: 11
17
- rdoc_command_line: rdoc -x README
18
- browser: firefox
19
- backup_path: "/home/eric"
20
- tab_spaces: 2
21
- glade_path: glade-3
22
- font_name: Monospace 10
@@ -1,19 +0,0 @@
1
- --- !ruby/object:VR_ENV
2
- vr_yaml_file: ".vr_settings.yaml"
3
- width: 800
4
- height: 600
5
- panel_pos: 360
6
- notebook_panel_position: 400
7
- run_command_line: ruby main.rb
8
- open_files:
9
- - "/home/eric/vrp/vrx/Untitled"
10
- open_folders:
11
- - "/home/eric/vrp/examples/pop_up"
12
- current_file: "/home/eric/vrp/vrx/Untitled"
13
- current_line: 1
14
- rdoc_command_line: rdoc -x README
15
- browser: firefox
16
- backup_path: "/home/eric"
17
- tab_spaces: 2
18
- glade_path: glade-3
19
- font_name: Monospace 10
@@ -1,22 +0,0 @@
1
- --- !ruby/object:VR_ENV
2
- vr_yaml_file: ".vr_settings.yaml"
3
- width: 1264
4
- height: 727
5
- panel_pos: 267
6
- notebook_panel_position: 444
7
- run_command_line: ruby main.rb
8
- open_files:
9
- - "/home/eric/vrp/vr3/examples/settings_file/main.rb"
10
- - "/home/eric/vrp/vr3/examples/settings_file/bin/SavableSettings.rb"
11
- - "/home/eric/vrp/vr3/examples/settings_file/bin/MainApp.rb"
12
- open_folders:
13
- - "/home/eric/vrp/vr3/examples/settings_file"
14
- current_file: "/home/eric/vrp/vr3/examples/settings_file/main.rb"
15
- current_line: 15
16
- rdoc_command_line: rdoc -x README
17
- browser: firefox
18
- backup_path: "/home/eric"
19
- tab_spaces: 2
20
- glade_path: glade-3
21
- font_name: Monospace 10
22
- filename: ".vr_settings.yaml"