Example #1
0
void SvgHandler::reTint()
{
    The::svgTinter()->init();
    if ( !loadSvg( m_themeFile ))
        warning() << "Unable to load theme file: " << m_themeFile;
    emit retinted();
}
Example #2
0
QPixmap SvgHandler::renderSvg( const QString &name, const QString& keyname, int width, int height, const QString& element )
{
    QPixmap pixmap( width, height );
    pixmap.fill( Qt::transparent );

    QReadLocker readLocker( &m_lock );
    if( ! m_renderers[name] )
    {
        readLocker.unlock();
        if( !loadSvg( name ) )
            return pixmap;
        readLocker.relock();
    }

    const QString key = QString("%1:%2x%3")
        .arg( keyname )
        .arg( width )
        .arg( height );


    if ( !m_cache->find( key, pixmap ) ) {
//         debug() << QString("svg %1 not in cache...").arg( key );

        QPainter pt( &pixmap );
        if ( element.isEmpty() )
            m_renderers[name]->render( &pt, QRectF( 0, 0, width, height ) );
        else
            m_renderers[name]->render( &pt, element, QRectF( 0, 0, width, height ) );
  
        m_cache->insert( key, pixmap );
    }

    return pixmap;
}
Example #3
0
///Constructor
ConnectionLostTip::ConnectionLostTip(QWidget* parent) : Tip(i18n("There was a network error, trying to reconnect in 60 seconds."),parent),m_pTimer(nullptr),m_Counter(0),
m_RenderCache(QSize(100,100),QImage::Format_ARGB32)
{
   setTimeOut(60);
   loadSvg(QStandardPaths::locate(QStandardPaths::GenericDataLocation, "ring-kde/tips/reload.svg"));
   connect(this,SIGNAL(visibilityChanged(bool)),this,SLOT(startAnimation(bool)));
}
Example #4
0
void ToolBarSizeButton::mousePressEvent(QMouseEvent *event)
{
    setNextPenSize();
    loadSvg();

    // Call base class implementation
    ToolBarButton::mousePressEvent(event);
}
Example #5
0
QPixmap SvgHandler::addBordersToPixmap( const QPixmap &orgPixmap, int borderWidth, const QString &name, bool skipCache )
{
    int newWidth = orgPixmap.width() + borderWidth * 2;
    int newHeight = orgPixmap.height() + borderWidth *2;

    QString key;
    if( !skipCache )
    {
        key = QString("%1:%2x%3b%4")
            .arg( name )
            .arg( newWidth )
            .arg( newHeight )
            .arg( borderWidth );
    }

    QPixmap pixmap;
    if( skipCache || !m_cache->findPixmap( key, &pixmap ) )
    {
        // Cache miss! We need to create the pixmap
        // if skipCache is true, we might actually already have fetched the image, including borders from the cache....
        // so we really need to create a blank pixmap here as well, to not pollute the cached pixmap
        pixmap = QPixmap( newWidth, newHeight );
        pixmap.fill( Qt::transparent );

        QReadLocker readLocker( &m_lock );
        if( !m_renderers[m_themeFile] )
        {
            readLocker.unlock();
            if( !loadSvg( m_themeFile ) )
            {
                return pixmap;
            }
            readLocker.relock();
        }

        QPainter pt( &pixmap );

        pt.drawPixmap( borderWidth, borderWidth, orgPixmap.width(), orgPixmap.height(), orgPixmap );

        m_renderers[m_themeFile]->render( &pt, "cover_border_topleft", QRectF( 0, 0, borderWidth, borderWidth ) );
        m_renderers[m_themeFile]->render( &pt, "cover_border_top", QRectF( borderWidth, 0, orgPixmap.width(), borderWidth ) );
        m_renderers[m_themeFile]->render( &pt, "cover_border_topright", QRectF( newWidth - borderWidth , 0, borderWidth, borderWidth ) );
        m_renderers[m_themeFile]->render( &pt, "cover_border_right", QRectF( newWidth - borderWidth, borderWidth, borderWidth, orgPixmap.height() ) );
        m_renderers[m_themeFile]->render( &pt, "cover_border_bottomright", QRectF( newWidth - borderWidth, newHeight - borderWidth, borderWidth, borderWidth ) );
        m_renderers[m_themeFile]->render( &pt, "cover_border_bottom", QRectF( borderWidth, newHeight - borderWidth, orgPixmap.width(), borderWidth ) );
        m_renderers[m_themeFile]->render( &pt, "cover_border_bottomleft", QRectF( 0, newHeight - borderWidth, borderWidth, borderWidth ) );
        m_renderers[m_themeFile]->render( &pt, "cover_border_left", QRectF( 0, borderWidth, borderWidth, orgPixmap.height() ) );
    
        if( !skipCache )
            m_cache->insertPixmap( key, pixmap );
    }

    return pixmap;
}
Example #6
0
void ImageViewer::loadImage(const QUrl& image)
{
    m_reloadRequestTimer->stop();

    m_image = image;

    if (image.path().endsWith(".svg") || image.path().endsWith(".svgz")) {
        loadSvg(image);
    } else {
        ImageLoader *loader = new ImageLoader(image, size(), this);
        connect(loader, SIGNAL(loadImage(QUrl,QSize,QImage)), this, SLOT(loadPixmap(QUrl,QSize,QImage)));
        QThreadPool::globalInstance()->start(loader);
    }
}
Example #7
0
bool Sketch::loadSvg(const char *path, const char *terrain_path)
{
  Terrain *terrain = NULL;
  if (terrain_path != NULL)
    {
      terrain = new Terrain ();
      if (!terrain->load(terrain_path))
        {
          delete terrain; terrain = NULL;
        }
    }
  bool success = loadSvg(path, terrain);
  delete terrain;
  return success;
}
Example #8
0
KSvgRenderer* SvgHandler::getRenderer( const QString& name )
{
    QReadLocker readLocker( &m_lock );
    if( ! m_renderers[name] )
    {
        readLocker.unlock();
        if( !loadSvg( name ) )
        {
            QWriteLocker writeLocker( &m_lock );
            m_renderers[name] = new KSvgRenderer();
        }
        readLocker.relock();
    }
    return m_renderers[name];
}
Example #9
0
void PluginWidget::paintEvent(QPaintEvent *e)
{
    Q_UNUSED(e);

    QPixmap pixmap;
    do
    {
        const Dock::DisplayMode displayMode = qApp->property(PROP_DISPLAY_MODE).value<Dock::DisplayMode>();

        if (displayMode == Dock::Efficient)
        {
            pixmap = loadSvg(":/icons/resources/icons/normal.svg", QSize(16, 16));
            break;
        }

        const int iconSize = std::min(width(), height()) * 0.8;
        const QSize size = QSize(iconSize, iconSize);
        const BatteryPercentageMap percentageData = m_powerInter->batteryPercentage();
        if (percentageData.isEmpty())
        {
            pixmap = loadSvg(":/icons/resources/icons/fashion.svg", size);
            break;
        }

        const BatteryStateMap stateData = m_powerInter->batteryState();
        if (stateData.isEmpty())
        {
            pixmap = loadSvg(":/icons/resources/icons/battery_unknow.svg", size);
            break;
        }

        // battery full, charged
        if (stateData.value("Display") == 4)
        {
            if (!m_hover)
                pixmap = loadSvg(":/icons/resources/icons/battery_plugged.svg", size);
            else
                pixmap = loadSvg(":/icons/resources/icons/battery_10.svg", size);
            break;
        }

        const bool onBattery = m_powerInter->onBattery();
        const int percent = std::round(percentageData.value("Display"));
        const int imageNumber = (percent / 10) & ~0x1;
        const QString image = QString(":/icons/resources/icons/battery_%1%2.svg").arg(imageNumber)
                                                                                 .arg(m_hover || onBattery ? "" : "_plugged");

        pixmap = loadSvg(image, size);
    } while (false);

    QPainter painter(this);
    painter.drawPixmap(rect().center() - pixmap.rect().center(), pixmap);
}
Example #10
0
QPixmap SvgHandler::renderSvgWithDividers(const QString & keyname, int width, int height, const QString & element)
{

    QString name = m_themeFile;
    
    QPixmap pixmap( width, height );
    pixmap.fill( Qt::transparent );

    QReadLocker readLocker( &m_lock );
    if( ! m_renderers[name] )
    {
        readLocker.unlock();
        if( ! loadSvg( name ) )
            return pixmap;
        readLocker.relock();
    }

    const QString key = QString("%1:%2x%3-div")
            .arg( keyname )
            .arg( width )
            .arg( height );


    if ( !m_cache->find( key, pixmap ) ) {
//         debug() << QString("svg %1 not in cache...").arg( key );

        QPainter pt( &pixmap );
        if ( element.isEmpty() )
            m_renderers[name]->render( &pt, QRectF( 0, 0, width, height ) );
        else
            m_renderers[name]->render( &pt, element, QRectF( 0, 0, width, height ) );


        //add dividers. 5% spacing on each side
        int margin = width / 20;
        
        m_renderers[name]->render( &pt, "divider_top", QRectF( margin, 0 , width - 1 * margin, 1 ) );
        m_renderers[name]->render( &pt, "divider_bottom", QRectF( margin, height - 1 , width - 2 * margin, 1 ) );
    
        m_cache->insert( key, pixmap );
    }

    return pixmap;

}
Example #11
0
QPixmap SvgHandler::renderSvg( const QString &name,
                               const QString& keyname,
                               int width,
                               int height,
                               const QString& element,
                               bool skipCache )
{
    QString key;
    if( !skipCache )
    {
        key = QString("%1:%2x%3")
            .arg( keyname )
            .arg( width )
            .arg( height );
    }

    QPixmap pixmap;
    if( skipCache || !m_cache->findPixmap( key, &pixmap ) )
    {
        pixmap = QPixmap( width, height );
        pixmap.fill( Qt::transparent );

        QReadLocker readLocker( &m_lock );
        if( ! m_renderers[name] )
        {
            readLocker.unlock();
            if( !loadSvg( name ) )
            {
                return pixmap;
            }
            readLocker.relock();
        }

        QPainter pt( &pixmap );
        if ( element.isEmpty() )
            m_renderers[name]->render( &pt, QRectF( 0, 0, width, height ) );
        else
            m_renderers[name]->render( &pt, element, QRectF( 0, 0, width, height ) );
  
        if( !skipCache )
            m_cache->insertPixmap( key, pixmap );
    }

    return pixmap;
}
void ToolBarSandButton::mousePressEvent(QMouseEvent *event)
{
    if (pressed) {
        setNextPen();
        loadSvg();
        emit buttonPressed(type);
        pressed = true;
        event->ignore(); // Move event goes to ToolBarWidget
        repaint();
    } else {
        if (m_type == ToolBarSandButton::EAddSand) {
            this->type = ToolBarButton::EAddSand;
        } else {
            this->type = ToolBarButton::ERemoveSand;
        }
        emit buttonPressed(type);
        pressed = true;
        repaint();
        event->ignore(); // Move event goes to ToolBarWidget
        repaint();
    }

}
// -----------------------------------------------------------------------------
// WebCannedImages::GetImage
// Two-phased constructor.
// -----------------------------------------------------------------------------
//
TCannedImageData& WebCannedImages::getImage( TInt imgid )
    {

  // load canned image on demond
  TCannedImageData& img = m_imgarray[imgid];
  if( img.m_img == NULL )
    {
#ifndef __SCALABLE_ICONS
    TRAP_IGNORE( WebCannedImages::loadImageDirL(imgid, *m_mbmfile, img));
#else
        switch (imgid)
            {
#ifdef __BROWSER_SDK
            case EImageMissing:
                loadSvg(EMbmWebkiticons_sdkQgn_indi_wml_image_not_shown,
                    KAknsIIDQgnIndiWmlImageNotShown, *m_svgfile, img);
                break;
            case EImageObject:
                loadSvg(EMbmWebkiticons_sdkQgn_prop_wml_object,
                    KAknsIIDQgnPropWmlObject, *m_svgfile, img);
                break;
            case EImageSelectArrow:
                loadSvg(EMbmWebkiticons_sdkQgn_prop_wml_selectarrow,
                    KAknsIIDQgnPropWmlSelectarrow, *m_svgfile, img);
                break;
            case EImageSelectFile:
                loadSvg(EMbmWebkiticons_sdkQgn_prop_wml_selectfile,
                    KAknsIIDQgnPropWmlSelectfile, *m_svgfile, img);
                break;
            case EImageRadioButtonOff:
                loadSvg(EMbmWebkiticons_sdkQgn_prop_wml_radiobutt_off,
                    KAknsIIDQgnPropWmlRadiobuttOff, *m_svgfile, img);
                break;
            case EImageRadioButtonOn:
                loadSvg(EMbmWebkiticons_sdkQgn_prop_wml_radiobutt_on,
                    KAknsIIDQgnPropWmlRadiobuttOn, *m_svgfile, img);
                break;
            case EImageCheckBoxOff:
                loadSvg(EMbmWebkiticons_sdkQgn_prop_wml_checkbox_off,
                    KAknsIIDQgnPropWmlCheckboxOff, *m_svgfile, img);
                break;
            case EImageCheckBoxOn:
                loadSvg(EMbmWebkiticons_sdkQgn_prop_wml_checkbox_on,
                    KAknsIIDQgnPropWmlCheckboxOn, *m_svgfile, img);
                break;
            case EImageFingerBitmap:
                loadSvg(EMbmWebkiticons_sdkQgn_indi_viewer_pointer_hand,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
            case EImageArrowBitmap:
                loadSvg(EMbmWebkiticons_sdkQgn_indi_viewer_pointer,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
            case EImageWaitArrowBitmap:
                loadSvg(EMbmWebkiticons_sdkQgn_indi_viewer_pointer_wait,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
            case EImageUrlCall:
                loadSvg(EMbmWebkiticons_sdkQgn_indi_browser_url_call,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
            case EImageUrlEmail:
                loadSvg(EMbmWebkiticons_sdkQgn_indi_browser_url_email,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
            case EImageUrlMm:
                loadSvg(EMbmWebkiticons_sdkQgn_indi_browser_url_mm,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
            case EImageUrlMms:
                loadSvg(EMbmWebkiticons_sdkQgn_indi_browser_url_mms,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
            case EImageUrlPage:
                loadSvg(EMbmWebkiticons_sdkQgn_indi_browser_url_page,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
            case EImageUrlVideo:
                loadSvg(EMbmWebkiticons_sdkQgn_indi_browser_url_video,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
#else
            case EImageMissing:
                loadSvg(EMbmWebkiticonsQgn_indi_wml_image_not_shown,
                    KAknsIIDQgnIndiWmlImageNotShown, *m_svgfile, img);
                break;
            case EImageObject:
                loadSvg(EMbmWebkiticonsQgn_prop_wml_object,
                    KAknsIIDQgnPropWmlObject, *m_svgfile, img);
                break;
            case EImageSelectArrow:
                loadSvg(EMbmWebkiticonsQgn_prop_wml_selectarrow,
                    KAknsIIDQgnPropWmlSelectarrow, *m_svgfile, img);
                break;
            case EImageSelectFile:
                loadSvg(EMbmWebkiticonsQgn_prop_wml_selectfile,
                    KAknsIIDQgnPropWmlSelectfile, *m_svgfile, img);
                break;
            case EImageRadioButtonOff:
                loadSvg(EMbmWebkiticonsQgn_prop_wml_radiobutt_off,
                    KAknsIIDQgnPropWmlRadiobuttOff, *m_svgfile, img);
                break;
            case EImageRadioButtonOn:
                loadSvg(EMbmWebkiticonsQgn_prop_wml_radiobutt_on,
                    KAknsIIDQgnPropWmlRadiobuttOn, *m_svgfile, img);
                break;
            case EImageCheckBoxOff:
                loadSvg(EMbmWebkiticonsQgn_prop_wml_checkbox_off,
                    KAknsIIDQgnPropWmlCheckboxOff, *m_svgfile, img);
                break;
            case EImageCheckBoxOn:
                loadSvg(EMbmWebkiticonsQgn_prop_wml_checkbox_on,
                    KAknsIIDQgnPropWmlCheckboxOn, *m_svgfile, img);
                break;
            case EImageFingerBitmap:
                loadSvg(EMbmWebkiticonsQgn_indi_viewer_pointer_hand,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
            case EImageArrowBitmap:
                loadSvg(EMbmWebkiticonsQgn_indi_viewer_pointer,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
            case EImageWaitArrowBitmap:
                loadSvg(EMbmWebkiticonsQgn_indi_viewer_pointer_wait,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
            case EImageUrlCall:
                loadSvg(EMbmWebkiticonsQgn_indi_browser_url_call,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
            case EImageUrlEmail:
                loadSvg(EMbmWebkiticonsQgn_indi_browser_url_email,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
            case EImageUrlMm:
                loadSvg(EMbmWebkiticonsQgn_indi_browser_url_mm,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
            case EImageUrlMms:
                loadSvg(EMbmWebkiticonsQgn_indi_browser_url_mms,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
            case EImageUrlPage:
                loadSvg(EMbmWebkiticonsQgn_indi_browser_url_page,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
            case EImageUrlVideo:
                loadSvg(EMbmWebkiticonsQgn_indi_browser_url_video,
                    KAknsIIDDefault, *m_svgfile, img);
                break;

#endif
            case EImageSmartLinkPhone:
                loadSvg(EMbmWebkiticonsQgn_prop_nrtyp_phone,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
            case EImageSmartLinkEmail:
                loadSvg(EMbmWebkiticonsQgn_indi_ai_nt_message,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
            case EImageIBeam:
                loadSvg(EMbmWebkiticonsQgn_indi_viewer_pointer_text,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
           case EImageEscFullScreen:
                loadSvg(EMbmWebkiticonsQgn_indi_button_exit_fs,
                    KAknsIIDDefault, *m_svgfile, img);
                break;
            case EImageSelectMulti:
                TRAP_IGNORE(loadImageDirL(EMbmWebkitSelectmulti, *m_mbmfile, img ));
                break;
            default:
                TRAP_IGNORE(loadImageDirL(imgid, *m_mbmfile, img));
            }
#endif // __SCALABLE_ICONS
    }

  return img;

    }
Example #14
0
void ToolBarSizeButton::resizeEvent(QResizeEvent *)
{
    loadSvg();
}
Example #15
0
///Constructor
DialPadTip::DialPadTip(QWidget* parent) : Tip(i18n("Use the dialpad below or start typing a number. Press enter or double click on the call to launch the call. Press escape or \"Hang Up\" to end the call."),parent)

{
   loadSvg(QStringLiteral(":/tip/icons/tips/keyboard.svg"));
}
Example #16
0
///Constructor
DialPadTip::DialPadTip(QWidget* parent) : Tip(i18n("Use the dialpad below or start typing a number. Press enter or double click on the call to launch the call. Press escape or \"Hang Up\" to end the call."),parent)

{
   loadSvg(QStandardPaths::locate(QStandardPaths::GenericDataLocation, "ring-kde/tips/keyboard.svg"));
}
Example #17
0
bool KGrTheme::load (const QString& themeFilepath)
{
    kDebug() << "New Theme -" << themeFilepath;
    if (!m_themeFilepath.isEmpty() && (themeFilepath == m_themeFilepath)) {
        kDebug() << "NO CHANGE OF THEME ...";
        return true;					// No change of theme.
    }

    KConfig theme (themeFilepath, KConfig::SimpleConfig);
    KConfigGroup group = theme.group ("KDEGameTheme");	// Get graphics config.

    // Check if the theme asks us to draw a border and set the specified color.
    themeDrawBorder = group.readEntry ("DrawCanvasBorder", 0);

    // The border color (default black) is also used as the view's background
    // color, to soften the ugly look of empty rectangles during repainting.
    QString themeBorderColor = group.readEntry ("BorderColor", "#000000");
    if (! themeBorderColor.isEmpty()) {
        m_borderColor.setNamedColor (themeBorderColor);
    }

    // If specified, also set the title color.
    QString themeTextColor = group.readEntry ("TextColor", "");
    if (! themeTextColor.isEmpty()) {
        m_textColor.setNamedColor (themeTextColor);
    }

    kDebug() << "Border" << themeDrawBorder << "Color" << themeBorderColor;

    m_themeFilepath   = themeFilepath;

    int filePos       = themeFilepath.lastIndexOf ("/") + 1;
    QString dirName   = themeFilepath.left (filePos);
    themeName         = themeFilepath.mid (filePos);
    themeName         = themeName.left (themeName.indexOf ("."));

    QString filepath  = group.readEntry ("Set", "");
    svgSetFilepath    = dirName + filepath;

    filepath          = group.readEntry ("Actors", "default/actors.svg");
    svgActorsFilepath = dirName + filepath;

    // Force the cache to reload SVG when it cannot find a pixmap in the cache.
    svgLoaded = false;

    // If theme NEVER loaded or cache outdated, load SVG (we need tile-counts).
    KConfigGroup themeGroup (KGlobal::config(), "Theme_" + themeName);
    bool loadedBefore = themeGroup.readEntry ("LoadedBefore", false);
    bool cacheOK = createPixCache();
    if (! (loadedBefore && cacheOK)) {
        kDebug() << "Calling loadSvg(), cacheOK:" << cacheOK
                 << "loadedBefore:" << loadedBefore;
        if (! (loadSvg())) {
            return false;
        }
    }
    numBackgrounds = themeGroup.readEntry ("numBackgrounds", -1);

    // Save the user's selected theme in KDE's config-group data for the game.
    KConfigGroup gameGroup (KGlobal::config(), "KDEGame");
    gameGroup.writeEntry ("ThemeFilepath", themeFilepath);
    gameGroup.sync();			// Ensure that the entry goes to disk.

    return true;
}