void KuickShow::slotHighlighted( const KFileItem *fi )
{
    KFileItem *item = const_cast<KFileItem *>( fi );
    statusBar()->changeItem( item->getStatusBarInfo(), URL_ITEM );
    bool image = FileWidget::isImage( fi );

    QString meta;
    if ( image )
    {
        KFileMetaInfo info = item->metaInfo();
        if ( info.isValid() )
        {
            meta = info.item( KFileMimeTypeInfo::Size ).string();
            KFileMetaInfoGroup group = info.group( "Technical" );
            if ( group.isValid() )
            {
                QString bpp = group.item( "BitDepth" ).string();
                if ( !bpp.isEmpty() )
                    meta.append( ", " ).append( bpp );
            }
        }
    }
    statusBar()->changeItem( meta, META_ITEM );

    fileWidget->actionCollection()->action("kuick_print")->setEnabled( image );
    fileWidget->actionCollection()->action("kuick_showInSameWindow")->setEnabled( image );
    fileWidget->actionCollection()->action("kuick_showInOtherWindow")->setEnabled( image );
    fileWidget->actionCollection()->action("kuick_showFullscreen")->setEnabled( image );
}
void CelSplashScreen::setPixmap( const QString &filename )
{
    QPixmap _pixmap(filename);
    resize( _pixmap.size() );

    //  Set default values for status and version fields
    status.getRect().setX(20);
    status.getRect().setY(height() - 40);
    status.getRect().setWidth(width() - 200);
    status.getRect().setHeight(20);
    status.setFlags(Qt::AlignLeft | Qt::AlignTop);

    version.getRect().setX(width() - 180);
    version.getRect().setY(height() - 40);
    version.getRect().setWidth(150);
    version.getRect().setHeight(20);
    version.setFlags(Qt::AlignRight | Qt::AlignTop);
    version.setContent(VERSION);

    KFileMetaInfo info(filename);
    KFileMetaInfoGroup comments = info.group("Comment");

    if (comments.isValid()) {
        status.set("status", comments);
        version.set("version", comments);
        int i = 0;
        char extraName[10];
        sprintf(extraName, "extra%02d", i);
        while (i< 100 && comments.item(QString(extraName) + "_insert_before").isValid()) {
            TextItem extra;
            extra.set(extraName, comments);
            extraText.push_back(extra);
            i++;
            sprintf(extraName, "extra%02d", i);
        }
    }

    QRect desk = KGlobalSettings::splashScreenDesktopGeometry();
    setGeometry( ( desk.width() / 2 ) - ( width() / 2 ) + desk.left(),
       ( desk.height() / 2 ) - ( height() / 2 ) + desk.top(),
         width(), height() );
    if (_pixmap.hasAlphaChannel()) {
        QPixmap bg = QPixmap::grabWindow( qt_xrootwin(), x(), y(), width(), height() );
        QPainter painter(&bg);
        painter.drawPixmap(0, 0, _pixmap);
        pixmap = bg;
    } else {
        pixmap = _pixmap;
    }
    
    QPainter painter( &pixmap, this );
    version.draw(&painter);
    for(std::vector<TextItem>::const_iterator i = extraText.begin(); i != extraText.end();  ++i)
        (*i).draw(&painter);

    repaint();
}
Exemple #3
0
bool FileProps::setValue( const TQString& group,
                          const TQString& key, const TQString &value )
{
    KFileMetaInfoGroup g = m_info->group( group );
    bool wasAdded = false;
    if ( !g.isValid() )
    {
        if ( m_info->addGroup( group ) )
        {
            wasAdded = true;
            g = m_info->group( group );
        }
        else
            return false;
    }

    bool ok = g[key].setValue( value );

    if ( !ok && wasAdded ) // remove the created group again
        (void) m_info->removeGroup( group );
        
    m_dirty |= ok;
    return ok;
}