Index: kdecore/jobs/kjob.h
===================================================================
--- kdecore/jobs/kjob.h	(revisión: 628854)
+++ kdecore/jobs/kjob.h	(copia de trabajo)
@@ -64,9 +64,16 @@ class KJobUiDelegate;
 class KDECORE_EXPORT KJob : public QObject
 {
     Q_OBJECT
-    Q_ENUMS( KillVerbosity )
+    Q_ENUMS( KillVerbosity Capability )
+    Q_FLAGS( Capabilities )
 
 public:
+    enum Capability { None     = 0x0000,
+                      Killable = 0x0001,
+                      Pausable = 0x0002 };
+
+    Q_DECLARE_FLAGS( Capabilities, Capability )
+
     /**
      * Creates a new KJob object.
      *
@@ -98,6 +105,14 @@ public:
     KJobUiDelegate *uiDelegate() const;
 
     /**
+     * Returns the capabilities of this job.
+     *
+     * @return the capabilities that this job supports
+     * @see setCapabilities()
+     */
+    Capabilities capabilities() const;
+
+    /**
      * Starts the job asynchronously. When the job is finished,
      * result() is emitted.
      */
@@ -128,6 +143,13 @@ protected:
      */
     virtual bool doKill() { return false; }
 
+    /**
+     * Sets the capabilities for this job.
+     *
+     * @param capabilities are the capabilities supported by this job
+     */
+    void setCapabilities(Capabilities capabilities);
+
 public:
     /**
      * Executes the job synchronously.
Index: kdecore/jobs/kjob.cpp
===================================================================
--- kdecore/jobs/kjob.cpp	(revisión: 628854)
+++ kdecore/jobs/kjob.cpp	(copia de trabajo)
@@ -30,7 +30,7 @@ class KJob::Private
 {
 public:
     Private() : uiDelegate( 0 ), progressId( 0 ), error( KJob::NoError ),
-                processedSize( 0 ), totalSize( 0 ), percentage( 0 ) {}
+                processedSize( 0 ), totalSize( 0 ), percentage( 0 ), capabilities(KJob::None) {}
 
     KJobUiDelegate *uiDelegate;
     int progressId;
@@ -39,6 +39,7 @@ public:
     qulonglong processedSize;
     qulonglong totalSize;
     unsigned long percentage;
+    KJob::Capabilities capabilities;
 };
 
 KJob::KJob( QObject *parent )
@@ -75,6 +76,11 @@ KJobUiDelegate *KJob::uiDelegate() const
     return d->uiDelegate;
 }
 
+KJob::Capabilities KJob::capabilities() const
+{
+    return d->capabilities;
+}
+
 bool KJob::kill( KillVerbosity verbosity )
 {
     if ( doKill() )
@@ -104,6 +110,11 @@ bool KJob::kill( KillVerbosity verbosity
     }
 }
 
+void KJob::setCapabilities(KJob::Capabilities capabilities)
+{
+    d->capabilities = capabilities;
+}
+
 bool KJob::exec()
 {
     QEventLoop loop( this );
