Exemplo n.º 1
0
void BGDialog::slotSetupMulti()
{
    KBackgroundRenderer *r = eRenderer();

    BGMultiWallpaperDialog dlg(r, window());
    if (dlg.exec() == QDialog::Accepted) {
        r->stop();
        m_slideShowRandom = r->multiWallpaperMode();
        r->setWallpaperMode(m_wallpaperPos);
        r->start(true);
        m_copyAllScreens = true;
        emit changed(true);
    }
}
Exemplo n.º 2
0
void BGDialog::slotWallpaperPos(int mode)
{
    KBackgroundRenderer *r = eRenderer();

    mode++;
    m_wallpaperPos = mode;

    if (mode == r->wallpaperMode())
        return;

    r->stop();
    r->setWallpaperMode(mode);
    r->start(true);
    m_copyAllScreens = true;
    emit changed(true);
}
Exemplo n.º 3
0
void BGDialog::defaults()
{
    m_pGlobals->setCommonScreenBackground(_defCommonScreen);
    m_pGlobals->setLimitCache(_defLimitCache);
    m_pGlobals->setCacheSize(_defCacheSize);
    m_comboWallpaperPos->setCurrentIndex(0);

    getEScreen();

    m_pGlobals->setDrawBackgroundPerScreen(false);

    KBackgroundRenderer *r = eRenderer();

    if (r->isActive())
        r->stop();

    if (QPixmap::defaultDepth() > 8)
        r->setBackgroundMode(_defBackgroundMode);
    else
        r->setBackgroundMode(KBackgroundSettings::Flat);

    r->setColorA(_defColorA);
    r->setColorB(_defColorB);
    r->setWallpaperMode(_defWallpaperMode);
    r->setMultiWallpaperMode(_defMultiMode);

    m_slideShowRandom = _defMultiMode;
    if (m_slideShowRandom == KBackgroundSettings::NoMultiRandom)
        m_slideShowRandom = KBackgroundSettings::Random;
    if (m_slideShowRandom == KBackgroundSettings::NoMulti)
        m_slideShowRandom = KBackgroundSettings::InOrder;

    r->setBlendMode(_defBlendMode);
    r->setBlendBalance(_defBlendBalance);
    r->setReverseBlending(_defReverseBlending);

    updateUI();

    m_copyAllScreens = true;
    emit changed(true);
}
Exemplo n.º 4
0
void BGDialog::slotWallpaperTypeChanged(int i)
{
    KBackgroundRenderer *r = eRenderer();
    r->stop();

    // No picture
    if (i == m_buttonGroupBackground->id(m_radioNoPicture)) { //None
        m_urlWallpaperBox->setEnabled(false);
        m_urlWallpaperButton->setEnabled(false);
        m_buttonSetupWallpapers->setEnabled(false);
        m_comboWallpaperPos->setEnabled(false);
        m_lblWallpaperPos->setEnabled(false);
        r->setWallpaperMode(KBackgroundSettings::NoWallpaper);

        if (m_slideShowRandom == KBackgroundSettings::InOrder)
            r->setMultiWallpaperMode(KBackgroundSettings::NoMulti);
        else
            r->setMultiWallpaperMode(KBackgroundSettings::NoMultiRandom);

        setBlendingEnabled(false);
    }

    // Slide show
    else if (i == m_buttonGroupBackground->id(m_radioSlideShow)) {
        m_urlWallpaperBox->setEnabled(false);
        m_urlWallpaperButton->setEnabled(false);
        m_buttonSetupWallpapers->setEnabled(true);
        m_comboWallpaperPos->setEnabled(true);
        m_lblWallpaperPos->setEnabled(true);
        setBlendingEnabled(true);

        m_comboWallpaperPos->blockSignals(true);
        m_comboWallpaperPos->setCurrentIndex(m_wallpaperPos - 1);
        m_comboWallpaperPos->blockSignals(false);

        if (r->wallpaperList().count() == 0)
            r->setWallpaperMode(KBackgroundSettings::NoWallpaper);
        else
            r->setWallpaperMode(m_wallpaperPos);

        r->setMultiWallpaperMode(m_slideShowRandom);
        setWallpaper(r->wallpaper());
        setBlendingEnabled(true);
    }

    // 1 Picture
    else if (i == m_buttonGroupBackground->id(m_radioPicture)) {
        m_urlWallpaperBox->setEnabled(true);
        m_urlWallpaperButton->setEnabled(true);
        m_buttonSetupWallpapers->setEnabled(false);
        m_lblWallpaperPos->setEnabled(true);
        m_comboWallpaperPos->setEnabled(true);
        setBlendingEnabled(true);

        if (m_slideShowRandom == KBackgroundSettings::InOrder)
            r->setMultiWallpaperMode(KBackgroundSettings::NoMulti);
        else
            r->setMultiWallpaperMode(KBackgroundSettings::NoMultiRandom);

        int j = m_urlWallpaperBox->currentIndex();
        QString path;
        for (QMap<QString, int>::ConstIterator it = m_wallpaper.constBegin();
                it != m_wallpaper.constEnd();
                ++it) {
            if (it.value() == j) {
                path = it.key();
                break;
            }
        }

        KFileMetaInfo metaInfo(path);
        if (metaInfo.isValid() && metaInfo.item("Dimensions").isValid()) {
            // If the image is greater than 800x600 default to using scaled mode,
            // otherwise default to tiled.

            QSize s = metaInfo.item("Dimensions").value().toSize();
            if (s.width() >= 800 && s.height() >= 600)
                m_wallpaperPos = KBackgroundSettings::Scaled;
            else
                m_wallpaperPos = KBackgroundSettings::Tiled;
        } else if (KMimeType::findByPath(path)->is("image/svg+xml")) {
            m_wallpaperPos = KBackgroundSettings::Scaled;
        }

        r->setWallpaperMode(m_wallpaperPos);
        m_comboWallpaperPos->blockSignals(true);
        m_comboWallpaperPos->setCurrentIndex(m_wallpaperPos - 1);
        m_comboWallpaperPos->blockSignals(false);

        r->setWallpaper(path);
    }

    r->start(true);
    m_copyAllScreens = true;
    emit changed(true);
}