Piggy 0.4.2.4 → 0.4.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. data/CHANGES.txt +15 -0
  2. data/INSTALL.txt +9 -4
  3. data/README.txt +8 -6
  4. data/bin/directory_diff +1 -1
  5. data/bin/ftp_browser +1 -1
  6. data/bin/piggy +1 -1
  7. data/lib/directory_diff.rb +8 -6
  8. data/lib/ftp_browser.rb +8 -6
  9. data/lib/icons/connect.ico +0 -0
  10. data/lib/icons/hide_details.ico +0 -0
  11. data/lib/icons/show_details.ico +0 -0
  12. data/lib/piggy-core/alive_check.rb +4 -4
  13. data/lib/piggy-core/debug.rb +4 -4
  14. data/lib/piggy-core/environment.rb +24 -26
  15. data/lib/piggy-core/exifr_adapter.rb +11 -11
  16. data/lib/piggy-core/file_info.rb +61 -61
  17. data/lib/piggy-core/ftp_adapter.rb +24 -24
  18. data/lib/piggy-core/htmlgen.rb +41 -45
  19. data/lib/piggy-core/nconvert_thumbsgen.rb +22 -22
  20. data/lib/piggy-core/options.rb +25 -19
  21. data/lib/piggy-core/options_persistence.rb +8 -8
  22. data/lib/piggy-core/progress.rb +7 -7
  23. data/lib/piggy-core/rmagick_thumbnail_page_generator.rb +14 -14
  24. data/lib/piggy-core/thumbnail_generator.rb +26 -26
  25. data/lib/piggy-core/thumbnail_page_generator.rb +234 -230
  26. data/lib/piggy-core/upload_info.rb +22 -22
  27. data/lib/piggy-core/version.rb +7 -7
  28. data/lib/piggy-core/winshell.rb +136 -80
  29. data/lib/piggy-gui/dir_chooser.rb +14 -14
  30. data/lib/piggy-gui/directory_diff_widget.rb +177 -160
  31. data/lib/piggy-gui/filtered_file_list.rb +87 -87
  32. data/lib/piggy-gui/fox_thumbsgen.rb +4 -4
  33. data/lib/piggy-gui/ftp_browser_widget.rb +211 -155
  34. data/lib/piggy-gui/fullscreen.rb +4 -4
  35. data/lib/piggy-gui/html_generation_dialog.rb +42 -115
  36. data/lib/piggy-gui/html_options_widget.rb +97 -0
  37. data/lib/piggy-gui/image_processor.rb +58 -58
  38. data/lib/piggy-gui/modal_dialog.rb +11 -5
  39. data/lib/piggy-gui/multiimagecanvas.rb +59 -59
  40. data/lib/piggy-gui/options_dialog.rb +170 -48
  41. data/lib/piggy-gui/piggy_image_browser.rb +382 -340
  42. data/lib/piggy-gui/pipe_log.rb +17 -17
  43. data/lib/piggy-gui/progress_with_dialog.rb +8 -8
  44. data/lib/piggy-gui/require-fox.rb +23 -8
  45. data/lib/piggy.rb +7 -5
  46. data/lib/templates/styles/basic/style.css +16 -14
  47. data/lib/templates/styles/black/style.css +28 -29
  48. data/lib/templates/styles/roundedbox/style.css +28 -31
  49. data/lib/templates/styles/shadow/style.css +26 -26
  50. data/lib/templates/styles/shadow_D9F5F3/style.css +1 -1
  51. data/lib/templates/styles/shadow_black/lo.jpg +0 -0
  52. data/lib/templates/styles/shadow_black/lu.jpg +0 -0
  53. data/lib/templates/styles/shadow_black/ro.jpg +0 -0
  54. data/lib/templates/styles/shadow_black/ru.jpg +0 -0
  55. data/lib/templates/styles/shadow_black/style.css +78 -0
  56. data/lib/templates/styles/shadow_bowers/style.css +48 -51
  57. data/lib/templates/styles/sylvester/sh.png +0 -0
  58. data/lib/templates/styles/sylvester/style.css +74 -0
  59. data/lib/templates/styles/sylvester/wunderkerze.jpg +0 -0
  60. data/test/file_info_test.rb +29 -29
  61. metadata +52 -38
@@ -5,34 +5,34 @@
5
5
  # a set of given files and directories.
6
6
  # The size of directories is computed recursively.
7
7
  class UploadInfo
8
- attr_reader(:bytes, :numFiles, :bytesHash)
8
+ attr_reader(:bytes, :num_files, :bytes_hash)
9
9
 
10
- def initialize(filesWithPath)
11
- @bytesHash = Hash.new
10
+ def initialize(files_with_path)
11
+ @bytes_hash = Hash.new
12
12
  @bytes = 0
13
- @numFiles = 0
14
- add(filesWithPath)
13
+ @num_files = 0
14
+ add(files_with_path)
15
15
  end
16
16
 
17
17
  private
18
18
 
19
- def add(filesWithPath)
20
- filesWithPath.each do |fileWithPath|
21
- unless @bytesHash.has_key?(fileWithPath)
22
- if File.directory?(fileWithPath)
23
- subfiles = Dir.entries(fileWithPath).reject { |e|
24
- e =~ /^\./
25
- }
26
- subfilesWithPath = subfiles.collect { |e|
27
- FilePath.join(fileWithPath, e)
28
- }
29
- add(subfilesWithPath)
30
- else
31
- fileSize = File.size(fileWithPath)
32
- @bytesHash[fileWithPath] = fileSize
33
- @bytes = @bytes + fileSize
34
- @numFiles = @numFiles + 1
35
- end
19
+ def add(files_with_path)
20
+ files_with_path.each do |fileWithPath|
21
+ unless @bytes_hash.has_key?(fileWithPath)
22
+ if File.directory?(fileWithPath)
23
+ subfiles = Dir.entries(fileWithPath).reject { |e|
24
+ e =~ /^\./
25
+ }
26
+ subfiles_with_path = subfiles.collect { |e|
27
+ FilePath.join(fileWithPath, e)
28
+ }
29
+ add(subfiles_with_path)
30
+ else
31
+ fileSize = File.size(fileWithPath)
32
+ @bytes_hash[fileWithPath] = fileSize
33
+ @bytes = @bytes + fileSize
34
+ @num_files = @num_files + 1
35
+ end
36
36
  end
37
37
  end
38
38
  end
@@ -3,16 +3,16 @@
3
3
 
4
4
  # Provide release information for Piggy.
5
5
  module PiggyVersion
6
- def PiggyVersion.versionString
7
- '0.4.2-4'
6
+ def PiggyVersion.version_string
7
+ '0.4.3-0'
8
8
  end
9
- def PiggyVersion.copyrightString
10
- 'Copyright (C) 2008 Sascha D�rdelmann'
9
+ def PiggyVersion.copyright_string
10
+ 'Copyright (C) 2009 Sascha D�rdelmann'
11
11
  end
12
- def PiggyVersion.developmentStatus
12
+ def PiggyVersion.development_status
13
13
  'alpha'
14
14
  end
15
- def PiggyVersion.displayString
16
- "#{PiggyVersion.versionString} (#{PiggyVersion.developmentStatus})"
15
+ def PiggyVersion.display_string
16
+ "#{PiggyVersion.version_string} (#{PiggyVersion.development_status})"
17
17
  end
18
18
  end
@@ -6,10 +6,9 @@ require 'singleton'
6
6
  # Windows oriented but platform independent file system abstraction.
7
7
  class ShellInterface
8
8
  def initialize
9
- @specialFolderIds = {
9
+ @special_folder_ids = {
10
10
  "ALTSTARTUP" => 0x1d,
11
11
  "APPDATA" => 0x1a,
12
- "BITBUCKET" => 0xa,
13
12
  "COMMONALTSTARTUP" => 0x1e,
14
13
  "COMMONAPPDATA" => 0x23,
15
14
  "COMMONDESKTOPDIR" => 0x19,
@@ -21,7 +20,6 @@ class ShellInterface
21
20
  "COOKIES" => 0x21,
22
21
  "DESKTOP" => 0x0,
23
22
  "DESKTOPDIRECTORY" => 0x10,
24
- "DRIVES" => 0x11,
25
23
  "FAVORITES" => 0x6,
26
24
  "FONTS" => 0x14,
27
25
  "HISTORY" => 0x22,
@@ -29,9 +27,7 @@ class ShellInterface
29
27
  "LOCALAPPDATA" => 0x1c,
30
28
  "MYPICTURES" => 0x27,
31
29
  "NETHOOD" => 0x13,
32
- "NETWORK" => 0x12,
33
30
  "PERSONAL" => 0x5,
34
- "PRINTERS" => 0x4,
35
31
  "PRINTHOOD" => 0x1b,
36
32
  "PROFILE" => 0x28,
37
33
  "PROGRAMFILES" => 0x26,
@@ -44,10 +40,10 @@ class ShellInterface
44
40
  "TEMPLATES" => 0x15,
45
41
  "WINDOWS" => 0x24
46
42
  }
47
- initHome
43
+ init_home
48
44
  end
49
45
 
50
- def initHome
46
+ def init_home
51
47
  @home = ENV['HOME']
52
48
  @home = ENV['HOMEPATH'] unless @home
53
49
  unless @home
@@ -57,11 +53,11 @@ class ShellInterface
57
53
  end
58
54
 
59
55
  # try to provide a platform independent default
60
- def pathForSpecialFolder(name)
56
+ def path_for_special_folder(name)
61
57
  return @home
62
58
  end
63
59
 
64
- def tmpPath
60
+ def tmp_path
65
61
  tmp = ENV['TEMP']
66
62
  tmp = ENV['TMP'] unless tmp
67
63
  tmp = '/' unless tmp
@@ -69,8 +65,8 @@ class ShellInterface
69
65
  end
70
66
 
71
67
  # platform dependent path (no better default possible)
72
- def osPath(pathString)
73
- return winPath(pathString)
68
+ def os_path(pathString)
69
+ return win_path(pathString)
74
70
  end
75
71
 
76
72
  # for use in commandline execution
@@ -78,29 +74,29 @@ class ShellInterface
78
74
  return pathString
79
75
  end
80
76
 
81
- # old name, use osPath instead
82
- def winPath(pathString)
77
+ # old name, use os_path instead
78
+ def win_path(pathString)
83
79
  return pathString
84
80
  end
85
81
 
86
82
  # Get a path string usable by common ruby classes such as Dir and File.
87
83
  # Default: convert '\' to '/' on all systems, even on Unix
88
- def rubyPath(pathString)
84
+ def ruby_path(pathString)
89
85
  return pathString.gsub(/\\/, separator).gsub(/^~/, @home)
90
86
  end
91
87
 
92
- def pictureDirectory
93
- return pathForSpecialFolder("MYPICTURES")
88
+ def picture_directory
89
+ return path_for_special_folder("MYPICTURES")
94
90
  end
95
91
 
96
- def desktopDirectory
97
- return pathForSpecialFolder("DESKTOPDIRECTORY")
92
+ def desktop_directory
93
+ return path_for_special_folder("DESKTOPDIRECTORY")
98
94
  end
99
95
 
100
- def specialFolderListing
101
- @specialFolderIds.keys.sort.each do |aFolder|
96
+ def special_folder_listing
97
+ @special_folder_ids.keys.sort.each do |aFolder|
102
98
  printf "#{aFolder}: "
103
- puts "#{pathForSpecialFolder aFolder}"
99
+ puts "#{path_for_special_folder aFolder}"
104
100
  end
105
101
  end
106
102
 
@@ -109,8 +105,8 @@ class ShellInterface
109
105
  return File::SEPARATOR
110
106
  end
111
107
 
112
- def removePath(filenameWithPath)
113
- return rubyPath(filenameWithPath).split(separator)[-1]
108
+ def remove_path(filename_with_path)
109
+ return ruby_path(filename_with_path).split(separator)[-1]
114
110
  end
115
111
 
116
112
  # Is filename a Windows shortcut? - Default: no file is a shortcut
@@ -119,15 +115,14 @@ class ShellInterface
119
115
  end
120
116
 
121
117
  # Has filename the Extension ext (e. g. ".jpg")
122
- def hasExtension?(filename, ext)
118
+ def has_extension?(filename, ext)
123
119
  raise ArgumentError, "Extension missing" if ext.empty?
124
- pExt = (ext[0] == '.'[0] ? ext : '.' + ext).downcase
125
- dcFilename = filename.downcase
126
- return File.basename(dcFilename, pExt) != File.basename(dcFilename)
120
+ p_ext = (ext[0] == '.'[0] ? ext : '.' + ext).downcase
121
+ dc_filename = filename.downcase
122
+ return File.basename(dc_filename, p_ext) != File.basename(dc_filename)
127
123
  end
128
124
  end
129
125
 
130
-
131
126
  # Default access to file system abstraction.
132
127
  # A platform dependent singleton will be instantiated.
133
128
  class WinShell < ShellInterface
@@ -136,33 +131,79 @@ end
136
131
 
137
132
  if RUBY_PLATFORM =~ /win32/
138
133
  require 'win32ole'
134
+ require 'win32/dir'
139
135
 
140
136
  class WinShell < ShellInterface
141
137
 
142
138
  def initialize
143
139
  @shell = WIN32OLE.new('Shell.application')
140
+ @os_paths = {
141
+ "ALTSTARTUP" => Dir::ALTSTARTUP,
142
+ "APPDATA" => Dir::APPDATA,
143
+ "COMMONALTSTARTUP" => Dir::COMMON_ALTSTARTUP,
144
+ "COMMONAPPDATA" => Dir::COMMON_APPDATA,
145
+ "COMMONDESKTOPDIR" => Dir::COMMON_DESKTOPDIRECTORY,
146
+ "COMMONFAVORITES" => Dir::COMMON_FAVORITES,
147
+ "COMMONPROGRAMS" => Dir::COMMON_PROGRAMS,
148
+ "COMMONSTARTMENU" => Dir::COMMON_STARTMENU,
149
+ "COMMONSTARTUP" =>Dir::COMMON_STARTUP,
150
+ "COOKIES" => Dir::COOKIES,
151
+ "DESKTOP" => Dir::DESKTOP,
152
+ "DESKTOPDIRECTORY" => Dir::DESKTOPDIRECTORY,
153
+ "FAVORITES" => Dir::FAVORITES,
154
+ "FONTS" => Dir::FONTS,
155
+ "HISTORY" => Dir::HISTORY,
156
+ "INTERNETCACHE" => Dir::INTERNET_CACHE,
157
+ "LOCALAPPDATA" => Dir::LOCAL_APPDATA,
158
+ "MYPICTURES" => Dir::MYPICTURES,
159
+ "NETHOOD" => Dir::NETHOOD,
160
+ "PERSONAL" => Dir::PERSONAL,
161
+ "PRINTHOOD" => Dir::PRINTHOOD,
162
+ "PROFILE" => Dir::PROFILE,
163
+ "PROGRAMFILES" => Dir::PROGRAM_FILES,
164
+ "PROGRAMS" => Dir::PROGRAMS,
165
+ "RECENT" => Dir::RECENT,
166
+ "SENDTO" => Dir::SENDTO,
167
+ "STARTMENU" => Dir::STARTMENU,
168
+ "STARTUP" => Dir::STARTUP,
169
+ "SYSTEM" => Dir::SYSTEM,
170
+ "TEMPLATES" => Dir::TEMPLATES,
171
+ "WINDOWS" => Dir::WINDOWS
172
+ }
144
173
  super
145
174
  end
146
175
 
147
- def pathForSpecialFolder(name)
148
- return desktopDirectory if name=="DESKTOP"
149
- oleFolder = specialFolder(name)
150
- return "" if !oleFolder
151
- return pathForFolder(specialFolder(name))
176
+ def path_for_special_folder(name)
177
+ win32_utils_path = @os_paths[name]
178
+ return win32_utils_path ? ruby_path(win32_utils_path) : ""
179
+ end
180
+
181
+ # Include virtual paths on vindows
182
+ def special_folder_listing
183
+ @special_folder_ids.keys.sort.each do |aFolder|
184
+ puts "#{aFolder}:"
185
+ puts "\t#{path_for_special_folder aFolder}"
186
+ puts "\t#{virtual_path_for aFolder}"
187
+ end
188
+ end
189
+
190
+ def virtual_path_for(name)
191
+ ole_folder = special_folder(name)
192
+ return path_for_folder(ole_folder)
152
193
  end
153
194
 
154
195
  # Is filename a Windows shortcut?
155
196
  def link?(filename)
156
- return hasExtension?(filename, '.lnk')
197
+ return has_extension?(filename, '.lnk')
157
198
  end
158
199
 
159
200
  # Get a path string usable by Windows systems.
160
- def winPath(pathString)
201
+ def win_path(pathString)
161
202
  return pathString.gsub(separator, "\\")
162
203
  end
163
204
 
164
205
  # Get a path string usable by common ruby classes such as Dir and File.
165
- def rubyPath(pathString)
206
+ def ruby_path(pathString)
166
207
  return pathString.gsub(/\\/, separator)
167
208
  end
168
209
 
@@ -171,52 +212,67 @@ if RUBY_PLATFORM =~ /win32/
171
212
  return "\"#{pathString}\""
172
213
  end
173
214
 
174
- #Get the path stored in the Windows shortcut filename. PRE: link?(filename)
175
- def getLinkTarget(filename, pathString = Dir.getwd)
176
- raise(ArgumentError, "Kein Link") if !link?(filename)
177
- filenameOnly = removePath(filename) # avoid errors ignore performance
178
- ext = '.' + filenameOnly.split('.')[-1]
179
- linkdef = File.basename(filenameOnly, ext)
180
- raise ArgumentError, "Linkname leer" if linkdef.empty?
181
- item = getFolderItems(pathString).find { |fi|
182
- linkdef == (fi.Name.to_s) }
183
- return item ? rubyPath(item.GetLink.Path.to_s) : ''
215
+ # Get the path stored in the Windows shortcut filename.
216
+ # PRE: link?(filename)
217
+ def get_link_target(filename, path_string = Dir.getwd)
218
+ raise(ArgumentError, "No link") unless link?(filename)
219
+ puts "Compute shortcut: #{filename}"
220
+ filename_only = remove_path(filename) # avoid errors ignore performance
221
+ location = win_path(path_string)
222
+ ole_folder = shell.NameSpace(location)
223
+ raise(ArgumentError, "#{path_string} is no folder") unless ole_folder
224
+ ole_item = get_link_item(filename_only, ole_folder)
225
+ return '' unless ole_item
226
+ return ruby_path(ole_item.GetLink.Path.to_s)
184
227
  end
185
228
 
186
- def pathForFolder(folder)
187
- current = folder.ParentFolder
188
- path = folder.Title
189
- while current do
190
- title = current.Title
191
- if title == "Desktop" # winXP, nicht win2000
192
- current = specialFolder("DESKTOPDIRECTORY").ParentFolder
193
- title = current.Title
194
- end
195
- if title =~ /(.):/
196
- title.gsub!(/.*\((\w:)\)/, '\1')
197
- return title + separator + path
198
- end
199
- path = title + separator + path
200
- current = current.ParentFolder
229
+ # private; public for better testing only
230
+
231
+ def get_link_item(filename, ole_folder)
232
+ begin
233
+ return ole_folder.ParseName(filename)
234
+ rescue Error => ex
235
+ puts ex.message
201
236
  end
202
- return path
237
+ # Fallback to old solution:
238
+ # Compare filename with all item names in folder.
239
+ # This didn't work with Vista's shortcut "Sample Pictures"
240
+ # (The item name in german Vista is "Beispielbilder"
241
+ # which is not equal to the filename.)
242
+ ext = '.' + filename.split('.')[-1]
243
+ linkdef = File.basename(filename, ext)
244
+ raise(ArgumentError, "Link name empty") if linkdef.empty?
245
+ puts "Location: #{path_string}"
246
+ puts "Shortcut name: #{linkdef}"
247
+ ole_items = ole_folder.items
248
+ ole_item_col = (0..ole_items.Count-1).collect { |i| ole_items.item(i) }
249
+ return ole_item_col.find { |fi| fi.isLink && linkdef == (fi.Name.to_s) }
203
250
  end
204
251
 
205
- # private; public for better testing only
206
-
207
252
  # My shell is the ole object "Shell" as described in the Windows SDK.
208
253
  def shell
209
254
  return @shell
210
255
  end
211
256
 
212
- def specialFolder(name)
213
- id = @specialFolderIds[name]
257
+ def special_folder(name)
258
+ id = @special_folder_ids[name]
214
259
  return shell.NameSpace(id)
215
260
  end
261
+
262
+ def path_for_folder(folder)
263
+ current = folder.ParentFolder
264
+ path = folder.Title
265
+ while current do
266
+ title = current.Title
267
+ path = title + separator + path
268
+ current = current.ParentFolder
269
+ end
270
+ return path
271
+ end
216
272
 
217
273
  # Get Directory entries as ole-objects, not as strings!
218
- def getFolderItems(directoryPathString)
219
- folder = shell.NameSpace(winPath(directoryPathString))
274
+ def get_folder_items(directoryPathString)
275
+ folder = shell.NameSpace(win_path(directoryPathString))
220
276
  raise "Folderermittlung fehlgeschlagen" if !folder
221
277
  items = folder.items
222
278
  return (0..items.Count-1).collect { |i| items.item(i) }
@@ -227,21 +283,21 @@ end
227
283
 
228
284
  if $0 == __FILE__
229
285
  def example
230
- aShell = WinShell.instance
286
+ shell = WinShell.instance
231
287
  h = "Example 1: WinShell.new.specialFolderListing"
232
- hLine = (1..h.size).collect { |c| '*'}
233
- puts "#{hLine}\n#{h}\n#{hLine}"
234
- aShell.specialFolderListing
288
+ h_line = (1..h.size).collect { |c| '*'}
289
+ puts "#{h_line}\n#{h}\n#{h_line}"
290
+ shell.special_folder_listing
235
291
  h = "Example 2. Links on Desktop"
236
- hLine = (1..h.size).collect { |c| '*'}
237
- puts "#{hLine}\n#{h}\n#{hLine}"
238
- desktopDir = aShell.desktopDirectory
239
- links = Dir[desktopDir + '/*'].select { |p| aShell.link?(File.basename(p)) }
240
- links.each do |l|
241
- lName = File.basename l
242
- puts "#{lName} => \"#{aShell.getLinkTarget lName, desktopDir}\""
292
+ h_line = (1..h.size).collect { |c| '*'}
293
+ puts "#{h_line}\n#{h}\n#{h_line}"
294
+ desktop_dir = shell.desktop_directory
295
+ links = Dir[desktop_dir + '/*'].select { |p| shell.link?(File.basename(p)) }
296
+ links.each do |link_path|
297
+ link_name = File.basename link_path
298
+ puts "#{link_name} => \"#{shell.get_link_target link_name, desktop_dir}\""
243
299
  end
244
300
  end
245
- example
301
+ example
246
302
  end
247
303
 
@@ -7,40 +7,40 @@ require 'piggy-gui/require-fox'
7
7
  # Combobox like input field to choose an existing directory
8
8
  class DirChooser < Fox::FXHorizontalFrame
9
9
  include Fox
10
- def initialize(owner, initValue, &onChangedDir)
10
+ def initialize(owner, init_value, &on_changed_dir)
11
11
  super(owner, FRAME_NONE, 0, 0, 0 , 0, 0, 0, 0, 0) {}
12
12
  @field = FXTextField.new(self, 32)
13
13
  @button = FXButton.new(self, '...')
14
- @block = onChangedDir
14
+ @block = on_changed_dir
15
15
  @shell = WinShell.instance
16
- connectButtonToField
17
- initLayout
18
- setPath(initValue)
16
+ connect_button_to_field
17
+ init_layout
18
+ set_path(init_value)
19
19
  @field.connect(SEL_COMMAND) {
20
- @block.call(getPath)
20
+ @block.call(get_path)
21
21
  }
22
22
  end
23
23
 
24
- def initLayout
24
+ def init_layout
25
25
  @field.setLayoutHints(LAYOUT_LEFT|LAYOUT_FILL_X|LAYOUT_FILL_COLUMN)
26
26
  end
27
27
 
28
- def connectButtonToField
28
+ def connect_button_to_field
29
29
  @button.connect(SEL_COMMAND) {
30
30
  dialog = FXDirDialog.new(self, "Choose directory")
31
31
  dialog.directory = @field.getText
32
32
  unless dialog.execute == 0
33
- @field.setText(dialog.directory)
34
- @block.call(getPath)
33
+ @field.setText(dialog.directory)
34
+ @block.call(get_path)
35
35
  end
36
36
  }
37
37
  end
38
38
 
39
- def getPath
40
- @shell.rubyPath(fox2Ruby(@field.getText))
39
+ def get_path
40
+ @shell.ruby_path(fox_2_ruby(@field.getText))
41
41
  end
42
42
 
43
- def setPath(value)
44
- @field.setText(ruby2Fox(@shell.osPath(value)))
43
+ def set_path(value)
44
+ @field.setText(ruby_2_fox(@shell.os_path(value)))
45
45
  end
46
46
  end