view ui/certificateitemwidget.h @ 1070:f110a3f6e387

(issue114) Fine tune ACL propagation using mkdir_p the ACL of the parent directories would propagate to all subdirectories and objects in the directory. Now we only use ACL propagation in the last directory to make sure that files we might create in that directory inherit the correct (resitricted) ACL
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 10 Sep 2014 16:41:36 +0200
parents 78798d3af8f0
children 2b3526ef2d69
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 certificateitemwidget.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 = QString(),
        const QString& removeLabel = QString());

    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/