Use QSslCertificate::isNull() instead of isValid() in IdentityEditWidget
[quassel.git] / src / qtui / settingspages / identityeditwidget.cpp
index 38bbd11..6585891 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2012 by the Quassel Project                        *
+ *   Copyright (C) 2005-2014 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -25,6 +25,7 @@
 #include <QDropEvent>
 #include <QFileDialog>
 #include <QUrl>
+#include <QMessageBox>
 
 #include "client.h"
 #include "iconloader.h"
@@ -134,6 +135,7 @@ void IdentityEditWidget::displayIdentity(CertIdentity *id, CertIdentity *saveId)
 
 void IdentityEditWidget::saveToIdentity(CertIdentity *id)
 {
+    QRegExp linebreaks = QRegExp("[\\r\\n]");
     id->setRealName(ui.realName->text());
     QStringList nicks;
     for (int i = 0; i < ui.nicknameList->count(); i++) {
@@ -142,19 +144,19 @@ void IdentityEditWidget::saveToIdentity(CertIdentity *id)
     id->setNicks(nicks);
     id->setAwayNick(ui.awayNick->text());
     id->setAwayNickEnabled(true);
-    id->setAwayReason(ui.awayReason->text());
+    id->setAwayReason(ui.awayReason->text().remove(linebreaks));
     id->setAwayReasonEnabled(true);
     id->setAutoAwayEnabled(ui.autoAwayEnabled->isChecked());
     id->setAutoAwayTime(ui.autoAwayTime->value());
-    id->setAutoAwayReason(ui.autoAwayReason->text());
+    id->setAutoAwayReason(ui.autoAwayReason->text().remove(linebreaks));
     id->setAutoAwayReasonEnabled(ui.autoAwayReasonEnabled->isChecked());
     id->setDetachAwayEnabled(ui.detachAwayEnabled->isChecked());
-    id->setDetachAwayReason(ui.detachAwayReason->text());
+    id->setDetachAwayReason(ui.detachAwayReason->text().remove(linebreaks));
     id->setDetachAwayReasonEnabled(true);
     id->setIdent(ui.ident->text());
-    id->setKickReason(ui.kickReason->text());
-    id->setPartReason(ui.partReason->text());
-    id->setQuitReason(ui.quitReason->text());
+    id->setKickReason(ui.kickReason->text().remove(linebreaks));
+    id->setPartReason(ui.partReason->text().remove(linebreaks));
+    id->setQuitReason(ui.quitReason->text().remove(linebreaks));
 #ifdef HAVE_SSL
     id->setSslKey(QSslKey(ui.keyTypeLabel->property("sslKey").toByteArray(), (QSsl::KeyAlgorithm)(ui.keyTypeLabel->property("sslKeyType").toInt())));
     id->setSslCert(QSslCertificate(ui.certOrgLabel->property("sslCert").toByteArray()));
@@ -298,7 +300,7 @@ void IdentityEditWidget::sslDropEvent(QDropEvent *event, bool isCert)
 
     if (isCert) {
         QSslCertificate cert = certByFilename(filename);
-        if (cert.isValid())
+        if (!cert.isNull())
             showCertState(cert);
     }
     else {
@@ -339,6 +341,7 @@ QSslKey IdentityEditWidget::keyByFilename(const QString &filename)
                 goto returnKey;
         }
     }
+    QMessageBox::information(this, tr("Failed to read key"), tr("Failed to read the key file. It is either incompatible or invalid. Note that the key file must not have a passphrase."));
 returnKey:
     return key;
 }
@@ -390,7 +393,7 @@ QSslCertificate IdentityEditWidget::certByFilename(const QString &filename)
 
     for (int i = 0; i < 2; i++) {
         cert = QSslCertificate(certRaw, (QSsl::EncodingFormat)i);
-        if (cert.isValid())
+        if (!cert.isNull())
             break;
     }
     return cert;
@@ -399,7 +402,7 @@ QSslCertificate IdentityEditWidget::certByFilename(const QString &filename)
 
 void IdentityEditWidget::showCertState(const QSslCertificate &cert)
 {
-    if (!cert.isValid()) {
+    if (cert.isNull()) {
         ui.certOrgLabel->setText(tr("No Certificate loaded"));
         ui.certCNameLabel->setText(tr("No Certificate loaded"));
         ui.clearOrLoadCertButton->setText(tr("Load"));