Class: Yast2::Feedback
- Inherits:
-
Object
- Object
- Yast2::Feedback
- Includes:
- Yast::UIShortcuts
- Defined in:
- library/general/src/lib/yast2/feedback.rb
Overview
Class to show some feedback when doing time consuming operation
Class Method Summary collapse
-
.show(message, headline: "") {|feedback| ... } ⇒ Object
Shows a feedback popup while the given block is running.
Instance Method Summary collapse
-
#start(message, headline: "") ⇒ Object
Starts showing feedback.
-
#stop ⇒ Object
Stops showing feedback.
-
#update(message, headline: "") ⇒ Object
Updates feedback message.
Class Method Details
.show(message, headline: "") {|feedback| ... } ⇒ Object
Shows a feedback popup while the given block is running.
16 17 18 19 20 21 22 23 24 |
# File 'library/general/src/lib/yast2/feedback.rb', line 16 def show(, headline: "", &block) feedback = new feedback.start(, headline: headline) begin block.call(feedback) ensure feedback.stop end end |
Instance Method Details
#start(message, headline: "") ⇒ Object
38 39 40 41 42 43 |
# File 'library/general/src/lib/yast2/feedback.rb', line 38 def start(, headline: "") check_params!(, headline) res = Yast::UI.OpenDialog(content(, headline)) raise "Failed to open dialog, see logs." unless res end |
#stop ⇒ Object
Stops showing feedback. Use together with ##start.
48 49 50 51 52 |
# File 'library/general/src/lib/yast2/feedback.rb', line 48 def stop raise "Trying to stop feedback, but dialog is not feedback dialog" if !Yast::UI.WidgetExists(Id(MESSAGE_ID)) Yast::UI.CloseDialog end |
#update(message, headline: "") ⇒ Object
Updates feedback message. Headline can be modified only if initial feedback have non-empty feedback.
59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'library/general/src/lib/yast2/feedback.rb', line 59 def update(, headline: "") check_params!(, headline) if !headline.empty? if Yast::UI.WidgetExists(Id(HEADLINE_ID)) Yast::UI.ChangeWidget(Id(HEADLINE_ID), :Value, headline) else raise ArgumentError, "Headline is not empty for feedback, but original feedback does not have it." end end Yast::UI.ChangeWidget(Id(MESSAGE_ID), :Value, ) Yast::UI.RecalcLayout end |