summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--BuildTools/SCons/Tools/qt4.py75
-rw-r--r--Slimber/Qt/SConscript10
-rw-r--r--Swift/QtUI/QtCertificateViewerDialog.cpp29
-rw-r--r--Swift/QtUI/QtUtilities.cpp9
-rw-r--r--Swift/QtUI/SConscript2
5 files changed, 94 insertions, 31 deletions
diff --git a/BuildTools/SCons/Tools/qt4.py b/BuildTools/SCons/Tools/qt4.py
index ad4f1c0..ea86223 100644
--- a/BuildTools/SCons/Tools/qt4.py
+++ b/BuildTools/SCons/Tools/qt4.py
@@ -200,7 +200,11 @@ def _detect(env):
try: return os.environ['QTDIR']
except KeyError: pass
- moc = env.WhereIs('moc-qt4') or env.WhereIs('moc4') or env.WhereIs('moc')
+ moc = None
+ if env["qt5"]:
+ moc = env.WhereIs('moc-qt5') or env.WhereIs('moc5') or env.WhereIs('moc')
+ else :
+ moc = env.WhereIs('moc-qt4') or env.WhereIs('moc4') or env.WhereIs('moc')
if moc:
import sys
if sys.platform == "darwin" :
@@ -222,14 +226,24 @@ def generate(env):
def locateQt4Command(env, command, qtdir) :
if len(qtdir) == 0 :
qtdir = "/usr"
- suffixes = [
- '-qt4',
- '-qt4.exe',
- '4',
- '4.exe',
- '',
- '.exe',
- ]
+ if env["qt5"]:
+ suffixes = [
+ '-qt5',
+ '-qt5.exe',
+ '5',
+ '5.exe',
+ '',
+ '.exe',
+ ]
+ else :
+ suffixes = [
+ '-qt4',
+ '-qt4.exe',
+ '4',
+ '4.exe',
+ '',
+ '.exe',
+ ]
triedPaths = []
for suffix in suffixes :
fullpath = os.path.join(qtdir,'bin',command + suffix)
@@ -426,6 +440,8 @@ def enable_modules(self, modules, debug=False, crosscompiling=False, version='4'
'QtMultimedia',
'QtWebKitWidgets',
]
+ if sys.platform != "win32" and sys.platform != "darwin" and not crosscompiling :
+ validModules += ['QtX11Extras']
staticModules = [
'QtUiTools',
]
@@ -456,16 +472,37 @@ def enable_modules(self, modules, debug=False, crosscompiling=False, version='4'
debugSuffix = ''
if sys.platform != "win32" and sys.platform != "darwin" and not crosscompiling :
- if debug : debugSuffix = '_debug'
- if version == '4' :
- self.AppendUnique(CPPPATH=[os.path.join("$QTDIR","include", "phonon")])
- for module in modules :
- self.AppendUnique(LIBS=[module+debugSuffix])
- self.AppendUnique(LIBPATH=[os.path.join("$QTDIR","lib")])
- self.AppendUnique(CPPPATH=[os.path.join("$QTDIR","include")])
- self.AppendUnique(CPPPATH=[os.path.join("$QTDIR","include",module)])
- self["QT4_MOCCPPPATH"] = self["CPPPATH"]
- return
+ if self["qt"]:
+ # The user specified qt path in config.py and we are going to use the
+ # installation under that location.
+ UsePkgConfig = False
+ else:
+ # The user did not specify a qt path in config py and we are going to
+ # ask pkg-config for the correct flags.
+ UsePkgConfig = True
+ if not UsePkgConfig:
+ if debug : debugSuffix = '_debug'
+ if version == '4' :
+ self.AppendUnique(CPPPATH=[os.path.join("$QTDIR","include", "phonon")])
+ for module in modules :
+ module_str = module
+ if not version == '4' :
+ module_str = module_str.replace('Qt', 'Qt5')
+ self.AppendUnique(LIBS=[module_str+debugSuffix])
+ self.AppendUnique(LIBPATH=[os.path.join("$QTDIR","lib")])
+ self.AppendUnique(CPPPATH=[os.path.join("$QTDIR","include")])
+ self.AppendUnique(CPPPATH=[os.path.join("$QTDIR","include",module)])
+ self["QT4_MOCCPPPATH"] = self["CPPPATH"]
+ return
+ else:
+ test_env = self.Clone()
+ modules_str = " ".join(modules)
+ if not version == '4' :
+ modules_str = modules_str.replace('Qt', 'Qt5')
+ test_env.ParseConfig("pkg-config --cflags --libs " + modules_str)
+ self.AppendUnique(LIBS=test_env["LIBS"], LIBPATH=test_env["LIBPATH"], CPPPATH=test_env["CPPPATH"])
+ self["QT4_MOCCPPPATH"] = self["CPPPATH"]
+ return
if sys.platform == "win32" or crosscompiling :
if crosscompiling:
diff --git a/Slimber/Qt/SConscript b/Slimber/Qt/SConscript
index b4f0bc3..7a18465 100644
--- a/Slimber/Qt/SConscript
+++ b/Slimber/Qt/SConscript
@@ -23,7 +23,15 @@ if myenv.get("HAVE_LIBIDN") :
myenv.Tool("qt4", toolpath = ["#/BuildTools/SCons/Tools"])
myenv.Tool("nsis", toolpath = ["#/BuildTools/SCons/Tools"])
-myenv.EnableQt4Modules(['QtCore', 'QtGui'], debug = False)
+
+
+qt4modules = ['QtCore', 'QtGui']
+if myenv["qt5"] :
+ qt_version = '5'
+ qt4modules += ['QtWidgets']
+else :
+ qt_version = '4'
+myenv.EnableQt4Modules(qt4modules, debug = False, version = qt_version)
myenv.Append(CPPPATH = ["."])
diff --git a/Swift/QtUI/QtCertificateViewerDialog.cpp b/Swift/QtUI/QtCertificateViewerDialog.cpp
index 15a52ba..8108978 100644
--- a/Swift/QtUI/QtCertificateViewerDialog.cpp
+++ b/Swift/QtUI/QtCertificateViewerDialog.cpp
@@ -4,14 +4,22 @@
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
+/*
+ * Copyright (c) 2015 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
+ */
+
#include "QtCertificateViewerDialog.h"
#include "ui_QtCertificateViewerDialog.h"
#include <Swiften/Base/foreach.h>
-#include <QTreeWidgetItem>
-#include <QLabel>
#include <QDateTime>
+#include <QLabel>
+#include <QString>
+#include <QStringList>
+#include <QTreeWidgetItem>
namespace Swift {
@@ -48,7 +56,7 @@ void QtCertificateViewerDialog::setCertificateChain(const std::vector<Certificat
if (currentChain.size() > 1) {
QTreeWidgetItem* parent = root;
for (int n = 1; n < currentChain.size(); n++) {
- QTreeWidgetItem* link = new QTreeWidgetItem(parent, QStringList(QString("↳ ") + currentChain.at(n).subjectInfo(QSslCertificate::CommonName)));
+ QTreeWidgetItem* link = new QTreeWidgetItem(parent, QStringList(QString("↳ ") + (QStringList(currentChain.at(n).subjectInfo(QSslCertificate::CommonName)).join(", "))));
link->setExpanded(true);
link->setData(0, Qt::UserRole, QVariant(n));
parent = link;
@@ -74,7 +82,8 @@ void QtCertificateViewerDialog::currentItemChanged(QTreeWidgetItem* current, QTr
#define ADD_FIELD( TITLE, VALUE) \
ui->certGridLayout->addWidget(new QLabel(TITLE), rowCount, 0, 1, 1, Qt::AlignRight); \
- valueLabel = new QLabel(VALUE); \
+ valueLabel = new QLabel(); \
+ valueLabel->setText(QStringList(VALUE).join(", ")); \
valueLabel->setTextFormat(Qt::PlainText); \
valueLabel->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard); \
ui->certGridLayout->addWidget(valueLabel, rowCount++, 1, 1, 1, Qt::AlignLeft);
@@ -106,10 +115,16 @@ void QtCertificateViewerDialog::setCertificateDetails(const QSslCertificate& cer
ADD_FIELD(tr("Country"), cert.subjectInfo(QSslCertificate::CountryName));
ADD_FIELD(tr("State"), cert.subjectInfo(QSslCertificate::StateOrProvinceName));
- if (!cert.alternateSubjectNames().empty()) {
+#if QT_VERSION < 0x050000
+ QMultiMap<QSsl::AlternateNameEntryType, QString> altNames = cert.alternateSubjectNames();
+#define SANTYPE QSsl::AlternateNameEntryType
+#else
+ QMultiMap<QSsl::AlternativeNameEntryType, QString> altNames = cert.subjectAlternativeNames();
+#define SANTYPE QSsl::AlternativeNameEntryType
+#endif
+ if (!altNames.empty()) {
ADD_SECTION(tr("Alternate Subject Names"));
- QMultiMap<QSsl::AlternateNameEntryType, QString> altNames = cert.alternateSubjectNames();
- foreach (const QSsl::AlternateNameEntryType &type, altNames.uniqueKeys()) {
+ foreach (const SANTYPE &type, altNames.uniqueKeys()) {
foreach (QString name, altNames.values(type)) {
if (type == QSsl::EmailEntry) {
ADD_FIELD(tr("E-mail Address"), name);
diff --git a/Swift/QtUI/QtUtilities.cpp b/Swift/QtUI/QtUtilities.cpp
index 70686e7..b4b1b09 100644
--- a/Swift/QtUI/QtUtilities.cpp
+++ b/Swift/QtUI/QtUtilities.cpp
@@ -1,18 +1,19 @@
/*
- * Copyright (c) 2010-2013 Isode Limited.
+ * Copyright (c) 2010-2015 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include "QtUtilities.h"
-#include <QTextDocument>
-#include <QWidget>
+#include <QtGui>
#if defined (Q_OS_UNIX) && !defined(Q_OS_MAC)
#include <QX11Info>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#endif
+#include <QTextDocument>
+#include <QWidget>
#include "Swift/Controllers/ApplicationInfo.h"
@@ -20,7 +21,7 @@ namespace QtUtilities {
void setX11Resource(QWidget* widget, const QString& c) {
-#if defined (Q_OS_UNIX) && !defined(Q_OS_MAC)
+#if defined (Q_OS_UNIX) && !defined(Q_OS_MAC) && QT_VERSION < 0x050000
char res_class[] = SWIFT_APPLICATION_NAME;
XClassHint hint;
QByteArray resName = (QString(SWIFT_APPLICATION_NAME) + "-" + c).toUtf8();
diff --git a/Swift/QtUI/SConscript b/Swift/QtUI/SConscript
index f3251d2..86b41d3 100644
--- a/Swift/QtUI/SConscript
+++ b/Swift/QtUI/SConscript
@@ -61,6 +61,8 @@ qt4modules = ['QtCore', 'QtWebKit', 'QtGui']
if myenv["qt5"] :
qt_version = '5'
qt4modules += ['QtWidgets', 'QtWebKitWidgets', 'QtMultimedia']
+ if env["PLATFORM"] != "win32" and env["PLATFORM"] != "darwin" :
+ qt4modules += ['QtX11Extras']
else :
qt_version = '4'
if env["PLATFORM"] == "posix" :