void EbookController::SetDoc(Doc newDoc, int startReparseIdxArg, DisplayMode displayMode) { CrashIf(!newDoc.IsDocLoaded()); currPageReparseIdx = startReparseIdxArg; if ((size_t)currPageReparseIdx >= newDoc.GetHtmlDataSize()) currPageReparseIdx = 0; CloseCurrentDocument(); doc = newDoc; // displayMode could be any value if alternate UI was used, we have to limit it to // either DM_SINGLE_PAGE or DM_FACING if (DM_AUTOMATIC == displayMode) displayMode = gGlobalPrefs->defaultDisplayModeEnum; SetDisplayMode(displayMode); TriggerLayout(); UpdateStatus(); }
EbookFormattingThread::EbookFormattingThread(Doc doc, HtmlFormatterArgs *args, EbookController *ctrl, int reparseIdx, ControllerCallback *cb) : doc(doc), formatterArgs(args), cb(cb), controller(ctrl), pageCount(0), reparseIdx(reparseIdx), pagesAfterReparseIdx(0) { CrashIf(reparseIdx < 0); AssertCrash(doc.IsDocLoaded() || (doc.IsNone() && (nullptr != args->htmlStr))); }