@@ -61,30 +61,30 @@ void AnalysisRunner::run()
6161
6262 QFileInfo fileInfo (mFilename );
6363
64- QIODevice * file = Q_NULLPTR;
64+ QIODevice * file = Q_NULLPTR;
65+ QIODevice * rawFile = new QFile (mFilename );
6566
66- file = new QFile (mFilename );
67- if (is_gz (file))
67+ if (is_gz (rawFile))
6868 {
69- file = new KCompressionDevice (mFilename , KCompressionDevice::GZip);
69+ file = new KCompressionDevice (rawFile, true , KCompressionDevice::GZip);
7070 if (!is_fastq (file))
7171 file = Q_NULLPTR;
7272 }
73- else if (is_bz2 (file ))
73+ else if (is_bz2 (rawFile ))
7474 {
75- file = new KCompressionDevice (mFilename , KCompressionDevice::BZip2);
75+ file = new KCompressionDevice (rawFile, true , KCompressionDevice::BZip2);
7676 if (!is_fastq (file))
7777 file = Q_NULLPTR;
7878 }
79- else if (is_xz (file ))
79+ else if (is_xz (rawFile ))
8080 {
81- file = new KCompressionDevice (mFilename , KCompressionDevice::Xz);
81+ file = new KCompressionDevice (rawFile, true , KCompressionDevice::Xz);
8282 if (!is_fastq (file))
8383 file = Q_NULLPTR;
8484 }
85- else if (is_fastq (file ))
85+ else if (is_fastq (rawFile ))
8686 {
87- file = new QFile ( mFilename ) ;
87+ file = rawFile ;
8888 }
8989
9090 if (file == Q_NULLPTR)
@@ -108,11 +108,6 @@ void AnalysisRunner::run()
108108 FastqReader reader (file);
109109 mStartTime .start ();
110110
111- // pre compute total size for sequencial access .
112- // emitUpdate(tr("Analysis ..."));
113- reader.computeTotalSize ();
114-
115-
116111
117112 for (Analysis * a : mAnalysisHash )
118113 a->before ();
@@ -137,7 +132,7 @@ void AnalysisRunner::run()
137132 // this is critcal and can decrease the speed. Send message only 1 sequence / 1000
138133 if (mSequenceCount % 1000 == 0 )
139134 {
140- int percentNow = reader. percentComplete () ;
135+ int percentNow = ( float )(rawFile-> pos ()) / fileInfo. size () * 100 ;
141136 // if percentNow is still null, return empty percent ...
142137 if ( (percentNow >= mProgression + 5 ) || (percentNow == 0 ))
143138 {
0 commit comments