void SvgHandler::reTint() { The::svgTinter()->init(); if ( !loadSvg( m_themeFile )) warning() << "Unable to load theme file: " << m_themeFile; emit retinted(); }
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; }
///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))); }
void ToolBarSizeButton::mousePressEvent(QMouseEvent *event) { setNextPenSize(); loadSvg(); // Call base class implementation ToolBarButton::mousePressEvent(event); }
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; }
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); } }
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; }
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]; }
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); }
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; }
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; }
void ToolBarSizeButton::resizeEvent(QResizeEvent *) { loadSvg(); }
///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")); }
///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")); }
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; }