From 5f0eeca41f0559c5b416c78fd51445fd93cf61ff Mon Sep 17 00:00:00 2001
From: Tobias Markmann <tm@ayena.de>
Date: Tue, 15 Oct 2013 16:31:02 +0200
Subject: VCard: Assert existence of field widgets instead of if-testing.

Change-Id: Ie92f4f1714b8fb6dc5c1e2729151c8e00c33215b
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.

diff --git a/Swift/QtUI/QtVCardWidget/QtVCardAddressField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardAddressField.cpp
index d9bb4fe..f394af0 100644
--- a/Swift/QtUI/QtVCardWidget/QtVCardAddressField.cpp
+++ b/Swift/QtUI/QtVCardWidget/QtVCardAddressField.cpp
@@ -138,20 +138,30 @@ VCard::Address QtVCardAddressField::getAddress() const {
 }
 
 void QtVCardAddressField::handleEditibleChanged(bool isEditable) {
-	if (streetLineEdit) streetLineEdit->setEditable(isEditable);
-	if (poboxLineEdit) poboxLineEdit->setEditable(isEditable);
-	if (addressextLineEdit) addressextLineEdit->setEditable(isEditable);
-	if (cityLineEdit) cityLineEdit->setEditable(isEditable);
-	if (pocodeLineEdit) pocodeLineEdit->setEditable(isEditable);
-	if (regionLineEdit) regionLineEdit->setEditable(isEditable);
-	if (countryLineEdit) countryLineEdit->setEditable(isEditable);
-
-	if (deliveryTypeLabel) {
-		deliveryTypeLabel->setText(buttonGroup->checkedButton() == 0 ? "" : buttonGroup->checkedButton()->text());
-		deliveryTypeLabel->setVisible(!isEditable);
-	}
-	if (domesticRadioButton) domesticRadioButton->setVisible(isEditable);
-	if (internationalRadioButton) internationalRadioButton->setVisible(isEditable);
+	assert(streetLineEdit);
+	assert(poboxLineEdit);
+	assert(addressextLineEdit);
+	assert(cityLineEdit);
+	assert(pocodeLineEdit);
+	assert(regionLineEdit);
+	assert(countryLineEdit);
+	assert(deliveryTypeLabel);
+	assert(domesticRadioButton);
+	assert(internationalRadioButton);
+
+	streetLineEdit->setEditable(isEditable);
+	poboxLineEdit->setEditable(isEditable);
+	addressextLineEdit->setEditable(isEditable);
+	cityLineEdit->setEditable(isEditable);
+	pocodeLineEdit->setEditable(isEditable);
+	regionLineEdit->setEditable(isEditable);
+	countryLineEdit->setEditable(isEditable);
+
+	deliveryTypeLabel->setText(buttonGroup->checkedButton() == 0 ? "" : buttonGroup->checkedButton()->text());
+	deliveryTypeLabel->setVisible(!isEditable);
+
+	domesticRadioButton->setVisible(isEditable);
+	internationalRadioButton->setVisible(isEditable);
 
 	foreach (QWidget* widget, textFields) {
 		QtResizableLineEdit* lineEdit;
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardAddressLabelField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardAddressLabelField.cpp
index 20f48b9..98e313f 100644
--- a/Swift/QtUI/QtVCardWidget/QtVCardAddressLabelField.cpp
+++ b/Swift/QtUI/QtVCardWidget/QtVCardAddressLabelField.cpp
@@ -81,17 +81,19 @@ VCard::AddressLabel QtVCardAddressLabelField::getAddressLabel() const {
 }
 
 void QtVCardAddressLabelField::handleEditibleChanged(bool isEditable) {
-	if (addressLabelPlainTextEdit) {
-		addressLabelPlainTextEdit->setReadOnly(!isEditable);
-		addressLabelPlainTextEdit->setStyleSheet(isEditable ? "" : "QPlainTextEdit { background: transparent; }");
-	}
-
-	if (deliveryTypeLabel) {
-		deliveryTypeLabel->setText(buttonGroup->checkedButton() == 0 ? "" : buttonGroup->checkedButton()->text());
-		deliveryTypeLabel->setVisible(!isEditable);
-	}
-	if (domesticRadioButton) domesticRadioButton->setVisible(isEditable);
-	if (internationalRadioButton) internationalRadioButton->setVisible(isEditable);
+	assert(addressLabelPlainTextEdit);
+	assert(deliveryTypeLabel);
+	assert(domesticRadioButton);
+	assert(internationalRadioButton);
+
+	addressLabelPlainTextEdit->setReadOnly(!isEditable);
+	addressLabelPlainTextEdit->setStyleSheet(isEditable ? "" : "QPlainTextEdit { background: transparent; }");
+
+	deliveryTypeLabel->setText(buttonGroup->checkedButton() == 0 ? "" : buttonGroup->checkedButton()->text());
+	deliveryTypeLabel->setVisible(!isEditable);
+
+	domesticRadioButton->setVisible(isEditable);
+	internationalRadioButton->setVisible(isEditable);
 }
 
 }
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardDescriptionField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardDescriptionField.cpp
index f907d78..f16c351 100644
--- a/Swift/QtUI/QtVCardWidget/QtVCardDescriptionField.cpp
+++ b/Swift/QtUI/QtVCardWidget/QtVCardDescriptionField.cpp
@@ -44,21 +44,21 @@ std::string QtVCardDescriptionField::getDescription() const {
 }
 
 void QtVCardDescriptionField::handleEditibleChanged(bool isEditable) {
-	if (descriptionPlainTextEdit) {
-		if (isEditable) {
-			descriptionPlainTextEdit->setMinimumHeight(70);
-		} else {
-			QFontMetrics inputMetrics(descriptionPlainTextEdit->document()->defaultFont());
-			QRect horizontalBounds = contentsRect().adjusted(0,0,0,9999);
-			QRect boundingRect = inputMetrics.boundingRect(horizontalBounds, Qt::TextWordWrap, descriptionPlainTextEdit->toPlainText() + "A");
-			int left, top, right, bottom;
-			getContentsMargins(&left, &top, &right, &bottom);
-			int height = boundingRect.height() + top + bottom + inputMetrics.height();
-			descriptionPlainTextEdit->setMinimumHeight(height > 70 ? 70 : height);
-		}
-		descriptionPlainTextEdit->setReadOnly(!isEditable);
-		descriptionPlainTextEdit->setStyleSheet(isEditable ? "" : "QPlainTextEdit { background: transparent; }");
+	assert(descriptionPlainTextEdit);
+
+	if (isEditable) {
+		descriptionPlainTextEdit->setMinimumHeight(70);
+	} else {
+		QFontMetrics inputMetrics(descriptionPlainTextEdit->document()->defaultFont());
+		QRect horizontalBounds = contentsRect().adjusted(0,0,0,9999);
+		QRect boundingRect = inputMetrics.boundingRect(horizontalBounds, Qt::TextWordWrap, descriptionPlainTextEdit->toPlainText() + "A");
+		int left, top, right, bottom;
+		getContentsMargins(&left, &top, &right, &bottom);
+		int height = boundingRect.height() + top + bottom + inputMetrics.height();
+		descriptionPlainTextEdit->setMinimumHeight(height > 70 ? 70 : height);
 	}
+	descriptionPlainTextEdit->setReadOnly(!isEditable);
+	descriptionPlainTextEdit->setStyleSheet(isEditable ? "" : "QPlainTextEdit { background: transparent; }");
 }
 
 }
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardGeneralField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardGeneralField.cpp
index 5b3ef87..f8b9247 100644
--- a/Swift/QtUI/QtVCardWidget/QtVCardGeneralField.cpp
+++ b/Swift/QtUI/QtVCardWidget/QtVCardGeneralField.cpp
@@ -4,17 +4,17 @@
  * See Documentation/Licenses/BSD-simplified.txt for more information.
  */
 
-#include "QtVCardGeneralField.h"
+#include <Swift/QtUI/QtVCardWidget/QtVCardGeneralField.h>
+
+#include <cassert>
 
 #include <QHBoxLayout>
-#include <Swiften/Base/Log.h>
 
 namespace Swift {
 
 QtVCardGeneralField::QtVCardGeneralField(QWidget* parent, QGridLayout* layout, bool editable, int row, QString label, bool preferrable, bool taggable) :
-	QWidget(parent), preferrable(preferrable), taggable(taggable), layout(layout), row(row), preferredCheckBox(0), label(0), labelText(label),
+	QWidget(parent), editable(editable), preferrable(preferrable), taggable(taggable), layout(layout), row(row), preferredCheckBox(0), label(0), labelText(label),
 	tagComboBox(0), closeButton(0) {
-	setEditable(editable);
 }
 
 QtVCardGeneralField::~QtVCardGeneralField() {
@@ -54,6 +54,7 @@ void QtVCardGeneralField::initialize() {
 	tagLabel->hide();
 
 	childWidgets << label << tagComboBox << tagLabel << closeButton;
+	setEditable(editable);
 }
 
 bool QtVCardGeneralField::isEditable() const {
@@ -61,24 +62,22 @@ bool QtVCardGeneralField::isEditable() const {
 }
 
 void QtVCardGeneralField::setEditable(bool editable) {
+	assert(tagComboBox);
+	assert(closeButton);
+
 	this->editable = editable;
-	if (tagComboBox) {
-		if (taggable) {
-			tagLabel->setText(tagComboBox->itemText(0));
-			tagComboBox->setVisible(editable);
-			tagLabel->setVisible(!editable);
-		} else {
-			tagLabel->hide();
-			tagComboBox->hide();
-		}
+	if (taggable) {
+		tagLabel->setText(tagComboBox->itemText(0));
+		tagComboBox->setVisible(editable);
+		tagLabel->setVisible(!editable);
+	} else {
+		tagLabel->hide();
+		tagComboBox->hide();
 	}
-	if (closeButton) closeButton->setVisible(editable);
-	if (preferredCheckBox) {
-		if (editable) {
-			preferredCheckBox->show();
-		} else if (!preferredCheckBox->isChecked()) {
-			preferredCheckBox->hide();
-		}
+	closeButton->setVisible(editable);
+	if (preferrable) {
+		assert(preferredCheckBox);
+		preferredCheckBox->setVisible(editable ? true : preferredCheckBox->isChecked());
 		preferredCheckBox->setEnabled(editable);
 	}
 	editableChanged(this->editable);
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardInternetEMailField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardInternetEMailField.cpp
index b946fc4..e6f8298 100644
--- a/Swift/QtUI/QtVCardWidget/QtVCardInternetEMailField.cpp
+++ b/Swift/QtUI/QtVCardWidget/QtVCardInternetEMailField.cpp
@@ -66,15 +66,16 @@ VCard::EMailAddress QtVCardInternetEMailField::getInternetEMailAddress() const {
 }
 
 void QtVCardInternetEMailField::handleEditibleChanged(bool isEditable) {
+	assert(emailLineEdit);
+	assert(emailLabel);
+
 	if (isEditable) {
-		if (emailLineEdit) emailLineEdit->show();
-		if (emailLabel) emailLabel->hide();
+		emailLineEdit->show();
+		emailLabel->hide();
 	} else {
-		if (emailLineEdit) emailLineEdit->hide();
-		if (emailLabel) {
-			emailLabel->setText(QString("<a href=\"mailto:%1\">%1</a>").arg(QtUtilities::htmlEscape(emailLineEdit->text())));
-			emailLabel->show();
-		}
+		emailLineEdit->hide();
+		emailLabel->setText(QString("<a href=\"mailto:%1\">%1</a>").arg(QtUtilities::htmlEscape(emailLineEdit->text())));
+		emailLabel->show();
 	}
 }
 
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardJIDField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardJIDField.cpp
index ecb5533..23a2b5d 100644
--- a/Swift/QtUI/QtVCardWidget/QtVCardJIDField.cpp
+++ b/Swift/QtUI/QtVCardWidget/QtVCardJIDField.cpp
@@ -57,15 +57,16 @@ JID QtVCardJIDField::getJID() const {
 }
 
 void QtVCardJIDField::handleEditibleChanged(bool isEditable) {
+	assert(jidLineEdit);
+	assert(jidLabel);
+
 	if (isEditable) {
-		if (jidLineEdit) jidLineEdit->show();
-		if (jidLabel) jidLabel->hide();
+		jidLineEdit->show();
+		jidLabel->hide();
 	} else {
-		if (jidLineEdit) jidLineEdit->hide();
-		if (jidLabel) {
-			jidLabel->setText(QString("<a href=\"xmpp:%1\">%1</a>").arg(QtUtilities::htmlEscape(jidLineEdit->text())));
-			jidLabel->show();
-		}
+		jidLineEdit->hide();
+		jidLabel->setText(QString("<a href=\"xmpp:%1\">%1</a>").arg(QtUtilities::htmlEscape(jidLineEdit->text())));
+		jidLabel->show();
 	}
 }
 
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardOrganizationField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardOrganizationField.cpp
index 9ecc8e0..7f6c23d 100644
--- a/Swift/QtUI/QtVCardWidget/QtVCardOrganizationField.cpp
+++ b/Swift/QtUI/QtVCardWidget/QtVCardOrganizationField.cpp
@@ -96,23 +96,24 @@ VCard::Organization QtVCardOrganizationField::getOrganization() const {
 }
 
 void QtVCardOrganizationField::handleEditibleChanged(bool isEditable) {
-	if (organizationLineEdit) {
-		organizationLineEdit->setVisible(isEditable);
-		organizationLabel->setVisible(!isEditable);
-
-		if (!isEditable) {
-			QString label;
-			for(int i=0; i < unitsTreeWidget->topLevelItemCount(); ++i) {
-				QTreeWidgetItem* row = unitsTreeWidget->topLevelItem(i);
-				if (!row->text(0).isEmpty()) {
-					label += row->text(0) + ", ";
-				}
+	assert(organizationLineEdit);
+	assert(unitsTreeWidget);
+
+	organizationLineEdit->setVisible(isEditable);
+	organizationLabel->setVisible(!isEditable);
+
+	if (!isEditable) {
+		QString label;
+		for(int i=0; i < unitsTreeWidget->topLevelItemCount(); ++i) {
+			QTreeWidgetItem* row = unitsTreeWidget->topLevelItem(i);
+			if (!row->text(0).isEmpty()) {
+				label += row->text(0) + ", ";
 			}
-			label += organizationLineEdit->text();
-			organizationLabel->setText(label);
 		}
+		label += organizationLineEdit->text();
+		organizationLabel->setText(label);
 	}
-	if (unitsTreeWidget) unitsTreeWidget->setVisible(isEditable);
+	unitsTreeWidget->setVisible(isEditable);
 }
 
 void QtVCardOrganizationField::handleItemChanged(QTreeWidgetItem *, int) {
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardRoleField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardRoleField.cpp
index 8af4e64..b9da767 100644
--- a/Swift/QtUI/QtVCardWidget/QtVCardRoleField.cpp
+++ b/Swift/QtUI/QtVCardWidget/QtVCardRoleField.cpp
@@ -41,10 +41,10 @@ std::string QtVCardRoleField::getRole() const {
 }
 
 void QtVCardRoleField::handleEditibleChanged(bool isEditable) {
-	if (roleLineEdit) {
-		roleLineEdit->setEditable(isEditable);
-		roleLineEdit->setStyleSheet(isEditable ? "" : "QLineEdit { border: none; background: transparent; }");
-	}
+	assert(roleLineEdit);
+
+	roleLineEdit->setEditable(isEditable);
+	roleLineEdit->setStyleSheet(isEditable ? "" : "QLineEdit { border: none; background: transparent; }");
 }
 
 }
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardTelephoneField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardTelephoneField.cpp
index ee93c01..063319e 100644
--- a/Swift/QtUI/QtVCardWidget/QtVCardTelephoneField.cpp
+++ b/Swift/QtUI/QtVCardWidget/QtVCardTelephoneField.cpp
@@ -91,10 +91,10 @@ VCard::Telephone QtVCardTelephoneField::getTelephone() const {
 }
 
 void QtVCardTelephoneField::handleEditibleChanged(bool isEditable) {
-	if (telephoneLineEdit) {
-		telephoneLineEdit->setEditable(isEditable);
-		telephoneLineEdit->setStyleSheet(isEditable ? "" : "QLineEdit { border: none; background: transparent; }");
-	}
+	assert(telephoneLineEdit);
+
+	telephoneLineEdit->setEditable(isEditable);
+	telephoneLineEdit->setStyleSheet(isEditable ? "" : "QLineEdit { border: none; background: transparent; }");
 }
 
 }
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardTitleField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardTitleField.cpp
index aac4e31..43972d0 100644
--- a/Swift/QtUI/QtVCardWidget/QtVCardTitleField.cpp
+++ b/Swift/QtUI/QtVCardWidget/QtVCardTitleField.cpp
@@ -42,10 +42,10 @@ std::string QtVCardTitleField::getTitle() const {
 }
 
 void QtVCardTitleField::handleEditibleChanged(bool isEditable) {
-	if (titleLineEdit) {
-		titleLineEdit->setEditable(isEditable);
-		titleLineEdit->setStyleSheet(isEditable ? "" : "QLineEdit { border: none; background: transparent; }");
-	}
+	assert(titleLineEdit);
+
+	titleLineEdit->setEditable(isEditable);
+	titleLineEdit->setStyleSheet(isEditable ? "" : "QLineEdit { border: none; background: transparent; }");
 }
 
 }
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardURLField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardURLField.cpp
index 35cc4ce..b39eeaa 100644
--- a/Swift/QtUI/QtVCardWidget/QtVCardURLField.cpp
+++ b/Swift/QtUI/QtVCardWidget/QtVCardURLField.cpp
@@ -55,15 +55,16 @@ std::string QtVCardURLField::getURL() const {
 }
 
 void QtVCardURLField::handleEditibleChanged(bool isEditable) {
+	assert(urlLineEdit);
+	assert(urlLabel);
+
 	if (isEditable) {
-		if (urlLineEdit) urlLineEdit->show();
-		if (urlLabel) urlLabel->hide();
+		urlLineEdit->show();
+		urlLabel->hide();
 	} else {
-		if (urlLineEdit) urlLineEdit->hide();
-		if (urlLabel) {
-			urlLabel->setText(QString("<a href=\"%1\">%1</a>").arg(QtUtilities::htmlEscape(urlLineEdit->text())));
-			urlLabel->show();
-		}
+		urlLineEdit->hide();
+		urlLabel->setText(QString("<a href=\"%1\">%1</a>").arg(QtUtilities::htmlEscape(urlLineEdit->text())));
+		urlLabel->show();
 	}
 }
 
-- 
cgit v0.10.2-6-g49f6