+
+/*!
+Adds logo to be shown at the right of the page title
+*/
+void InstallWizard::addLogo( const QPixmap& pm )
+{
+ QLabel* logo = new QLabel( d->logoBox, "logo" );
+ logo->setPixmap( pm );
+ logo->setAlignment( AlignCenter );
+ logo->setScaledContents( false );
+ logo->show();
+}
+
+/*!
+Remove all logos
+*/
+void InstallWizard::removeLogos()
+{
+ QObjectList* children = d->logoBox->queryList( "QLabel" );
+ if ( children ) {
+ QObjectListIt it( *children );
+ QObject *obj;
+ while ( (obj = it.current()) != 0 ) {
+ ++it;
+ delete obj;
+ }
+ }
+ delete children;
+}
+
+/*!
+Posts validation event
+*/
+void InstallWizard::postValidateEvent( InstallWizard* iw, const int val, void* data )
+{
+ QThread::postEvent( iw, new ProcessEvent( val, data ) );
+}
+
+/*!
+Processes validation event: default implementation just to show next page
+*/
+void InstallWizard::processValidateEvent( const int /* val */, void* /* data */ )
+{
+ int i = 0;
+ while( i < (int)d->pages.count() && d->pages.at( i ) &&
+ d->current && d->pages.at( i )->w != d->current->w )
+ i++;
+ i++;
+ while( i <= (int)d->pages.count()-1 &&
+ ( !d->pages.at( i ) || !appropriate( d->pages.at( i )->w ) ) )
+ i++;
+ // if we fell of the end of the world, step back
+ while ( i > 0 && (i >= (int)d->pages.count() || !d->pages.at( i ) ) )
+ i--;
+ if ( d->pages.at( i ) ) {
+ showPage( d->pages.at( i )->w );
+ }
+ setNextEnabled( true );
+ setBackEnabled( true );
+}
+
+/*!
+Process events received
+*/
+bool InstallWizard::event ( QEvent* e )
+{
+ if ( e->type() == PROCESS_EVENT ) {
+ ProcessEvent* pe = (ProcessEvent*)e;
+ processValidateEvent( pe->returnValue(), pe->data() );
+ }
+ return QDialog::event( e );
+}