Re: distributed rendering
Christoph Fabianek <[email protected]> Tue, 23 Sep 2003 23:35:43 +0200
| Newsgroups | gmane.comp.kde.devel.kpovmodeler |
|---|---|
| Message-ID | <[email protected]> |
Hi, here is the patch with the fix for the SSH transport bug and with a global settings page. The problems with NetSolve are bad but I know that on some machines its just hard to set it up - this was also the main reason why there is the SSH tranport as alternative. Perhaps someone else on the list with an internet connection not behind a firewall could volunteer and try to apply the patch together with the nspovray binary? http://fsmat.at/~cfabiane/software/nspovray_i686-pc-linux-gnu_0.4pre.tar.gz The documentation is almost done - I want to add an appendix for installing nspovray and testing it with the NetSolve and SSH transport. Greetings, Christoph PS: As said before, I haven't used CVS often before - since it does not include the new files those are attached separately. pmdistrendersettings.Plo belongs to the .deps directory - maybe this is an autogenerated file, but I haven't found how to do this. So just for sure I have attached it, too. List archive and information: http://mail.kde.org/mailman/listinfo/kpovmodeler-devel
dist_render_23_Sep_03.patch
(text/x-diff, 25.1 KB)
? pmdistrendersettings.cpp
? pmdistrendersettings.h
Index: Makefile.am
===================================================================
RCS file: /home/kde/kdegraphics/kpovmodeler/Makefile.am,v
retrieving revision 1.66
diff -u -r1.66 Makefile.am
--- Makefile.am 12 Sep 2003 20:13:16 -0000 1.66
+++ Makefile.am 23 Sep 2003 21:23:53 -0000
@@ -17,7 +17,7 @@
pmpovrayoutputwidget.cpp pmsettingsdialog.cpp \
pmcolorsettings.cpp pmgridsettings.cpp pmlayoutsettings.cpp \
pmobjectlibrarysettings.cpp pmobjectsettings.cpp pmpluginsettings.cpp \
- pmpovraysettings.cpp pmpreviewsettings.cpp \
+ pmpovraysettings.cpp pmdistrendersettings.cpp pmpreviewsettings.cpp \
pmdockwidget.cpp pmdockwidget_private.cpp pmviewlayoutmanager.cpp \
pmviewbase.cpp pmviewfactory.cpp pmunknownview.cpp \
\
@@ -115,7 +115,7 @@
pmpovrayoutputwidget.h pmsettingsdialog.h \
pmcolorsettings.h pmgridsettings.h pmlayoutsettings.h \
pmobjectlibrarysettings.h pmobjectsettings.h pmpluginsettings.h \
- pmpovraysettings.h pmpreviewsettings.h \
+ pmpovraysettings.h pmdistrendersettings.h pmpreviewsettings.h \
pmdockwidget.h pmdockwidget_private.h pmviewlayoutmanager.h \
pmviewbase.h pmviewfactory.h pmunknownview.h \
\
Index: pmdefaults.h
===================================================================
RCS file: /home/kde/kdegraphics/kpovmodeler/pmdefaults.h,v
retrieving revision 1.17
diff -u -r1.17 pmdefaults.h
--- pmdefaults.h 21 May 2002 19:43:30 -0000 1.17
+++ pmdefaults.h 23 Sep 2003 21:23:54 -0000
@@ -45,6 +45,14 @@
// PovrayRenderWidget
const QString c_defaultPovrayCommand = QString( "povray" );
+// distributed rendering
+const QString c_defaultNspovrayPath = QString( "" );
+const int c_defaultTransport = 1;
+const QString c_defaultTransportConfig = QString( "" );
+const int c_defaultInstances = 2;
+const int c_defaultTimeout = 120;
+const int c_defaultTilewidth = 100;
+const int c_defaultTileheight = 100;
// PMSphere
const int c_defaultSphereUSteps = 8;
Index: pmpovrayrenderwidget.cpp
===================================================================
RCS file: /home/kde/kdegraphics/kpovmodeler/pmpovrayrenderwidget.cpp,v
retrieving revision 1.21
diff -u -r1.21 pmpovrayrenderwidget.cpp
--- pmpovrayrenderwidget.cpp 4 Jul 2003 21:23:34 -0000 1.21
+++ pmpovrayrenderwidget.cpp 23 Sep 2003 21:23:57 -0000
@@ -37,6 +37,13 @@
QString PMPovrayRenderWidget::s_povrayCommand = c_defaultPovrayCommand;
QStringList PMPovrayRenderWidget::s_libraryPaths;
+QString PMPovrayRenderWidget::s_nspovrayPath = c_defaultNspovrayPath;
+int PMPovrayRenderWidget::s_defaultTransport = c_defaultTransport;
+QString PMPovrayRenderWidget::s_defaultTransportConfig = c_defaultTransportConfig;
+int PMPovrayRenderWidget::s_defaultInstances = c_defaultInstances;
+int PMPovrayRenderWidget::s_defaultTimeout = c_defaultTimeout;
+int PMPovrayRenderWidget::s_defaultTilewidth = c_defaultTilewidth;
+int PMPovrayRenderWidget::s_defaultTileheight = c_defaultTileheight;
PMPovrayRenderWidget::PMPovrayRenderWidget( QWidget* parent, const char* name )
: QWidget( parent, name )
@@ -92,7 +99,16 @@
connect( m_pProcess, SIGNAL( processExited( KProcess* ) ),
SLOT( slotRenderingFinished( KProcess* ) ) );
- *m_pProcess << s_povrayCommand;
+ if ( m_renderMode.distributed( ) )
+ {
+ if( m_renderMode.NetSolve( ) ) {
+ m_pProcess->setEnvironment( QString( "NETSOLVE_AGENT" ), m_renderMode.transportConfig( ) );
+ m_pProcess->setEnvironment( QString( "PROXY_DIR" ), s_nspovrayPath );
+ }
+ *m_pProcess << QString( "%1/nspovray" ).arg( s_nspovrayPath );
+ } else {
+ *m_pProcess << s_povrayCommand;
+ }
QStringList::ConstIterator it;
QStringList args = m_renderMode.commandLineSwitches( );
@@ -107,10 +123,19 @@
path.truncate( path.length( ) - 1 );
*m_pProcess << ( QString( "+L" ) + path );
}
- *m_pProcess << QString( "+I" ) + m_pTempFile->name( ) << "+O-" << "+FT"
+ *m_pProcess << QString( "+I" ) + m_pTempFile->name( ) << "+FT"
<< "+K0.0" << "+KFI1" << "+KFF1" << "+KI0.0" << "+KF0.0"
<< "+SF1" << "+EF1" << "-KC" << "-D";
+ if ( m_renderMode.distributed() )
+ {
+ QStringList args = m_renderMode.commandLineDistributedSwitches( );
+ for( it = args.begin( ); it != args.end( ); ++it )
+ *m_pProcess << *it;
+ } else {
+ *m_pProcess << "+O-";
+ }
+
#if ( ( KDE_VERSION_MAJOR == 2 ) && ( KDE_VERSION_MINOR >= 9 ) ) || ( KDE_VERSION_MAJOR == 3 )
if( !documentURL.isEmpty( ) && documentURL.isLocalFile( ) )
m_pProcess->setWorkingDirectory( documentURL.directory( ) );
@@ -136,9 +161,13 @@
if( !m_pProcess->start( KProcess::NotifyOnExit, KProcess::AllOutput ) )
{
- KMessageBox::error( this, i18n( "Couldn't call povray.\n"
- "Please check your installation "
- "or set another povray command." ) );
+ if ( m_renderMode.distributed() )
+ KMessageBox::error( this, i18n( "Couldn't call nspovray.\n"
+ "Please check your installation." ) );
+ else
+ KMessageBox::error( this, i18n( "Couldn't call povray.\n"
+ "Please check your installation "
+ "or set another povray command." ) );
delete m_pProcess;
m_pProcess = 0;
return false;
@@ -369,9 +398,23 @@
#if ( ( KDE_VERSION_MAJOR == 3 ) && ( KDE_VERSION_MINOR <= 1 ) )
cfg->writeEntry( "PovrayCommand", s_povrayCommand );
cfg->writeEntry( "LibraryPaths", s_libraryPaths );
+ cfg->writeEntry( "NspovrayPath", s_nspovrayPath );
+ cfg->writeEntry( "DefaultTransport", s_defaultTransport );
+ cfg->writeEntry( "DefaultTransportConfig", s_defaultTransportConfig);
+ cfg->writeEntry( "DefaultInstances", s_defaultInstances );
+ cfg->writeEntry( "DefaultTimeout", s_defaultTimeout );
+ cfg->writeEntry( "DefaultTilewidth", s_defaultTilewidth );
+ cfg->writeEntry( "DefaultTileheight", s_defaultTileheight );
#else
cfg->writePathEntry( "PovrayCommand", s_povrayCommand );
cfg->writePathEntry( "LibraryPaths", s_libraryPaths );
+ cfg->writePathEntry( "NspovrayPath", s_nspovrayPath );
+ cfg->writePathEntry( "DefaultTransport", s_defaultTransport );
+ cfg->writePathEntry( "DefaultTransportConfig", s_defaultTransportConfig);
+ cfg->writePathEntry( "DefaultInstances", s_defaultInstances );
+ cfg->writePathEntry( "DefaultTimeout", s_defaultTimeout );
+ cfg->writePathEntry( "DefaultTilewidth", s_defaultTilewidth );
+ cfg->writePathEntry( "DefaultTileheight", s_defaultTileheight );
#endif
}
@@ -381,9 +424,23 @@
#if ( ( KDE_VERSION_MAJOR == 3 ) && ( KDE_VERSION_MINOR <= 1 ) )
s_povrayCommand = cfg->readEntry( "PovrayCommand", s_povrayCommand );
s_libraryPaths = cfg->readListEntry( "LibraryPaths" );
+ s_nspovrayPath = cfg->readEntry( "NspovrayPath", s_nspovrayPath );
+ s_defaultTransport = cfg->readNumEntry( "DefaultTransport", s_defaultTransport );
+ s_defaultTransportConfig = cfg->readEntry( "DefaultTransportConfig", s_defaultTransportConfig );
+ s_defaultInstances = cfg->readNumEntry( "DefaultInstances", s_defaultInstances );
+ s_defaultTimeout = cfg->readNumEntry( "DefaultTimeout", s_defaultTimeout );
+ s_defaultTilewidth = cfg->readNumEntry( "DefaultTilewidth", s_defaultTilewidth );
+ s_defaultTileheight = cfg->readNumEntry( "DefaultTileheight", s_defaultTileheight );
#else
s_povrayCommand = cfg->readPathEntry( "PovrayCommand", s_povrayCommand );
s_libraryPaths = cfg->readPathListEntry( "LibraryPaths" );
+ s_nspovrayCommand = cfg->readPathEntry( "NspovrayPath", s_nspovrayPath );
+ s_defaultTransport = cfg->readPathEntry( "DefaultTransport", s_defaultTransport );
+ s_nspovrayTransportConfig = cfg->readPathEntry( "DefaultTransportConfig", s_defaultTransportConfig );
+ s_defaultInstances = cfg->readPathEntry( "DefaultInstances", s_defaultInstances );
+ s_defaultTimeout = cfg->readPathEntry( "DefaultTimeout", s_defaultTimeout );
+ s_defaultTilewidth = cfg->readPathEntry( "DefaultTilewidth", s_defaultTilewidth );
+ s_defaultTileheight = cfg->readPathEntry( "DefaultTileheight", s_defaultTileheight );
#endif
}
Index: pmpovrayrenderwidget.h
===================================================================
RCS file: /home/kde/kdegraphics/kpovmodeler/pmpovrayrenderwidget.h,v
retrieving revision 1.10
diff -u -r1.10 pmpovrayrenderwidget.h
--- pmpovrayrenderwidget.h 8 Mar 2003 11:49:19 -0000 1.10
+++ pmpovrayrenderwidget.h 23 Sep 2003 21:24:01 -0000
@@ -68,18 +68,32 @@
* Returns the rendered image
*/
QImage image( ) const { return m_image; }
-
+
static void saveConfig( KConfig* cfg );
static void restoreConfig( KConfig* cfg );
/**
- * Returns the povray command
+ * Returns the povray command / nspovray Path
*/
static QString povrayCommand( ) { return s_povrayCommand; }
+ static QString nspovrayPath( ) { return s_nspovrayPath; }
+ static int defaultTransport( ) { return s_defaultTransport; }
+ static QString defaultTransportConfig( ) { return s_defaultTransportConfig; }
+ static int defaultInstances( ) { return s_defaultInstances; }
+ static int defaultTimeout( ) { return s_defaultTimeout; }
+ static int defaultTilewidth( ) { return s_defaultTilewidth; }
+ static int defaultTileheight( ) { return s_defaultTileheight; }
/**
- * Sets the povray command
+ * Sets the povray command / nspovray Path
*/
static void setPovrayCommand( const QString& c ) { s_povrayCommand = c; }
+ static void setNspovrayPath( const QString& c ) { s_nspovrayPath = c; }
+ static void setDefaultTransport( const int c ) { s_defaultTransport = c; }
+ static void setDefaultTransportConfig( const QString& c ) { s_defaultTransportConfig = c; }
+ static void setDefaultInstances( const int c ) { s_defaultInstances = c; }
+ static void setDefaultTimeout( const int c ) { s_defaultTimeout = c; }
+ static void setDefaultTilewidth( const int c ) { s_defaultTilewidth = c; }
+ static void setDefaultTileheight( const int c ) { s_defaultTileheight = c; }
/**
* Returns the library paths
*/
@@ -170,6 +184,13 @@
static QString s_povrayCommand;
static QStringList s_libraryPaths;
+ static QString s_nspovrayPath;
+ static int s_defaultTransport;
+ static QString s_defaultTransportConfig;
+ static int s_defaultInstances;
+ static int s_defaultTimeout;
+ static int s_defaultTilewidth;
+ static int s_defaultTileheight;
};
#endif
Index: pmrendermode.cpp
===================================================================
RCS file: /home/kde/kdegraphics/kpovmodeler/pmrendermode.cpp,v
retrieving revision 1.6
diff -u -r1.6 pmrendermode.cpp
--- pmrendermode.cpp 6 Sep 2003 04:20:38 -0000 1.6
+++ pmrendermode.cpp 23 Sep 2003 21:24:06 -0000
@@ -19,6 +19,7 @@
#include <klocale.h>
#include "pmxmlhelper.h"
+#include "pmpovrayrenderwidget.h"
PMRenderMode::PMRenderMode( )
@@ -51,6 +52,14 @@
m_description = i18n( "New mode" );
m_alpha = false;
+
+ m_distributed = false;
+ m_transport = PMPovrayRenderWidget::defaultTransport( );
+ m_transportConfig = PMPovrayRenderWidget::defaultTransportConfig( );;
+ m_instances = PMPovrayRenderWidget::defaultInstances( );
+ m_timeout = PMPovrayRenderWidget::defaultTimeout( );
+ m_tilewidth = PMPovrayRenderWidget::defaultTilewidth( );
+ m_tileheight = PMPovrayRenderWidget::defaultTileheight( );
}
PMRenderMode::PMRenderMode( const QDomElement& e )
@@ -75,6 +84,13 @@
m_antialiasJitterAmount = hlp.doubleAttribute( "aa_jitter_amount", m_antialiasJitterAmount );
m_antialiasDepth = hlp.intAttribute( "aa_depth", m_antialiasDepth );
m_alpha = hlp.boolAttribute( "alpha", m_alpha );
+ m_distributed = hlp.boolAttribute ("distributed", m_distributed );
+ m_transport = hlp.intAttribute( "transport", m_transport );
+ m_transportConfig = hlp.stringAttribute( "transportConfig", m_transportConfig );
+ m_instances = hlp.intAttribute( "instances", m_instances );
+ m_timeout = hlp.intAttribute( "timeout", m_timeout );
+ m_tilewidth = hlp.intAttribute( "tilewidth", m_tilewidth );
+ m_tileheight = hlp.intAttribute( "tileheight", m_tileheight );
}
void PMRenderMode::serialize( QDomElement& e ) const
@@ -96,6 +112,13 @@
e.setAttribute( "aa_jitter_amount", m_antialiasJitterAmount );
e.setAttribute( "aa_depth", m_antialiasDepth );
e.setAttribute( "alpha", m_alpha );
+ e.setAttribute( "distributed", m_distributed );
+ e.setAttribute( "transport", m_transport );
+ e.setAttribute( "transportConfig", m_transportConfig );
+ e.setAttribute( "instances", m_instances );
+ e.setAttribute( "timeout", m_timeout );
+ e.setAttribute( "tilewidth", m_tilewidth );
+ e.setAttribute( "tileheight", m_tileheight );
}
void PMRenderMode::setHeight( int height )
@@ -155,6 +178,36 @@
m_samplingMethod = AntialiasingNonRecursive;
}
+void PMRenderMode::setTransport( int transport )
+{
+ if( ( transport >= 0 ) && ( transport <= 1 ) )
+ m_transport = transport;
+}
+
+void PMRenderMode::setInstances( int instances )
+{
+ if( instances >= 0 )
+ m_instances = instances;
+}
+
+void PMRenderMode::setTimeout( int timeout )
+{
+ if( timeout >= 0 )
+ m_timeout = timeout;
+}
+
+void PMRenderMode::setTilewidth( int tilewidth )
+{
+ if( tilewidth >= 0 )
+ m_tilewidth = tilewidth;
+}
+
+void PMRenderMode::setTileheight( int tileheight )
+{
+ if( tileheight >= 0 )
+ m_tileheight = tileheight;
+}
+
QStringList PMRenderMode::commandLineSwitches( ) const
{
QStringList cl;
@@ -215,6 +268,29 @@
else
cl.append( QString( "-UA" ) );
+ return cl;
+}
+
+QStringList PMRenderMode::commandLineDistributedSwitches( ) const
+{
+ QStringList cl;
+ cl.append( QString( "--kpm" ) );
+
+ if ( NetSolve( ) )
+ cl.append( QString( "--netsolve" ) );
+ else {
+ cl.append( QString( "--ssh" ) );
+ cl.append( PMPovrayRenderWidget::nspovrayPath( ) + transportConfig( ) );
+ }
+
+ cl.append( QString( "--dist" ) );
+ cl.append( QString( "%1" ).arg( m_instances ) );
+
+ cl.append( QString( "--timeout" ) );
+ cl.append( QString( "%1" ).arg( m_timeout ) );
+
+ cl.append( QString( "--tile" ) );
+ cl.append( QString( "%1x" ).arg( m_tilewidth ) + QString( "%1" ).arg( m_tileheight ) );
return cl;
}
Index: pmrendermode.h
===================================================================
RCS file: /home/kde/kdegraphics/kpovmodeler/pmrendermode.h,v
retrieving revision 1.6
diff -u -r1.6 pmrendermode.h
--- pmrendermode.h 30 Dec 2002 19:55:16 -0000 1.6
+++ pmrendermode.h 23 Sep 2003 21:24:08 -0000
@@ -92,11 +92,29 @@
void setAlpha( bool on ) { m_alpha = on; }
bool alpha( ) const { return m_alpha; }
-
+ void setDistributed( bool on ) { m_distributed = on; }
+ bool distributed( ) const { return m_distributed; }
+ void setTransport( int m_transport );
+ int transport( ) const { return m_transport; }
+ bool NetSolve( ) const { return (m_transport == 0); }
+ void setTransportConfig( const QString& tpconf ) { m_transportConfig = tpconf; }
+ QString transportConfig( ) const { return m_transportConfig; }
+ void setInstances( int instances );
+ int instances( ) const { return m_instances; }
+ void setTimeout( int timeout );
+ int timeout( ) const { return m_timeout; }
+ void setTilewidth( int tilewidth );
+ int tilewidth( ) const { return m_tilewidth; }
+ void setTileheight( int tileheight );
+ int tileheight( ) const { return m_tileheight; }
+
+
/**
* Returns the settings as povray command line switches
*/
QStringList commandLineSwitches( ) const;
+ /* command line switches for nspovray */
+ QStringList commandLineDistributedSwitches( ) const;
/**
* Saves the data
*/
@@ -120,6 +138,14 @@
int m_antialiasDepth;
bool m_alpha;
+ bool m_distributed;
+ int m_transport;
+ QString m_transportConfig;
+ int m_instances;
+ int m_timeout;
+ int m_tilewidth;
+ int m_tileheight;
+
};
typedef QPtrList<PMRenderMode> PMRenderModeList;
Index: pmrendermodesdialog.cpp
===================================================================
RCS file: /home/kde/kdegraphics/kpovmodeler/pmrendermodesdialog.cpp,v
retrieving revision 1.6
diff -u -r1.6 pmrendermodesdialog.cpp
--- pmrendermodesdialog.cpp 18 May 2003 19:57:25 -0000 1.6
+++ pmrendermodesdialog.cpp 23 Sep 2003 21:24:11 -0000
@@ -30,6 +30,7 @@
#include <klocale.h>
#include <kconfig.h>
+#include <kiconloader.h>
#include <kmessagebox.h>
#include <kfiledialog.h>
@@ -358,14 +359,59 @@
tabLayout->addStretch( 1 );
-
+ // distribued rendering options tab
+ tab = new QWidget( );
+ m_pTabWidget->addTab( tab, i18n( "Distributed rendering" ) );
+ tabLayout = new QVBoxLayout( tab, marginHint( ), spacingHint( ) );
+
+ m_pDistributedBox = new QCheckBox( i18n( "Use distributed rendering" ), tab );
+ tabLayout->addWidget( m_pDistributedBox );
+
+ QHBoxLayout* distHelpLayout = new QHBoxLayout( tabLayout );
+ QGridLayout* distLayout = new QGridLayout( distHelpLayout, 6, 2 );
+ distLayout->addWidget( new QLabel( i18n( "Transport:" ), tab ), 0, 0 );
+ m_pTransportCombo = new QComboBox( tab );
+ distLayout->addWidget( m_pTransportCombo, 0, 1 );
+ m_pTransportCombo->insertItem( i18n( "NetSolve" ) );
+ m_pTransportCombo->insertItem( i18n( "SSH" ) );
+
+ m_pTransportConfigLabel = new QLabel( i18n( "Hostfile:" ), tab );
+ distLayout->addWidget( m_pTransportConfigLabel, 1, 0 );
+ m_pTransportConfigLineEdit = new QLineEdit( tab );
+ distLayout->addWidget( m_pTransportConfigLineEdit, 1, 1 );
+
+ distLayout->addWidget( new QLabel( i18n( "Instances:" ), tab ), 2, 0 );
+ m_pInstancesEdit = new PMIntEdit( tab );
+ m_pInstancesEdit->setValidation( true, 1, false, 0 );
+ distLayout->addWidget( m_pInstancesEdit, 2, 1 );
+
+ distLayout->addWidget( new QLabel( i18n( "Timeout (sec):" ), tab ), 3, 0 );
+ m_pTimeoutEdit = new PMIntEdit( tab );
+ m_pTimeoutEdit->setValidation( true, 1, false, 0 );
+ distLayout->addWidget( m_pTimeoutEdit, 3, 1 );
+
+ distLayout->addWidget( new QLabel( i18n( "Tile width:" ), tab ), 4, 0 );
+ m_pTileWidthEdit = new PMIntEdit( tab );
+ m_pTileWidthEdit->setValidation( true, 1, false, 0 );
+ distLayout->addWidget( m_pTileWidthEdit, 4, 1 );
+
+ distLayout->addWidget( new QLabel( i18n( "Tile height:" ), tab ), 5, 0 );
+ m_pTileHeightEdit = new PMIntEdit( tab );
+ m_pTileHeightEdit->setValidation( true, 1, false, 0 );
+ distLayout->addWidget( m_pTileHeightEdit, 5, 1 );
+
+ distHelpLayout->addStretch( 1 );
+
+ tabLayout->addStretch( 1 );
+
+
resize( s_size );
-
+
// display the mode BEFORE the signals are connected!!!
displayMode( );
enableButtonOK( false );
-
+
// connect signals
connect( m_pDescriptionEdit, SIGNAL( textChanged( const QString& ) ), SLOT( slotTextChanged( const QString& ) ) );
connect( m_pHeightEdit, SIGNAL( dataChanged( ) ), SLOT( slotChanged( ) ) );
@@ -384,6 +430,13 @@
connect( m_pJitterAmountEdit, SIGNAL( dataChanged( ) ), SLOT( slotChanged( ) ) );
connect( m_pAntialiasDepthEdit, SIGNAL( dataChanged( ) ), SLOT( slotChanged( ) ) );
connect( m_pAlphaBox, SIGNAL( toggled( bool ) ), SLOT( slotToggled( bool ) ) );
+ connect( m_pDistributedBox, SIGNAL( toggled( bool ) ), SLOT( slotDistributedToggled( bool ) ) );
+ connect( m_pTransportCombo, SIGNAL( activated( int ) ), SLOT( slotTransportChanged( int ) ) );
+ connect( m_pTransportConfigLineEdit, SIGNAL( textChanged( const QString& ) ), SLOT( slotTextChanged( const QString& ) ) );
+ connect( m_pInstancesEdit, SIGNAL( dataChanged( ) ), SLOT( slotChanged( ) ) );
+ connect( m_pTimeoutEdit, SIGNAL( dataChanged( ) ), SLOT( slotChanged( ) ) );
+ connect( m_pTileWidthEdit, SIGNAL( dataChanged( ) ), SLOT( slotChanged( ) ) );
+ connect( m_pTileHeightEdit, SIGNAL( dataChanged( ) ), SLOT( slotChanged( ) ) );
}
void PMRenderModeDialog::saveConfig( KConfig* cfg )
@@ -433,6 +486,13 @@
m_pMode->setAntialiasingDepth( m_pAntialiasDepthEdit->value( ) );
}
m_pMode->setAlpha( m_pAlphaBox->isChecked( ) );
+ m_pMode->setDistributed( m_pDistributedBox->isChecked( ) );
+ m_pMode->setTransport( m_pTransportCombo->currentItem( ) );
+ m_pMode->setTransportConfig( m_pTransportConfigLineEdit->text( ) );
+ m_pMode->setInstances( m_pInstancesEdit->value( ) );
+ m_pMode->setTimeout( m_pTimeoutEdit->value( ) );
+ m_pMode->setTilewidth( m_pTileWidthEdit->value( ) );
+ m_pMode->setTileheight( m_pTileHeightEdit->value( ) );
return true;
}
return false;
@@ -515,6 +575,15 @@
m_pJitterAmountEdit->setValue( m_pMode->antialiasingJitterAmount( ) );
m_pAntialiasDepthEdit->setValue( m_pMode->antialiasingDepth( ) );
m_pAlphaBox->setChecked( m_pMode->alpha( ) );
+ m_pDistributedBox->setChecked( m_pMode->distributed( ) );
+ enableDistributed( m_pMode->distributed( ) );
+ m_pTransportCombo->setCurrentItem( m_pMode->transport( ) );
+ setTransportConfigLabel( m_pMode->transport( ) );
+ m_pTransportConfigLineEdit->setText( m_pMode->transportConfig( ) );
+ m_pInstancesEdit->setValue( m_pMode->instances( ) );
+ m_pTimeoutEdit->setValue( m_pMode->timeout( ) );
+ m_pTileWidthEdit->setValue( m_pMode->tilewidth( ) );
+ m_pTileHeightEdit->setValue( m_pMode->tileheight( ) );
}
void PMRenderModeDialog::enableSubsection( bool yes )
@@ -539,13 +608,39 @@
m_pJitterAmountEdit->setEnabled( yes );
}
+void PMRenderModeDialog::enableDistributed( bool yes )
+{
+ m_pTransportCombo->setEnabled( yes );
+ m_pTransportConfigLineEdit->setEnabled( yes );
+ m_pInstancesEdit->setEnabled( yes );
+ m_pTimeoutEdit->setEnabled( yes );
+ m_pTileWidthEdit->setEnabled( yes );
+ m_pTileHeightEdit->setEnabled( yes );
+}
+
+void PMRenderModeDialog::setTransportConfigLabel( int transport )
+{
+ switch( transport )
+ {
+ case 0:
+ m_pTransportConfigLabel->setText( i18n( "Agent:" ) );
+ break;
+ case 1:
+ m_pTransportConfigLabel->setText( i18n( "Hostfile:" ) );
+ break;
+ default:
+ m_pTransportConfigLabel->setText( QString( "" ) );
+ break;
+ }
+}
+
int PMRenderModeDialog::qualityToIndex( int quality )
{
if( quality < 0 )
quality = 0;
if( quality > 11 )
quality = 11;
-
+
return c_qualityToIndex[quality];
}
@@ -584,6 +679,10 @@
{
slotChanged( );
enableSubsection( on );
+ if ( on == true ) {
+ m_pDistributedBox->setChecked( false );
+ enableDistributed( false );
+ }
}
void PMRenderModeDialog::slotAntialiasingToggled( bool on )
@@ -596,6 +695,23 @@
{
slotChanged( );
enableJitter( on );
+}
+
+void PMRenderModeDialog::slotDistributedToggled( bool on )
+{
+ slotChanged( );
+ enableDistributed( on );
+ if ( on == true ) {
+ m_pSubsectionBox->setChecked( false );
+ enableSubsection( false );
+ }
+}
+
+void PMRenderModeDialog::slotTransportChanged( int item )
+{
+ setTransportConfigLabel( item );
+ m_pTransportConfigLineEdit->setText( QString( "" ) );
+ slotActivated( item );
}
void PMRenderModeDialog::slotToggled( bool )
Index: pmrendermodesdialog.h
===================================================================
RCS file: /home/kde/kdegraphics/kpovmodeler/pmrendermodesdialog.h,v
retrieving revision 1.4
diff -u -r1.4 pmrendermodesdialog.h
--- pmrendermodesdialog.h 30 Dec 2002 19:55:16 -0000 1.4
+++ pmrendermodesdialog.h 23 Sep 2003 21:24:11 -0000
@@ -128,7 +128,9 @@
void slotAntialiasingToggled( bool );
void slotJitterToggled( bool );
void slotToggled( bool );
-
+ void slotDistributedToggled( bool );
+ void slotTransportChanged( int );
+
private:
/**
* Saves the current changes. Returns true if successful.
@@ -148,7 +150,9 @@
void enableJitter( bool yes );
int qualityToIndex( int quality );
int indexToQuality( int index );
-
+ void enableDistributed( bool yes );
+ void setTransportConfigLabel( int transport );
+
PMRenderMode* m_pMode;
QTabWidget* m_pTabWidget;
@@ -172,6 +176,16 @@
// output
QCheckBox* m_pAlphaBox;
+ // distributed rendering
+ QCheckBox* m_pDistributedBox;
+ QComboBox* m_pTransportCombo;
+ QLabel* m_pTransportConfigLabel;
+ QLineEdit* m_pTransportConfigLineEdit;
+ PMIntEdit* m_pInstancesEdit;
+ PMIntEdit* m_pTimeoutEdit;
+ PMIntEdit* m_pTileWidthEdit;
+ PMIntEdit* m_pTileHeightEdit;
+
static QSize s_size;
};
Index: pmsettingsdialog.cpp
===================================================================
RCS file: /home/kde/kdegraphics/kpovmodeler/pmsettingsdialog.cpp,v
retrieving revision 1.41
diff -u -r1.41 pmsettingsdialog.cpp
--- pmsettingsdialog.cpp 26 Feb 2003 20:07:27 -0000 1.41
+++ pmsettingsdialog.cpp 23 Sep 2003 21:24:12 -0000
@@ -27,6 +27,7 @@
#include "pmlayoutsettings.h"
#include "pmobjectlibrarysettings.h"
#include "pmpluginsettings.h"
+#include "pmdistrendersettings.h"
#include "pmrendermanager.h"
#include "pmdebug.h"
@@ -115,6 +116,12 @@
sl.append( i18n( "Plugins" ) );
w = addVBoxPage( sl, i18n( "Plugin Settings" ) );
p = new PMPluginSettings( w );
+ registerPage( w, p );
+
+ sl.clear( );
+ sl.append( i18n( "Distributed Rendering" ) );
+ w = addVBoxPage( sl, i18n( "Distributed Rendering Settings" ) );
+ p = new PMDistRenderSettings( w );
registerPage( w, p );
displaySettings( );
pmdistrendersettings.cpp
(text/x-c++src, 6.2 KB)
/*
**************************************************************************
description
--------------------
copyright : (C) 2003 by Christoph Fabianek
email : [email protected]
**************************************************************************
**************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
**************************************************************************/
#include "pmdistrendersettings.h"
#include "pmdocumentationmap.h"
#include "pmpovrayrenderwidget.h"
#include "pmdefaults.h"
#include "pmresourcelocator.h"
#include "pmtext.h"
#include <qlayout.h>
#include <qlineedit.h>
#include <qpushbutton.h>
#include <qlistbox.h>
#include <qcombobox.h>
#include <qgroupbox.h>
#include <qlabel.h>
#include <klocale.h>
#include <kiconloader.h>
#include <kmessagebox.h>
#include <kfiledialog.h>
#include "pmlineedits.h"
PMDistRenderSettings::PMDistRenderSettings( QWidget* parent, const char* name )
: PMSettingsDialogPage( parent, name )
{
QHBoxLayout* hlayout;
QVBoxLayout* vlayout;
QVBoxLayout* gvl;
QGroupBox* gb;
vlayout = new QVBoxLayout( this, 0, KDialog::spacingHint( ) );
gb = new QGroupBox( i18n( "nspovray" ), this );
gvl = new QVBoxLayout( gb, KDialog::marginHint( ), KDialog::spacingHint( ) );
gvl->addSpacing( 10 );
hlayout = new QHBoxLayout( gvl );
hlayout->addWidget( new QLabel( i18n( "Path:" ), gb ) );
m_pNspovrayPath = new QLineEdit( gb );
hlayout->addWidget( m_pNspovrayPath );
m_pBrowseNspovrayPath = new QPushButton( gb );
m_pBrowseNspovrayPath->setPixmap( SmallIcon( "fileopen" ) );
connect( m_pBrowseNspovrayPath, SIGNAL( clicked( ) ),
SLOT( slotBrowseNspovrayPath( ) ) );
hlayout->addWidget( m_pBrowseNspovrayPath );
vlayout->addWidget( gb );
gb = new QGroupBox( i18n( "Default values" ), this );
gvl = new QVBoxLayout( gb, KDialog::marginHint( ), KDialog::spacingHint( ) );
gvl->addSpacing( 10 );
hlayout = new QHBoxLayout( gvl );
QGridLayout* distLayout = new QGridLayout( hlayout, 6, 2 );
distLayout->addWidget( new QLabel( i18n( "Transport:" ), gb ), 0, 0 );
m_pDefaultTransportCombo = new QComboBox( gb );
distLayout->addWidget( m_pDefaultTransportCombo, 0, 1 );
m_pDefaultTransportCombo->insertItem( i18n( "NetSolve" ) );
m_pDefaultTransportCombo->insertItem( i18n( "SSH" ) );
m_pDefaultTransportConfigLabel = new QLabel( i18n( "Hostfile:" ), gb );
distLayout->addWidget( m_pDefaultTransportConfigLabel, 1, 0 );
m_pDefaultTransportConfigLineEdit = new QLineEdit( gb );
distLayout->addWidget( m_pDefaultTransportConfigLineEdit, 1, 1 );
distLayout->addWidget( new QLabel( i18n( "Instances:" ), gb ), 2, 0 );
m_pDefaultInstancesEdit = new PMIntEdit( gb );
m_pDefaultInstancesEdit->setValidation( true, 1, false, 0 );
distLayout->addWidget( m_pDefaultInstancesEdit, 2, 1 );
distLayout->addWidget( new QLabel( i18n( "Timeout (sec):" ), gb ), 3, 0 );
m_pDefaultTimeoutEdit = new PMIntEdit( gb );
m_pDefaultTimeoutEdit->setValidation( true, 1, false, 0 );
distLayout->addWidget( m_pDefaultTimeoutEdit, 3, 1 );
distLayout->addWidget( new QLabel( i18n( "Tile width:" ), gb ), 4, 0 );
m_pDefaultTileWidthEdit = new PMIntEdit( gb );
m_pDefaultTileWidthEdit->setValidation( true, 1, false, 0 );
distLayout->addWidget( m_pDefaultTileWidthEdit, 4, 1 );
distLayout->addWidget( new QLabel( i18n( "Tile height:" ), gb ), 5, 0 );
m_pDefaultTileHeightEdit = new PMIntEdit( gb );
m_pDefaultTileHeightEdit->setValidation( true, 1, false, 0 );
distLayout->addWidget( m_pDefaultTileHeightEdit, 5, 1 );
hlayout->addStretch( 1 );
vlayout->addWidget( gb );
vlayout->addStretch( 1 );
}
void PMDistRenderSettings::displaySettings( )
{
m_pNspovrayPath->setText( PMPovrayRenderWidget::nspovrayPath( ) );
m_pDefaultTransportCombo->setCurrentItem( PMPovrayRenderWidget::defaultTransport( ) );
m_pDefaultTransportConfigLineEdit->setText( PMPovrayRenderWidget::defaultTransportConfig( ) );
m_pDefaultInstancesEdit->setValue( PMPovrayRenderWidget::defaultInstances( ) );
m_pDefaultTimeoutEdit->setValue( PMPovrayRenderWidget::defaultTimeout( ) );
m_pDefaultTileWidthEdit->setValue( PMPovrayRenderWidget::defaultTilewidth( ) );
m_pDefaultTileHeightEdit->setValue( PMPovrayRenderWidget::defaultTileheight( ) );
}
void PMDistRenderSettings::displayDefaults( )
{
m_pNspovrayPath->setText( c_defaultNspovrayPath );
m_pDefaultTransportCombo->setCurrentItem( c_defaultTransport );
m_pDefaultTransportConfigLineEdit->setText( c_defaultTransportConfig );
m_pDefaultInstancesEdit->setValue( c_defaultInstances );
m_pDefaultTimeoutEdit->setValue( c_defaultTimeout );
m_pDefaultTileWidthEdit->setValue( c_defaultTilewidth );
m_pDefaultTileHeightEdit->setValue( c_defaultTileheight );
}
bool PMDistRenderSettings::validateData( )
{
return true;
}
void PMDistRenderSettings::applySettings( )
{
PMPovrayRenderWidget::setNspovrayPath( m_pNspovrayPath->text( ) );
PMPovrayRenderWidget::setDefaultTransport( m_pDefaultTransportCombo->currentItem( ) );
PMPovrayRenderWidget::setDefaultTransportConfig( m_pDefaultTransportConfigLineEdit->text( ) );
PMPovrayRenderWidget::setDefaultInstances( m_pDefaultInstancesEdit->value( ) );
PMPovrayRenderWidget::setDefaultTimeout( m_pDefaultTimeoutEdit->value( ) );
PMPovrayRenderWidget::setDefaultTilewidth( m_pDefaultTileWidthEdit->value( ) );
PMPovrayRenderWidget::setDefaultTileheight( m_pDefaultTileHeightEdit->value( ) );
}
void PMDistRenderSettings::slotBrowseNspovrayPath( )
{
QString str = KFileDialog::getExistingDirectory( );
if( !str.isEmpty( ) )
m_pNspovrayPath->setText( str );
}
#include "pmdistrendersettings.moc"
pmdistrendersettings.h
(text/x-chdr, 2 KB)
/*
**************************************************************************
description
--------------------
copyright : (C) 2003 by Christoph Fabianek
email : [email protected]
**************************************************************************
**************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
**************************************************************************/
#ifndef PMDISTRENDERSETTINGS_H
#define PMDISTRENDERSETTINGS_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "pmsettingsdialog.h"
class QLineEdit;
class QPushButton;
class QComboBox;
class QListBox;
/**
* Povray configuration dialog page
*/
class PMDistRenderSettings : public PMSettingsDialogPage
{
Q_OBJECT
public:
/**
* Default constructor
*/
PMDistRenderSettings( QWidget* parent, const char* name = 0 );
/** */
virtual void displaySettings( );
/** */
virtual bool validateData( );
/** */
virtual void applySettings( );
/** */
virtual void displayDefaults( );
protected slots:
/**
* Called when the browse button for the nspovray path is clicked
*/
void slotBrowseNspovrayPath( );
private:
QLineEdit* m_pNspovrayPath;
QPushButton* m_pBrowseNspovrayPath;
QComboBox* m_pDefaultTransportCombo;
QLabel* m_pDefaultTransportConfigLabel;
QLineEdit* m_pDefaultTransportConfigLineEdit;
PMIntEdit* m_pDefaultInstancesEdit;
PMIntEdit* m_pDefaultTimeoutEdit;
PMIntEdit* m_pDefaultTileWidthEdit;
PMIntEdit* m_pDefaultTileHeightEdit;
};
#endif
pmdistrendersettings.Plo
(text/plain, 11.4 KB)
pmdistrendersettings.lo .libs/pmdistrendersettings.o: \ pmdistrendersettings.cpp pmdistrendersettings.h ../config.h \ pmsettingsdialog.h /usr/include/kde/kdialogbase.h \ /usr/include/kde/kdialog.h /usr/share/qt3/include/qdialog.h \ /usr/share/qt3/include/qwidget.h /usr/share/qt3/include/qwindowdefs.h \ /usr/share/qt3/include/qobjectdefs.h /usr/share/qt3/include/qglobal.h \ /usr/share/qt3/include/qconfig.h /usr/share/qt3/include/qmodules.h \ /usr/share/qt3/include/qfeatures.h /usr/share/qt3/include/qstring.h \ /usr/share/qt3/include/qcstring.h /usr/share/qt3/include/qmemarray.h \ /usr/share/qt3/include/qgarray.h /usr/share/qt3/include/qshared.h \ /usr/share/qt3/include/qwinexport.h /usr/include/string.h \ /usr/include/features.h /usr/include/sys/cdefs.h \ /usr/include/gnu/stubs.h \ /usr/lib/gcc-lib/i486-linux/3.3.2/include/stddef.h \ /usr/include/xlocale.h \ /usr/lib/gcc-lib/i486-linux/3.3.2/include/limits.h \ /usr/lib/gcc-lib/i486-linux/3.3.2/include/syslimits.h \ /usr/include/limits.h /usr/include/bits/posix1_lim.h \ /usr/include/bits/local_lim.h /usr/include/linux/limits.h \ /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \ /usr/include/bits/stdio_lim.h /usr/share/qt3/include/qnamespace.h \ /usr/share/qt3/include/qobject.h /usr/share/qt3/include/qevent.h \ /usr/share/qt3/include/qregion.h /usr/share/qt3/include/qrect.h \ /usr/share/qt3/include/qsize.h /usr/share/qt3/include/qpoint.h \ /usr/share/qt3/include/qmime.h /usr/share/qt3/include/qmap.h \ /usr/share/qt3/include/qdatastream.h /usr/share/qt3/include/qiodevice.h \ /usr/share/qt3/include/qpair.h /usr/share/qt3/include/qvaluelist.h \ /usr/share/qt3/include/qtl.h /usr/share/qt3/include/qtextstream.h \ /usr/include/stdio.h /usr/include/bits/types.h \ /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \ /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ /usr/include/bits/wchar.h /usr/include/gconv.h \ /usr/lib/gcc-lib/i486-linux/3.3.2/include/stdarg.h \ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \ /usr/share/qt3/include/qpaintdevice.h /usr/share/qt3/include/qpalette.h \ /usr/share/qt3/include/qcolor.h /usr/share/qt3/include/qstringlist.h \ /usr/share/qt3/include/qstrlist.h /usr/share/qt3/include/qptrlist.h \ /usr/share/qt3/include/qglist.h /usr/share/qt3/include/qptrcollection.h \ /usr/share/qt3/include/qbrush.h /usr/share/qt3/include/qfont.h \ /usr/share/qt3/include/qfontmetrics.h \ /usr/share/qt3/include/qfontinfo.h /usr/share/qt3/include/qsizepolicy.h \ /usr/include/kde/kjanuswidget.h /usr/share/qt3/include/qpixmap.h \ /usr/share/qt3/include/qsplitter.h /usr/share/qt3/include/qframe.h \ /usr/include/kde/klistbox.h /usr/share/qt3/include/qlistbox.h \ /usr/share/qt3/include/qscrollview.h \ /usr/share/qt3/include/qscrollbar.h \ /usr/share/qt3/include/qrangecontrol.h /usr/include/kde/kguiitem.h \ /usr/share/qt3/include/qiconset.h /usr/include/kde/kicontheme.h \ /usr/include/kde/kglobal.h /usr/include/kde/kinstance.h \ /usr/include/kde/kstdguiitem.h /usr/share/qt3/include/qvaluevector.h \ pmdocumentationmap.h /usr/include/kde/kstaticdeleter.h \ pmpovrayrenderwidget.h /usr/share/qt3/include/qimage.h \ /usr/share/qt3/include/qbuffer.h pmrendermode.h \ /usr/share/qt3/include/qdom.h pmdefaults.h /usr/include/math.h \ /usr/include/bits/huge_val.h /usr/include/bits/nan.h \ /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \ /usr/include/bits/mathinline.h pmresourcelocator.h \ /usr/share/qt3/include/qcache.h /usr/share/qt3/include/qgcache.h \ /usr/share/qt3/include/qgdict.h pmtext.h pmsolidobject.h \ pmgraphicalobject.h pmnamedobject.h pmcompositeobject.h pmobject.h \ /usr/include/kde/kdebug.h pmmatrix.h pmmath.h \ /usr/X11R6/include/GL/gl.h /usr/X11R6/include/GL/glext.h \ pmcontrolpoint.h pmvector.h pmmetaobject.h \ /usr/share/qt3/include/qdict.h pmvariant.h pmcolor.h pmthreestate.h \ pmdebug.h /usr/share/qt3/include/qlayout.h \ /usr/share/qt3/include/qlineedit.h /usr/share/qt3/include/qpushbutton.h \ /usr/share/qt3/include/qbutton.h /usr/share/qt3/include/qkeysequence.h \ /usr/share/qt3/include/qcombobox.h /usr/share/qt3/include/qgroupbox.h \ /usr/share/qt3/include/qlabel.h /usr/include/kde/klocale.h \ /usr/include/kde/kiconloader.h /usr/share/qt3/include/qmovie.h \ /usr/include/kde/kmessagebox.h /usr/include/kde/kfiledialog.h \ /usr/include/kde/kfile.h /usr/share/qt3/include/qdir.h \ /usr/share/qt3/include/qfileinfo.h /usr/share/qt3/include/qfile.h \ /usr/share/qt3/include/qdatetime.h /usr/include/kde/kurl.h \ /usr/include/kde/kmimetype.h /usr/include/sys/types.h \ /usr/include/time.h /usr/include/endian.h /usr/include/bits/endian.h \ /usr/include/sys/select.h /usr/include/bits/select.h \ /usr/include/bits/sigset.h /usr/include/bits/time.h \ /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \ /usr/include/bits/sched.h /usr/include/sys/stat.h \ /usr/include/bits/stat.h /usr/include/kde/ksycocatype.h \ /usr/include/kde/kservicetype.h /usr/include/kde/ksycocaentry.h \ /usr/include/kde/ksharedptr.h /usr/include/kde/kservice.h \ /usr/share/qt3/include/qvariant.h /usr/include/kde/ksimpleconfig.h \ /usr/include/kde/kconfig.h /usr/include/kde/kconfigbase.h \ /usr/include/kde/kconfigdata.h /usr/include/kde/kio/jobclasses.h \ /usr/share/qt3/include/qguardedptr.h /usr/include/kde/kio/global.h \ pmlineedits.h pmdistrendersettings.moc \ /usr/share/qt3/include/qmetaobject.h \ /usr/share/qt3/include/qconnection.h \ /usr/share/qt3/include/qapplication.h \ /usr/share/qt3/include/qdesktopwidget.h \ /usr/share/qt3/include/qasciidict.h \ /usr/share/qt3/include/qtranslator.h \ /usr/share/qt3/include/private/qucomextra_p.h \ /usr/share/qt3/include/private/qucom_p.h /usr/share/qt3/include/quuid.h pmdistrendersettings.h: ../config.h: pmsettingsdialog.h: /usr/include/kde/kdialogbase.h: /usr/include/kde/kdialog.h: /usr/share/qt3/include/qdialog.h: /usr/share/qt3/include/qwidget.h: /usr/share/qt3/include/qwindowdefs.h: /usr/share/qt3/include/qobjectdefs.h: /usr/share/qt3/include/qglobal.h: /usr/share/qt3/include/qconfig.h: /usr/share/qt3/include/qmodules.h: /usr/share/qt3/include/qfeatures.h: /usr/share/qt3/include/qstring.h: /usr/share/qt3/include/qcstring.h: /usr/share/qt3/include/qmemarray.h: /usr/share/qt3/include/qgarray.h: /usr/share/qt3/include/qshared.h: /usr/share/qt3/include/qwinexport.h: /usr/include/string.h: /usr/include/features.h: /usr/include/sys/cdefs.h: /usr/include/gnu/stubs.h: /usr/lib/gcc-lib/i486-linux/3.3.2/include/stddef.h: /usr/include/xlocale.h: /usr/lib/gcc-lib/i486-linux/3.3.2/include/limits.h: /usr/lib/gcc-lib/i486-linux/3.3.2/include/syslimits.h: /usr/include/limits.h: /usr/include/bits/posix1_lim.h: /usr/include/bits/local_lim.h: /usr/include/linux/limits.h: /usr/include/bits/posix2_lim.h: /usr/include/bits/xopen_lim.h: /usr/include/bits/stdio_lim.h: /usr/share/qt3/include/qnamespace.h: /usr/share/qt3/include/qobject.h: /usr/share/qt3/include/qevent.h: /usr/share/qt3/include/qregion.h: /usr/share/qt3/include/qrect.h: /usr/share/qt3/include/qsize.h: /usr/share/qt3/include/qpoint.h: /usr/share/qt3/include/qmime.h: /usr/share/qt3/include/qmap.h: /usr/share/qt3/include/qdatastream.h: /usr/share/qt3/include/qiodevice.h: /usr/share/qt3/include/qpair.h: /usr/share/qt3/include/qvaluelist.h: /usr/share/qt3/include/qtl.h: /usr/share/qt3/include/qtextstream.h: /usr/include/stdio.h: /usr/include/bits/types.h: /usr/include/bits/wordsize.h: /usr/include/bits/typesizes.h: /usr/include/libio.h: /usr/include/_G_config.h: /usr/include/wchar.h: /usr/include/bits/wchar.h: /usr/include/gconv.h: /usr/lib/gcc-lib/i486-linux/3.3.2/include/stdarg.h: /usr/include/bits/sys_errlist.h: /usr/include/bits/stdio.h: /usr/share/qt3/include/qpaintdevice.h: /usr/share/qt3/include/qpalette.h: /usr/share/qt3/include/qcolor.h: /usr/share/qt3/include/qstringlist.h: /usr/share/qt3/include/qstrlist.h: /usr/share/qt3/include/qptrlist.h: /usr/share/qt3/include/qglist.h: /usr/share/qt3/include/qptrcollection.h: /usr/share/qt3/include/qbrush.h: /usr/share/qt3/include/qfont.h: /usr/share/qt3/include/qfontmetrics.h: /usr/share/qt3/include/qfontinfo.h: /usr/share/qt3/include/qsizepolicy.h: /usr/include/kde/kjanuswidget.h: /usr/share/qt3/include/qpixmap.h: /usr/share/qt3/include/qsplitter.h: /usr/share/qt3/include/qframe.h: /usr/include/kde/klistbox.h: /usr/share/qt3/include/qlistbox.h: /usr/share/qt3/include/qscrollview.h: /usr/share/qt3/include/qscrollbar.h: /usr/share/qt3/include/qrangecontrol.h: /usr/include/kde/kguiitem.h: /usr/share/qt3/include/qiconset.h: /usr/include/kde/kicontheme.h: /usr/include/kde/kglobal.h: /usr/include/kde/kinstance.h: /usr/include/kde/kstdguiitem.h: /usr/share/qt3/include/qvaluevector.h: pmdocumentationmap.h: /usr/include/kde/kstaticdeleter.h: pmpovrayrenderwidget.h: /usr/share/qt3/include/qimage.h: /usr/share/qt3/include/qbuffer.h: pmrendermode.h: /usr/share/qt3/include/qdom.h: pmdefaults.h: /usr/include/math.h: /usr/include/bits/huge_val.h: /usr/include/bits/nan.h: /usr/include/bits/mathdef.h: /usr/include/bits/mathcalls.h: /usr/include/bits/mathinline.h: pmresourcelocator.h: /usr/share/qt3/include/qcache.h: /usr/share/qt3/include/qgcache.h: /usr/share/qt3/include/qgdict.h: pmtext.h: pmsolidobject.h: pmgraphicalobject.h: pmnamedobject.h: pmcompositeobject.h: pmobject.h: /usr/include/kde/kdebug.h: pmmatrix.h: pmmath.h: /usr/X11R6/include/GL/gl.h: /usr/X11R6/include/GL/glext.h: pmcontrolpoint.h: pmvector.h: pmmetaobject.h: /usr/share/qt3/include/qdict.h: pmvariant.h: pmcolor.h: pmthreestate.h: pmdebug.h: /usr/share/qt3/include/qlayout.h: /usr/share/qt3/include/qlineedit.h: /usr/share/qt3/include/qpushbutton.h: /usr/share/qt3/include/qbutton.h: /usr/share/qt3/include/qkeysequence.h: /usr/share/qt3/include/qcombobox.h: /usr/share/qt3/include/qgroupbox.h: /usr/share/qt3/include/qlabel.h: /usr/include/kde/klocale.h: /usr/include/kde/kiconloader.h: /usr/share/qt3/include/qmovie.h: /usr/include/kde/kmessagebox.h: /usr/include/kde/kfiledialog.h: /usr/include/kde/kfile.h: /usr/share/qt3/include/qdir.h: /usr/share/qt3/include/qfileinfo.h: /usr/share/qt3/include/qfile.h: /usr/share/qt3/include/qdatetime.h: /usr/include/kde/kurl.h: /usr/include/kde/kmimetype.h: /usr/include/sys/types.h: /usr/include/time.h: /usr/include/endian.h: /usr/include/bits/endian.h: /usr/include/sys/select.h: /usr/include/bits/select.h: /usr/include/bits/sigset.h: /usr/include/bits/time.h: /usr/include/sys/sysmacros.h: /usr/include/bits/pthreadtypes.h: /usr/include/bits/sched.h: /usr/include/sys/stat.h: /usr/include/bits/stat.h: /usr/include/kde/ksycocatype.h: /usr/include/kde/kservicetype.h: /usr/include/kde/ksycocaentry.h: /usr/include/kde/ksharedptr.h: /usr/include/kde/kservice.h: /usr/share/qt3/include/qvariant.h: /usr/include/kde/ksimpleconfig.h: /usr/include/kde/kconfig.h: /usr/include/kde/kconfigbase.h: /usr/include/kde/kconfigdata.h: /usr/include/kde/kio/jobclasses.h: /usr/share/qt3/include/qguardedptr.h: /usr/include/kde/kio/global.h: pmlineedits.h: pmdistrendersettings.moc: /usr/share/qt3/include/qmetaobject.h: /usr/share/qt3/include/qconnection.h: /usr/share/qt3/include/qapplication.h: /usr/share/qt3/include/qdesktopwidget.h: /usr/share/qt3/include/qasciidict.h: /usr/share/qt3/include/qtranslator.h: /usr/share/qt3/include/private/qucomextra_p.h: /usr/share/qt3/include/private/qucom_p.h: /usr/share/qt3/include/quuid.h: