File indexing completed on 2024-06-23 05:14:09

0001 /* -*- mode: c++; c-basic-offset:4 -*-
0002     newcertificatewizard/listwidget.h
0003 
0004     This file is part of Kleopatra, the KDE keymanager
0005     SPDX-FileCopyrightText: 2008 Klarälvdalens Datakonsult AB
0006 
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #pragma once
0011 
0012 #include <QWidget>
0013 
0014 #include <utils/pimpl_ptr.h>
0015 
0016 class QString;
0017 #include <QStringList>
0018 
0019 namespace Kleo
0020 {
0021 namespace NewCertificateUi
0022 {
0023 
0024 class ListWidget : public QWidget
0025 {
0026     Q_OBJECT
0027     Q_PROPERTY(QStringList items READ items WRITE setItems USER true NOTIFY itemsChanged)
0028     Q_PROPERTY(QRegularExpression regExpFilter READ regExpFilter WRITE setRegExpFilter)
0029     Q_PROPERTY(QString defaultValue READ defaultValue WRITE setDefaultValue)
0030 public:
0031     explicit ListWidget(QWidget *parent = nullptr);
0032     ~ListWidget() override;
0033 
0034     void setDefaultValue(const QString &defaultValue);
0035     QString defaultValue() const;
0036 
0037     void setRegExpFilter(const QRegularExpression &rx);
0038     QRegularExpression regExpFilter() const;
0039 
0040     QStringList items() const;
0041 
0042 public Q_SLOTS:
0043     void setItems(const QStringList &items);
0044 
0045 Q_SIGNALS:
0046     void itemsChanged();
0047 
0048 private:
0049     class Private;
0050     kdtools::pimpl_ptr<Private> d;
0051     Q_PRIVATE_SLOT(d, void slotAdd())
0052     Q_PRIVATE_SLOT(d, void slotRemove())
0053     Q_PRIVATE_SLOT(d, void slotUp())
0054     Q_PRIVATE_SLOT(d, void slotDown())
0055     Q_PRIVATE_SLOT(d, void slotSelectionChanged())
0056 };
0057 
0058 }
0059 }