1 /* 2 SPDX-FileCopyrightText: 2016 Ragnar Thomsen <rthomsen6@gmail.com> 3 4 SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7 #ifndef COMPRESSIONOPTIONSWIDGET_H 8 #define COMPRESSIONOPTIONSWIDGET_H 9 10 #include "kerfuffle_export.h" 11 #include "archive_kerfuffle.h" 12 #include "archiveformat.h" 13 #include "ui_compressionoptionswidget.h" 14 15 #include <QMimeType> 16 #include <QWidget> 17 18 namespace Kerfuffle 19 { 20 class KERFUFFLE_EXPORT CompressionOptionsWidget : public QWidget, public Ui::CompressionOptionsWidget 21 { 22 Q_OBJECT 23 24 public: 25 explicit CompressionOptionsWidget(QWidget *parent = nullptr, 26 const CompressionOptions &opts = {}); 27 int compressionLevel() const; 28 QString compressionMethod() const; 29 QString encryptionMethod() const; 30 ulong volumeSize() const; 31 QString password() const; 32 CompressionOptions commpressionOptions() const; 33 bool isEncryptionAvailable() const; 34 bool isEncryptionEnabled() const; 35 bool isHeaderEncryptionAvailable() const; 36 bool isHeaderEncryptionEnabled() const; 37 KNewPasswordWidget::PasswordStatus passwordStatus() const; 38 39 void setEncryptionVisible(bool visible); 40 void setMimeType(const QMimeType &mimeType); 41 42 private: 43 void updateWidgets(); 44 ArchiveFormat archiveFormat() const; 45 46 QMimeType m_mimetype; 47 CompressionOptions m_opts; 48 49 private Q_SLOTS: 50 void slotMultiVolumeChecked(int state); 51 void slotCompMethodChanged(const QString &value); 52 void slotEncryptionMethodChanged(const QString &value); 53 }; 54 } 55 56 #endif 57