|
@@ -54,36 +54,32 @@ ProgressBarQt::~ProgressBarQt()
|
|
|
{
|
|
|
}
|
|
|
|
|
|
-void ProgressBarQt::timediff2str ( char *text, long time )
|
|
|
+void ProgressBarQt::timediff2str(char *text, double dtime)
|
|
|
{
|
|
|
- int seconds;
|
|
|
- int minutes;
|
|
|
- int hours;
|
|
|
- int milliseconds;
|
|
|
-
|
|
|
- milliseconds = time % 100;
|
|
|
- time /= 100;
|
|
|
- seconds = time % 60;
|
|
|
- time /= 60;
|
|
|
- minutes = time % 60;
|
|
|
- time /= 60;
|
|
|
- hours = time;
|
|
|
-
|
|
|
- if ( hours != 0 )
|
|
|
- {
|
|
|
- sprintf ( text, "%dh %dm %d.%d s", hours, minutes, seconds, milliseconds );
|
|
|
- }
|
|
|
- else if ( minutes != 0 )
|
|
|
- {
|
|
|
- sprintf ( text, "%dm %d.%d s", minutes, seconds, milliseconds );
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- sprintf ( text, "%d.%d s", seconds, milliseconds );
|
|
|
- }
|
|
|
+ int time = int (dtime / 60);
|
|
|
+ double seconds = dtime - time*60;
|
|
|
+ int minutes;
|
|
|
+ int hours;
|
|
|
+
|
|
|
+ minutes = time % 60;
|
|
|
+ time /= 60;
|
|
|
+ hours = time;
|
|
|
+
|
|
|
+ if (hours != 0)
|
|
|
+ {
|
|
|
+ sprintf(text, "%dh %dm %5.2fs", hours, minutes, seconds);
|
|
|
+ }
|
|
|
+ else if (minutes != 0)
|
|
|
+ {
|
|
|
+ sprintf(text, "%dm %5.2fs", minutes, seconds);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sprintf(text, "%fs", seconds);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-void ProgressBarQt::displayTimeStat ( int posy, char *text, long time )
|
|
|
+void ProgressBarQt::displayTimeStat(int posy, char *text, double time)
|
|
|
{
|
|
|
// Text (char *str,int x0,int y0,int val,int exp,Image img);
|
|
|
char disptext[200];
|
|
@@ -100,7 +96,8 @@ double ProgressBarQt::getCurrentTime()
|
|
|
|
|
|
gettimeofday ( &curtime, NULL );
|
|
|
|
|
|
- return curtime.tv_sec * 100.0 + curtime.tv_usec / 10000.0;
|
|
|
+ //return curtime.tv_sec * 100.0 + curtime.tv_usec / 10000.0;
|
|
|
+ return curtime.tv_sec + curtime.tv_usec * 1e-6;
|
|
|
}
|
|
|
|
|
|
void ProgressBarQt::show()
|
|
@@ -122,15 +119,14 @@ void ProgressBarQt::show()
|
|
|
void ProgressBarQt::hide()
|
|
|
{
|
|
|
|
|
|
- if ( display_on )
|
|
|
- {
|
|
|
- // Show ( OFF, display, name );
|
|
|
- display_on = false;
|
|
|
- }
|
|
|
- if ( graphicIsAvailable() )
|
|
|
- {
|
|
|
- dialogwindow->hide();
|
|
|
- }
|
|
|
+ if (display_on)
|
|
|
+ {
|
|
|
+ display_on = false;
|
|
|
+ }
|
|
|
+ if (graphicIsAvailable())
|
|
|
+ {
|
|
|
+ dialogwindow->hide();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
void ProgressBarQt::stop()
|
|
@@ -150,45 +146,45 @@ void ProgressBarQt::reset ( const std::string & _name )
|
|
|
|
|
|
void ProgressBarQt::update ( int count )
|
|
|
{
|
|
|
- step++;
|
|
|
-
|
|
|
- double progress = step / ( double ) count;
|
|
|
-
|
|
|
- elapsed_time = getCurrentTime() - start_time;
|
|
|
- avg_time_step = elapsed_time / step;
|
|
|
- estimated_time = ( count - step ) * avg_time_step;
|
|
|
-
|
|
|
- size_t mod;
|
|
|
- if ( avg_time_step > 50.0 )
|
|
|
- mod = 1;
|
|
|
- else
|
|
|
- mod = ( size_t ) ( 50.0 / avg_time_step ) + 1;
|
|
|
-
|
|
|
- if ( ( mod <= 1 ) || ( step % mod == 0 ) )
|
|
|
- {
|
|
|
- char percent_text[10];
|
|
|
- sprintf ( percent_text, "%4.2f %%", step * 100.0 / count );
|
|
|
-
|
|
|
- displayTimeStat ( 0, "Elapsed Time : ", ( long int ) elapsed_time );
|
|
|
- displayTimeStat ( 1, "Estimated Time : ", ( long int ) estimated_time );
|
|
|
- displayTimeStat ( 2, "Avg. Time per step : ", ( long int ) avg_time_step );
|
|
|
-
|
|
|
- char eltime[200];
|
|
|
- char estime[200];
|
|
|
- char avgtime[200];
|
|
|
- timediff2str ( eltime, ( long int ) elapsed_time );
|
|
|
- timediff2str ( estime, ( long int ) estimated_time );
|
|
|
- timediff2str ( avgtime, ( long int ) avg_time_step );
|
|
|
- fprintf (
|
|
|
- stderr,
|
|
|
- "[PROGRESS] %s %s (elapsed time %s, estimated time %s, avg %s), \n",
|
|
|
- name.c_str(), percent_text, eltime, estime, avgtime );
|
|
|
- //set progress value.
|
|
|
- if ( graphicIsAvailable() )
|
|
|
- {
|
|
|
- progressdialog->setValue ( progress * 100 );
|
|
|
- }
|
|
|
- }
|
|
|
+ step++;
|
|
|
+
|
|
|
+ double progress = step / (double) count;
|
|
|
+
|
|
|
+ elapsed_time = getCurrentTime() - start_time;
|
|
|
+ avg_time_step = elapsed_time / step;
|
|
|
+ estimated_time = (count - step) * avg_time_step;
|
|
|
+
|
|
|
+ size_t mod;
|
|
|
+ if (avg_time_step > 1.0)
|
|
|
+ mod = 1;
|
|
|
+ else
|
|
|
+ mod = (size_t) (1.0 / avg_time_step) + 1;
|
|
|
+
|
|
|
+ if ((mod <= 1) || (step % mod == 0))
|
|
|
+ {
|
|
|
+ char percent_text[10];
|
|
|
+ sprintf(percent_text, "%4.2f %%", step * 100.0 / count);
|
|
|
+
|
|
|
+ displayTimeStat(0, "Elapsed Time : ", elapsed_time);
|
|
|
+ displayTimeStat(1, "Estimated Time : ", estimated_time);
|
|
|
+ displayTimeStat(2, "Avg. Time per step : ", avg_time_step);
|
|
|
+
|
|
|
+ char eltime[200];
|
|
|
+ char estime[200];
|
|
|
+ char avgtime[200];
|
|
|
+ timediff2str(eltime, elapsed_time);
|
|
|
+ timediff2str(estime, estimated_time);
|
|
|
+ timediff2str(avgtime, avg_time_step);
|
|
|
+ fprintf(
|
|
|
+ stderr,
|
|
|
+ "[PROGRESS] %s %s (elapsed time %s, estimated time %s, avg %s), \n",
|
|
|
+ name.c_str(), percent_text, eltime, estime, avgtime);
|
|
|
+ //set progress value.
|
|
|
+ if (graphicIsAvailable())
|
|
|
+ {
|
|
|
+ progressdialog->setValue(progress * 100);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
bool ProgressBarQt::graphicIsAvailable()
|