// Squawk messenger. // Copyright (C) 2019 Yury Gubich <blue@macaw.me> // // 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 <http://www.gnu.org/licenses/>. #ifndef UI_WIDGETS_CONTACTCONTACTS_H #define UI_WIDGETS_CONTACTCONTACTS_H #include <QWidget> #include <QScopedPointer> #include <QMenu> #include <QPoint> #include <QApplication> #include <QClipboard> #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<Ui::ContactContacts> m_ui; QMenu* contextMenu; Models::EMails emails; Models::Phones phones; ComboboxDelegate* roleDelegate; ComboboxDelegate* phoneTypeDelegate; bool editable; }; } #endif // UI_WIDGETS_CONTACTCONTACTS_H