File indexing completed on 2024-06-23 05:13:54

0001 /* -*- mode: c++; c-basic-offset:4 -*-
0002     crypto/gui/wizardpage.h
0003 
0004     This file is part of Kleopatra, the KDE keymanager
0005     SPDX-FileCopyrightText: 2007 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 KGuiItem;
0017 
0018 namespace Kleo
0019 {
0020 namespace Crypto
0021 {
0022 namespace Gui
0023 {
0024 
0025 class Wizard;
0026 
0027 class WizardPage : public QWidget
0028 {
0029     friend class ::Kleo::Crypto::Gui::Wizard;
0030     Q_OBJECT
0031 public:
0032     explicit WizardPage(QWidget *parent = nullptr, Qt::WindowFlags f = {});
0033     ~WizardPage() override;
0034 
0035     virtual bool isComplete() const = 0;
0036 
0037     bool isCommitPage() const;
0038     void setCommitPage(bool commitPage);
0039 
0040     bool autoAdvance() const;
0041     void setAutoAdvance(bool enabled);
0042 
0043     QString title() const;
0044     void setTitle(const QString &title);
0045 
0046     QString subTitle() const;
0047     void setSubTitle(const QString &subTitle);
0048 
0049     QString explanation() const;
0050     void setExplanation(const QString &explanation);
0051 
0052     KGuiItem customNextButton() const;
0053     void setCustomNextButton(const KGuiItem &item);
0054 
0055 Q_SIGNALS:
0056     void completeChanged();
0057     void explanationChanged();
0058     void titleChanged();
0059     void subTitleChanged();
0060     void autoAdvanceChanged();
0061     void windowTitleChanged(const QString &title);
0062 
0063 protected:
0064     virtual void onNext();
0065 
0066 private:
0067     class Private;
0068     kdtools::pimpl_ptr<Private> d;
0069 };
0070 
0071 }
0072 }
0073 }