diff options
Diffstat (limited to 'Swift/QtUI/QtVCardWidget/QtVCardPhotoAndNameFields.cpp')
-rw-r--r-- | Swift/QtUI/QtVCardWidget/QtVCardPhotoAndNameFields.cpp | 178 |
1 files changed, 77 insertions, 101 deletions
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardPhotoAndNameFields.cpp b/Swift/QtUI/QtVCardWidget/QtVCardPhotoAndNameFields.cpp index 3ddc86b..eef6728 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardPhotoAndNameFields.cpp +++ b/Swift/QtUI/QtVCardWidget/QtVCardPhotoAndNameFields.cpp @@ -1,176 +1,152 @@ /* - * Copyright (c) 2012 Tobias Markmann + * Copyright (c) 2012-2014 Tobias Markmann * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ -#include "QtVCardPhotoAndNameFields.h" -#include "ui_QtVCardPhotoAndNameFields.h" +/* + * Copyright (c) 2015-2016 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. + */ + +#include <Swift/QtUI/QtVCardWidget/QtVCardPhotoAndNameFields.h> #include <QMenu> +#include <Swift/QtUI/QtVCardWidget/ui_QtVCardPhotoAndNameFields.h> + namespace Swift { QtVCardPhotoAndNameFields::QtVCardPhotoAndNameFields(QWidget* parent) : - QWidget(parent), - ui(new Ui::QtVCardPhotoAndNameFields) { - ui->setupUi(this); - ui->lineEditPREFIX->hide(); - ui->lineEditMIDDLE->hide(); - ui->lineEditSUFFIX->hide(); - ui->lineEditFN->hide(); - ui->lineEditNICKNAME->hide(); - ui->labelFULLNAME->hide(); + QWidget(parent), + ui(new Ui::QtVCardPhotoAndNameFields) { + ui->setupUi(this); + ui->lineEditPREFIX->hide(); + ui->lineEditMIDDLE->hide(); + ui->lineEditSUFFIX->hide(); + ui->lineEditFN->hide(); + ui->lineEditNICKNAME->hide(); + ui->labelFN->hide(); + ui->labelNICKNAME->hide(); + ui->labelFULLNAME->hide(); #if QT_VERSION >= 0x040700 - ui->lineEditFN->setPlaceholderText(tr("Formatted Name")); - ui->lineEditNICKNAME->setPlaceholderText(tr("Nickname")); - ui->lineEditPREFIX->setPlaceholderText(tr("Prefix")); - ui->lineEditGIVEN->setPlaceholderText(tr("Given Name")); - ui->lineEditMIDDLE->setPlaceholderText(tr("Middle Name")); - ui->lineEditFAMILY->setPlaceholderText(tr("Last Name")); - ui->lineEditSUFFIX->setPlaceholderText(tr("Suffix")); + ui->lineEditFN->setPlaceholderText(tr("Formatted Name")); + ui->lineEditNICKNAME->setPlaceholderText(tr("Nickname")); + ui->lineEditPREFIX->setPlaceholderText(tr("Prefix")); + ui->lineEditGIVEN->setPlaceholderText(tr("Given Name")); + ui->lineEditMIDDLE->setPlaceholderText(tr("Middle Name")); + ui->lineEditFAMILY->setPlaceholderText(tr("Last Name")); + ui->lineEditSUFFIX->setPlaceholderText(tr("Suffix")); #endif - addFieldMenu = new QMenu("Name", this); - - actionSignalMapper = new QSignalMapper(this); - - connect(actionSignalMapper, SIGNAL(mapped(const QString &)), this, SLOT(showField(const QString &))); - prepareAddFieldMenu(); + setEditable(false); } QtVCardPhotoAndNameFields::~QtVCardPhotoAndNameFields() { - delete ui; - delete actionSignalMapper; + delete ui; } bool QtVCardPhotoAndNameFields::isEditable() const { - return editable; + return editable; } void QtVCardPhotoAndNameFields::setEditable(bool editable) { - this->editable = editable; + this->editable = editable; - ui->avatarWidget->setEditable(editable); - ui->lineEditFN->setVisible(editable ? true : !ui->lineEditFN->text().isEmpty()); - ui->lineEditFN->setEditable(editable); - ui->lineEditFN->setStyleSheet(editable ? "" : "QLineEdit {border: none; background-color: transparent;}"); + ui->avatarWidget->setEditable(editable); + ui->lineEditFN->setVisible(editable); + ui->labelFN->setVisible(!editable); - ui->lineEditNICKNAME->setVisible(editable ? true : !ui->lineEditNICKNAME->text().isEmpty()); - ui->lineEditNICKNAME->setEditable(editable); - ui->lineEditNICKNAME->setStyleSheet(editable ? "" : "QLineEdit {border: none; background-color: transparent;}"); + ui->lineEditNICKNAME->setVisible(editable); + ui->labelNICKNAME->setVisible(!editable); - // prefix given middle last suffix - ui->lineEditPREFIX->setVisible(editable); - ui->lineEditGIVEN->setVisible(editable); - ui->lineEditMIDDLE->setVisible(editable); - ui->lineEditFAMILY->setVisible(editable); - ui->lineEditSUFFIX->setVisible(editable); - ui->labelFULLNAME->setVisible(!editable); - ui->labelFULLNAME->setText( ui->lineEditPREFIX->text() + " " + ui->lineEditGIVEN->text() + " " + - ui->lineEditMIDDLE->text() + " " + ui->lineEditFAMILY->text() + " " + ui->lineEditSUFFIX->text()); - - prepareAddFieldMenu(); -} + // prefix given middle last suffix + ui->lineEditPREFIX->setVisible(editable); + ui->lineEditGIVEN->setVisible(editable); + ui->lineEditMIDDLE->setVisible(editable); + ui->lineEditFAMILY->setVisible(editable); + ui->lineEditSUFFIX->setVisible(editable); + ui->labelFULLNAME->setVisible(!editable); -QMenu* QtVCardPhotoAndNameFields::getAddFieldMenu() const { - return addFieldMenu; + QStringList fullname; + fullname << ui->lineEditPREFIX->text() << ui->lineEditGIVEN->text() << ui->lineEditMIDDLE->text(); + fullname << ui->lineEditFAMILY->text() << ui->lineEditSUFFIX->text(); + for (auto& i : fullname) { + i = i.trimmed(); + } + ui->labelFULLNAME->setText((fullname.filter(QRegExp(".+"))).join(" ")); } void QtVCardPhotoAndNameFields::setAvatar(const ByteArray &data, const std::string &type) { - ui->avatarWidget->setAvatar(data, type); + ui->avatarWidget->setAvatar(data, type); } ByteArray QtVCardPhotoAndNameFields::getAvatarData() const { - return ui->avatarWidget->getAvatarData(); + return ui->avatarWidget->getAvatarData(); } std::string QtVCardPhotoAndNameFields::getAvatarType() const { - return ui->avatarWidget->getAvatarType(); + return ui->avatarWidget->getAvatarType(); } -void QtVCardPhotoAndNameFields::setFormattedName(const QString formattedName) { - ui->lineEditFN->setText(formattedName); +void QtVCardPhotoAndNameFields::setFormattedName(const QString& formattedName) { + ui->lineEditFN->setText(formattedName); + ui->labelFN->setText(formattedName); } QString QtVCardPhotoAndNameFields::getFormattedName() const { - return ui->lineEditFN->text(); + return ui->lineEditFN->text(); } -void QtVCardPhotoAndNameFields::setNickname(const QString nickname) { - ui->lineEditNICKNAME->setText(nickname); +void QtVCardPhotoAndNameFields::setNickname(const QString& nickname) { + ui->lineEditNICKNAME->setText(nickname); + ui->labelNICKNAME->setText(nickname); } QString QtVCardPhotoAndNameFields::getNickname() const { - return ui->lineEditNICKNAME->text(); + return ui->lineEditNICKNAME->text(); } -void QtVCardPhotoAndNameFields::setPrefix(const QString prefix) { - ui->lineEditPREFIX->setText(prefix); +void QtVCardPhotoAndNameFields::setPrefix(const QString& prefix) { + ui->lineEditPREFIX->setText(prefix); } QString QtVCardPhotoAndNameFields::getPrefix() const { - return ui->lineEditPREFIX->text(); + return ui->lineEditPREFIX->text(); } -void QtVCardPhotoAndNameFields::setGivenName(const QString givenName) { - ui->lineEditGIVEN->setText(givenName); +void QtVCardPhotoAndNameFields::setGivenName(const QString& givenName) { + ui->lineEditGIVEN->setText(givenName); } QString QtVCardPhotoAndNameFields::getGivenName() const { - return ui->lineEditGIVEN->text(); + return ui->lineEditGIVEN->text(); } -void QtVCardPhotoAndNameFields::setMiddleName(const QString middleName) { - ui->lineEditMIDDLE->setText(middleName); +void QtVCardPhotoAndNameFields::setMiddleName(const QString& middleName) { + ui->lineEditMIDDLE->setText(middleName); } QString QtVCardPhotoAndNameFields::getMiddleName() const { - return ui->lineEditMIDDLE->text(); + return ui->lineEditMIDDLE->text(); } -void QtVCardPhotoAndNameFields::setFamilyName(const QString familyName) { - ui->lineEditFAMILY->setText(familyName); +void QtVCardPhotoAndNameFields::setFamilyName(const QString& familyName) { + ui->lineEditFAMILY->setText(familyName); } QString QtVCardPhotoAndNameFields::getFamilyName() const { - return ui->lineEditFAMILY->text(); + return ui->lineEditFAMILY->text(); } -void QtVCardPhotoAndNameFields::setSuffix(const QString suffix) { - ui->lineEditSUFFIX->setText(suffix); +void QtVCardPhotoAndNameFields::setSuffix(const QString& suffix) { + ui->lineEditSUFFIX->setText(suffix); } QString QtVCardPhotoAndNameFields::getSuffix() const { - return ui->lineEditSUFFIX->text(); -} - -void QtVCardPhotoAndNameFields::prepareAddFieldMenu() { - foreach(QAction* action, addFieldMenu->actions()) { - actionSignalMapper->removeMappings(action); - } - - addFieldMenu->clear(); - foreach(QObject* obj, children()) { - QLineEdit* lineEdit = 0; - if (!(lineEdit = dynamic_cast<QLineEdit*>(obj))) continue; - if (lineEdit->isHidden()) { -#if QT_VERSION >= 0x040700 - QAction* action = addFieldMenu->addAction(QString("Add ") + lineEdit->placeholderText(), actionSignalMapper, SLOT(map())); -#else - QAction* action = addFieldMenu->addAction(QString("Add ") + lineEdit->toolTip(), actionSignalMapper, SLOT(map())); -#endif - actionSignalMapper->setMapping(action, lineEdit->objectName()); - } - } -} - -void QtVCardPhotoAndNameFields::showField(const QString& widgetName) { - QLineEdit* lineEditToShow = findChild<QLineEdit*>(widgetName); - if (lineEditToShow) lineEditToShow->show(); - - prepareAddFieldMenu(); + return ui->lineEditSUFFIX->text(); } } |