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 ); }