[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/kdecore/jobs
From: Andreas Pakulat <apaku () gmx ! de>
Date: 2008-01-10 16:16:42
Message-ID: 1199981802.160168.10112.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 759455 by apaku:
Add setAutoDelete/isAutoDelete, this makes it possible to
manually manage the KJob lifetime.
M +17 -3 kjob.cpp
M +20 -0 kjob.h
M +1 -0 kjob_p.h
--- trunk/KDE/kdelibs/kdecore/jobs/kjob.cpp #759454:759455
@@ -35,7 +35,7 @@
: q_ptr(0), uiDelegate(0), error(KJob::NoError),
progressUnit(KJob::Bytes), percentage(0),
suspended(false), capabilities(KJob::NoCapabilities),
- speedTimer(0)
+ speedTimer(0), isAutoDelete(true)
{
if (!_k_kjobUnitEnumRegistered) {
_k_kjobUnitEnumRegistered = qRegisterMetaType<KJob::Unit>("KJob::Unit");
@@ -116,7 +116,8 @@
// If we are displaying a progress dialog, remove it first.
emit finished(this);
- deleteLater();
+ if ( isAutoDelete() )
+ deleteLater();
}
return true;
@@ -288,7 +289,8 @@
emit result( this );
- deleteLater();
+ if ( isAutoDelete() )
+ deleteLater();
}
void KJob::emitPercent( qulonglong processedAmount, qulonglong totalAmount )
@@ -325,4 +327,16 @@
speedTimer->stop();
}
+bool KJob::isAutoDelete() const
+{
+ Q_D(const KJob);
+ return d->isAutoDelete;
+}
+
+void KJob::setAutoDelete( bool autodelete )
+{
+ Q_D(KJob);
+ d->isAutoDelete = autodelete;
+}
+
#include "kjob.moc"
--- trunk/KDE/kdelibs/kdecore/jobs/kjob.h #759454:759455
@@ -272,6 +272,26 @@
*/
unsigned long percent() const;
+ /**
+ * set the auto-delete property of the job. If @p autodelete is
+ * set to false the job will not delete itself once its finished.
+ *
+ * The default for any KJob is to automatically delete itself.
+ *
+ * @param autodelete set to false to disable automatic deletion
+ * of the job.
+ */
+ void setAutoDelete( bool autodelete );
+
+ /**
+ * Returns wether this job automatically deletes itself once
+ * the job is finished.
+ *
+ * @return whether the job is deleted automatically after
+ * finishing.
+ */
+ bool isAutoDelete() const;
+
Q_SIGNALS:
#ifndef Q_MOC_RUN
#ifndef DOXYGEN_SHOULD_SKIP_THIS
--- trunk/KDE/kdelibs/kdecore/jobs/kjob_p.h #759454:759455
@@ -49,6 +49,7 @@
bool suspended;
KJob::Capabilities capabilities;
QTimer *speedTimer;
+ bool isAutoDelete;
void _k_speedTimeout();
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic