//Ajustement à l'écran
void PagesContainer::fitScreen()
{
    if(m_buffer->getNumberOfBlocs() == 0) return;

    //Ratio hauteur / largeur de l'écran
    double screenRatio = (double)m_parentScrollArea->maximumViewportSize().height() / m_parentScrollArea->maximumViewportSize().width();

    //Déterminer si l'ajustement à l'écran correspond à un ajustement à la largeur ou à la hauteur
    for(int i = 0 ; i < m_buffer->getNumberOfBlocs() ; i++){
        if (m_buffer->getPagesRatio(i) < screenRatio) fitWidth(i);
        else fitHeight(i);
    }

}
//Application de la politique de redimentionnement
void PagesContainer::applyResizePolicy()
{
    if (m_buffer->getNumberOfBlocs() == 0) return;

    finishThreads();
    if (m_resizePolicy & FIT_WIDTH)
        fitWidth();
    else if (m_resizePolicy & FIT_HEIGHT)
        fitHeight();
    else if (m_resizePolicy & FIT_SCREEN)
        fitScreen();
    else
        refresh();
}
示例#3
0
void ImageViewer::applyFitMode() {
    switch(imageFitMode) {
        case FIT_ORIGINAL:
            fitNormal();
            break;
        case FIT_WIDTH:
            fitWidth();
            break;
        case FIT_WINDOW:
            fitWindow();
            break;
        default: /* FREE etc */
            break;
    }
}
void PagesContainer::setPersonalPolicy(int newWidth)
{
    setResizePolicy(PERSONAL);
    finishThreads();
    fitWidth(NONE, newWidth);
}