$qid = key($qformdata->requiredbutton);
     if ($questionnaire->questions[$qid]->required == 'y') {
         $questionnaire->questions[$qid]->set_required(false);
     } else {
         $questionnaire->questions[$qid]->set_required(true);
     }
     $reload = true;
 } else {
     if (isset($qformdata->addqbutton)) {
         if ($qformdata->type_id == QUESPAGEBREAK) {
             // Adding section break is handled right away....
             $questionrec = new stdClass();
             $questionrec->survey_id = $qformdata->sid;
             $questionrec->type_id = QUESPAGEBREAK;
             $questionrec->content = 'break';
             $question = \mod_questionnaire\question\base::question_builder(QUESPAGEBREAK);
             $question->add($questionrec);
             $reload = true;
         } else {
             // Switch to edit question screen.
             $action = 'question';
             $qtype = $qformdata->type_id;
             $qid = 0;
             $reload = true;
         }
     } else {
         if (isset($qformdata->movebutton)) {
             // Nothing I do will seem to reload the form with new data, except for moving away from the page, so...
             redirect($CFG->wwwroot . '/mod/questionnaire/questions.php?id=' . $questionnaire->cm->id . '&moveq=' . key($qformdata->movebutton));
             $reload = true;
         } else {
/**
 * Code snippet used to set up the questionform.
 */
function questionnaire_prep_for_questionform($questionnaire, $qid, $qtype)
{
    $context = context_module::instance($questionnaire->cm->id);
    if ($qid != 0) {
        $question = clone $questionnaire->questions[$qid];
        $question->qid = $question->id;
        $question->sid = $questionnaire->survey->id;
        $question->id = $questionnaire->cm->id;
        $draftideditor = file_get_submitted_draft_itemid('question');
        $content = file_prepare_draft_area($draftideditor, $context->id, 'mod_questionnaire', 'question', $qid, array('subdirs' => true), $question->content);
        $question->content = array('text' => $content, 'format' => FORMAT_HTML, 'itemid' => $draftideditor);
    } else {
        $question = \mod_questionnaire\question\base::question_builder($qtype);
        $question->sid = $questionnaire->survey->id;
        $question->id = $questionnaire->cm->id;
        $question->type_id = $qtype;
        $question->type = '';
        $draftideditor = file_get_submitted_draft_itemid('question');
        $content = file_prepare_draft_area($draftideditor, $context->id, 'mod_questionnaire', 'question', null, array('subdirs' => true), '');
        $question->content = array('text' => $content, 'format' => FORMAT_HTML, 'itemid' => $draftideditor);
    }
    return $question;
}