Piggy 0.4.2.4 → 0.4.3.0
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/CHANGES.txt +15 -0
- data/INSTALL.txt +9 -4
- data/README.txt +8 -6
- data/bin/directory_diff +1 -1
- data/bin/ftp_browser +1 -1
- data/bin/piggy +1 -1
- data/lib/directory_diff.rb +8 -6
- data/lib/ftp_browser.rb +8 -6
- data/lib/icons/connect.ico +0 -0
- data/lib/icons/hide_details.ico +0 -0
- data/lib/icons/show_details.ico +0 -0
- data/lib/piggy-core/alive_check.rb +4 -4
- data/lib/piggy-core/debug.rb +4 -4
- data/lib/piggy-core/environment.rb +24 -26
- data/lib/piggy-core/exifr_adapter.rb +11 -11
- data/lib/piggy-core/file_info.rb +61 -61
- data/lib/piggy-core/ftp_adapter.rb +24 -24
- data/lib/piggy-core/htmlgen.rb +41 -45
- data/lib/piggy-core/nconvert_thumbsgen.rb +22 -22
- data/lib/piggy-core/options.rb +25 -19
- data/lib/piggy-core/options_persistence.rb +8 -8
- data/lib/piggy-core/progress.rb +7 -7
- data/lib/piggy-core/rmagick_thumbnail_page_generator.rb +14 -14
- data/lib/piggy-core/thumbnail_generator.rb +26 -26
- data/lib/piggy-core/thumbnail_page_generator.rb +234 -230
- data/lib/piggy-core/upload_info.rb +22 -22
- data/lib/piggy-core/version.rb +7 -7
- data/lib/piggy-core/winshell.rb +136 -80
- data/lib/piggy-gui/dir_chooser.rb +14 -14
- data/lib/piggy-gui/directory_diff_widget.rb +177 -160
- data/lib/piggy-gui/filtered_file_list.rb +87 -87
- data/lib/piggy-gui/fox_thumbsgen.rb +4 -4
- data/lib/piggy-gui/ftp_browser_widget.rb +211 -155
- data/lib/piggy-gui/fullscreen.rb +4 -4
- data/lib/piggy-gui/html_generation_dialog.rb +42 -115
- data/lib/piggy-gui/html_options_widget.rb +97 -0
- data/lib/piggy-gui/image_processor.rb +58 -58
- data/lib/piggy-gui/modal_dialog.rb +11 -5
- data/lib/piggy-gui/multiimagecanvas.rb +59 -59
- data/lib/piggy-gui/options_dialog.rb +170 -48
- data/lib/piggy-gui/piggy_image_browser.rb +382 -340
- data/lib/piggy-gui/pipe_log.rb +17 -17
- data/lib/piggy-gui/progress_with_dialog.rb +8 -8
- data/lib/piggy-gui/require-fox.rb +23 -8
- data/lib/piggy.rb +7 -5
- data/lib/templates/styles/basic/style.css +16 -14
- data/lib/templates/styles/black/style.css +28 -29
- data/lib/templates/styles/roundedbox/style.css +28 -31
- data/lib/templates/styles/shadow/style.css +26 -26
- data/lib/templates/styles/shadow_D9F5F3/style.css +1 -1
- data/lib/templates/styles/shadow_black/lo.jpg +0 -0
- data/lib/templates/styles/shadow_black/lu.jpg +0 -0
- data/lib/templates/styles/shadow_black/ro.jpg +0 -0
- data/lib/templates/styles/shadow_black/ru.jpg +0 -0
- data/lib/templates/styles/shadow_black/style.css +78 -0
- data/lib/templates/styles/shadow_bowers/style.css +48 -51
- data/lib/templates/styles/sylvester/sh.png +0 -0
- data/lib/templates/styles/sylvester/style.css +74 -0
- data/lib/templates/styles/sylvester/wunderkerze.jpg +0 -0
- data/test/file_info_test.rb +29 -29
- metadata +52 -38
@@ -14,9 +14,9 @@ class MultiImageCanvas < Fox::FXScrollWindow
|
|
14
14
|
|
15
15
|
def initialize(p1, p2)
|
16
16
|
super(p1, p2)
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
draw_area = FXCanvas.new(self, nil, 0,
|
18
|
+
FRAME_NORMAL|LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
19
|
+
draw_area.connect(SEL_PAINT, method(:on_paint))
|
20
20
|
@contentWidth = width
|
21
21
|
@contentHeight = height
|
22
22
|
@images = Array.new
|
@@ -26,19 +26,19 @@ class MultiImageCanvas < Fox::FXScrollWindow
|
|
26
26
|
@imgProcessor = ImageProcessor.new getApp
|
27
27
|
end
|
28
28
|
|
29
|
-
def
|
30
|
-
@imgProcessor.
|
29
|
+
def destroy_all(imageCache)
|
30
|
+
@imgProcessor.destroy_all(imageCache)
|
31
31
|
end
|
32
32
|
|
33
|
-
def
|
33
|
+
def image_processor
|
34
34
|
return @imgProcessor
|
35
35
|
end
|
36
36
|
|
37
|
-
def
|
37
|
+
def get_content_width
|
38
38
|
return @contentWidth
|
39
39
|
end
|
40
40
|
|
41
|
-
def
|
41
|
+
def get_content_height
|
42
42
|
return @contentHeight
|
43
43
|
end
|
44
44
|
|
@@ -50,59 +50,59 @@ class MultiImageCanvas < Fox::FXScrollWindow
|
|
50
50
|
return @images.empty? ? nil : @images[0]
|
51
51
|
end
|
52
52
|
|
53
|
-
def
|
53
|
+
def set_images(imageArray)
|
54
54
|
@images = imageArray
|
55
55
|
end
|
56
56
|
|
57
|
-
def
|
58
|
-
|
57
|
+
def load_and_show_image(file)
|
58
|
+
load_image(file)
|
59
59
|
end
|
60
60
|
|
61
|
-
def
|
61
|
+
def load_image(file, additive=false, degree=0)
|
62
62
|
if additive && @thumbs.has_key?(file)
|
63
63
|
images.push(@thumbs[file])
|
64
64
|
return
|
65
65
|
end
|
66
|
-
|
66
|
+
unless @imgProcessor.is_supported_image_file? file
|
67
67
|
FXMessageBox.error(self, MBOX_OK, "Warning image type",
|
68
|
-
|
68
|
+
"Unsupported image type: #{file}")
|
69
69
|
return
|
70
70
|
end
|
71
71
|
getApp.beginWaitCursor do
|
72
|
-
img = @imgProcessor.
|
72
|
+
img = @imgProcessor.load_image(file, false)
|
73
73
|
unless degree == 0
|
74
|
-
|
74
|
+
@imgProcessor.rotate_image(img, degree)
|
75
75
|
end
|
76
|
-
|
76
|
+
destroy_all(@images) if !additive
|
77
77
|
images.push(img)
|
78
78
|
if additive
|
79
|
-
|
79
|
+
cache_thumb_for(file, img)
|
80
80
|
else
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
81
|
+
w = img.getWidth
|
82
|
+
h = img.getHeight
|
83
|
+
if(w > 1600 && h > 1000)
|
84
|
+
# reduce footprint
|
85
|
+
@imgProcessor.fit_image(img, 1600, 1000, 1)
|
86
|
+
end
|
87
|
+
FXMemoryStream.open(FXStreamSave, nil) do |stream|
|
88
|
+
img.savePixels(stream)
|
89
|
+
@buffer = stream.takeBuffer
|
90
|
+
end
|
91
|
+
@imgProcessor.fit_image(img, getWidth, getHeight, 1)
|
92
92
|
end
|
93
93
|
img.create
|
94
|
-
|
94
|
+
force_refresh if !additive
|
95
95
|
end
|
96
96
|
end
|
97
97
|
|
98
|
-
def
|
99
|
-
@imgProcessor.
|
98
|
+
def cache_thumb_for(file, img)
|
99
|
+
@imgProcessor.fit_image(img, 100, 100, 0)
|
100
100
|
@thumbs[file] = img
|
101
101
|
@fifoThumbsKeys.push(file)
|
102
102
|
if @fifoThumbsKeys.size > CacheSize
|
103
|
-
|
104
|
-
@thumbs[
|
105
|
-
@thumbs.delete(
|
103
|
+
thumb_to_destroy = @fifoThumbsKeys.shift
|
104
|
+
@thumbs[thumb_to_destroy].destroy
|
105
|
+
@thumbs.delete(thumb_to_destroy)
|
106
106
|
end
|
107
107
|
end
|
108
108
|
|
@@ -114,49 +114,49 @@ class MultiImageCanvas < Fox::FXScrollWindow
|
|
114
114
|
FXMemoryStream.open(FXStreamLoad, @buffer) do |stream|
|
115
115
|
img.loadPixels(stream)
|
116
116
|
end
|
117
|
-
@imgProcessor.
|
118
|
-
|
117
|
+
@imgProcessor.fit_image(img, w, h)
|
118
|
+
force_refresh
|
119
119
|
end
|
120
120
|
|
121
|
-
def
|
121
|
+
def load_images(files)
|
122
122
|
images.clear
|
123
|
-
files.each { |f|
|
124
|
-
|
123
|
+
files.each { |f| load_image(f, true) }
|
124
|
+
force_refresh
|
125
125
|
end
|
126
126
|
|
127
|
-
def
|
127
|
+
def force_refresh
|
128
128
|
contentWindow.update
|
129
129
|
contentWindow.repaint
|
130
130
|
contentWindow.recalc
|
131
131
|
repaint
|
132
132
|
end
|
133
133
|
|
134
|
-
def
|
134
|
+
def on_paint(sender, sel, unused)
|
135
135
|
sdc = FXDCWindow.new(contentWindow)
|
136
136
|
sdc.fillRectangle(0, 0, width, height)
|
137
137
|
unless images.empty? || width < 5 || height < 5
|
138
138
|
# Draw image table
|
139
139
|
x = 0;
|
140
140
|
y = 0;
|
141
|
-
|
142
|
-
|
143
|
-
|
141
|
+
line_height = 0
|
142
|
+
sub_width = images.size == 1 ? 0 : 16 # width for vScrollbar
|
143
|
+
max_w = [images[0].width + sub_width, width].max
|
144
144
|
images.each { |img|
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
145
|
+
imgHeight = img.height
|
146
|
+
imgWidth = img.width
|
147
|
+
max_w = imgWidth if imgWidth + sub_width > max_w
|
148
|
+
if x + img.width > max_w - sub_width
|
149
|
+
x = 0
|
150
|
+
y += line_height + 4
|
151
|
+
line_height = 0
|
152
|
+
end
|
153
|
+
line_height = imgHeight if imgHeight > line_height
|
154
|
+
sdc.drawImage(img, x, y)
|
155
|
+
sdc.fillRectangle(x, y + imgHeight, x + imgWidth, y + line_height)
|
156
|
+
x += imgWidth + 4
|
157
157
|
}
|
158
|
-
@contentWidth =
|
159
|
-
@contentHeight = y +
|
158
|
+
@contentWidth = max_w
|
159
|
+
@contentHeight = y + line_height
|
160
160
|
end
|
161
161
|
sdc.end
|
162
162
|
end
|
@@ -7,98 +7,220 @@ require 'piggy-core/environment'
|
|
7
7
|
require 'piggy-core/options'
|
8
8
|
require 'piggy-gui/require-fox'
|
9
9
|
require 'piggy-gui/modal_dialog'
|
10
|
+
require 'piggy-gui/html_options_widget'
|
10
11
|
|
11
12
|
# Dialog to change some of Piggy's options.
|
12
13
|
class OptionsDialog < ModalDialog
|
13
14
|
attr_reader(:options)
|
14
15
|
|
15
16
|
def initialize(owner, piggyOptions)
|
16
|
-
title = "Piggy
|
17
|
+
title = "Piggy options"
|
17
18
|
super(owner, title, DECOR_TITLE|DECOR_BORDER|DECOR_CLOSE|PIGGY_WINDOW_PLACEMENT)
|
18
19
|
@options = piggyOptions.clone
|
19
20
|
@fillMode = LAYOUT_LEFT|LAYOUT_FILL_X|LAYOUT_FILL_Y
|
20
21
|
@frameStyle = FRAME_NONE
|
21
22
|
@shell = WinShell.instance
|
22
|
-
|
23
|
+
initialize_layout
|
23
24
|
end
|
24
25
|
|
25
|
-
def
|
26
|
+
def init_frame(aFrame)
|
26
27
|
aFrame.setFrameStyle(@frameStyle)
|
27
28
|
aFrame.setLayoutHints(@fillMode)
|
28
29
|
return aFrame
|
29
30
|
end
|
30
31
|
|
31
|
-
def
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
32
|
+
def initialize_layout
|
33
|
+
basic_frame = FXVerticalFrame.new(self)
|
34
|
+
tabs = FXTabBook.new(basic_frame, :opts => LAYOUT_FILL)
|
35
|
+
add_tab_general_to(tabs)
|
36
|
+
add_tab_html_to(tabs)
|
37
|
+
add_tab_ftp_to(tabs)
|
38
|
+
add_tab_experimental_to(tabs)
|
39
|
+
add_ok_cancel_buttons_to(basic_frame)
|
40
|
+
end
|
41
|
+
|
42
|
+
def add_tab(book, name)
|
43
|
+
FXTabItem.new(book, " #{name} ");
|
44
|
+
return FXVerticalFrame.new(book, :opts => FRAME_RAISED|LAYOUT_FILL)
|
45
|
+
end
|
46
|
+
|
47
|
+
def cb_flags
|
48
|
+
ICON_BEFORE_TEXT|LAYOUT_SIDE_TOP
|
49
|
+
end
|
50
|
+
|
51
|
+
def add_label_to(frame, msg)
|
52
|
+
FXLabel.new(frame, msg, :opts => JUSTIFY_LEFT|LAYOUT_CENTER_Y)
|
53
|
+
end
|
54
|
+
|
55
|
+
def add_txt_to(frame, msg)
|
56
|
+
FXLabel.new(frame, msg, :opts => JUSTIFY_LEFT)
|
57
|
+
end
|
58
|
+
|
59
|
+
def add_tab_general_to(tabs)
|
60
|
+
tab = add_tab(tabs, "General")
|
61
|
+
|
62
|
+
add_label_to(tab, "Image processing:")
|
63
|
+
radio_buttons_frame = init_frame(FXVerticalFrame.new(tab))
|
64
|
+
@rbFxruby = FXRadioButton.new(radio_buttons_frame, "Internal (FXRuby)")
|
65
|
+
@rbNconvert = FXRadioButton.new(radio_buttons_frame, "NConvert (XNView)")
|
66
|
+
@rbRmagick = FXRadioButton.new(radio_buttons_frame, "RMagick")
|
67
|
+
update_processor
|
41
68
|
@rbFxruby.connect(SEL_COMMAND) { |sender, sel, ptr|
|
42
|
-
@options.
|
43
|
-
|
69
|
+
@options.use_fxruby!
|
70
|
+
update_processor
|
44
71
|
}
|
45
72
|
@rbNconvert.connect(SEL_COMMAND) { |sender, sel, ptr|
|
46
|
-
@options.
|
47
|
-
|
73
|
+
@options.use_nconvert!
|
74
|
+
update_processor
|
48
75
|
}
|
49
76
|
if RMAGICK_AVAILIABLE
|
50
77
|
@rbRmagick.connect(SEL_COMMAND) { |sender, sel, ptr|
|
51
|
-
@options.
|
52
|
-
|
78
|
+
@options.use_rmagick!
|
79
|
+
update_processor
|
53
80
|
}
|
54
81
|
else
|
55
82
|
@rbRmagick.disable
|
56
83
|
end
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
cb = FXCheckButton.new(
|
61
|
-
|
62
|
-
|
84
|
+
|
85
|
+
add_label_to(tab, "Main window:")
|
86
|
+
|
87
|
+
cb = FXCheckButton.new(tab,
|
88
|
+
'Show log pane',
|
89
|
+
nil, 0, cb_flags)
|
63
90
|
cb.setCheck(@options.useLog)
|
64
91
|
cb.connect(SEL_COMMAND) { |sender, sel, ptr|
|
65
92
|
@options.useLog = ptr
|
66
93
|
}
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
@options.usePreview = ptr
|
73
|
-
}
|
74
|
-
FXLabel.new(basicFrame, "Web browser:")
|
75
|
-
combo = FXHorizontalFrame.new(basicFrame)
|
76
|
-
@browserField = FXTextField.new(combo, 32)
|
77
|
-
@browserField.setText(ruby2Fox(@shell.osPath(@options.browser)))
|
94
|
+
|
95
|
+
add_label_to(tab, "Web browser:")
|
96
|
+
combo = FXHorizontalFrame.new(tab)
|
97
|
+
@browserField = FXTextField.new(combo, 32)
|
98
|
+
@browserField.setText(ruby_2_fox(@shell.os_path(@options.browser)))
|
78
99
|
@browserField.connect(SEL_COMMAND) {
|
79
|
-
|
100
|
+
browser_changed
|
80
101
|
}
|
81
|
-
|
82
|
-
|
102
|
+
chooser_button = FXButton.new(combo, '...')
|
103
|
+
chooser_button.connect(SEL_COMMAND) {
|
83
104
|
dialog = FXFileDialog.new(self, "Choose browser")
|
84
105
|
dialog.filename = @browserField.getText
|
85
106
|
dialog.selectMode = SELECTFILE_EXISTING
|
86
107
|
unless dialog.execute == 0
|
87
|
-
|
88
|
-
|
108
|
+
@browserField.setText(dialog.filename)
|
109
|
+
browser_changed
|
110
|
+
end
|
111
|
+
}
|
112
|
+
end
|
113
|
+
|
114
|
+
def add_tab_html_to(tabs)
|
115
|
+
tab = add_tab(tabs, "Html")
|
116
|
+
HtmlOptionsWidget.new(tab, @options)
|
117
|
+
end
|
118
|
+
|
119
|
+
def add_tab_ftp_to(tabs)
|
120
|
+
tab = add_tab(tabs, "Upload")
|
121
|
+
frame = FXMatrix.new(tab, 2, MATRIX_BY_COLUMNS)
|
122
|
+
add_label_to(frame, "FTP server:")
|
123
|
+
server_field = FXTextField.new(frame, 32)
|
124
|
+
server_field.setLayoutHints(LAYOUT_FILL_X|LAYOUT_FILL_COLUMN)
|
125
|
+
server_field.setText(ruby_2_fox(@options.ftpHost))
|
126
|
+
server_field.connect(SEL_COMMAND) {
|
127
|
+
@options.ftpHost = fox_2_ruby(server_field.getText)
|
128
|
+
}
|
129
|
+
add_label_to(frame, "User:")
|
130
|
+
user_field = FXTextField.new(frame, 32)
|
131
|
+
user_field.setLayoutHints(LAYOUT_FILL_X|LAYOUT_FILL_COLUMN)
|
132
|
+
user_field.setText(@options.ftpUser)
|
133
|
+
user_field.connect(SEL_COMMAND) {
|
134
|
+
@options.ftpUser = fox_2_ruby(user_field.getText)
|
135
|
+
}
|
136
|
+
add_label_to(frame, "Remote path:")
|
137
|
+
remote_path_field = FXTextField.new(frame, 32)
|
138
|
+
remote_path_field.setLayoutHints(LAYOUT_FILL_X|LAYOUT_FILL_COLUMN)
|
139
|
+
remote_path_field.setText(@options.remoteDestinationPath)
|
140
|
+
remote_path_field.connect(SEL_COMMAND) {
|
141
|
+
@options.remoteDestinationPath = fox_2_ruby(remote_path_field.getText)
|
142
|
+
}
|
143
|
+
|
144
|
+
frame = FXMatrix.new(tab, 2, MATRIX_BY_COLUMNS)
|
145
|
+
add_txt_to(frame, "Expert settings")
|
146
|
+
add_txt_to(frame, "")
|
147
|
+
add_label_to(frame, "Exclude filters:")
|
148
|
+
filters_field = FXTextField.new(frame, 32)
|
149
|
+
filters_field.setLayoutHints(LAYOUT_FILL_X|LAYOUT_FILL_COLUMN)
|
150
|
+
filters_field.setText(@options.excludeFilters.join(','))
|
151
|
+
filters_field.connect(SEL_COMMAND) {
|
152
|
+
filters_txt = fox_2_ruby(filters_field.getText)
|
153
|
+
@options.excludeFilters = filters_txt.split(',').
|
154
|
+
collect { |s| s.strip }.
|
155
|
+
reject { |s| s.length == 0 }
|
156
|
+
}
|
157
|
+
end
|
158
|
+
|
159
|
+
def add_tab_experimental_to(tabs)
|
160
|
+
tab = add_tab(tabs, "Experimental")
|
161
|
+
msg = "These options are old or experimental." +
|
162
|
+
"\nDon't change them unless you really need to."
|
163
|
+
add_txt_to(tab, msg)
|
164
|
+
cb = FXCheckButton.new(tab,
|
165
|
+
'Preselect directories',
|
166
|
+
nil, 0, cb_flags)
|
167
|
+
cb.setCheck(@options.preselectDirectories)
|
168
|
+
cb.connect(SEL_COMMAND) { |sender, sel, ptr|
|
169
|
+
@options.preselectDirectories = ptr
|
170
|
+
}
|
171
|
+
cb = FXCheckButton.new(tab,
|
172
|
+
'Show preview pane',
|
173
|
+
nil, 0, cb_flags)
|
174
|
+
cb.setCheck(@options.usePreview)
|
175
|
+
cb.connect(SEL_COMMAND) { |sender, sel, ptr|
|
176
|
+
@options.usePreview = ptr
|
177
|
+
}
|
178
|
+
cb = FXCheckButton.new(tab,
|
179
|
+
'Use HTML tables',
|
180
|
+
nil, 0, cb_flags)
|
181
|
+
cb.setCheck(@options.useTable)
|
182
|
+
cb.connect(SEL_COMMAND) { |sender, sel, ptr|
|
183
|
+
@options.useTable = ptr
|
184
|
+
}
|
185
|
+
cb = FXCheckButton.new(tab,
|
186
|
+
'Styles sample',
|
187
|
+
nil, 0, cb_flags)
|
188
|
+
cb.setCheck(@options.stylesSample)
|
189
|
+
cb.connect(SEL_COMMAND) { |sender, sel, ptr|
|
190
|
+
@options.stylesSample = ptr
|
191
|
+
}
|
192
|
+
|
193
|
+
size_frame = FXHorizontalFrame.new(tab, FRAME_NONE, 0, 0, 0 , 0, 0, 0, 0, 0)
|
194
|
+
add_txt_to(size_frame, "Thumbnail size:")
|
195
|
+
thumb_width_field = FXTextField.new(size_frame, 4)
|
196
|
+
add_label_to(size_frame, " x ")
|
197
|
+
thumb_height_field = FXTextField.new(size_frame, 4)
|
198
|
+
thumb_width_field.setText(ruby_2_fox(@options.thumbWidth.to_s))
|
199
|
+
thumb_height_field.setText(ruby_2_fox(@options.thumbHeight.to_s))
|
200
|
+
thumb_width_field.connect(SEL_COMMAND) { |sender, sel, ptr|
|
201
|
+
begin
|
202
|
+
@options.thumbWidth = fox_2_ruby(thumb_width_field.getText).to_i
|
203
|
+
rescue StandardError => ex
|
204
|
+
thumb_width_field.setText(ruby_2_fox(@options.thumbWidth.to_s))
|
205
|
+
end
|
206
|
+
}
|
207
|
+
thumb_height_field.connect(SEL_COMMAND) { |sender, sel, ptr|
|
208
|
+
begin
|
209
|
+
@options.thumbHeight = fox_2_ruby(thumb_height_field.getText).to_i
|
210
|
+
rescue StandardError => ex
|
211
|
+
thumb_height_field.setText(ruby_2_fox(@options.thumbHeight.to_s))
|
89
212
|
end
|
90
213
|
}
|
91
|
-
addOkCancelButtonsTo(basicFrame)
|
92
214
|
end
|
93
215
|
|
94
|
-
def
|
95
|
-
@options.browser = @shell.
|
216
|
+
def browser_changed
|
217
|
+
@options.browser = @shell.ruby_path(fox_2_ruby(@browserField.getText))
|
96
218
|
end
|
97
219
|
|
98
|
-
def
|
99
|
-
@rbFxruby.setCheck(@options.
|
100
|
-
@rbNconvert.setCheck(@options.
|
101
|
-
@rbRmagick.setCheck(@options.
|
220
|
+
def update_processor
|
221
|
+
@rbFxruby.setCheck(@options.use_fxruby?)
|
222
|
+
@rbNconvert.setCheck(@options.use_nconvert?)
|
223
|
+
@rbRmagick.setCheck(@options.use_rmagick?)
|
102
224
|
end
|
103
225
|
|
104
226
|
def validate
|