diff options
Diffstat (limited to 'Swift/QtUI/QtVCardWidget/QtVCardEMailField.h')
-rw-r--r-- | Swift/QtUI/QtVCardWidget/QtVCardEMailField.h | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardEMailField.h b/Swift/QtUI/QtVCardWidget/QtVCardEMailField.h new file mode 100644 index 0000000..ff486a1 --- /dev/null +++ b/Swift/QtUI/QtVCardWidget/QtVCardEMailField.h @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2012 Tobias Markmann + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ + +#pragma once + +#include <QWidget> + +#include "QtVCardFieldInfo.h" + +namespace Swift { + + namespace Ui { + class QtVCardEMailField; + } + + class QtVCardEMailField : public QWidget { + Q_OBJECT + Q_PROPERTY(bool editable READ isEditable WRITE setEditable) + Q_PROPERTY(bool empty READ isEmpty) + + public : + class FieldInfo : public QtVCardFieldInfo { + public: + virtual ~FieldInfo() { + } + virtual QString getMenuName() const { + return tr("EMail"); + } + virtual int getAllowedInstances() const { + return UNLIMITED_INSTANCES; + } + virtual QWidget* createFieldInstance(QWidget* parent, bool editable) const { + return new QtVCardEMailField(parent, editable); + } + virtual bool testInstance(QWidget* widget) const { + return dynamic_cast<QtVCardEMailField*>(widget) != 0; + } + }; + + enum EMailType { + Internet = 0, + X_400 + }; + + public: + explicit QtVCardEMailField(QWidget* parent = 0, bool editable = false); + ~QtVCardEMailField(); + + bool isEditable() const; + void setEditable(bool); + + bool isEmpty() const; + + void setAddress(const QString address); + QString getAddress() const; + + void setPreferred(const bool preferred); + bool getPreferred() const; + + void setHome(const bool home); + bool getHome() const; + + void setWork(const bool work); + bool getWork() const; + + void setType(EMailType type); + EMailType getType() const; + + private slots: + void onTextChanged(const QString&); + void onEMailTypeChanged(int); + + private: + bool isEmailAddress(const QString& emailAddress); + + private: + Ui::QtVCardEMailField* ui; + bool editable; + }; + +} |