// 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_INFO_H #define UI_WIDGETS_INFO_H #include #include #include #include #include #include #include "ui/utils/progress.h" #include "contactgeneral.h" #include "contactcontacts.h" #include "description.h" namespace UI { namespace Ui { class Info; } class Info : public QWidget { Q_OBJECT public: Info(const QString& jid, QWidget* parent = nullptr); ~Info(); QString getJid() const; void setData(const Shared::Info& info); void showProgress(const QString& = ""); void hideProgress(); signals: void saveInfo(const Shared::Info& info); private slots: void onButtonBoxAccepted(); private: void initializeContactGeneral(const QString& jid, const Shared::VCard& card, bool editable); void initializeContactContacts(const QString& jid, const Shared::VCard& card, bool editable); void initializeDescription(const QString& description, bool editable); void initializeOverlay(); void initializeButtonBox(); void clear(); private: QString jid; Shared::EntryType type; QScopedPointer m_ui; ContactGeneral* contactGeneral; ContactContacts* contactContacts; Description* description; QWidget* overlay; Progress* progress; QLabel* progressLabel; }; } #endif // UI_WIDGETS_INFO_H