Class: ProgressBar::KDialog
- Inherits:
-
Base
- Object
- Base
- ProgressBar::KDialog
show all
- Defined in:
- lib/progress-bar.rb
Instance Attribute Summary collapse
Attributes inherited from Base
#i, #max, #startts, #text
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Base
#done_dur, #done_rel, #increment!, #total_dur
Constructor Details
#initialize(max, text = nil, title: nil, **_options) ⇒ KDialog
Returns a new instance of KDialog.
181
182
183
184
185
186
187
188
|
# File 'lib/progress-bar.rb', line 181
def initialize max, text = nil, title: nil, **_options
super max, text
text = @text
text = nil if text.nil? or text.empty?
title = nil if title.nil? or title.empty?
@title = title
@errors = []
end
|
Instance Attribute Details
#dialog_object ⇒ Object
Returns the value of attribute dialog_object.
179
180
181
|
# File 'lib/progress-bar.rb', line 179
def dialog_object
@dialog_object
end
|
#dialog_object_path ⇒ Object
Returns the value of attribute dialog_object_path.
179
180
181
|
# File 'lib/progress-bar.rb', line 179
def dialog_object_path
@dialog_object_path
end
|
#dialog_service_path ⇒ Object
Returns the value of attribute dialog_service_path.
179
180
181
|
# File 'lib/progress-bar.rb', line 179
def dialog_service_path
@dialog_service_path
end
|
#errors ⇒ Object
Returns the value of attribute errors.
179
180
181
|
# File 'lib/progress-bar.rb', line 179
def errors
@errors
end
|
Class Method Details
.kdialog(*a) ⇒ Object
216
217
218
219
220
|
# File 'lib/progress-bar.rb', line 216
def self.kdialog *a
windowid = ENV['WINDOWID']
windowid = (windowid.is_a?(String) && !windowid.empty?) ? ['--attach', windowid] : []
system 'kdialog', *windowid, *a
end
|
Instance Method Details
#change_progress ⇒ Object
223
224
225
226
227
228
229
230
|
# File 'lib/progress-bar.rb', line 223
def change_progress()
@dialog_object['value'] = i
raise Interrupt if @dialog_object.wasCancelled
rescue DBus::Error
raise Interrupt if $!.name == 'org.freedesktop.DBus.Error.ServiceUnknown'
raise
end
|
#change_text ⇒ Object
232
233
234
235
236
237
238
|
# File 'lib/progress-bar.rb', line 232
def change_text()
@dialog_object.setLabelText text
raise Interrupt if @dialog_object.wasCancelled
rescue DBus::Error
raise Interrupt if $!.name == 'org.freedesktop.DBus.Error.ServiceUnknown'
raise
end
|
#error(text) ⇒ Object
240
241
242
|
# File 'lib/progress-bar.rb', line 240
def error text
kdialog '--error', text
end
|
#finish ⇒ Object
244
245
246
247
248
|
# File 'lib/progress-bar.rb', line 244
def finish()
return if @finished
@dialog_object.close rescue DBus::Error
@finished = true
end
|
#kdialog(*a) ⇒ Object
221
|
# File 'lib/progress-bar.rb', line 221
def kdialog(*a) self.class.kdialog *a end
|
#max=(val) ⇒ Object
250
251
252
253
|
# File 'lib/progress-bar.rb', line 250
def max= val
super val
@dialog_object['maximum'] = val
end
|
#possible? ⇒ Boolean
190
191
192
193
|
# File 'lib/progress-bar.rb', line 190
def possible?
path = Pathname.new `which kdialog`.chomp
$?.exitstatus and path.executable?
end
|
#start ⇒ Object
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
|
# File 'lib/progress-bar.rb', line 195
def start
@finished = false
args = ['kdialog', @title ? ['--title', @title] : [], '--progressbar', @text || '.', @max].flatten.compact.map &:to_s
@dialog_service_path, @dialog_object_path =
IO.popen( args, 'r', &:readlines).join( "\n").split ' '
@dialog_bus = DBus.session_bus
@dialog_service = @dialog_bus[@dialog_service_path]
@dialog_object = @dialog_service[ @dialog_object_path]
@dialog_object.introspect
@dialog_object.showCancelButton 1
super
change_text if text.nil?
change_progress
self
rescue DBus::Error
raise Interrupt if $!.name == 'org.freedesktop.DBus.Error.ServiceUnknown'
raise
end
|