// 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_CONTACTGENERAL_H #define UI_WIDGETS_CONTACTGENERAL_H #include <QWidget> #include <QScopedPointer> #include <QMenu> #include <QString> #include <QFileDialog> #include <QMimeDatabase> #include <QStandardPaths> #include <QImage> #include <set> #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<Ui::ContactGeneral> m_ui; QMenu* avatarMenu; QSize avatarButtonMargins; Shared::Avatar currentAvatarType; QString currentAvatarPath; QString currentJid; QFileDialog* avatarDiablog; static const std::set<QString> supportedTypes; }; } #endif // UI_WIDGETS_CONTACTGENERAL_H