#include "subtitlewizard.h" #include "subtitlepreviewpage.h" #include "moviefileselectorpage.h" #include "moviedirectoryselectorpage.h" #include "subtitlesavedpage.h" #include SubtitleWizard::SubtitleWizard(QWidget *parent) : QWizard(parent) { setWindowTitle(tr("Jason's Extraordinary Subtitler")); setOptions(QWizard::DisabledBackButtonOnLastPage | QWizard::NoBackButtonOnStartPage); connect(this, SIGNAL(currentIdChanged(int)), this, SLOT(setCustomButtons(int))); setButtonText(QWizard::CancelButton, tr("&Exit")); setButtonText(QWizard::FinishButton, tr("&Exit")); setButtonText(QWizard::CustomButton1, tr("&More Subtitles")); setButtonText(QWizard::CustomButton2, tr("&Refresh")); connect(this, SIGNAL(customButtonClicked(int)), this, SLOT(handleCustomButton(int))); setPage(1, new MovieDirectorySelectorPage); setPage(2, new MovieFileSelectorPage); m_browserPage = new SubtitleBrowserPage; setPage(3, m_browserPage); setPage(4, new SubtitlePreviewPage); setPage(5, new SubtitleSavedPage); } QSize SubtitleWizard::sizeHint() const { return m_browserPage->sizeHint(); } void SubtitleWizard::handleCustomButton(int which) { if (which == QWizard::CustomButton1) { const QVariant before = field("directory"); restart(); setField("directory", before); next(); } else if (which == QWizard::CustomButton2) currentPage()->initializePage(); } void SubtitleWizard::setCustomButtons(int id) { QList layout; switch (id) { case 2: layout << QWizard::Stretch << QWizard::CancelButton << QWizard::CustomButton2 << QWizard::FinishButton << QWizard::BackButton << QWizard::NextButton; break; case 5: layout << QWizard::Stretch << QWizard::FinishButton << QWizard::BackButton << QWizard::NextButton << QWizard::CustomButton1; break; default: layout << QWizard::Stretch << QWizard::CancelButton << QWizard::BackButton << QWizard::NextButton; break; } setButtonLayout(layout); }