11 #include <QtGui/QLayout>
19 bool KFileMetaPreview::s_tryAudioPreview =
true;
23 haveAudioPreview( false )
25 QHBoxLayout *layout =
new QHBoxLayout(
this );
26 layout->setMargin( 0 );
27 m_stack =
new QStackedWidget(
this );
28 layout->addWidget( m_stack );
32 initPreviewProviders();
39 void KFileMetaPreview::initPreviewProviders()
41 qDeleteAll(m_previewProviders);
42 m_previewProviders.clear();
47 (void) m_stack->addWidget( imagePreview );
48 m_stack->setCurrentWidget ( imagePreview );
52 QStringList::ConstIterator it = mimeTypes.begin();
53 for ( ; it != mimeTypes.end(); ++it )
56 m_previewProviders.insert( *it, imagePreview );
68 const QStringList parentMimeTypes = mimeInfo->allParentMimeTypes();
69 Q_FOREACH(
const QString& parentMimeType, parentMimeTypes) {
70 provider = m_previewProviders.value(parentMimeType);
77 const int index = mimeType.indexOf(
'/' );
80 provider = m_previewProviders.value(mimeType.left(index + 1) +
'*');
95 if ( mimeInfo && mimeInfo->is(
"inode/directory") )
104 if ( s_tryAudioPreview &&
105 !mimeType.startsWith(QLatin1String(
"text/")) &&
106 !mimeType.startsWith(QLatin1String(
"image/")) )
108 if ( !haveAudioPreview )
113 haveAudioPreview =
true;
114 (void) m_stack->addWidget( audioPreview );
116 QStringList::ConstIterator it = mimeTypes.begin();
117 for ( ; it != mimeTypes.end(); ++it )
120 if ( m_previewProviders.constFind( *it ) == m_previewProviders.constEnd() )
121 m_previewProviders.insert( *it, audioPreview );
128 provider = findExistingProvider(mimeType, mimeInfo);
144 if ( provider != m_stack->currentWidget() )
147 m_stack->setEnabled(
true );
148 m_stack->setCurrentWidget( provider );
154 m_stack->setEnabled(
false );
160 if ( m_stack->currentWidget() )
161 static_cast<KPreviewWidgetBase*>( m_stack->currentWidget() )->
clearPreview();
167 m_previewProviders.insert( mimeType, provider );
174 while (i != m_previewProviders.constEnd())
176 m_stack->removeWidget(i.value());
179 qDeleteAll(m_previewProviders);
180 m_previewProviders.clear();
190 kWarning() <<
"Couldn't load kfileaudiopreview" << loader.errorString();
191 s_tryAudioPreview =
false;
196 w->setObjectName(
"kfileaudiopreview" );
200 #include "kfilemetapreview.moc"