Subversion Repositories Scribus

Rev

Rev 24637 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
24485 craig 1
/*
2
For general Scribus (>=1.3.2) copyright and licensing information please refer
3
to the COPYING file provided with the program.
4
 
5
Scribus is copyright The Scribus Team per the COPYING file.
6
*/
7
 
8
#include <QRegularExpression>
9
#include <QSysInfo>
10
 
11
#include "api_application.h"
12
 
13
#include "scconfig.h"
14
#ifdef HAVE_SVNVERSION
15
        #include "svnversion.h"
16
#endif
17
 
18
#include <cairo.h>
19
 
20
namespace ScribusAPI {
21
 
22
        QString getBuildInformation()
23
        {
24
                QString bu;
25
                bu += "C";
26
                bu += "-";
27
                bu += "-";
28
                bu += "T";
29
                bu += "-";
30
        #ifdef HAVE_FONTCONFIG
31
                bu += "F";
32
        #else
33
                bu += "*";
34
        #endif
35
                bu += "-";
36
                bu += "C";
37
                bu += cairo_version_string();
38
 
39
        // Some more information if we are not on a 32bit little endian Unix machine
40
        #if defined(Q_OS_WIN)
41
                bu += "-Windows";
42
        #elif defined(Q_OS_MAC)
43
                bu += "-Mac";
44
        #elif defined(Q_OS_DARWIN)
45
                // dunno if anyone uses this...
46
                bu += "-Darwin";
47
        #endif
48
                if (QSysInfo::WordSize != 32)
49
                        bu += QString("-%1bit").arg(QSysInfo::WordSize);
50
        #if Q_BYTE_ORDER == Q_BIG_ENDIAN
51
                if (QSysInfo::ByteOrder==QSysInfo::BigEndian)
52
                        bu += "-Big";
53
        #endif
54
                return bu;
55
        }
56
 
57
        QString getVersion()
58
        {
59
                return QString(VERSION);
60
        }
61
 
62
        int getVersionMajor()
63
        {
64
                QRegularExpression version_regex("(\\d+)\\.(\\d+)\\.(\\d+)(.*)");
65
                QRegularExpressionMatch match = version_regex.match(getVersion());
66
                if (!match.hasMatch())
67
                        return -1;
68
                return match.captured(1).toInt();
69
        }
70
 
71
        int getVersionMinor()
72
        {
73
                QRegularExpression version_regex("(\\d+)\\.(\\d+)\\.(\\d+)(.*)");
74
                QRegularExpressionMatch match = version_regex.match(getVersion());
75
                if (!match.hasMatch())
76
                        return -1;
77
                return match.captured(2).toInt();
78
        }
79
 
80
        int getVersionPatch()
81
        {
82
                QRegularExpression version_regex("(\\d+)\\.(\\d+)\\.(\\d+)(.*)");
83
                QRegularExpressionMatch match = version_regex.match(getVersion());
84
                if (!match.hasMatch())
85
                        return -1;
86
                return match.captured(3).toInt();
87
        }
88
 
89
        QString getVersionSuffix()
90
        {
91
                QRegularExpression version_regex("(\\d+)\\.(\\d+)\\.(\\d+)(.*)");
92
                QRegularExpressionMatch match = version_regex.match(getVersion());
93
                if (!match.hasMatch())
94
                        return QString();
95
                return match.captured(4);
96
        }
97
 
98
        QString getVersionScribus()
99
        {
100
                return QString("Scribus") + " " + getVersion();
101
        }
102
 
103
        QByteArray getVersionScribusAsByteArray()
104
        {
105
                return QByteArray("Scribus") + " " + QByteArray(VERSION);
106
        }
107
 
108
        QString getVersionScribusTranslated()
109
        {
110
                return QObject::tr("Scribus") + " " + getVersion();
111
        }
112
 
113
        QByteArray getVersionScribusTranslatedAsByteArray()
114
        {
115
                return QObject::tr("Scribus").toUtf8() + " " + QByteArray(VERSION);
116
        }
117
 
118
        bool isSVN()
119
        {
120
                return getVersion().contains("svn", Qt::CaseInsensitive);
121
        }
122
 
123
        bool haveSVNRevision()
124
        {
125
#if defined(HAVE_SVNVERSION) && defined(SVNVERSION)
126
                return true;
127
#endif
128
                return false;
129
        }
130
 
131
        QString getSVNRevision()
132
        {
24487 jghali 133
#if defined(HAVE_SVNVERSION) && defined(SVNVERSION)
24638 craig 134
                if (isSVN())
24485 craig 135
                        return QString("%1").arg(SVNVERSION);
24487 jghali 136
#endif
24485 craig 137
                return QString();
138
        }
139
 
140
}