class ComplexWizard
Public Class Methods
new(parent = nil)
click to toggle source
Calls superclass method
# File examples/dialogs/complexwizard/complexwizard.rb, line 33 def initialize(parent = nil) super(parent) @history = [] @cancelButton = Qt::PushButton.new(tr("Cancel")) @backButton = Qt::PushButton.new(tr("< &Back")) @nextButton = Qt::PushButton.new(tr("Next >")) @finishButton = Qt::PushButton.new(tr("&Finish")) connect(@cancelButton, SIGNAL('clicked()'), self, SLOT('reject()')) connect(@backButton, SIGNAL('clicked()'), self, SLOT('backButtonClicked()')) connect(@nextButton, SIGNAL('clicked()'), self, SLOT('nextButtonClicked()')) connect(@finishButton, SIGNAL('clicked()'), self, SLOT('accept()')) @buttonLayout = Qt::HBoxLayout.new @buttonLayout.addStretch(1) @buttonLayout.addWidget(@cancelButton) @buttonLayout.addWidget(@backButton) @buttonLayout.addWidget(@nextButton) @buttonLayout.addWidget(@finishButton) @mainLayout = Qt::VBoxLayout.new @mainLayout.addLayout(@buttonLayout) setLayout(@mainLayout) end
Public Instance Methods
backButtonClicked()
click to toggle source
# File examples/dialogs/complexwizard/complexwizard.rb, line 67 def backButtonClicked() oldPage = @history.pop() oldPage.resetPage() switchPage(oldPage) end
completeStateChanged()
click to toggle source
# File examples/dialogs/complexwizard/complexwizard.rb, line 81 def completeStateChanged() currentPage = @history.last() if currentPage.isLastPage() @finishButton.enabled = currentPage.isComplete() else @nextButton.enabled = currentPage.isComplete() end end
historyPages()
click to toggle source
# File examples/dialogs/complexwizard/complexwizard.rb, line 59 def historyPages() return @history end
nextButtonClicked()
click to toggle source
# File examples/dialogs/complexwizard/complexwizard.rb, line 73 def nextButtonClicked() oldPage = @history.last() newPage = oldPage.nextPage() newPage.resetPage() @history.push(newPage) switchPage(oldPage) end
setFirstPage(page)
click to toggle source
# File examples/dialogs/complexwizard/complexwizard.rb, line 61 def setFirstPage(page) page.resetPage() @history.push(page) switchPage(nil) end
switchPage(oldPage)
click to toggle source
# File examples/dialogs/complexwizard/complexwizard.rb, line 90 def switchPage(oldPage) if !oldPage.nil? oldPage.hide() @mainLayout.removeWidget(oldPage) disconnect(oldPage, SIGNAL('completeStateChanged()'), self, SLOT('completeStateChanged()')) end newPage = @history.last() @mainLayout.insertWidget(0, newPage) newPage.show() newPage.setFocus() connect(newPage, SIGNAL('completeStateChanged()'), self, SLOT('completeStateChanged()')) @backButton.enabled = @history.size != 1 if newPage.isLastPage() @nextButton.enabled = false @finishButton.default = true else @nextButton.default = true @finishButton.enabled = false end completeStateChanged() end