// static helper: // creates strings like // "group: translatedKey: value" TQString FileProps::createKeyValue( const KFileMetaInfoGroup& g, const TQString& key ) { static const int MAX_SPACE = 25; KFileMetaInfoItem item = g.item( key ); TQString result("%1"); result = result.arg( (item.isValid() ? item.translatedKey() : key) + ":", -MAX_SPACE ); result.append( beatifyValue( item.string() ) ); TQString group("%1"); group = group.arg( g.translatedName() + ":", -MAX_SPACE ); result.prepend( group ); return result; }
void KOCRBase::introduceImage( KookaImage* img) { if( ! (img && img->isFileBound()) ) return; KFileMetaInfo info = img->fileMetaInfo(); QStringList groups; if ( info.isValid() ) groups = info.preferredGroups(); delete m_metaBox; m_metaBox = new QVBox( m_imgHBox ); /* Start to create a preview job for the thumb */ KURL::List li(img->url()); KIO::Job *m_job = KIO::filePreview(li, m_previewSize.width(), m_previewSize.height()); if( m_job ) { connect( m_job, SIGNAL( result( KIO::Job * )), this, SLOT( slPreviewResult( KIO::Job * ))); connect( m_job, SIGNAL( gotPreview( const KFileItem*, const QPixmap& )), SLOT( slGotPreview( const KFileItem*, const QPixmap& ) )); /* KIO::Jo result is called in any way: Success, Failed, Error, * thus connecting the failed is not really necessary. */ } for ( QStringList::Iterator it = groups.begin(); it != groups.end(); ++it ) { QString theGroup(*it); kdDebug(29000) << "handling the group " << theGroup << endl; QStringList keys = info.group(theGroup).supportedKeys(); if( keys.count() > 0 ) { // info.groupInfo( theGroup )->translatedName() // FIXME: howto get the translated group name? QLabel *lGroup = new QLabel( theGroup, m_metaBox ); lGroup->setBackgroundColor( QColor(gray)); lGroup->setMargin( KDialog::spacingHint()); QGrid *nGrid = new QGrid( 2, m_metaBox ); nGrid->setSpacing( KDialog::spacingHint()); for ( QStringList::Iterator keyIt = keys.begin(); keyIt != keys.end(); ++keyIt ) { KFileMetaInfoItem item = info.item(*keyIt); QString itKey = item.translatedKey(); if( itKey.isEmpty() ) itKey = item.key(); if( ! itKey.isEmpty() ) { (void) new QLabel( item.translatedKey() + ": ", nGrid ); (void) new QLabel( item.string(), nGrid ); kdDebug(29000) << "hasKey " << *keyIt << endl; } } } } QWidget *spaceEater = new QWidget( m_metaBox ); spaceEater->setSizePolicy( QSizePolicy( QSizePolicy::Ignored, QSizePolicy::Ignored )); m_metaBox->show(); }
QString KFileItem::getToolTipText(int maxcount) { // we can return QString::null if no tool tip should be shown QString tip; KFileMetaInfo info = metaInfo(); // the font tags are a workaround for the fact that the tool tip gets // screwed if the color scheme uses white as default text color const char* start = "<tr><td><nobr><font color=\"black\">"; const char* mid = "</font></nobr></td><td><nobr><font color=\"black\">"; const char* end = "</font></nobr></td></tr>"; tip = "<table cellspacing=0 cellpadding=0>"; tip += start + i18n("Name:") + mid + text() + end; tip += start + i18n("Type:") + mid; QString type = QStyleSheet::escape(mimeComment()); if ( m_bLink ) { tip += i18n("Link to %1 (%2)").arg(linkDest(), type) + end; } else tip += type + end; if ( !S_ISDIR ( m_fileMode ) ) { bool hasSize; KIO::filesize_t sizeValue = size(hasSize); if(hasSize) tip += start + i18n("Size:") + mid + KIO::convertSizeWithBytes(sizeValue) + end; } QString timeStr = timeString( KIO::UDS_MODIFICATION_TIME); if(!timeStr.isEmpty()) tip += start + i18n("Modified:") + mid + timeStr + end; #ifndef Q_WS_WIN //TODO: show win32-specific permissions QString userStr = user(); QString groupStr = group(); if(!userStr.isEmpty() || !groupStr.isEmpty()) tip += start + i18n("Owner:") + mid + userStr + " - " + groupStr + end + start + i18n("Permissions:") + mid + parsePermissions(m_permissions) + end; #endif if (info.isValid() && !info.isEmpty() ) { tip += "<tr><td colspan=2><center><s> </s></center></td></tr>"; QStringList keys = info.preferredKeys(); // now the rest QStringList::Iterator it = keys.begin(); for (int count = 0; count<maxcount && it!=keys.end() ; ++it) { KFileMetaInfoItem item = info.item( *it ); if ( item.isValid() ) { QString s = item.string(); if ( ( item.attributes() & KFileMimeTypeInfo::SqueezeText ) && s.length() > 50) { s.truncate(47); s.append("..."); } if ( !s.isEmpty() ) { count++; tip += start + QStyleSheet::escape( item.translatedKey() ) + ":" + mid + QStyleSheet::escape( s ) + end; } } } } tip += "</table>"; //kdDebug() << "making this the tool tip rich text:\n"; //kdDebug() << tip << endl; return tip; }