Exemplo n.º 1
0
void BGDialog::desktopResized()
{
    for (int j = 0; j < m_renderer.size(); ++j) {
        KBackgroundRenderer *r = m_renderer[j];
        if (r->isActive())
            r->stop();
        r->desktopResized();
    }
    eRenderer()->start(true);
}
Exemplo n.º 2
0
void BGDialog::slotSecondaryColor(const QColor &color)
{
    KBackgroundRenderer *r = eRenderer();

    if (color == r->colorB())
        return;

    r->stop();
    r->setColorB(color);
    r->start(true);
    m_copyAllScreens = true;
    emit changed(true);
}
Exemplo n.º 3
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.º 4
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.º 5
0
void BGDialog::slotAdvanced()
{
    KBackgroundRenderer *r = eRenderer();

    m_previewUpdates = false;
    BGAdvancedDialog dlg(r, window());

    if (!m_pMonitorArrangement->isEnabled()) {
        dlg.makeReadOnly();
        dlg.exec();
        return;
    }

#if 0
    if (m_pGlobals->limitCache())
        dlg.setCacheSize(m_pGlobals->cacheSize());
    else
        dlg.setCacheSize(0);
#endif

    if (!dlg.exec()) {
        m_previewUpdates = true;
        return;
    }

#if 0
    int cacheSize = dlg.cacheSize();
    if (cacheSize) {
        m_pGlobals->setCacheSize(cacheSize);
        m_pGlobals->setLimitCache(true);
    } else {
        m_pGlobals->setLimitCache(false);
    }
#endif

    r->stop();
    m_previewUpdates = true;
    r->start(true);

    updateUI();
    emit changed(true);
}
Exemplo n.º 6
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.º 7
0
void BGDialog::slotPattern(int pattern)
{
    KBackgroundRenderer *r = eRenderer();
    r->stop();
    bool bSecondaryEnabled = true;
    if (pattern < NR_PREDEF_PATTERNS) {
        if (pattern == 0) {
            r->setBackgroundMode(KBackgroundSettings::Flat);
            bSecondaryEnabled = false;
        } else {
            r->setBackgroundMode(pattern - 1 + KBackgroundSettings::HorizontalGradient);
        }
    } else {
        r->setBackgroundMode(KBackgroundSettings::Pattern);
        r->setPatternName(m_patterns[pattern - NR_PREDEF_PATTERNS]);
    }
    r->start(true);
    m_colorSecondary->setEnabled(bSecondaryEnabled);

    m_copyAllScreens = true;
    emit changed(true);
}
Exemplo n.º 8
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);
}