//private TQPixmap* LayoutIcon::createErrorPixmap() { TQPixmap* pm = new TQPixmap(21, 14); pm->fill(Qt::white); TQPainter p(pm); p.setFont(m_labelFont); p.setPen(Qt::red); p.drawText(1, 1, pm->width(), pm->height()-2, Qt::AlignCenter, ERROR_LABEL); p.setPen(Qt::blue); p.drawText(0, 0, pm->width(), pm->height()-2, Qt::AlignCenter, ERROR_LABEL); m_pixmapCache.insert(ERROR_CODE, pm); return pm; }
const TQPixmap& LayoutIcon::findPixmap(const TQString& code_, bool showFlag, const TQString& displayName_) { TQPixmap* pm = NULL; if( code_ == ERROR_CODE ) { pm = m_pixmapCache[ERROR_CODE]; if( pm == NULL ) { pm = createErrorPixmap(); m_pixmapCache.insert(ERROR_CODE, pm); } return *pm; } TQString displayName(displayName_); if( displayName.isEmpty() ) { displayName = KxkbConfig::getDefaultDisplayName(code_); } if( displayName.length() > 3 ) displayName = displayName.left(3); const TQString pixmapKey( showFlag ? code_ + "." + displayName : displayName ); pm = m_pixmapCache[pixmapKey]; if( pm ) return *pm; TQString flag; if( showFlag ) { TQString countryCode = getCountryFromLayoutName( code_ ); flag = locate("locale", flagTemplate.arg(countryCode)); } if( flag.isEmpty() ) { pm = new TQPixmap(FLAG_MAX_WIDTH, FLAG_MAX_HEIGHT); pm->fill(Qt::gray); } else { pm = new TQPixmap(flag); dimPixmap( *pm ); #if 0 if( pm->height() < FLAG_MAX_HEIGHT ) { TQPixmap* pix = new TQPixmap(FLAG_MAX_WIDTH, FLAG_MAX_HEIGHT); pix->fill( Qt::lightGray ); // pix->fill( TQColor(tqRgba(127,127,127,255)) ); // TQBitmap mask; // mask.fill(1); // pix->setMask(mask); int dy = (pix->height() - pm->height()) / 2; copyBlt( pix, 0, dy, pm, 0, 0, -1, -1 ); // TQPixmap* px = new TQPixmap(21, 14); // px->convertFromImage(img);*/ delete pm; pm = pix; } #endif } TQPainter p(pm); p.setFont(m_labelFont); p.setPen(Qt::black); p.drawText(1, 1, pm->width(), pm->height()-2, Qt::AlignCenter, displayName); p.setPen(Qt::white); p.drawText(0, 0, pm->width(), pm->height()-2, Qt::AlignCenter, displayName); m_pixmapCache.insert(pixmapKey, pm); return *pm; }
/************************************************************************** * recalculates and repaints the pixBars **/ void KDFWidget::updateDiskBarPixmaps( void ) { if (mTabProp[usageCol]->mVisible != true) return; int size=0, w=0; for(uint i=0; i<mTabProp.size()-1; i++ ) size += mList->columnWidth(i); w=mList->width() - size - 4; if (w<0) w=0; mList->setColumnWidth(usageCol, w ); int h = mList->fontMetrics().lineSpacing()-2; if( h <= 0 ) { return; } int i=0; for(TQListViewItem *it=mList->firstChild(); it!=0;it=it->nextSibling(),i++ ) { // I can't get find() to work. The Disks::compareItems(..) is // never called. // //int pos=mDiskList->find(disk); DiskEntry dummy(it->text(deviceCol)); dummy.setMountPoint(it->text(mntCol)); int pos = -1; for( u_int i=0; i<mDiskList.count(); i++ ) { DiskEntry *item = mDiskList.at(i); int res = dummy.deviceName().compare( item->deviceName() ); if( res == 0 ) { res = dummy.mountPoint().compare( item->mountPoint() ); } if( res == 0 ) { pos = i; break; } } DiskEntry *disk = mDiskList.at(pos); if( disk == 0 ) { continue; } if( disk->mounted() == true && disk->percentFull() != -1 ) { int w = mList->columnWidth(usageCol)-2; if( w <= 0 ) { continue; } TQPixmap *pix = new TQPixmap( w, h ); if( pix == 0 ) { continue; } pix->fill(white); TQPainter p(pix); p.setPen(black); p.drawRect(0,0,w,h); TQColor c; if ( (disk->iconName().find("cdrom") != -1) || (disk->iconName().find("writer") != -1) ) c = gray; else c = disk->percentFull() > FULL_PERCENT ? red : darkGreen; p.setBrush(c ); p.setPen(white); p.drawRect(1,1,(int)(((float)pix->width()-2)*(disk->percentFull()/100)), pix->height()-2); it->setPixmap ( usageCol, *pix ); p.end(); delete pix; } } }