From 3b3f9ec8f31978030c17309fae48335bea5c1587 Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Sun, 14 Jan 2024 12:33:20 +0900 Subject: Use new TQ_METHOD, TQ_SIGNAL, TQ_SLOT defines Signed-off-by: Michele Calgaro --- certmanager/certmanager.cpp | 158 ++++++++++++++++++++++---------------------- 1 file changed, 79 insertions(+), 79 deletions(-) (limited to 'certmanager/certmanager.cpp') diff --git a/certmanager/certmanager.cpp b/certmanager/certmanager.cpp index 6dfd3d743..ddcdb8a45 100644 --- a/certmanager/certmanager.cpp +++ b/certmanager/certmanager.cpp @@ -187,17 +187,17 @@ CertManager::CertManager( bool remote, const TQString& query, const TQString & i mKeyListView->setSelectionMode( TQListView::Extended ); setCentralWidget( mKeyListView ); - connect( mKeyListView, TQT_SIGNAL(doubleClicked(Kleo::KeyListViewItem*,const TQPoint&,int)), - TQT_SLOT(slotViewDetails(Kleo::KeyListViewItem*)) ); - connect( mKeyListView, TQT_SIGNAL(returnPressed(Kleo::KeyListViewItem*)), - TQT_SLOT(slotViewDetails(Kleo::KeyListViewItem*)) ); - connect( mKeyListView, TQT_SIGNAL(selectionChanged()), - TQT_SLOT(slotSelectionChanged()) ); - connect( mKeyListView, TQT_SIGNAL(contextMenu(Kleo::KeyListViewItem*, const TQPoint&)), - TQT_SLOT(slotContextMenu(Kleo::KeyListViewItem*, const TQPoint&)) ); - - connect( mKeyListView, TQT_SIGNAL(dropped(const KURL::List&) ), - TQT_SLOT( slotDropped(const KURL::List&) ) ); + connect( mKeyListView, TQ_SIGNAL(doubleClicked(Kleo::KeyListViewItem*,const TQPoint&,int)), + TQ_SLOT(slotViewDetails(Kleo::KeyListViewItem*)) ); + connect( mKeyListView, TQ_SIGNAL(returnPressed(Kleo::KeyListViewItem*)), + TQ_SLOT(slotViewDetails(Kleo::KeyListViewItem*)) ); + connect( mKeyListView, TQ_SIGNAL(selectionChanged()), + TQ_SLOT(slotSelectionChanged()) ); + connect( mKeyListView, TQ_SIGNAL(contextMenu(Kleo::KeyListViewItem*, const TQPoint&)), + TQ_SLOT(slotContextMenu(Kleo::KeyListViewItem*, const TQPoint&)) ); + + connect( mKeyListView, TQ_SIGNAL(dropped(const KURL::List&) ), + TQ_SLOT( slotDropped(const KURL::List&) ) ); mLineEditAction->setText(query); if ( !mRemote && !mNextFindRemote || !query.isEmpty() ) @@ -244,17 +244,17 @@ void CertManager::createStatusBar() { } static inline void connectEnableOperationSignal( TQObject * s, TQObject * d ) { - TQObject::connect( s, TQT_SIGNAL(enableOperations(bool)), - d, TQT_SLOT(setEnabled(bool)) ); + TQObject::connect( s, TQ_SIGNAL(enableOperations(bool)), + d, TQ_SLOT(setEnabled(bool)) ); } void CertManager::createActions() { TDEAction * action = 0; - (void)KStdAction::quit( this, TQT_SLOT(close()), actionCollection() ); + (void)KStdAction::quit( this, TQ_SLOT(close()), actionCollection() ); - action = KStdAction::redisplay( this, TQT_SLOT(slotRedisplay()), actionCollection() ); + action = KStdAction::redisplay( this, TQ_SLOT(slotRedisplay()), actionCollection() ); // work around the fact that the stdaction has no shortcut TDEShortcut reloadShortcut = TDEStdAccel::shortcut(TDEStdAccel::Reload); reloadShortcut.append(KKey(CTRL + Key_R)); @@ -263,113 +263,113 @@ void CertManager::createActions() { connectEnableOperationSignal( this, action ); action = new TDEAction( i18n("Stop Operation"), "process-stop", Key_Escape, - this, TQT_SIGNAL(stopOperations()), + this, TQ_SIGNAL(stopOperations()), actionCollection(), "view_stop_operations" ); action->setEnabled( false ); (void) new TDEAction( i18n("New Key Pair..."), "document-new", 0, - this, TQT_SLOT(newCertificate()), + this, TQ_SLOT(newCertificate()), actionCollection(), "file_new_certificate" ); connect( new TDEToggleAction( i18n("Hierarchical Key List"), 0, actionCollection(), "view_hierarchical" ), - TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotToggleHierarchicalView(bool)) ); + TQ_SIGNAL(toggled(bool)), TQ_SLOT(slotToggleHierarchicalView(bool)) ); action = new TDEAction( i18n("Expand All"), 0, CTRL+Key_Period, - this, TQT_SLOT(slotExpandAll()), + this, TQ_SLOT(slotExpandAll()), actionCollection(), "view_expandall" ); action = new TDEAction( i18n("Collapse All"), 0, CTRL+Key_Comma, - this, TQT_SLOT(slotCollapseAll()), + this, TQ_SLOT(slotCollapseAll()), actionCollection(), "view_collapseall" ); (void) new TDEAction( i18n("Refresh CRLs"), 0, 0, - this, TQT_SLOT(slotRefreshKeys()), + this, TQ_SLOT(slotRefreshKeys()), actionCollection(), "certificates_refresh_clr" ); #ifdef NOT_IMPLEMENTED_ANYWAY mRevokeCertificateAction = new TDEAction( i18n("Revoke"), 0, - this, TQT_SLOT(revokeCertificate()), + this, TQ_SLOT(revokeCertificate()), actionCollection(), "edit_revoke_certificate" ); connectEnableOperationSignal( this, mRevokeCertificateAction ); mExtendCertificateAction = new TDEAction( i18n("Extend"), 0, - this, TQT_SLOT(extendCertificate()), + this, TQ_SLOT(extendCertificate()), actionCollection(), "edit_extend_certificate" ); connectEnableOperationSignal( this, mExtendCertificateAction ); #endif mDeleteCertificateAction = new TDEAction( i18n("Delete"), "edit-delete", Key_Delete, - this, TQT_SLOT(slotDeleteCertificate()), + this, TQ_SLOT(slotDeleteCertificate()), actionCollection(), "edit_delete_certificate" ); connectEnableOperationSignal( this, mDeleteCertificateAction ); mValidateCertificateAction = new TDEAction( i18n("Validate"), "reload", SHIFT + Key_F5, - this, TQT_SLOT(slotValidate()), + this, TQ_SLOT(slotValidate()), actionCollection(), "certificates_validate" ); connectEnableOperationSignal( this, mValidateCertificateAction ); mImportCertFromFileAction = new TDEAction( i18n("Import Certificates..."), 0, - this, TQT_SLOT(slotImportCertFromFile()), + this, TQ_SLOT(slotImportCertFromFile()), actionCollection(), "file_import_certificates" ); connectEnableOperationSignal( this, mImportCertFromFileAction ); mImportCRLFromFileAction = new TDEAction( i18n("Import CRLs..."), 0, - this, TQT_SLOT(importCRLFromFile()), + this, TQ_SLOT(importCRLFromFile()), actionCollection(), "file_import_crls" ); connectEnableOperationSignal( this, mImportCRLFromFileAction ); mExportCertificateAction = new TDEAction( i18n("Export Certificates..."), "export", 0, - this, TQT_SLOT(slotExportCertificate()), + this, TQ_SLOT(slotExportCertificate()), actionCollection(), "file_export_certificate" ); mExportSecretKeyAction = new TDEAction( i18n("Export Secret Key..."), "export", 0, - this, TQT_SLOT(slotExportSecretKey()), + this, TQ_SLOT(slotExportSecretKey()), actionCollection(), "file_export_secret_keys" ); connectEnableOperationSignal( this, mExportSecretKeyAction ); mViewCertDetailsAction = new TDEAction( i18n("Certificate Details..."), 0, 0, - this, TQT_SLOT(slotViewDetails()), actionCollection(), + this, TQ_SLOT(slotViewDetails()), actionCollection(), "view_certificate_details" ); mDownloadCertificateAction = new TDEAction( i18n( "Download"), 0, 0, - this, TQT_SLOT(slotDownloadCertificate()), actionCollection(), + this, TQ_SLOT(slotDownloadCertificate()), actionCollection(), "download_certificate" ); const TQString dirmngr = TDEStandardDirs::findExe( "gpgsm" ); mDirMngrFound = !dirmngr.isEmpty(); action = new TDEAction( i18n("Dump CRL Cache..."), 0, - this, TQT_SLOT(slotViewCRLs()), + this, TQ_SLOT(slotViewCRLs()), actionCollection(), "crl_dump_crl_cache" ); action->setEnabled( mDirMngrFound ); // we also need dirmngr for this action = new TDEAction( i18n("Clear CRL Cache..."), 0, - this, TQT_SLOT(slotClearCRLs()), + this, TQ_SLOT(slotClearCRLs()), actionCollection(), "crl_clear_crl_cache" ); action->setEnabled( mDirMngrFound ); // we also need dirmngr for this action = new TDEAction( i18n("GnuPG Log Viewer..."), "pgp-keys", 0, this, - TQT_SLOT(slotStartWatchGnuPG()), actionCollection(), "tools_start_kwatchgnupg"); + TQ_SLOT(slotStartWatchGnuPG()), actionCollection(), "tools_start_kwatchgnupg"); // disable action if no kwatchgnupg binary is around if (TDEStandardDirs::findExe("kwatchgnupg").isEmpty()) action->setEnabled(false); (void)new LabelAction( i18n("Search:"), actionCollection(), "label_action" ); mLineEditAction = new LineEditAction( TQString(), actionCollection(), this, - TQT_SLOT(slotSearch()), + TQ_SLOT(slotSearch()), "query_lineedit_action"); TQStringList lst; lst << i18n("In Local Certificates") << i18n("In External Certificates"); - mComboAction = new ComboAction( lst, actionCollection(), this, TQT_SLOT( slotToggleRemote(int) ), + mComboAction = new ComboAction( lst, actionCollection(), this, TQ_SLOT( slotToggleRemote(int) ), "location_combo_action", mNextFindRemote? 1 : 0 ); - mFindAction = new TDEAction( i18n("Find"), "edit-find", 0, this, TQT_SLOT(slotSearch()), + mFindAction = new TDEAction( i18n("Find"), "edit-find", 0, this, TQ_SLOT(slotSearch()), actionCollection(), "find" ); - KStdAction::keyBindings( this, TQT_SLOT(slotEditKeybindings()), actionCollection() ); - KStdAction::preferences( this, TQT_SLOT(slotShowConfigurationDialog()), actionCollection() ); + KStdAction::keyBindings( this, TQ_SLOT(slotEditKeybindings()), actionCollection() ); + KStdAction::preferences( this, TQ_SLOT(slotShowConfigurationDialog()), actionCollection() ); - new TDEAction( i18n( "Configure &GpgME Backend" ), 0, 0, this, TQT_SLOT(slotConfigureGpgME()), + new TDEAction( i18n( "Configure &GpgME Backend" ), 0, 0, this, TQ_SLOT(slotConfigureGpgME()), actionCollection(), "configure_gpgme" ); createStandardStatusBarAction(); @@ -387,7 +387,7 @@ void CertManager::slotEditKeybindings() { void CertManager::slotShowConfigurationDialog() { ConfigureDialog dlg( this ); - connect( &dlg, TQT_SIGNAL( configCommitted() ), TQT_SLOT( slotRepaint() ) ); + connect( &dlg, TQ_SIGNAL( configCommitted() ), TQ_SLOT( slotRepaint() ) ); dlg.exec(); } @@ -451,10 +451,10 @@ void CertManager::connectJobToStatusBarProgress( Kleo::Job * job, const TQString return; if ( !initialText.isEmpty() ) statusBar()->message( initialText ); - connect( job, TQT_SIGNAL(progress(const TQString&,int,int)), - mProgressBar, TQT_SLOT(slotProgress(const TQString&,int,int)) ); - connect( job, TQT_SIGNAL(done()), mProgressBar, TQT_SLOT(reset()) ); - connect( this, TQT_SIGNAL(stopOperations()), job, TQT_SLOT(slotCancel()) ); + connect( job, TQ_SIGNAL(progress(const TQString&,int,int)), + mProgressBar, TQ_SLOT(slotProgress(const TQString&,int,int)) ); + connect( job, TQ_SIGNAL(done()), mProgressBar, TQ_SLOT(reset()) ); + connect( this, TQ_SIGNAL(stopOperations()), job, TQ_SLOT(slotCancel()) ); action("view_stop_operations")->setEnabled( true ); emit enableOperations( false ); @@ -509,8 +509,8 @@ void CertManager::slotRefreshKeys() { Kleo::RefreshKeysJob * job = Kleo::CryptoBackendFactory::instance()->smime()->refreshKeysJob(); assert( job ); - connect( job, TQT_SIGNAL(result(const GpgME::Error&)), - this, TQT_SLOT(slotRefreshKeysResult(const GpgME::Error&)) ); + connect( job, TQ_SIGNAL(result(const GpgME::Error&)), + this, TQ_SLOT(slotRefreshKeysResult(const GpgME::Error&)) ); connectJobToStatusBarProgress( job, i18n("Refreshing keys...") ); if ( const GpgME::Error err = job->start( keys ) ) @@ -571,10 +571,10 @@ void CertManager::startKeyListing( bool validating, bool refresh, const TQString job = Kleo::CryptoBackendFactory::instance()->smime()->keyListJob( mRemote, false, validating ); assert( job ); - connect( job, TQT_SIGNAL(nextKey(const GpgME::Key&)), - mKeyListView, refresh ? TQT_SLOT(slotRefreshKey(const GpgME::Key&)) : TQT_SLOT(slotAddKey(const GpgME::Key&)) ); - connect( job, TQT_SIGNAL(result(const GpgME::KeyListResult&)), - this, TQT_SLOT(slotKeyListResult(const GpgME::KeyListResult&)) ); + connect( job, TQ_SIGNAL(nextKey(const GpgME::Key&)), + mKeyListView, refresh ? TQ_SLOT(slotRefreshKey(const GpgME::Key&)) : TQ_SLOT(slotAddKey(const GpgME::Key&)) ); + connect( job, TQ_SIGNAL(result(const GpgME::KeyListResult&)), + this, TQ_SLOT(slotKeyListResult(const GpgME::KeyListResult&)) ); connectJobToStatusBarProgress( job, i18n("Fetching keys...") ); @@ -685,7 +685,7 @@ void CertManager::slotImportCertFromFile( const KURL & certURL ) // Download the cert TDEIOext::StoredTransferJob* importJob = TDEIOext::storedGet( certURL ); importJob->setWindow( this ); - connect( importJob, TQT_SIGNAL(result(TDEIO::Job*)), TQT_SLOT(slotImportResult(TDEIO::Job*)) ); + connect( importJob, TQ_SIGNAL(result(TDEIO::Job*)), TQ_SLOT(slotImportResult(TDEIO::Job*)) ); } void CertManager::slotImportResult( TDEIO::Job* job ) @@ -729,8 +729,8 @@ void CertManager::slotStartCertificateDownload( const TQString& fingerprint, con Kleo::CryptoBackendFactory::instance()->smime()->downloadJob( false /* no armor */ ); assert( job ); - connect( job, TQT_SIGNAL(result(const GpgME::Error&,const TQByteArray&)), - TQT_SLOT(slotCertificateDownloadResult(const GpgME::Error&,const TQByteArray&)) ); + connect( job, TQ_SIGNAL(result(const GpgME::Error&,const TQByteArray&)), + TQ_SLOT(slotCertificateDownloadResult(const GpgME::Error&,const TQByteArray&)) ); connectJobToStatusBarProgress( job, i18n("Fetching certificate from server...") ); @@ -782,8 +782,8 @@ void CertManager::startCertificateImport( const TQByteArray & keyData, const TQS Kleo::ImportJob * job = Kleo::CryptoBackendFactory::instance()->smime()->importJob(); assert( job ); - connect( job, TQT_SIGNAL(result(const GpgME::ImportResult&)), - TQT_SLOT(slotCertificateImportResult(const GpgME::ImportResult&)) ); + connect( job, TQ_SIGNAL(result(const GpgME::ImportResult&)), + TQ_SLOT(slotCertificateImportResult(const GpgME::ImportResult&)) ); connectJobToStatusBarProgress( job, i18n("Importing certificates...") ); @@ -906,8 +906,8 @@ void CertManager::importCRLFromFile() { destURL.setPath( tempFile.name() ); TDEIO::Job* copyJob = TDEIO::file_copy( url, destURL, 0600, true, false ); copyJob->setWindow( this ); - connect( copyJob, TQT_SIGNAL( result( TDEIO::Job * ) ), - TQT_SLOT( slotImportCRLJobFinished( TDEIO::Job * ) ) ); + connect( copyJob, TQ_SIGNAL( result( TDEIO::Job * ) ), + TQ_SLOT( slotImportCRLJobFinished( TDEIO::Job * ) ) ); } } } @@ -930,9 +930,9 @@ bool CertManager::connectAndStartDirmngr( const char * slot, const char * proces assert( processname ); assert( mDirmngrProc ); mErrorbuffer = TQString(); - connect( mDirmngrProc, TQT_SIGNAL(processExited(TDEProcess*)), slot ); - connect( mDirmngrProc, TQT_SIGNAL(receivedStderr(TDEProcess*,char*,int) ), - this, TQT_SLOT(slotStderr(TDEProcess*,char*,int)) ); + connect( mDirmngrProc, TQ_SIGNAL(processExited(TDEProcess*)), slot ); + connect( mDirmngrProc, TQ_SIGNAL(receivedStderr(TDEProcess*,char*,int) ), + this, TQ_SLOT(slotStderr(TDEProcess*,char*,int)) ); if( !mDirmngrProc->start( TDEProcess::NotifyOnExit, TDEProcess::Stderr ) ) { delete mDirmngrProc; mDirmngrProc = 0; KMessageBox::error( this, i18n( "Unable to start %1 process. Please check your installation." ).arg( processname ), i18n( "Certificate Manager Error" ) ); @@ -947,7 +947,7 @@ void CertManager::startImportCRL( const TQString& filename, bool isTempFile ) mImportCRLTempFile = isTempFile ? filename : TQString(); mDirmngrProc = new TDEProcess(); *mDirmngrProc << "gpgsm" << "--call-dirmngr" << "loadcrl" << filename; - if ( !connectAndStartDirmngr( TQT_SLOT(slotDirmngrExited()), "gpgsm" ) ) { + if ( !connectAndStartDirmngr( TQ_SLOT(slotDirmngrExited()), "gpgsm" ) ) { updateImportActions( true ); if ( isTempFile ) TQFile::remove( mImportCRLTempFile ); // unlink tempfile @@ -959,7 +959,7 @@ void CertManager::startClearCRLs() { mDirmngrProc = new TDEProcess(); *mDirmngrProc << "dirmngr" << "--flush"; //*mDirmngrProc << "gpgsm" << "--call-dimngr" << "flush"; // use this once it's implemented! - connectAndStartDirmngr( TQT_SLOT(slotClearCRLsResult()), "dirmngr" ); + connectAndStartDirmngr( TQ_SLOT(slotClearCRLsResult()), "dirmngr" ); } void CertManager::slotStderr( TDEProcess*, char* buf, int len ) { @@ -1034,10 +1034,10 @@ void CertManager::slotDeleteCertificate() { mHierarchyAnalyser = new HierarchyAnalyser( this, "mHierarchyAnalyser" ); Kleo::KeyListJob * job = Kleo::CryptoBackendFactory::instance()->smime()->keyListJob(); assert( job ); - connect( job, TQT_SIGNAL(nextKey(const GpgME::Key&)), - mHierarchyAnalyser, TQT_SLOT(slotNextKey(const GpgME::Key&)) ); - connect( job, TQT_SIGNAL(result(const GpgME::KeyListResult&)), - this, TQT_SLOT(slotDeleteCertificate()) ); + connect( job, TQ_SIGNAL(nextKey(const GpgME::Key&)), + mHierarchyAnalyser, TQ_SLOT(slotNextKey(const GpgME::Key&)) ); + connect( job, TQ_SIGNAL(result(const GpgME::KeyListResult&)), + this, TQ_SLOT(slotDeleteCertificate()) ); connectJobToStatusBarProgress( job, i18n("Checking key dependencies...") ); if ( const GpgME::Error error = job->start( TQStringList() ) ) { showKeyListError( this, error ); @@ -1110,8 +1110,8 @@ void CertManager::slotDeleteCertificate() { Kleo::MultiDeleteJob * job = new Kleo::MultiDeleteJob( Kleo::CryptoBackendFactory::instance()->smime() ); assert( job ); - connect( job, TQT_SIGNAL(result(const GpgME::Error&,const GpgME::Key&)), - TQT_SLOT(slotDeleteResult(const GpgME::Error&,const GpgME::Key&)) ); + connect( job, TQ_SIGNAL(result(const GpgME::Error&,const GpgME::Key&)), + TQ_SLOT(slotDeleteResult(const GpgME::Error&,const GpgME::Key&)) ); connectJobToStatusBarProgress( job, i18n("Deleting keys...") ); @@ -1156,8 +1156,8 @@ void CertManager::slotViewDetails( Kleo::KeyListViewItem * item ) { CertificateInfoWidgetImpl * top = new CertificateInfoWidgetImpl( item->key(), isRemote(), dialog ); dialog->setMainWidget( top ); // - connect( top, TQT_SIGNAL(requestCertificateDownload(const TQString&, const TQString&)), - TQT_SLOT(slotStartCertificateDownload(const TQString&, const TQString&)) ); + connect( top, TQ_SIGNAL(requestCertificateDownload(const TQString&, const TQString&)), + TQ_SLOT(slotStartCertificateDownload(const TQString&, const TQString&)) ); dialog->show(); } @@ -1219,8 +1219,8 @@ void CertManager::startCertificateExport( const TQStringList & fingerprints ) { Kleo::ExportJob * job = Kleo::CryptoBackendFactory::instance()->smime()->publicKeyExportJob( true ); assert( job ); - connect( job, TQT_SIGNAL(result(const GpgME::Error&,const TQByteArray&)), - TQT_SLOT(slotCertificateExportResult(const GpgME::Error&,const TQByteArray&)) ); + connect( job, TQ_SIGNAL(result(const GpgME::Error&,const TQByteArray&)), + TQ_SLOT(slotCertificateExportResult(const GpgME::Error&,const TQByteArray&)) ); connectJobToStatusBarProgress( job, i18n("Exporting certificate...") ); @@ -1271,8 +1271,8 @@ void CertManager::slotCertificateExportResult( const GpgME::Error & err, const T TDEIO::Job* uploadJob = TDEIOext::put( data, url, -1, overwrite, false /*resume*/ ); uploadJob->setWindow( this ); - connect( uploadJob, TQT_SIGNAL( result( TDEIO::Job* ) ), - this, TQT_SLOT( slotUploadResult( TDEIO::Job* ) ) ); + connect( uploadJob, TQ_SIGNAL( result( TDEIO::Job* ) ), + this, TQ_SLOT( slotUploadResult( TDEIO::Job* ) ) ); } @@ -1356,8 +1356,8 @@ void CertManager::startSecretKeyExport( const TQString & fingerprint ) { Kleo::ExportJob * job = Kleo::CryptoBackendFactory::instance()->smime()->secretKeyExportJob( false, charset ); assert( job ); - connect( job, TQT_SIGNAL(result(const GpgME::Error&,const TQByteArray&)), - TQT_SLOT(slotSecretKeyExportResult(const GpgME::Error&,const TQByteArray&)) ); + connect( job, TQ_SIGNAL(result(const GpgME::Error&,const TQByteArray&)), + TQ_SLOT(slotSecretKeyExportResult(const GpgME::Error&,const TQByteArray&)) ); connectJobToStatusBarProgress( job, i18n("Exporting secret key...") ); @@ -1390,8 +1390,8 @@ void CertManager::slotSecretKeyExportResult( const GpgME::Error & err, const TQB TDEIO::Job* uploadJob = TDEIOext::put( data, url, -1, overwrite, false /*resume*/ ); uploadJob->setWindow( this ); - connect( uploadJob, TQT_SIGNAL( result( TDEIO::Job* ) ), - this, TQT_SLOT( slotUploadResult( TDEIO::Job* ) ) ); + connect( uploadJob, TQ_SIGNAL( result( TDEIO::Job* ) ), + this, TQ_SLOT( slotUploadResult( TDEIO::Job* ) ) ); } void CertManager::slotUploadResult( TDEIO::Job* job ) -- cgit v1.2.1