@ -34,6 +34,13 @@
# include <klocale.h>
# include <ktemporaryfile.h>
# ifdef Q_OS_UNIX
# include <ctime>
# endif
# ifdef Q_OS_WIN
# include <windows.h> // for Sleep
# endif
static const int DviDebug = 4713 ;
static KAboutData createAboutData ( )
@ -70,6 +77,26 @@ bool DviGenerator::loadDocument( const QString & fileName, QVector< Okular::Page
( void ) userMutex ( ) ;
m_dviRenderer = new dviRenderer ( ) ;
static const ushort s_waitTime = 800 ; // milliseconds
static const int s_maxIterations = 10 ;
int iter = 0 ;
for ( ; ! m_dviRenderer - > isValidFile ( fileName ) & & iter < s_maxIterations ; + + iter )
{
kDebug ( DviDebug ) . nospace ( ) < < " file not valid after iteration # " < < iter < < " / " < < s_maxIterations < < " , waiting for " < < s_waitTime ;
# ifdef Q_OS_WIN
Sleep ( uint ( s_waitTime ) ) ;
# else
struct timespec ts = { 0 , s_waitTime * 1000 * 1000 } ;
nanosleep ( & ts , NULL ) ;
# endif
}
if ( iter > = s_maxIterations & & ! m_dviRenderer - > isValidFile ( fileName ) )
{
kDebug ( DviDebug ) < < " file still not valid after " < < s_maxIterations ;
delete m_dviRenderer ;
m_dviRenderer = 0 ;
return false ;
}
if ( ! m_dviRenderer - > setFile ( fileName , base ) )
{
delete m_dviRenderer ;