summaryrefslogtreecommitdiffstats
path: root/kio/kio/observer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kio/kio/observer.cpp')
-rw-r--r--kio/kio/observer.cpp417
1 files changed, 0 insertions, 417 deletions
diff --git a/kio/kio/observer.cpp b/kio/kio/observer.cpp
deleted file mode 100644
index 347db9df9..000000000
--- a/kio/kio/observer.cpp
+++ /dev/null
@@ -1,417 +0,0 @@
-/* This file is part of the KDE libraries
- Copyright (C) 2000 Matej Koss <koss@miesto.sk>
- David Faure <faure@kde.org>
-
- $Id$
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License version 2 as published by the Free Software Foundation.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <assert.h>
-
-#include <kdebug.h>
-#include <kapplication.h>
-#include <dcopclient.h>
-#include <kurl.h>
-
-#include "jobclasses.h"
-#include "observer.h"
-
-#include "uiserver_stub.h"
-
-#include "passdlg.h"
-#include "slavebase.h"
-#include "observer_stub.h"
-#include <kmessagebox.h>
-#include <ksslinfodlg.h>
-#include <ksslcertdlg.h>
-#include <ksslcertificate.h>
-#include <ksslcertchain.h>
-#include <klocale.h>
-
-using namespace TDEIO;
-
-template class TQIntDict<TDEIO::Job>;
-
-Observer * Observer::s_pObserver = 0L;
-
-const int KDEBUG_OBSERVER = 7007; // Should be 7028
-
-Observer::Observer() : DCOPObject("TDEIO::Observer")
-{
- // Register app as able to receive DCOP messages
- if (kapp && !kapp->dcopClient()->isAttached())
- {
- kapp->dcopClient()->attach();
- }
-
- if ( !kapp->dcopClient()->isApplicationRegistered( "kio_uiserver" ) )
- {
- kdDebug(KDEBUG_OBSERVER) << "Starting kio_uiserver" << endl;
- TQString error;
- int ret = TDEApplication::startServiceByDesktopPath( "kio_uiserver.desktop",
- TQStringList(), &error );
- if ( ret > 0 )
- {
- kdError() << "Couldn't start kio_uiserver from kio_uiserver.desktop: " << error << endl;
- } else
- kdDebug(KDEBUG_OBSERVER) << "startServiceByDesktopPath returned " << ret << endl;
-
- }
- if ( !kapp->dcopClient()->isApplicationRegistered( "kio_uiserver" ) )
- kdDebug(KDEBUG_OBSERVER) << "The application kio_uiserver is STILL NOT REGISTERED" << endl;
- else
- kdDebug(KDEBUG_OBSERVER) << "kio_uiserver registered" << endl;
-
- m_uiserver = new UIServer_stub( "kio_uiserver", "UIServer" );
-}
-
-int Observer::newJob( TDEIO::Job * job, bool showProgress )
-{
- // Tell the UI Server about this new job, and give it the application id
- // at the same time
- int progressId = m_uiserver->newJob( kapp->dcopClient()->appId(), showProgress );
-
- // Keep the result in a dict
- m_dctJobs.insert( progressId, job );
-
- return progressId;
-}
-
-void Observer::jobFinished( int progressId )
-{
- m_uiserver->jobFinished( progressId );
- m_dctJobs.remove( progressId );
-}
-
-void Observer::killJob( int progressId )
-{
- TDEIO::Job * job = m_dctJobs[ progressId ];
- if (!job)
- {
- kdWarning() << "Can't find job to kill ! There is no job with progressId=" << progressId << " in this process" << endl;
- return;
- }
- job->kill( false /* not quietly */ );
-}
-
-MetaData Observer::metadata( int progressId )
-{
- TDEIO::Job * job = m_dctJobs[ progressId ];
- assert(job);
- return job->metaData();
-}
-
-void Observer::slotTotalSize( TDEIO::Job* job, TDEIO::filesize_t size )
-{
- //kdDebug(KDEBUG_OBSERVER) << "** Observer::slotTotalSize " << job << " " << TDEIO::number(size) << endl;
- m_uiserver->totalSize64( job->progressId(), size );
-}
-
-void Observer::slotTotalFiles( TDEIO::Job* job, unsigned long files )
-{
- //kdDebug(KDEBUG_OBSERVER) << "** Observer::slotTotalFiles " << job << " " << files << endl;
- m_uiserver->totalFiles( job->progressId(), files );
-}
-
-void Observer::slotTotalDirs( TDEIO::Job* job, unsigned long dirs )
-{
- //kdDebug(KDEBUG_OBSERVER) << "** Observer::slotTotalDirs " << job << " " << dirs << endl;
- m_uiserver->totalDirs( job->progressId(), dirs );
-}
-
-void Observer::slotProcessedSize( TDEIO::Job* job, TDEIO::filesize_t size )
-{
- //kdDebug(KDEBUG_OBSERVER) << "** Observer::slotProcessedSize " << job << " " << job->progressId() << " " << TDEIO::number(size) << endl;
- m_uiserver->processedSize64( job->progressId(), size );
-}
-
-void Observer::slotProcessedFiles( TDEIO::Job* job, unsigned long files )
-{
- //kdDebug(KDEBUG_OBSERVER) << "** Observer::slotProcessedFiles " << job << " " << files << endl;
- m_uiserver->processedFiles( job->progressId(), files );
-}
-
-void Observer::slotProcessedDirs( TDEIO::Job* job, unsigned long dirs )
-{
- //kdDebug(KDEBUG_OBSERVER) << "** Observer::slotProcessedDirs " << job << " " << dirs << endl;
- m_uiserver->processedDirs( job->progressId(), dirs );
-}
-
-void Observer::slotSpeed( TDEIO::Job* job, unsigned long speed )
-{
- //kdDebug(KDEBUG_OBSERVER) << "** Observer::slotSpeed " << job << " " << speed << endl;
- m_uiserver->speed( job->progressId(), speed );
-}
-
-void Observer::slotPercent( TDEIO::Job* job, unsigned long percent )
-{
- //kdDebug(KDEBUG_OBSERVER) << "** Observer::slotPercent " << job << " " << percent << endl;
- m_uiserver->percent( job->progressId(), percent );
-}
-
-void Observer::slotInfoMessage( TDEIO::Job* job, const TQString & msg )
-{
- m_uiserver->infoMessage( job->progressId(), msg );
-}
-
-void Observer::slotCopying( TDEIO::Job* job, const KURL& from, const KURL& to )
-{
- //kdDebug(KDEBUG_OBSERVER) << "** Observer::slotCopying " << job << " " << from.url() << " " << to.url() << endl;
- m_uiserver->copying( job->progressId(), from, to );
-}
-
-void Observer::slotMoving( TDEIO::Job* job, const KURL& from, const KURL& to )
-{
- //kdDebug(KDEBUG_OBSERVER) << "** Observer::slotMoving " << job << " " << from.url() << " " << to.url() << endl;
- m_uiserver->moving( job->progressId(), from, to );
-}
-
-void Observer::slotDeleting( TDEIO::Job* job, const KURL& url )
-{
- //kdDebug(KDEBUG_OBSERVER) << "** Observer::slotDeleting " << job << " " << url.url() << endl;
- m_uiserver->deleting( job->progressId(), url );
-}
-
-void Observer::slotTransferring( TDEIO::Job* job, const KURL& url )
-{
- //kdDebug(KDEBUG_OBSERVER) << "** Observer::slotTransferring " << job << " " << url.url() << endl;
- m_uiserver->transferring( job->progressId(), url );
-}
-
-void Observer::slotCreatingDir( TDEIO::Job* job, const KURL& dir )
-{
- //kdDebug(KDEBUG_OBSERVER) << "** Observer::slotCreatingDir " << job << " " << dir.url() << endl;
- m_uiserver->creatingDir( job->progressId(), dir );
-}
-
-void Observer::slotCanResume( TDEIO::Job* job, TDEIO::filesize_t offset )
-{
- //kdDebug(KDEBUG_OBSERVER) << "** Observer::slotCanResume " << job << " " << TDEIO::number(offset) << endl;
- m_uiserver->canResume64( job->progressId(), offset );
-}
-
-void Observer::stating( TDEIO::Job* job, const KURL& url )
-{
- m_uiserver->stating( job->progressId(), url );
-}
-
-void Observer::mounting( TDEIO::Job* job, const TQString & dev, const TQString & point )
-{
- m_uiserver->mounting( job->progressId(), dev, point );
-}
-
-void Observer::unmounting( TDEIO::Job* job, const TQString & point )
-{
- m_uiserver->unmounting( job->progressId(), point );
-}
-
-bool Observer::openPassDlg( const TQString& prompt, TQString& user,
- TQString& pass, bool readOnly )
-{
- AuthInfo info;
- info.prompt = prompt;
- info.username = user;
- info.password = pass;
- info.readOnly = readOnly;
- bool result = openPassDlg ( info );
- if ( result )
- {
- user = info.username;
- pass = info.password;
- }
- return result;
-}
-
-bool Observer::openPassDlg( TDEIO::AuthInfo& info )
-{
- kdDebug(KDEBUG_OBSERVER) << "Observer::openPassDlg: User= " << info.username
- << ", Message= " << info.prompt << endl;
- int result = TDEIO::PasswordDialog::getNameAndPassword( info.username, info.password,
- &info.keepPassword, info.prompt,
- info.readOnly, info.caption,
- info.comment, info.commentLabel );
- if ( result == TQDialog::Accepted )
- {
- info.setModified( true );
- return true;
- }
- return false;
-}
-
-int Observer::messageBox( int progressId, int type, const TQString &text,
- const TQString &caption, const TQString &buttonYes,
- const TQString &buttonNo )
-{
- return messageBox( progressId, type, text, caption, buttonYes, buttonNo, TQString::null );
-}
-
-int Observer::messageBox( int progressId, int type, const TQString &text,
- const TQString &caption, const TQString &buttonYes,
- const TQString &buttonNo, const TQString &dontAskAgainName )
-{
- kdDebug() << "Observer::messageBox " << type << " " << text << " - " << caption << endl;
- int result = -1;
- TDEConfig *config = new TDEConfig("kioslaverc");
- KMessageBox::setDontShowAskAgainConfig(config);
-
- switch (type) {
- case TDEIO::SlaveBase::QuestionYesNo:
- result = KMessageBox::questionYesNo( 0L, // parent ?
- text, caption, buttonYes, buttonNo, dontAskAgainName );
- break;
- case TDEIO::SlaveBase::WarningYesNo:
- result = KMessageBox::warningYesNo( 0L, // parent ?
- text, caption, buttonYes, buttonNo, dontAskAgainName );
- break;
- case TDEIO::SlaveBase::WarningContinueCancel:
- result = KMessageBox::warningContinueCancel( 0L, // parent ?
- text, caption, buttonYes, dontAskAgainName );
- break;
- case TDEIO::SlaveBase::WarningYesNoCancel:
- result = KMessageBox::warningYesNoCancel( 0L, // parent ?
- text, caption, buttonYes, buttonNo, dontAskAgainName );
- break;
- case TDEIO::SlaveBase::Information:
- KMessageBox::information( 0L, // parent ?
- text, caption, dontAskAgainName );
- result = 1; // whatever
- break;
- case TDEIO::SlaveBase::SSLMessageBox:
- {
- TQCString observerAppId = caption.utf8(); // hack, see slaveinterface.cpp
- // Contact the object "TDEIO::Observer" in the application <appId>
- // Yes, this could be the same application we are, but not necessarily.
- Observer_stub observer( observerAppId, "TDEIO::Observer" );
-
- TDEIO::MetaData meta = observer.metadata( progressId );
- KSSLInfoDlg *kid = new KSSLInfoDlg(meta["ssl_in_use"].upper()=="TRUE", 0L /*parent?*/, 0L, true);
- KSSLCertificate *x = KSSLCertificate::fromString(meta["ssl_peer_certificate"].local8Bit());
- if (x) {
- // Set the chain back onto the certificate
- TQStringList cl =
- TQStringList::split(TQString("\n"), meta["ssl_peer_chain"]);
- TQPtrList<KSSLCertificate> ncl;
-
- ncl.setAutoDelete(true);
- for (TQStringList::Iterator it = cl.begin(); it != cl.end(); ++it) {
- KSSLCertificate *y = KSSLCertificate::fromString((*it).local8Bit());
- if (y) ncl.append(y);
- }
-
- if (ncl.count() > 0)
- x->chain().setChain(ncl);
-
- kid->setup( x,
- meta["ssl_peer_ip"],
- text, // the URL
- meta["ssl_cipher"],
- meta["ssl_cipher_desc"],
- meta["ssl_cipher_version"],
- meta["ssl_cipher_used_bits"].toInt(),
- meta["ssl_cipher_bits"].toInt(),
- KSSLCertificate::KSSLValidation(meta["ssl_cert_state"].toInt()));
- kdDebug(7024) << "Showing SSL Info dialog" << endl;
- kid->exec();
- delete x;
- kdDebug(7024) << "SSL Info dialog closed" << endl;
- } else {
- KMessageBox::information( 0L, // parent ?
- i18n("The peer SSL certificate appears to be corrupt."), i18n("SSL") );
- }
- // This doesn't have to get deleted. It deletes on it's own.
- result = 1; // whatever
- break;
- }
- default:
- kdWarning() << "Observer::messageBox: unknown type " << type << endl;
- result = 0;
- break;
- }
- KMessageBox::setDontShowAskAgainConfig(0);
- delete config;
- return result;
-#if 0
- TQByteArray data, replyData;
- TQCString replyType;
- TQDataStream arg( data, IO_WriteOnly );
- arg << progressId;
- arg << type;
- arg << text;
- arg << caption;
- arg << buttonYes;
- arg << buttonNo;
- if ( kapp->dcopClient()->call( "kio_uiserver", "UIServer", "messageBox(int,int,TQString,TQString,TQString,TQString)", data, replyType, replyData, true )
- && replyType == "int" )
- {
- int result;
- TQDataStream _reply_stream( replyData, IO_ReadOnly );
- _reply_stream >> result;
- kdDebug(KDEBUG_OBSERVER) << "Observer::messageBox got result " << result << endl;
- return result;
- }
- kdDebug(KDEBUG_OBSERVER) << "Observer::messageBox call failed" << endl;
- return 0;
-#endif
-}
-
-RenameDlg_Result Observer::open_RenameDlg( TDEIO::Job* job,
- const TQString & caption,
- const TQString& src, const TQString & dest,
- RenameDlg_Mode mode, TQString& newDest,
- TDEIO::filesize_t sizeSrc,
- TDEIO::filesize_t sizeDest,
- time_t ctimeSrc,
- time_t ctimeDest,
- time_t mtimeSrc,
- time_t mtimeDest
- )
-{
- kdDebug(KDEBUG_OBSERVER) << "Observer::open_RenameDlg job=" << job << endl;
- if (job)
- kdDebug(KDEBUG_OBSERVER) << " progressId=" << job->progressId() << endl;
- // Hide existing dialog box if any
- if (job && job->progressId())
- m_uiserver->setJobVisible( job->progressId(), false );
- // We now do it in process => KDE4: move this code out of Observer (back to job.cpp), so that
- // opening the rename dialog doesn't start uiserver for nothing if progressId=0 (e.g. F2 in konq)
- RenameDlg_Result res = TDEIO::open_RenameDlg( caption, src, dest, mode,
- newDest, sizeSrc, sizeDest,
- ctimeSrc, ctimeDest, mtimeSrc,
- mtimeDest );
- if (job && job->progressId())
- m_uiserver->setJobVisible( job->progressId(), true );
- return res;
-}
-
-SkipDlg_Result Observer::open_SkipDlg( TDEIO::Job* job,
- bool _multi,
- const TQString& _error_text )
-{
- kdDebug(KDEBUG_OBSERVER) << "Observer::open_SkipDlg job=" << job << " progressId=" << job->progressId() << endl;
- // Hide existing dialog box if any
- if (job && job->progressId())
- m_uiserver->setJobVisible( job->progressId(), false );
- // We now do it in process. So this method is a useless wrapper around TDEIO::open_RenameDlg.
- SkipDlg_Result res = TDEIO::open_SkipDlg( _multi, _error_text );
- if (job && job->progressId())
- m_uiserver->setJobVisible( job->progressId(), true );
- return res;
-}
-
-void Observer::virtual_hook( int id, void* data )
-{ DCOPObject::virtual_hook( id, data ); }
-
-#include "observer.moc"