// Squawk messenger. // Copyright (C) 2019 Yury Gubich // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . #ifndef UI_WIDGETS_CONTACTCONTACTS_H #define UI_WIDGETS_CONTACTCONTACTS_H #include #include #include #include #include #include #include "shared/vcard.h" #include "shared/icons.h" #include "ui/models/info/emails.h" #include "ui/models/info/phones.h" #include "ui/utils/comboboxdelegate.h" namespace UI { namespace Ui { class ContactContacts; } class ContactContacts : public QWidget { Q_OBJECT public: ContactContacts(QWidget* parent = nullptr); ~ContactContacts(); void setVCard(const QString& jid, const Shared::VCard& card, bool editable = false); void fillVCard(Shared::VCard& card) const; QString title() const; private slots: void onContextMenu(const QPoint& point); void onAddAddress(); void onRemoveAddress(); void onAddEmail(); void onCopyEmail(); void onRemoveEmail(); void onAddPhone(); void onCopyPhone(); void onRemovePhone(); private: void initializeDelegates(); void initializeViews(); private: QScopedPointer m_ui; QMenu* contextMenu; Models::EMails emails; Models::Phones phones; ComboboxDelegate* roleDelegate; ComboboxDelegate* phoneTypeDelegate; bool editable; }; } #endif // UI_WIDGETS_CONTACTCONTACTS_H