rrenkert@582: /* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik rrenkert@582: * Software engineering by Intevation GmbH rrenkert@582: * rrenkert@582: * This file is Free Software under the GNU GPL (v>=2) rrenkert@582: * and comes with ABSOLUTELY NO WARRANTY! rrenkert@582: * See LICENSE.txt for details. rrenkert@582: */ rrenkert@582: #ifndef CERTIFICATELISTITEM_H rrenkert@582: #define CERTIFICATELISTITEM_H rrenkert@582: /** emanuel@1053: * @file certificateitemwidget.h rrenkert@582: * @brief Item delegate drawing custom certificate items in list views. rrenkert@582: * rrenkert@582: */ rrenkert@582: #include rrenkert@582: #include andre@1234: #include rrenkert@582: rrenkert@582: #include "certificate.h" andre@701: andre@1255: /** @brief A tool button that always looks as if it were unchecked. */ andre@1234: class CheckLessToolBtn : public QToolButton andre@1234: { andre@1234: void paintEvent(QPaintEvent * pe); andre@1234: }; rrenkert@582: andre@1255: /** @brief Item delegate drawing custom certificate items in list views.*/ rrenkert@582: class CertificateItemWidget : public QWidget rrenkert@582: { rrenkert@627: Q_OBJECT rrenkert@582: public: andre@1255: /** @brief ctor of the widget andre@1255: * andre@1255: * @param [in] parent the parent of the widget andre@1255: * @param [in] cert the certificate to hold. andre@1255: * @param [in] state wether or not the action of the certificate should be done. andre@1255: * @param [in] btn the button used to manage the state of the cert.*/ rrenkert@638: CertificateItemWidget( rrenkert@638: QWidget *parent = 0, rrenkert@638: const Certificate &cert = Certificate(), rrenkert@638: bool state = false, andre@1106: QToolButton * btn = NULL); rrenkert@582: rrenkert@627: bool state(); andre@1255: /** @brief set the state of the certificate. andre@1255: * andre@1255: * A false state means that the certificate action (install or remove) andre@1255: * should not be executed. andre@1255: * andre@1255: * @param [in] state the state of the certificate andre@1255: **/ rrenkert@638: void setState(bool state); andre@1255: andre@1255: /** @brief Obtain a copy of the certificate that is shown in the widget. andre@1255: * andre@1255: * @returns A copy of the hold certificate. andre@1255: **/ andre@1108: Certificate certificate(); rrenkert@627: rrenkert@582: private: rrenkert@582: void setupGUI(); rrenkert@582: rrenkert@582: Certificate mCertificate; andre@1109: bool mOriginalState; andre@1106: QToolButton *mButton; rrenkert@627: rrenkert@627: private slots: andre@1288: /** @brief called when the certificate state has been changed */ andre@1106: void currentStateChanged(bool state); rrenkert@627: andre@1288: /** @brief Used to open the native cert dialog of the certificate */ andre@1288: void showCertDlg(); andre@1288: rrenkert@627: signals: rrenkert@627: void stateChanged(bool state, const Certificate &cert); rrenkert@582: }; rrenkert@582: #endif