diff options
Diffstat (limited to 'Swift/QtUI/QtVCardWidget/QtVCardJIDField.cpp')
-rw-r--r-- | Swift/QtUI/QtVCardWidget/QtVCardJIDField.cpp | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardJIDField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardJIDField.cpp new file mode 100644 index 0000000..69e2285 --- /dev/null +++ b/Swift/QtUI/QtVCardWidget/QtVCardJIDField.cpp @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2012 Tobias Markmann + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ + +#include "QtVCardJIDField.h" +#include "ui_QtVCardJIDField.h" + +#include <Swiften/JID/JID.h> + +#include <Swift/QtUI/QtSwiftUtil.h> + +namespace Swift { + +QtVCardJIDField::QtVCardJIDField(QWidget* parent, bool editable) : + QWidget(parent), + ui(new Ui::QtVCardJIDField) { + ui->setupUi(this); + connect(ui->lineEditJID, SIGNAL(textChanged(QString)), SLOT(onTextChanged(QString))); + setEditable(editable); +} + +QtVCardJIDField::~QtVCardJIDField() { + delete ui; +} + +bool QtVCardJIDField::isEditable() const { + return editable; +} + +void QtVCardJIDField::setEditable(bool editable) { + this->editable = editable; + if (this->editable) { + ui->lineEditJID->show(); + ui->labelJID->hide(); + } else { + ui->lineEditJID->hide(); + ui->labelJID->show(); + } +} + +bool QtVCardJIDField::isEmpty() const { + return ui->lineEditJID->text().isEmpty(); +} + +void QtVCardJIDField::setJID(const QString jid) { + ui->lineEditJID->setText(jid); +} + +QString QtVCardJIDField::getJID() const { + return ui->lineEditJID->text(); +} + +void QtVCardJIDField::onTextChanged(const QString& text) { + if (text.isEmpty()) { + ui->labelJID->setText(""); + } else { + if (JID(Q2PSTRING(text)).isValid()) { + ui->labelJID->setText(QString("<a href=\"xmpp:%1\">%1</a>").arg(text)); + } else { + ui->labelJID->setText(text); + } + } +} + +} |