File indexing completed on 2024-05-05 05:50:40

0001 /*
0002     SPDX-FileCopyrightText: 2016 Ragnar Thomsen <rthomsen6@gmail.com>
0003 
0004     SPDX-License-Identifier: BSD-2-Clause
0005 */
0006 
0007 #ifndef COMPRESSIONOPTIONSWIDGET_H
0008 #define COMPRESSIONOPTIONSWIDGET_H
0009 
0010 #include "archive_kerfuffle.h"
0011 #include "archiveformat.h"
0012 #include "kerfuffle_export.h"
0013 #include "ui_compressionoptionswidget.h"
0014 
0015 #include <QMimeType>
0016 #include <QWidget>
0017 
0018 namespace Kerfuffle
0019 {
0020 class KERFUFFLE_EXPORT CompressionOptionsWidget : public QWidget, public Ui::CompressionOptionsWidget
0021 {
0022     Q_OBJECT
0023 
0024 public:
0025     explicit CompressionOptionsWidget(QWidget *parent = nullptr, const CompressionOptions &opts = {});
0026     int compressionLevel() const;
0027     QString compressionMethod() const;
0028     QString encryptionMethod() const;
0029     ulong volumeSize() const;
0030     QString password() const;
0031     CompressionOptions commpressionOptions() const;
0032     bool isEncryptionAvailable() const;
0033     bool isEncryptionEnabled() const;
0034     bool isHeaderEncryptionAvailable() const;
0035     bool isHeaderEncryptionEnabled() const;
0036     KNewPasswordWidget::PasswordStatus passwordStatus() const;
0037 
0038     void setEncryptionVisible(bool visible);
0039     void setMimeType(const QMimeType &mimeType);
0040 
0041 private:
0042     void updateWidgets();
0043     ArchiveFormat archiveFormat() const;
0044 
0045     QMimeType m_mimetype;
0046     CompressionOptions m_opts;
0047 
0048 private Q_SLOTS:
0049     void slotMultiVolumeChecked(int state);
0050     void slotCompMethodChanged(const QString &value);
0051     void slotEncryptionMethodChanged(const QString &value);
0052 };
0053 }
0054 
0055 #endif