Class: Cosmos::Splash::SplashDialogBox

Inherits:
Qt::Dialog show all
Defined in:
lib/cosmos/gui/dialogs/splash.rb

Instance Method Summary collapse

Constructor Details

#initialize(parent) ⇒ SplashDialogBox

Returns a new instance of SplashDialogBox.



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/cosmos/gui/dialogs/splash.rb', line 22

def initialize(parent)
  super(parent, Qt::WindowTitleHint | Qt::CustomizeWindowHint)
  setWindowTitle(parent.windowTitle)
  setModal(true)
  layout = Qt::VBoxLayout.new

  splash_image_filename = File.join(::Cosmos::USERPATH, 'config', 'data', 'splash.gif')
  splash_image_filename = File.join(::Cosmos::PATH, 'data', 'splash.gif') unless File.exist?(splash_image_filename)
  image = Qt::Pixmap.new(splash_image_filename)
  label = Qt::Label.new
  label.setPixmap(image)
  layout.addWidget(label)

  @message_box = Qt::LineEdit.new
  @message_box.setReadOnly(true)
  layout.addWidget(@message_box)
  @progress_bar = Qt::ProgressBar.new
  layout.addWidget(@progress_bar)

  setLayout(layout)
end

Instance Method Details

#keyPressEvent(event) ⇒ Object



64
65
66
67
68
69
70
71
# File 'lib/cosmos/gui/dialogs/splash.rb', line 64

def keyPressEvent(event)
  # Don't allow the Escape key to close this dialog
  if event.key == Qt::Key_Escape
    event.ignore
  else
    super(event)
  end
end

#message=(message) ⇒ Object



44
45
46
47
48
# File 'lib/cosmos/gui/dialogs/splash.rb', line 44

def message=(message)
  Qt.execute_in_main_thread(true) do
    @message_box.setText(message)
  end
end

#message_callbackObject



56
57
58
# File 'lib/cosmos/gui/dialogs/splash.rb', line 56

def message_callback
  method(:message=)
end

#progress=(progress) ⇒ Object



50
51
52
53
54
# File 'lib/cosmos/gui/dialogs/splash.rb', line 50

def progress=(progress)
  Qt.execute_in_main_thread(true) do
    @progress_bar.setValue(progress * 100)
  end
end

#progress_callbackObject



60
61
62
# File 'lib/cosmos/gui/dialogs/splash.rb', line 60

def progress_callback
  method(:progress=)
end