Subversion Repositories Scribus

Rev

Rev 10303 | Rev 10390 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
10124 cbradney 1
/*
2
For general Scribus (>=1.3.2) copyright and licensing information please refer
3
to the COPYING file provided with the program. Following this notice may exist
4
a copyright and/or license notice that predates the release of Scribus 1.3.2
5
for which a new license (GPL+exception) is in place.
6
*/
7
 
8
//Added by Craig Bradney in July 2007
9
//To be used for basic format detection and checking
10
//One central place for storing all our extensions we support, etc
11
 
10212 cbradney 12
#ifndef _UTIL_FORMATs_H
13
#define _UTIL_FORMATs_H
10124 cbradney 14
 
10181 cbradney 15
#include <QByteArray>
10303 cbradney 16
#include <QFile>
17
#include <QFileInfo>
10181 cbradney 18
#include <QList>
19
#include <QMap>
10124 cbradney 20
#include <QString>
10181 cbradney 21
#include <QStringList>
10137 jghali 22
#include "scribusapi.h"
10124 cbradney 23
 
10137 jghali 24
bool SCRIBUS_API extensionIndicatesEPS(const QString &ext);
25
bool SCRIBUS_API extensionIndicatesEPSorPS(const QString &ext);
10181 cbradney 26
bool SCRIBUS_API extensionIndicatesJPEG(const QString &ext);
27
bool SCRIBUS_API extensionIndicatesPDF(const QString &ext);
28
bool SCRIBUS_API extensionIndicatesPSD(const QString &ext);
29
bool SCRIBUS_API extensionIndicatesPattern(const QString &ext);
10137 jghali 30
bool SCRIBUS_API extensionIndicatesTIFF(const QString &ext);
10303 cbradney 31
QString SCRIBUS_API getImageType(QString filename);
10124 cbradney 32
 
10181 cbradney 33
class SCRIBUS_API FormatsManager
34
{
35
        public:
36
 
10271 cbradney 37
                enum ScImageFormatType
10181 cbradney 38
                {
10317 fschmid 39
                        ALLIMAGES               = 1|2|4|8|16|32|64|128|256|512|1024|2048|4096,
40
                        IMAGESIMGFRAME  = 1|2|4|16|32|64|128|256|512,  // all Types suitable for Image Frames
41
                        EPS                             = 1,      // Encapsulated PostScript
42
                        GIF                             = 2,      // GIF files
43
                        JPEG                    = 4,      // JPEG
44
                        PAT                             = 8,      // Pattern files
45
                        PDF                             = 16,     // PDF Format
46
                        PNG                             = 32,     // PNG files
47
                        PS                              = 64,     // PostScript
48
                        PSD                             = 128,    // Photoshop Format
49
                        TIFF                    = 256,    // TIFF
50
                        XPM                             = 512,    // XPM files
51
                        WMF                             = 1024,   // WMF files
52
                        SVG                             = 2048,   // WMF files
53
                        AI                              = 4096,   // Adobe Illustrator files
10181 cbradney 54
                };
55
 
56
                FormatsManager();
57
                ~FormatsManager();
58
 
59
        /**
60
                 * @brief Returns a pointer to the FormatsManager instance
61
                 * @return A pointer to the FormatsManager instance
62
         */
63
                static FormatsManager* instance();
64
        /**
65
                 * @brief Deletes the FormatsManager Instance
66
                 * Must be called when FormatsManager is no longer needed.
67
         */
68
                static void deleteInstance();
69
                void imageFormatSupported(const QString&);
10292 cbradney 70
                //! Returns the name of a format, eg "Encapsulated PostScript"
71
                QString nameOfFormat(int type);
10181 cbradney 72
 
10292 cbradney 73
                //! Returns the mimetypes of a format, eg "application/postscript"
74
                QStringList mimetypeOfFormat(int type);
10181 cbradney 75
 
10292 cbradney 76
                //! Returns in the form of "EPS (*.eps *.EPS *.epsf *.EPSF *.epsi *.EPSI)"
77
                QString extensionsForFormat(int type);
78
 
79
                //! Returns in the form of "*.eps *.epsf *.epsi" or "eps|epsf|epsi"
80
                QString extensionListForFormat(int type, int listType);
81
 
82
                //! Returns in the form of "All Supported Formats (*.eps *.EPS *.epsf *.EPSF *.epsi *.EPSI);;EPS (*.eps *.EPS);;EPSI (*.epsf *.EPSF);;EPSI (*.epsi *.EPSI);;All Files (*)"
83
                QString fileDialogFormatList(int type);
84
 
10181 cbradney 85
        protected:
10292 cbradney 86
                QMap<int, QString> m_fmtNames;
87
                QMap<int, QStringList> m_fmtMimeTypes;
10181 cbradney 88
                QMap<int, QStringList> m_fmts;
89
                QStringList m_fmtList;
10292 cbradney 90
 
10272 cbradney 91
                QList<QByteArray> m_qtSupportedImageFormats;
10181 cbradney 92
                QList<QByteArray> m_supportedImageFormats;
93
                void updateSupportedImageFormats(QList<QByteArray>& supportedImageFormats);
10292 cbradney 94
                void fileTypeStrings(int type, QString& formatList, QString& formatText, QString& formatAll, bool lowerCaseOnly=false);
10181 cbradney 95
 
96
        private:
97
        /**
98
         * @brief The only instance of FormatsManager available.
99
         *
100
         * FormatsManager is singleton and the instance can be queried with the method
101
         * instance().
102
         */
103
        static FormatsManager* _instance;
104
};
105
 
10124 cbradney 106
#endif