view ui/certificateitemwidget.h @ 701:31c3d2bc9880

(Issue22) Fix painting problems with fixed size in windows style. We now use fusion style also on Windows for the combobox to let it be shown in the same way as we do on GNU/Linux.
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 02 Jul 2014 11:26:42 +0200
parents 973a7ce19658
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/