// 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_CONTACTGENERAL_H #define UI_WIDGETS_CONTACTGENERAL_H #include #include #include #include #include #include #include #include #include #include "shared/enums.h" #include "shared/vcard.h" #include "shared/icons.h" namespace UI { namespace Ui { class ContactGeneral; } class ContactGeneral : public QWidget{ Q_OBJECT public: ContactGeneral(QWidget* parent = nullptr); ~ContactGeneral(); void setVCard(const QString& jid, const Shared::VCard& card, bool editable = false); void fillVCard(Shared::VCard& card) const; QString title() const; private: void setEditable(bool edit); void initializeActions(); void initializeAvatar(); void updateAvatar(); private slots: void deleteAvatarDialog(); void avatarSelected(); void onSetAvatar(); void onClearAvatar(); private: QScopedPointer m_ui; QMenu* avatarMenu; QSize avatarButtonMargins; Shared::Avatar currentAvatarType; QString currentAvatarPath; QString currentJid; bool editable; QFileDialog* avatarDiablog; static const std::set supportedTypes; }; } #endif // UI_WIDGETS_CONTACTGENERAL_H