summaryrefslogtreecommitdiffstats
path: root/ark/tarlistingthread.cpp
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-05-14 19:38:10 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-05-14 19:38:10 -0500
commit7be7990fc5770d2cbcd937772e8239167b5900c6 (patch)
tree98b85ad24287d0b4c6780fc6fe2e7bbfdc8e0289 /ark/tarlistingthread.cpp
parent3df0615503bca377641668fdfabffde9d3f81ddb (diff)
downloadtdeutils-7be7990fc5770d2cbcd937772e8239167b5900c6.tar.gz
tdeutils-7be7990fc5770d2cbcd937772e8239167b5900c6.zip
Properly initialize worker thread
This relates to Bug 1404
Diffstat (limited to 'ark/tarlistingthread.cpp')
-rw-r--r--ark/tarlistingthread.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/ark/tarlistingthread.cpp b/ark/tarlistingthread.cpp
index 83154c4..9d903c3 100644
--- a/ark/tarlistingthread.cpp
+++ b/ark/tarlistingthread.cpp
@@ -79,29 +79,33 @@ static char *makeAccessString(mode_t mode)
}
TarListingThread::TarListingThread( TQObject *parent, const TQString& filename )
- : TQThread(), m_parent( parent )
+ : TQThread(), m_parent( parent ), m_archive(NULL)
{
Q_ASSERT( m_parent );
- m_archive = new KTar( filename );
+ m_archiveFileName = filename;
}
TarListingThread::~TarListingThread()
{
- delete m_archive;
- m_archive = 0;
+ if (m_archive) {
+ delete m_archive;
+ m_archive = 0;
+ }
}
void TarListingThread::run()
{
+ m_archive = new KTar( m_archiveFileName );
+
if (!m_archive->open( IO_ReadOnly ))
{
ListingEvent *ev = new ListingEvent( TQStringList(), ListingEvent::Error );
tqApp->postEvent( m_parent, ev );
return;
}
-
+
processDir( m_archive->directory(), TQString() );
-
+
// Send an empty TQStringList in an Event to signal the listing end.
ListingEvent *ev = new ListingEvent( TQStringList(), ListingEvent::ListingFinished );
tqApp->postEvent( m_parent, ev );