diff options
Diffstat (limited to 'Swift/QtUI/QtVCardWidget/QtVCardWidget.h')
-rw-r--r-- | Swift/QtUI/QtVCardWidget/QtVCardWidget.h | 96 |
1 files changed, 55 insertions, 41 deletions
diff --git a/Swift/QtUI/QtVCardWidget/QtVCardWidget.h b/Swift/QtUI/QtVCardWidget/QtVCardWidget.h index 07f528d..9aae158 100644 --- a/Swift/QtUI/QtVCardWidget/QtVCardWidget.h +++ b/Swift/QtUI/QtVCardWidget/QtVCardWidget.h @@ -4,57 +4,71 @@ * See Documentation/Licenses/BSD-simplified.txt for more information. */ +/* + * Copyright (c) 2015-2016 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. + */ + #pragma once +#include <list> +#include <memory> + +#include <QToolButton> #include <QWidget> + #include <Swiften/Elements/VCard.h> -#include <boost/smart_ptr/make_shared.hpp> -#include "QtVCardFieldInfo.h" -#include "QtVCardGeneralField.h" -#include "QtVCardPhotoAndNameFields.h" +#include <Swift/QtUI/QtVCardWidget/QtVCardFieldInfo.h> +#include <Swift/QtUI/QtVCardWidget/QtVCardGeneralField.h> +#include <Swift/QtUI/QtVCardWidget/QtVCardPhotoAndNameFields.h> namespace Ui { - class QtVCardWidget; + 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(); - void removeField(QtVCardGeneralField* field); - - private: - void addFieldType(QMenu*, boost::shared_ptr<QtVCardFieldInfo>); - int fieldTypeInstances(boost::shared_ptr<QtVCardFieldInfo>); - void clearFields(); - void clearEmptyFields(); - void appendField(QtVCardGeneralField* field); - - private: - VCard::ref vcard; - Ui::QtVCardWidget* ui; - bool editable; - QMenu* menu; - std::list<QtVCardGeneralField*> fields; - std::map<QAction*, boost::shared_ptr<QtVCardFieldInfo> > actionFieldInfo; - }; + class QtVCardWidget : public QWidget { + Q_OBJECT + Q_PROPERTY(bool editable READ isEditable WRITE setEditable) + + public : + explicit QtVCardWidget(QWidget* parent = nullptr); + ~QtVCardWidget(); + + bool isEditable() const; + void setEditable(bool); + + void setVCard(VCard::ref vcard); + VCard::ref getVCard(); + + virtual QSize sizeHint() const; + + signals: + void editableChanged(bool editable); + + private slots: + void addField(); + void removeField(QtVCardGeneralField* field); + + private: + void addFieldType(QMenu*, std::shared_ptr<QtVCardFieldInfo>); + int fieldTypeInstances(std::shared_ptr<QtVCardFieldInfo>); + void clearFields(); + void clearEmptyFields(); + void appendField(QtVCardGeneralField* field); + void relayoutToolButton(); + + private: + VCard::ref vcard; + Ui::QtVCardWidget* ui; + QToolButton* toolButton; + bool editable; + QMenu* menu; + std::list<QtVCardGeneralField*> fields; + std::map<QAction*, std::shared_ptr<QtVCardFieldInfo> > actionFieldInfo; + }; } |