bool MetaWindow::saveCurrentUnsavedFile(){ QMessageBox saveQuestion(QMessageBox::Question, tr("Save?"), tr("These choices have not been saved since you last made changes. Would you like to save them now?"), QMessageBox::Yes | QMessageBox::No, this); saveQuestion.setDefaultButton(QMessageBox::Yes); int shouldSave = saveQuestion.exec(); if(shouldSave == QMessageBox::Yes){ return saveFileAs(); } return true; }
FlashCardEditor::FlashCardEditor(TemplateCore *core, QWidget *parent) : TemplateEditor(core, parent), m_ui(new Ui::FlashCardEditor) { m_ui->setupUi(this); // Set validators. QRegExpValidator *author_validator = new QRegExpValidator(this); QRegExpValidator *title_validator = new QRegExpValidator(this); author_validator->setRegExp(QRegExp(".{,50}")); title_validator->setRegExp(QRegExp(".{,100}")); m_ui->m_txtAuthor->lineEdit()->setValidator(author_validator); m_ui->m_txtName->lineEdit()->setValidator(title_validator); // Set validators. QRegExpValidator *question_validator = new QRegExpValidator(this); QRegExpValidator *hint_validator = new QRegExpValidator(this); question_validator->setRegExp(QRegExp(".{,100}")); hint_validator->setRegExp(QRegExp(".{,30}")); m_ui->m_txtQuestion->lineEdit()->setValidator(question_validator); m_ui->m_txtHint->lineEdit()->setValidator(hint_validator); // Set tab order. QList<QWidget*> tab_order_widgets; tab_order_widgets << m_ui->m_txtQuestion->lineEdit() << m_ui->m_btnPictureSelect << m_ui->m_txtAnswer->lineEdit() << m_ui->m_txtHint->lineEdit() << m_ui->m_txtAuthor->lineEdit() << m_ui->m_txtName->lineEdit() << m_ui->m_listQuestions << m_ui->m_btnQuestionAdd << m_ui->m_btnQuestionRemove << m_ui->m_btnQuestionUp << m_ui->m_btnQuestionDown; for (int i = 1; i < tab_order_widgets.size(); i++) { setTabOrder(tab_order_widgets.at(i - 1), tab_order_widgets.at(i)); } m_ui->m_txtNumberOfQuestions->lineEdit()->setEnabled(false); m_ui->m_lblPictureFile->label()->setWordWrap(true); m_ui->m_txtAnswer->lineEdit()->setPlaceholderText(tr("Answer for the answer")); m_ui->m_txtHint->lineEdit()->setPlaceholderText(tr("Hint for the answer")); m_ui->m_lblPictureFile->setStatus(WidgetWithStatus::Error, QString(), tr("No picture selected")); m_ui->m_txtAuthor->lineEdit()->setPlaceholderText(tr("Author of this quiz")); m_ui->m_txtName->lineEdit()->setPlaceholderText(tr("Name of this quiz")); IconFactory *factory = IconFactory::instance(); m_ui->m_btnQuestionAdd->setIcon(factory->fromTheme("item-add")); m_ui->m_btnQuestionRemove->setIcon(factory->fromTheme("item-remove")); m_ui->m_btnQuestionUp->setIcon(factory->fromTheme("move-up")); m_ui->m_btnQuestionDown->setIcon(factory->fromTheme("move-down")); connect(m_ui->m_btnPictureSelect, SIGNAL(clicked()), this, SLOT(selectPicture())); connect(m_ui->m_txtAuthor->lineEdit(), SIGNAL(textChanged(QString)), this, SLOT(onAuthorChanged(QString))); connect(m_ui->m_txtQuestion->lineEdit(), SIGNAL(textEdited(QString)), this, SLOT(saveQuestion())); connect(m_ui->m_txtName->lineEdit(), SIGNAL(textChanged(QString)), this, SLOT(onNameChanged(QString))); connect(m_ui->m_txtAnswer->lineEdit(), SIGNAL(textEdited(QString)), this, SLOT(onAnswerChanged(QString))); connect(m_ui->m_txtHint->lineEdit(), SIGNAL(textEdited(QString)), this, SLOT(onHintChanged(QString))); connect(m_ui->m_btnQuestionAdd, SIGNAL(clicked()), this, SLOT(addQuestion())); connect(m_ui->m_btnQuestionRemove, SIGNAL(clicked()), this, SLOT(removeQuestion())); connect(m_ui->m_listQuestions, SIGNAL(currentRowChanged(int)), this, SLOT(loadQuestion(int))); connect(m_ui->m_btnQuestionUp, SIGNAL(clicked()), this, SLOT(moveQuestionUp())); connect(m_ui->m_btnQuestionDown, SIGNAL(clicked()), this, SLOT(moveQuestionDown())); setEditorsEnabled(false); updateQuestionCount(); qRegisterMetaType<FlashCardQuestion>("FlashCardQuestion"); checkAuthor(); checkName(); loadQuestion(-1); }