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