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" : |