diff options
Diffstat (limited to 'Swift/QtUI/QtVCardWidget/QtVCardURLField.cpp')
-rw-r--r-- | Swift/QtUI/QtVCardWidget/QtVCardURLField.cpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardURLField.cpp b/Swift/QtUI/QtVCardWidget/QtVCardURLField.cpp new file mode 100644 index 0000000..028d729 --- /dev/null +++ b/Swift/QtUI/QtVCardWidget/QtVCardURLField.cpp @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2012 Tobias Markmann + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ + +#include "QtVCardURLField.h" +#include "ui_QtVCardURLField.h" + +#include <QUrl> + +namespace Swift { + +QtVCardURLField::QtVCardURLField(QWidget* parent, bool editable) : + QWidget(parent), + ui(new Ui::QtVCardURLField) { + ui->setupUi(this); + connect(ui->lineEditURL, SIGNAL(textChanged(QString)), SLOT(onTextChanged(QString))); + setEditable(editable); +} + +QtVCardURLField::~QtVCardURLField() { + delete ui; +} + +bool QtVCardURLField::isEditable() const { + return editable; +} + +void QtVCardURLField::setEditable(bool editable) { + this->editable = editable; + if (this->editable) { + ui->lineEditURL->show(); + ui->labelURL->hide(); + } else { + ui->lineEditURL->hide(); + ui->labelURL->show(); + } +} + +bool QtVCardURLField::isEmpty() const { + return ui->lineEditURL->text().isEmpty(); +} + +void QtVCardURLField::setURL(const QString url) { + ui->lineEditURL->setText(url); +} + +QString QtVCardURLField::getURL() const { + return ui->lineEditURL->text(); +} + +void QtVCardURLField::onTextChanged(const QString& text) { + if (text.isEmpty()) { + ui->labelURL->setText(""); + } else { + if (QUrl(text).isValid()) { + ui->labelURL->setText(QString("<a href=\"%1\">%1</a>").arg(text)); + } else { + ui->labelURL->setText(text); + } + } +} + +} |