• Skip to content
  • Skip to link menu
KDE 4.3 API Reference
  • KDE API Reference
  • kdelibs
  • Sitemap
  • Contact Us
 

KIO

kimageio.cpp

Go to the documentation of this file.
00001 
00008 #include "kimageio.h"
00009 
00010 #include "kmimetype.h"
00011 #include <kservicetypetrader.h>
00012 #include <klocale.h>
00013 #include <kdebug.h>
00014 
00015 QString
00016 KImageIO::pattern(Mode mode)
00017 {
00018     QStringList patterns;
00019     QString allPatterns;
00020     QString separator("|");
00021 
00022     const KService::List services = KServiceTypeTrader::self()->query("QImageIOPlugins");
00023     foreach(const KService::Ptr &service, services)
00024     {
00025         if ( (service->property("X-KDE-Read").toBool() && mode == Reading) ||
00026              (service->property("X-KDE-Write").toBool() && mode == Writing ) ) {
00027 
00028             QString mimeType = service->property("X-KDE-MimeType").toString();
00029             if ( mimeType.isEmpty() ) continue;
00030             KMimeType::Ptr mime = KMimeType::mimeType( mimeType );
00031             if (!mime) {
00032                 kWarning() << service->entryPath() << " specifies unknown mimetype " << mimeType;
00033             } else {
00034                 QString pattern = mime->patterns().join(" ");
00035                 patterns.append( pattern + separator + mime->comment() );
00036                 if (!allPatterns.isEmpty() )
00037                     allPatterns += ' ';
00038                 allPatterns += pattern;
00039             }
00040         }
00041     }
00042 
00043     allPatterns = allPatterns + separator + i18n("All Pictures");
00044     patterns.sort();
00045     patterns.prepend(allPatterns);
00046 
00047     QString pattern = patterns.join(QLatin1String("\n"));
00048     return pattern;
00049 }
00050 
00051 QStringList KImageIO::typeForMime(const QString& mimeType)
00052 {
00053     if ( mimeType.isEmpty() )
00054         return QStringList();
00055 
00056     KService::List services = KServiceTypeTrader::self()->query("QImageIOPlugins");
00057     foreach(const KService::Ptr &service, services) {
00058         if ( mimeType == service->property("X-KDE-MimeType").toString() )
00059             return ( service->property("X-KDE-ImageFormat").toStringList() );
00060     }
00061     return QStringList();
00062 }
00063 
00064 QStringList KImageIO::mimeTypes( Mode mode )
00065 {
00066     QStringList mimeList, allFormats;
00067 
00068     KService::List services = KServiceTypeTrader::self()->query("QImageIOPlugins");
00069     foreach(const KService::Ptr &service, services) {
00070         if ( (service->property("X-KDE-Read").toBool() && mode == Reading) ||
00071              (service->property("X-KDE-Write").toBool() && mode == Writing ) ) {
00072 
00073             const QString mime = service->property("X-KDE-MimeType").toString();
00074             if ( !mime.isEmpty() )
00075                 mimeList.append( mime );
00076         }
00077     }
00078 
00079     return mimeList;
00080 }
00081 
00082 QStringList KImageIO::types( Mode mode )
00083 {
00084     QStringList imagetypes;
00085     KService::List services = KServiceTypeTrader::self()->query("QImageIOPlugins");
00086     foreach(const KService::Ptr &service, services) {
00087         if ( (service->property("X-KDE-Read").toBool() && mode == Reading) ||
00088              (service->property("X-KDE-Write").toBool() && mode == Writing ) ) {
00089 
00090             imagetypes += service->property("X-KDE-ImageFormat").toStringList();
00091         }
00092     }
00093     return imagetypes;
00094 }
00095 
00096 bool KImageIO::isSupported( const QString& mimeType, Mode mode )
00097 {
00098     if (mimeType.isEmpty() )
00099         return false;
00100 
00101     KService::List services = KServiceTypeTrader::self()->query("QImageIOPlugins");
00102     foreach(const KService::Ptr &service, services) {
00103         if ( mimeType == service->property("X-KDE-MimeType").toString() ) {
00104 
00105             if ( (service->property("X-KDE-Read").toBool() && mode == Reading) ||
00106                  (service->property("X-KDE-Write").toBool() && mode == Writing ) ) {
00107 
00108                 return true;
00109             } else {
00110                 return false;
00111             }
00112         }
00113     }
00114     return false;
00115 }

KIO

Skip menu "KIO"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdelibs

Skip menu "kdelibs"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • Kate
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.6.1
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal