view ui/certificatelistwidget.h @ 720:3d669400104a

(Issue23) Fix certificate selection On show always the first certificate was selected and setSelected also only set the first certificate.
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 02 Jul 2014 17:03:44 +0200
parents 973a7ce19658
children a467204a35f5
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 CERTIFICATELISTWIDGET_H
#define CERTIFICATELISTWIDGET_H

#include <QWidget>
#include <QMainWindow>
#include <QLabel>
#include <QListWidget>

#include "certificate.h"
/**
 * @file certificatelistwidget.h
 * @brief Displays a list of certificates and a details panel for a selected
 * certificate.
 */

Q_DECLARE_METATYPE(Certificate);
class CertificateListWidget : public QWidget
{
    Q_OBJECT
public:
    CertificateListWidget(QWidget *parent, Qt::WindowFlags flags = 0);

    void addCertificate(const Certificate &certificate, bool state,
                        bool editable = true,
                        const QString& installLabel = tr("install"),
                        const QString& removeLabel = tr("remove"));
    void addCertificates(const QList<Certificate> &list);
    void removeCertificate(const Certificate &cert);
    void setCertState(bool state, const Certificate &cert);
    void clear();
    QStringList certificates();
    QStringList selectedCertificates();
    QStringList unselectedCertificates();
    QList<Certificate> certificateList();
    int selectedCertCount();
    bool contains(const Certificate &cert);
    void setSelected(int index);
    int selected() { return mCertificateList->currentRow(); }

private:
    void setupGUI();

    QListWidget *mCertificateList;
    QLabel *mSubjectCN;
    QLabel *mSubjectO;
    QLabel *mIssuerCN;
    QLabel *mIssuerO;
    QLabel *mValidFrom;
    QLabel *mValidTo;
    QLabel *mFingerprint;

private slots:
    void updateDetails(QListWidgetItem *item);
    void certStateChanged(bool state, const Certificate &cert);

signals:
    void certListChanged(int selected);
    void certChanged(bool state, const Certificate &cert);

};
#endif // CERTIFICATELISTWIDGET_H

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