bool PDFRenderTask::is_page_out_of_date()
{
    // check whether the page is in request list
    bool out_of_date = !(doc_ctrl->get_prerender_policy()->get_requests().contains(
                         page_number));

    if (out_of_date)
    {
        return out_of_date;
    }

    PDFRenderer *renderer = doc_ctrl->get_renderer();
    // check the render setting
    if (page_render_attr.get_zoom_setting() !=
        renderer->get_render_attr().get_zoom_setting() ||
        page_render_attr.get_rotate() !=
        renderer->get_render_attr().get_rotate())
    {
        out_of_date = true;
    }

    return out_of_date;
}