소스 검색

ctkIconEnginePlugin::keys returns ctkIconEngine

When saving a QIcon into a QDataStream, the icon engine key is used.
Later, when loading a QIcon from a QDataStream, that same key is used to
find the icon engine used.
ctkPixmapIconEngine was the key saved but couldn't be retrieved because
the plugin wasn't exposing it.
You might have to clear your Trolltech registry (Qt Factory Cache*) in
order for the ctkIconEnginePlugin meta information to be reloaded
Julien Finet 14 년 전
부모
커밋
723fa05c87
2개의 변경된 파일11개의 추가작업 그리고 0개의 파일을 삭제
  1. 9 0
      Libs/Widgets/ctkIconEnginePlugin.cpp
  2. 2 0
      Libs/Widgets/ctkIconEnginePlugin.h

+ 9 - 0
Libs/Widgets/ctkIconEnginePlugin.cpp

@@ -59,6 +59,9 @@ QIconEngineV2* ctkIconEnginePlugin::create(const QString& fileName)
 QStringList ctkIconEnginePlugin::keys()const
 {
   QStringList supportedKeys;
+  // While ctkIconEngine supports all the image formats, it is uniquely defined
+  // with "ctkIconEngine".
+  supportedKeys << "ctkIconEngine";
   foreach(QByteArray byteArray, QImageReader::supportedImageFormats())
     {
     supportedKeys << QString(byteArray);
@@ -154,3 +157,9 @@ QStringList ctkIconEngine::sizeDirectories()const
   Q_D(const ctkIconEngine);
   return d->SizeDirectories;
 }
+
+//------------------------------------------------------------------------------
+QString ctkIconEngine::key() const
+{
+  return QLatin1String("ctkIconEngine");
+}

+ 2 - 0
Libs/Widgets/ctkIconEnginePlugin.h

@@ -107,6 +107,8 @@ public:
   /// "LowDef", "HighDef"
   void setSizeDirectories(const QStringList& sizeDirectories);
   QStringList sizeDirectories()const;
+
+  virtual QString key()const;
  
 protected:
   QScopedPointer<ctkIconEnginePrivate> d_ptr;