Subversion Repositories Scribus

Rev

Rev 24730 | 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"
13963 fschmid 23
#include "scconfig.h"
10124 cbradney 24
 
10137 jghali 25
bool SCRIBUS_API extensionIndicatesEPS(const QString &ext);
26
bool SCRIBUS_API extensionIndicatesEPSorPS(const QString &ext);
10181 cbradney 27
bool SCRIBUS_API extensionIndicatesJPEG(const QString &ext);
28
bool SCRIBUS_API extensionIndicatesPDF(const QString &ext);
23489 jghali 29
bool SCRIBUS_API extensionIndicatesPNG(const QString &ext);
10181 cbradney 30
bool SCRIBUS_API extensionIndicatesPSD(const QString &ext);
31
bool SCRIBUS_API extensionIndicatesPattern(const QString &ext);
10137 jghali 32
bool SCRIBUS_API extensionIndicatesTIFF(const QString &ext);
22600 craig 33
QString SCRIBUS_API getImageType(const QString& filename);
10124 cbradney 34
 
10181 cbradney 35
class SCRIBUS_API FormatsManager
36
{
37
        public:
38
 
10271 cbradney 39
                enum ScImageFormatType
10181 cbradney 40
                {
21427 craig 41
            ALLIMAGES           = 1|2|4|8|16|32|64|128|256|512|1024|2048|4096|8192|16384|32768|524288|1048576|2097152|4194304|8388608,
13963 fschmid 42
#ifdef GMAGICK_FOUND
24820 jghali 43
            IMAGESIMGFRAME      = 1|2|4|16|32|64|128|256|512|32768|65536|1048576|2097152|4194304|8388608,  // all Types suitable for Image Frames
13963 fschmid 44
#else
24820 jghali 45
            IMAGESIMGFRAME      = 1|2|4|16|32|64|128|256|512|32768|262144|524288|1048576|2097152|4194304|8388608,  // all Types suitable for Image Frames
13963 fschmid 46
#endif
19757 fschmid 47
                        VECTORIMAGES    = 1|64|1024|2048|16384|32768|131072|262144|4194304,  // All pure vector image types
21427 craig 48
            RASTORIMAGES        = 2|4|8|32|128|256|512|65536|524288|1048576|2097152|8388608,  // All pure rastor image types
10317 fschmid 49
                        EPS                             = 1,      // Encapsulated PostScript
50
                        GIF                             = 2,      // GIF files
51
                        JPEG                    = 4,      // JPEG
52
                        PAT                             = 8,      // Pattern files
53
                        PDF                             = 16,     // PDF Format
54
                        PNG                             = 32,     // PNG files
55
                        PS                              = 64,     // PostScript
56
                        PSD                             = 128,    // Photoshop Format
57
                        TIFF                    = 256,    // TIFF
58
                        XPM                             = 512,    // XPM files
59
                        WMF                             = 1024,   // WMF files
13885 fschmid 60
                        SVG                             = 2048,   // SVG files
10317 fschmid 61
                        AI                              = 4096,   // Adobe Illustrator files
11615 fschmid 62
                        XFIG                    = 8192,   // Xfig files
13957 herm 63
                        CVG                             = 16384,  // Calamus Cvg files
64
                        WPG                             = 32768,  // Word Perfect WPG files
13963 fschmid 65
#ifdef GMAGICK_FOUND
13957 herm 66
                        GMAGICK                 = 65536,  // GraphicsMagick
13963 fschmid 67
#endif
13957 herm 68
                        UNICONV                 = 131072, // UniConvertor
14261 fschmid 69
                        PCT                             = 262144,  // Mac Pict
15673 craig 70
                        BMP                             = 524288,  // BMP
18954 fschmid 71
                        PGF                             = 1048576, // PGF
19757 fschmid 72
                        ORA                             = 2097152, // ORA
21427 craig 73
            QT                          = 4194304, // Qt
74
            KRA             = 8388608  // Krita
10181 cbradney 75
                };
10859 cbradney 76
 
77
/*
78
                enum ScDocumentFormatType
79
                {
80
                        ALLDOCUMENTS    = 1|2,
81
                        TEXT                    = 2|4,
82
                        SPREADSHEETS    = 2|4,
83
                        DTP                             = 0,
84
                        WEB                             = 0,
85
                        PRESENTATION    = 0,
86
                        FORMULAS                = 0,
87
                        SCRIBUSDOCS             = 1,
88
                        TEXT                    = 2,
89
                        CSV                             = 4,
90
                        HTML                    = 8,
91
                        XML                             = 16,
92
                        CSV                             = 32,
93
                        CSV                             = 64,
94
                        CSV                             = 128,
95
                        CSV                             = 256,
96
                        CSV                             = 512,
97
                                                        = 1024,
98
                        OORG_WRITER             = 2048,
99
                        MS_WORD                 = 4096,
100
                        ADOBE_INDESIGN  = 8192,
101
                        ADOBE_PAGEMAKER = 16384,
102
                        QUARK_XPRESS    = 32768,
103
                };
104
*/
10181 cbradney 105
                FormatsManager();
24730 jghali 106
                ~FormatsManager() = default;
10181 cbradney 107
 
108
        /**
109
                 * @brief Returns a pointer to the FormatsManager instance
110
                 * @return A pointer to the FormatsManager instance
111
         */
112
                static FormatsManager* instance();
113
        /**
114
                 * @brief Deletes the FormatsManager Instance
115
                 * Must be called when FormatsManager is no longer needed.
116
         */
117
                static void deleteInstance();
24730 jghali 118
 
10292 cbradney 119
                //! Returns the name of a format, eg "Encapsulated PostScript"
24730 jghali 120
                QString nameOfFormat(int type) const;
10181 cbradney 121
 
10292 cbradney 122
                //! Returns the mimetypes of a format, eg "application/postscript"
24730 jghali 123
                QStringList mimetypeOfFormat(int type) const;
10181 cbradney 124
 
10292 cbradney 125
                //! Returns in the form of "EPS (*.eps *.EPS *.epsf *.EPSF *.epsi *.EPSI)"
24730 jghali 126
                QString extensionsForFormat(int type) const;
10292 cbradney 127
 
128
                //! Returns in the form of "*.eps *.epsf *.epsi" or "eps|epsf|epsi"
24730 jghali 129
                QString extensionListForFormat(int type, int listType) const;
10292 cbradney 130
 
131
                //! 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 (*)"
24730 jghali 132
                QString fileDialogFormatList(int type) const;
10292 cbradney 133
 
10181 cbradney 134
        protected:
10292 cbradney 135
                QMap<int, QString> m_fmtNames;
136
                QMap<int, QStringList> m_fmtMimeTypes;
10181 cbradney 137
                QMap<int, QStringList> m_fmts;
138
                QStringList m_fmtList;
10292 cbradney 139
 
10272 cbradney 140
                QList<QByteArray> m_qtSupportedImageFormats;
10181 cbradney 141
                QList<QByteArray> m_supportedImageFormats;
24730 jghali 142
 
143
                void updateSupportedImageFormats(QList<QByteArray>& supportedImageFormats) const;
144
                void fileTypeStrings(int type, QString& formatList, QString& formatText, QString& formatAll, bool lowerCaseOnly=false) const;
10181 cbradney 145
 
146
        private:
147
        /**
148
         * @brief The only instance of FormatsManager available.
149
         *
150
         * FormatsManager is singleton and the instance can be queried with the method
151
         * instance().
152
         */
20691 craig 153
        static FormatsManager* m_instance;
10181 cbradney 154
};
155
 
10124 cbradney 156
#endif