diff options
author | Tobias Markmann <tm@ayena.de> | 2012-02-26 14:32:39 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2012-11-11 16:38:00 (GMT) |
commit | 684559ff499077e33d3d5e4b9ecb39afa240d067 (patch) | |
tree | 7c0f03ddb4c73e1d2d2ddd54fe3f3b9640291e75 /Swift/QtUI/QtVCardWidget/QtVCardWidget.h | |
parent | be6fd0b4b580d81bfe33975c28ee7a939d6c6723 (diff) | |
download | swift-contrib-684559ff499077e33d3d5e4b9ecb39afa240d067.zip swift-contrib-684559ff499077e33d3d5e4b9ecb39afa240d067.tar.bz2 |
Adding basic vCard edit/show support.
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Diffstat (limited to 'Swift/QtUI/QtVCardWidget/QtVCardWidget.h')
-rw-r--r-- | Swift/QtUI/QtVCardWidget/QtVCardWidget.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardWidget.h b/Swift/QtUI/QtVCardWidget/QtVCardWidget.h new file mode 100644 index 0000000..74850fb --- /dev/null +++ b/Swift/QtUI/QtVCardWidget/QtVCardWidget.h @@ -0,0 +1,58 @@ +/* + * 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 <boost/smart_ptr/make_shared.hpp> + +#include "QtVCardFieldInfo.h" +#include "QtVCardPhotoAndNameFields.h" + +#include <Swiften/Elements/VCard.h> + +namespace Ui { + class QtVCardWidget; +} + +namespace Swift { + + class QtVCardWidget : public QWidget { + Q_OBJECT + Q_PROPERTY(bool editable READ isEditable WRITE setEditable) + + public : + explicit QtVCardWidget(QWidget* parent = 0); + ~QtVCardWidget(); + + bool isEditable() const; + void setEditable(bool); + + void setVCard(VCard::ref vcard); + VCard::ref getVCard(); + + signals: + void editableChanged(bool editable); + + private slots: + void addField(); + + private: + void addFieldType(QMenu*, boost::shared_ptr<QtVCardFieldInfo>); + int fieldTypeInstances(boost::shared_ptr<QtVCardFieldInfo>); + void clearFields(); + void clearEmptyFields(); + + private: + VCard::ref vcard; + Ui::QtVCardWidget* ui; + bool editable; + QMenu* menu; + std::map<QAction*, boost::shared_ptr<QtVCardFieldInfo> > actionFieldInfo; + }; + +} |