diff options
| -rw-r--r-- | BuildTools/SCons/Tools/qt4.py | 75 | ||||
| -rw-r--r-- | Slimber/Qt/SConscript | 10 | ||||
| -rw-r--r-- | Swift/QtUI/QtCertificateViewerDialog.cpp | 29 | ||||
| -rw-r--r-- | Swift/QtUI/QtUtilities.cpp | 9 | ||||
| -rw-r--r-- | Swift/QtUI/SConscript | 2 | 
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" : | 
 Swift
 Swift