view ui/certificateitemwidget.h @ 787:07cc0aabf782

(issue60) Make update list button less prominent and icon only
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 14 Jul 2014 16:07:55 +0200
parents 31c3d2bc9880
children 9c4543128666
line wrap: on
line source
/* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik
 * Software engineering by Intevation GmbH
 *
 * This file is Free Software under the GNU GPL (v>=2)
 * and comes with ABSOLUTELY NO WARRANTY!
 * See LICENSE.txt for details.
 */
#ifndef CERTIFICATELISTITEM_H
#define CERTIFICATELISTITEM_H
/**
 * @file certificateitemdelegate.h
 * @brief Item delegate drawing custom certificate items in list views.
 *
 */
#include <QWidget>
#include <QLabel>
#include <QComboBox>

#include "certificate.h"
/** @brief A combo box that shows the text only in the popup
 *
 * The text shown is the data set as Qt::UserRole
 */
class IconOnlyTextPopupBox : public QComboBox
{
protected:
    virtual void showPopup();
    virtual void hidePopup();
};


class CertificateItemWidget : public QWidget
{
Q_OBJECT
public:
    CertificateItemWidget(
        QWidget *parent = 0,
        const Certificate &cert = Certificate(),
        bool state = false,
        bool editable = true,
        const QString& installLabel = tr("install"),
        const QString& removeLabel = tr("remove"));

    bool state();
    void setState(bool state);
    Certificate certificate();

private:
    void setupGUI();

    Certificate mCertificate;
    bool mState;
    bool mEditable;
    QLabel *mLabel;
    IconOnlyTextPopupBox *mComboBox;
    QString mInstallLabel;
    QString mRemoveLabel;

private slots:
    void currentStateChanged(int ndx);

signals:
    void stateChanged(bool state, const Certificate &cert);
};
#endif

http://wald.intevation.org/projects/trustbridge/