[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: RE: Thumbnail managing standard
From: Simon MacMullen <simon.macmullen () aspect-proteus ! com>
Date: 2002-04-30 16:19:38
[Download RAW message or body]
Previously, on kde-core-devel...
> From: Malte Starostik [mailto:malte@kde.org]
> > One thing that sucks about the current
> > implementation is that newly installed preview plugins are
> disabled until
> > user enables them. IMHO it should be the other way round,
> i.e. changing
> the
> > implementation from an enabled-list to a disabled-list.
>
> OK. I will do this then.
...and have now done so. Patch is attached. The idea was to keep the
interface to KonqPropsView the same. However, I had to change
KonqPropsView::previewSettings() to be non-inline. This means that anything
compiled against it will get faulty behaviour (not crashing, but it'll be
confused by previews) until it is recompiled.
My question is: does anything apart from Konqueror use KonqPropsView? Or
more exactly KonqPropsView::previewSettings() ?
Cheers, Simon
["preview_default_on.diff" (application/octet-stream)]
Index: libkonq/konq_propsview.cc
===================================================================
RCS file: /home/kde/kdebase/libkonq/konq_propsview.cc,v
retrieving revision 1.69
diff -u -3 -p -r1.69 konq_propsview.cc
--- libkonq/konq_propsview.cc 2002/04/05 13:34:12 1.69
+++ libkonq/konq_propsview.cc 2002/04/30 16:13:02
@@ -27,6 +27,7 @@
#include <unistd.h>
#include <qfile.h>
#include <iostream>
+#include <ktrader.h>
#include <kinstance.h>
#include <assert.h>
@@ -62,7 +63,7 @@ static QPixmap wallpaperPixmap( const QS
struct KonqPropsView::Private
{
- // Move along, nothing to see...
+ QStringList* previewsToShow;
};
KonqPropsView::KonqPropsView( KInstance * instance, KonqPropsView * \
defaultProps ) @@ -79,7 +80,7 @@ KonqPropsView::KonqPropsView( KInstance
m_iItemTextPos = config->readNumEntry( "ItemTextPos", QIconView::Bottom \
); m_bShowDot = config->readBoolEntry( "ShowDotFiles", false );
m_bShowDirectoryOverlays = config->readBoolEntry( \
"ShowDirectoryOverlays", false );
- m_preview = config->readListEntry( "Preview" );
+ m_dontPreview = config->readListEntry( "DontPreview" );
m_textColor = config->readColorEntry( "TextColor" ); // will be set to \
QColor() if not found m_bgColor = config->readColorEntry( "BgColor" ); // \
will be set to QColor() if not found @@ -101,6 +102,9 @@ \
KonqPropsView::KonqPropsView( KInstance
KGlobal::dirs()->addResourceType("tiles",
KGlobal::dirs()->kde_default("data") + \
"konqueror/tiles/"); +
+ d = new Private;
+ d->previewsToShow = 0;
}
KConfigBase * KonqPropsView::currentConfig()
@@ -130,6 +134,8 @@ KConfigBase * KonqPropsView::currentColo
KonqPropsView::~KonqPropsView()
{
+ delete d->previewsToShow;
+ delete d;
}
bool KonqPropsView::enterDir( const KURL & dir )
@@ -151,7 +157,7 @@ bool KonqPropsView::enterDir( const KURL
m_iIconSize = m_defaultProps->iconSize();
m_iItemTextPos = m_defaultProps->itemTextPos();
m_bShowDot = m_defaultProps->isShowingDotFiles();
- m_preview = m_defaultProps->m_preview;
+ m_dontPreview = m_defaultProps->m_dontPreview;
m_textColor = m_defaultProps->m_textColor;
m_bgColor = m_defaultProps->m_bgColor;
m_bgPixmapFile = m_defaultProps->bgPixmapFile();
@@ -167,8 +173,8 @@ bool KonqPropsView::enterDir( const KURL
m_iItemTextPos = config->readNumEntry( "ItemTextPos", m_iItemTextPos \
); m_bShowDot = config->readBoolEntry( "ShowDotFiles", m_bShowDot );
m_bShowDirectoryOverlays = config->readBoolEntry( \
"ShowDirectoryOverlays", m_bShowDirectoryOverlays );
- if (config->hasKey( "Preview" ))
- m_preview = config->readListEntry( "Preview" );
+ if (config->hasKey( "DontPreview" ))
+ m_dontPreview = config->readListEntry( "DontPreview" );
m_textColor = config->readColorEntry( "TextColor", &m_textColor );
m_bgColor = config->readColorEntry( "BgColor", &m_bgColor );
@@ -260,20 +266,23 @@ void KonqPropsView::setShowingDirectoryO
void KonqPropsView::setShowingPreview( const QString &preview, bool show )
{
- if ( m_preview.contains( preview ) == show )
+ if ( m_dontPreview.contains( preview ) != show )
return;
else if ( show )
- m_preview.append( preview );
+ m_dontPreview.remove( preview );
else
- m_preview.remove( preview );
+ m_dontPreview.append( preview );
if ( m_defaultProps && !m_bSaveViewPropertiesLocally )
m_defaultProps->setShowingPreview( preview, show );
else if (currentConfig())
{
KConfigGroupSaver cgs(currentConfig(), currentGroup());
- currentConfig()->writeEntry( "Preview", m_preview );
+ currentConfig()->writeEntry( "DontPreview", m_dontPreview );
currentConfig()->sync();
}
+
+ delete d->previewsToShow;
+ d->previewsToShow = 0;
}
void KonqPropsView::setBgColor( const QColor & color )
@@ -395,4 +404,22 @@ void KonqPropsView::applyColors(QWidget
// This makes us react to the palette-change event accordingly.
if ( setPaletteNeeded )
widget->setPalette( QPalette( a, d, i ) );
+}
+
+const QStringList& KonqPropsView::previewSettings()
+{
+ if ( ! d->previewsToShow )
+ {
+ d->previewsToShow = new QStringList;
+
+ KTrader::OfferList plugins = KTrader::self()->query( \
"ThumbCreator" ); + for ( KTrader::OfferList::ConstIterator it = \
plugins.begin(); it != plugins.end(); ++it ) + {
+ QString name = (*it)->desktopEntryName();
+ if ( ! m_dontPreview.contains(name) )
+ d->previewsToShow->append( name );
+ }
+ }
+
+ return *(d->previewsToShow);
}
Index: libkonq/konq_propsview.h
===================================================================
RCS file: /home/kde/kdebase/libkonq/konq_propsview.h,v
retrieving revision 1.44
diff -u -3 -p -r1.44 konq_propsview.h
--- libkonq/konq_propsview.h 2002/04/05 13:34:12 1.44
+++ libkonq/konq_propsview.h 2002/04/30 16:13:02
@@ -93,9 +93,9 @@ public:
bool isShowingDirectoryOverlays() const { return \
m_bShowDirectoryOverlays; }
void setShowingPreview( const QString &preview, bool show );
- bool isShowingPreview( const QString &preview ) const { return \
m_preview.contains(preview); }
- bool isShowingPreview() const { return m_preview.count() > 0; }
- const QStringList &previewSettings() const { return m_preview; }
+ bool isShowingPreview( const QString &preview ) const { return ! \
m_dontPreview.contains(preview); } + bool isShowingPreview() const { \
return m_dontPreview.count() == 0; } + const QStringList \
&previewSettings();
void setBgColor( const QColor & color );
const QColor& bgColor(QWidget * widget) const;
@@ -128,7 +128,7 @@ private:
int m_iItemTextPos;
bool m_bShowDot;
bool m_bShowDirectoryOverlays;
- QStringList m_preview;
+ QStringList m_dontPreview;
QColor m_textColor;
QColor m_bgColor;
QString m_bgPixmapFile;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic