keyDialog::keyDialog( QWidget * parent,QTableWidget * table,const QString& path, const QString& type,const QString& folderOpener,bool autoOpenFolderOnMount ) : QDialog( parent ),m_ui(new Ui::keyDialog) { m_ui->setupUi( this ) ; m_ui->checkBoxShareMountPoint->setToolTip( utility::shareMountPointToolTip() ) ; m_table = table ; m_path = path ; m_working = false ; m_folderOpener = folderOpener ; m_autoOpenFolderOnMount = autoOpenFolderOnMount ; QString msg ; if( type == QString( "crypto_LUKS" ) ){ msg = tr( "unlock and mount a luks volume in \"%1\"").arg( m_path ) ; }else{ msg = tr( "unlock and mount an encrypted volume in \"%1\"").arg( m_path ) ; } this->setWindowTitle( msg ) ; m_ui->lineEditMountPoint->setText( path ) ; m_ui->pbkeyFile->setVisible( false ) ; m_ui->pbOpenMountPoint->setIcon( QIcon( QString( ":/folder.png" ) ) ) ; m_menu = new QMenu( this ) ; this->setFixedSize( this->size() ) ; this->setWindowFlags( Qt::Window | Qt::Dialog ) ; this->setFont( parent->font() ) ; m_ui->lineEditKey->setFocus() ; m_ui->checkBoxOpenReadOnly->setChecked( utility::getOpenVolumeReadOnlyOption( QString( "zuluMount-gui" ) ) ) ; connect( m_ui->pbCancel,SIGNAL( clicked() ),this,SLOT( pbCancel() ) ) ; connect( m_ui->pbOpen,SIGNAL( clicked() ),this,SLOT( pbOpen() ) ) ; connect( m_ui->pbkeyOption,SIGNAL( clicked() ),this,SLOT( pbkeyOption() ) ) ; connect( m_ui->rbKey,SIGNAL( toggled( bool ) ),this,SLOT( rbKey( bool ) ) ) ; connect( m_ui->rbKeyFile,SIGNAL( toggled( bool ) ),this,SLOT( rbKeyFile( bool ) ) ) ; connect( m_ui->rbPlugIn,SIGNAL( toggled( bool ) ),this,SLOT( rbPlugIn( bool ) ) ) ; connect( m_ui->lineEditKey,SIGNAL( textChanged( QString ) ),this,SLOT( keyTextChanged( QString ) ) ) ; connect( m_ui->pbOpenMountPoint,SIGNAL( clicked() ),this,SLOT( pbMountPointPath() ) ) ; connect( m_ui->checkBoxOpenReadOnly,SIGNAL( stateChanged( int ) ),this,SLOT( cbMountReadOnlyStateChanged( int ) ) ) ; m_ui->rbKey->setChecked( true ) ; m_ui->pbOpenMountPoint->setVisible( false ) ; m_point = m_path.split( "/" ).last() ; m_ui->lineEditMountPoint->setText( m_point ) ; }
keyDialog::keyDialog( QWidget * parent,QTableWidget * table,const volumeEntryProperties& e,std::function< void() > p,std::function< void( const QString& ) > q ) : QDialog( parent ),m_ui( new Ui::keyDialog ),m_cancel( std::move( p ) ),m_success( std::move( q ) ) { m_ui->setupUi( this ) ; m_ui->checkBoxShareMountPoint->setToolTip( utility::shareMountPointToolTip() ) ; m_table = table ; m_path = e.volumeName() ; m_working = false ; m_volumeIsEncFs = e.fileSystem() == "encfs" ; QString msg ; if( e.fileSystem() == "crypto_LUKS" ){ msg = tr( "Mount A LUKS volume in \"%1\"").arg( m_path ) ; }else{ msg = tr( "Mount An Encrypted Volume In \"%1\"").arg( m_path ) ; } this->setWindowTitle( msg ) ; m_ui->lineEditMountPoint->setText( m_path ) ; m_ui->pbOpenMountPoint->setIcon( QIcon( ":/folder.png" ) ) ; m_menu = new QMenu( this ) ; connect( m_menu,SIGNAL( triggered( QAction * ) ),this,SLOT( pbPluginEntryClicked( QAction * ) ) ) ; this->setFixedSize( this->size() ) ; this->setWindowFlags( Qt::Window | Qt::Dialog ) ; this->setFont( parent->font() ) ; m_ui->lineEditKey->setFocus() ; m_ui->checkBoxOpenReadOnly->setChecked( utility::getOpenVolumeReadOnlyOption( "zuluMount-gui" ) ) ; m_ui->pbkeyOption->setEnabled( false ) ; m_ui->lineEditKey->setEchoMode( QLineEdit::Password ) ; connect( m_ui->pbOptions,SIGNAL( clicked() ),this,SLOT( pbOptions() ) ) ; connect( m_ui->pbCancel,SIGNAL( clicked() ),this,SLOT( pbCancel() ) ) ; connect( m_ui->pbOpen,SIGNAL( clicked() ),this,SLOT( pbOpen() ) ) ; connect( m_ui->pbkeyOption,SIGNAL( clicked() ),this,SLOT( pbkeyOption() ) ) ; connect( m_ui->pbOpenMountPoint,SIGNAL( clicked() ),this,SLOT( pbMountPointPath() ) ) ; connect( m_ui->checkBoxOpenReadOnly,SIGNAL( stateChanged( int ) ),this,SLOT( cbMountReadOnlyStateChanged( int ) ) ) ; connect( m_ui->cbKeyType,SIGNAL( currentIndexChanged( int ) ),this,SLOT( cbActicated( int ) ) ) ; m_ui->pbOpenMountPoint->setVisible( false ) ; m_point = utility::mountPathPostFix( m_path.split( "/" ).last() ) ; m_ui->lineEditMountPoint->setText( m_point ) ; QAction * ac = new QAction( this ) ; QKeySequence s( Qt::CTRL + Qt::Key_F ) ; ac->setShortcut( s ) ; connect( ac,SIGNAL( triggered() ),this,SLOT( showOffSetWindowOption() ) ) ; this->addAction( ac ) ; m_menu_1 = new QMenu( this ) ; auto _add_action = [ & ]( const QString& e ){ ac = m_menu_1->addAction( e ) ; ac ->setEnabled( !m_volumeIsEncFs ) ; } ; _add_action( tr( "Set File System Options" ) ) ; _add_action( tr( "Set Volume Offset" ) ) ; _add_action( tr( "Set Volume As VeraCrypt Volume" ) ) ; _add_action( tr( "Set VeraCrypt PIM value" ) ) ; m_ui->cbKeyType->addItem( tr( "Key" ) ) ; m_ui->cbKeyType->addItem( tr( "KeyFile" ) ) ; m_ui->cbKeyType->addItem( tr( "Plugin" ) ) ; if( m_volumeIsEncFs ){ m_ui->checkBoxShareMountPoint->setEnabled( false ) ; }else{ #if VERACRYPT_SUPPORT m_ui->cbKeyType->addItem( tr( "TrueCrypt/VeraCrypt Keys" ) ) ; #else m_ui->cbKeyType->addItem( tr( "TrueCrypt keys" ) ) ; #endif } connect( m_menu_1,SIGNAL( triggered( QAction * ) ),this,SLOT( doAction( QAction * ) ) ) ; m_veraCryptWarning.setWarningLabel( m_ui->veraCryptWarning ) ; this->installEventFilter( this ) ; }