Exemple #1
0
void Task::runCloseAllVolumeTask()
{
	m_table->setEnabled( false ) ;
	sleep( 1 ) ; // for ui effect

	int volumeCount = m_table->rowCount() ;

	if( volumeCount > 0 ){

		QVector< QTableWidgetItem * > tableItems( volumeCount ) ;
		QTableWidgetItem ** it = tableItems.data() ;

		for( int i = 0 ; i < volumeCount ; i++ ){
			*( it + i ) = m_table->item( i,0 ) ;
		}

		for( QTableWidgetItem * it : tableItems ){
			QString device = it->text().replace( "\"","\"\"\"" ) ;
			auto r = utility::Task( QString( "%1 -q -d \"%2\"" ).arg( ZULUCRYPTzuluCrypt ).arg( device ) ) ;
			emit taskResult( it,r.exitCode() ) ;
			sleep( 1 ) ; // for ui effect
		}
	}

	m_table->setEnabled( true ) ;
}
void closeAllVolumesThread::run()
{
	m_table->setEnabled( false );
	sleep( 1 ) ; // for ui effect
	int i = m_table->rowCount() ;

	if( i < 1 ){
		m_table->setEnabled( true );
		return ;
	}

	int j = -1 ;

	QVector<QTableWidgetItem*> tableItems( 0 ) ;

	QTableWidgetItem * deviceItem ;

	while( ++j < i ){
		tableItems.append( m_table->item( j,0 ) );
	}
	
	QProcess p ;
	QString exe ;
	QString device ;

	for( j = 0 ; j < i ; j++ ){
		deviceItem = tableItems.at( j ) ;
		device = deviceItem->text().replace( "\"","\"\"\"" ) ;
		exe = QString( "%1 -q -d \"%2\"" ).arg( ZULUCRYPTzuluCrypt ).arg( device ) ;
		p.start( exe );
		p.waitForFinished() ;
		emit close( deviceItem,p.exitCode() ) ;
		p.close();
		sleep( 1 ) ; // for ui effect
	}
	
	m_table->setEnabled( true );
}