Scribus Developer Documentation - API
logo-pen

Scribus Developer Documentation - API

util_formats.h

Go to the documentation of this file.
00001 /*
00002 For general Scribus (>=1.3.2) copyright and licensing information please refer
00003 to the COPYING file provided with the program. Following this notice may exist
00004 a copyright and/or license notice that predates the release of Scribus 1.3.2
00005 for which a new license (GPL+exception) is in place.
00006 */
00007 
00008 //Added by Craig Bradney in July 2007
00009 //To be used for basic format detection and checking
00010 //One central place for storing all our extensions we support, etc
00011 
00012 #ifndef _UTIL_FORMATs_H
00013 #define _UTIL_FORMATs_H
00014 
00015 #include <QByteArray>
00016 #include <QFile>
00017 #include <QFileInfo>
00018 #include <QList>
00019 #include <QMap>
00020 #include <QString>
00021 #include <QStringList>
00022 #include "scribusapi.h"
00023 
00024 bool SCRIBUS_API extensionIndicatesEPS(const QString &ext);
00025 bool SCRIBUS_API extensionIndicatesEPSorPS(const QString &ext);
00026 bool SCRIBUS_API extensionIndicatesJPEG(const QString &ext);
00027 bool SCRIBUS_API extensionIndicatesPDF(const QString &ext);
00028 bool SCRIBUS_API extensionIndicatesPSD(const QString &ext);
00029 bool SCRIBUS_API extensionIndicatesPattern(const QString &ext);
00030 bool SCRIBUS_API extensionIndicatesTIFF(const QString &ext);
00031 QString SCRIBUS_API getImageType(QString filename);
00032 
00033 class SCRIBUS_API FormatsManager
00034 {
00035     public:
00036 
00037         enum ScImageFormatType
00038         {
00039             ALLIMAGES       = 1|2|4|8|16|32|64|128|256|512|1024|2048|4096,
00040             IMAGESIMGFRAME  = 1|2|4|16|32|64|128|256|512,  // all Types suitable for Image Frames
00041             VECTORIMAGES    = 1|64|1024|2048,  // All pure vector image types
00042             RASTORIMAGES    = 2|4|8|32|512,  // All pure rastor image types
00043             EPS             = 1,      // Encapsulated PostScript
00044             GIF             = 2,      // GIF files
00045             JPEG            = 4,      // JPEG
00046             PAT             = 8,      // Pattern files
00047             PDF             = 16,     // PDF Format
00048             PNG             = 32,     // PNG files
00049             PS              = 64,     // PostScript
00050             PSD             = 128,    // Photoshop Format
00051             TIFF            = 256,    // TIFF
00052             XPM             = 512,    // XPM files
00053             WMF             = 1024,   // WMF files
00054             SVG             = 2048,   // WMF files
00055             AI              = 4096,   // Adobe Illustrator files
00056         };
00057     
00058 /*
00059         enum ScDocumentFormatType
00060         {
00061             ALLDOCUMENTS    = 1|2,
00062             TEXT            = 2|4,
00063             SPREADSHEETS    = 2|4,
00064             DTP             = 0,
00065             WEB             = 0,
00066             PRESENTATION    = 0,
00067             FORMULAS        = 0,
00068             SCRIBUSDOCS     = 1,
00069             TEXT            = 2,
00070             CSV             = 4,
00071             HTML            = 8,
00072             XML             = 16,
00073             CSV             = 32,
00074             CSV             = 64,
00075             CSV             = 128,
00076             CSV             = 256,
00077             CSV             = 512,
00078                             = 1024,
00079             OORG_WRITER     = 2048,
00080             MS_WORD         = 4096,
00081             ADOBE_INDESIGN  = 8192,
00082             ADOBE_PAGEMAKER = 16384,
00083             QUARK_XPRESS    = 32768,
00084         };
00085 */
00086         FormatsManager();
00087         ~FormatsManager();
00088 
00093         static FormatsManager* instance();
00098         static void deleteInstance();
00099         void imageFormatSupported(const QString&);
00101         QString nameOfFormat(int type);
00102         
00104         QStringList mimetypeOfFormat(int type);
00105         
00107         QString extensionsForFormat(int type);
00108         
00110         QString extensionListForFormat(int type, int listType);
00111         
00113         QString fileDialogFormatList(int type);
00114         
00115     protected:
00116         QMap<int, QString> m_fmtNames;
00117         QMap<int, QStringList> m_fmtMimeTypes;
00118         QMap<int, QStringList> m_fmts;
00119         QStringList m_fmtList;
00120         
00121         QList<QByteArray> m_qtSupportedImageFormats;
00122         QList<QByteArray> m_supportedImageFormats;
00123         void updateSupportedImageFormats(QList<QByteArray>& supportedImageFormats);
00124         void fileTypeStrings(int type, QString& formatList, QString& formatText, QString& formatAll, bool lowerCaseOnly=false);
00125         
00126     private:
00133     static FormatsManager* _instance;
00134 };
00135 
00136 #endif
Created with personalized Doxygen. This is documentation for GPL software Scribus - Open Source Desktop Publishing.