QseDataSet Class Reference

#include <qsedataset.h>

Inheritance diagram for QseDataSet:

Inheritance graph
[legend]
Collaboration diagram for QseDataSet:

Collaboration graph
[legend]

List of all members.

Signals

void loadCompleted ()
void message (const QString &msg)
void madeProgress (int level)
void dataCleared ()
void scanAdded (int n)
void dataChanged ()

Public Member Functions

 QseDataSet (const QString &name, QObject *parent=0)
 ~QseDataSet ()
void writeScan (int i, const QString &name)
void writeScans (const QString &name)
void removeScan (int i)
int scanCount () const
void clear ()
int maxColumnCount () const
QseScanscan (int n) const
QStringList header () const
void setHeader (const QStringList &hdr)
void appendHeader (const QString &hline)
QseScanappendScan ()
void setDefaultRoles ()
QString fileName () const
void setFileName (const QString &name)
void emitLoadCompleted ()

Protected Attributes

QMutex m_Mutex

Private Attributes

QStringList m_Header
QList< QseScan * > m_Scans
QList< QseScan * > m_SpareScans
QString m_FileName


Detailed Description

Definition at line 14 of file qsedataset.h.


Constructor & Destructor Documentation

QseDataSet::QseDataSet ( const QString &  name,
QObject parent = 0 
)

Definition at line 7 of file qsedataset.cpp.

00008   : QObject(parent),
00009     m_Mutex(QMutex::Recursive)
00010 {
00011   setObjectName(name);
00012 }

QseDataSet::~QseDataSet (  ) 

Definition at line 14 of file qsedataset.cpp.

References m_Mutex, m_Scans, m_SpareScans, and scan().

00015 {
00016   QMutexLocker lock(&m_Mutex);
00017 
00018   QseScan *scan;
00019 
00020   foreach (scan, m_Scans) {
00021     delete scan;
00022   }
00023 
00024   foreach (scan, m_SpareScans) {
00025     delete scan;
00026   }
00027 }

Here is the call graph for this function:


Member Function Documentation

void QseDataSet::writeScan ( int  i,
const QString &  name 
)

Definition at line 153 of file qsedataset.cpp.

References message(), and scan().

Referenced by writeScans().

00154 {
00155   QFileInfo fileInfo(name);
00156 
00157   QDir    dir  = fileInfo.dir();
00158   QString base = fileInfo.completeBaseName();
00159   QString extn = fileInfo.suffix();
00160 
00161   QFileInfo ofile(dir, base+"-"+QString().setNum(i)+"."+extn);
00162 
00163   QseScan *s = scan(i);
00164 
00165   if (s) {
00166     s -> writeScan(ofile.filePath());
00167 
00168     emit message (QString("Scan %1 saved as %2").arg(i).arg(ofile.filePath()));
00169   }
00170 }

Here is the call graph for this function:

void QseDataSet::writeScans ( const QString &  name  ) 

Definition at line 146 of file qsedataset.cpp.

References scanCount(), and writeScan().

00147 {
00148   for (int i=0; i<scanCount(); i++) {
00149     writeScan(i, name);
00150   }
00151 }

Here is the call graph for this function:

void QseDataSet::removeScan ( int  i  ) 

Definition at line 172 of file qsedataset.cpp.

References dataChanged(), m_Mutex, m_Scans, m_SpareScans, and scanCount().

00173 {
00174   if (i >= 0 && i < scanCount()) {
00175     {
00176       QMutexLocker lock(&m_Mutex);
00177       QseScan *s = m_Scans.takeAt(i);
00178 
00179       if (s) {
00180   m_SpareScans.append(s);
00181       }
00182     }
00183 
00184     emit dataChanged();
00185   }
00186 }

Here is the call graph for this function:

int QseDataSet::scanCount (  )  const

void QseDataSet::clear (  ) 

Definition at line 43 of file qsedataset.cpp.

References dataChanged(), dataCleared(), m_Header, m_Mutex, m_Scans, m_SpareScans, and scanCount().

Referenced by appendScan().

00044 {
00045   int sz = scanCount();
00046   
00047   {
00048     QMutexLocker lock(&m_Mutex);
00049 
00050     for (int i = sz-1; i>=0; i--) {
00051       m_SpareScans.append(m_Scans.takeLast());
00052     }
00053 
00054     m_Header.clear();
00055   }
00056 
00057   emit dataCleared();
00058   emit dataChanged();
00059 }

Here is the call graph for this function:

int QseDataSet::maxColumnCount (  )  const

Definition at line 73 of file qsedataset.cpp.

References QseScan::columnCount(), m_Mutex, m_Scans, and scan().

Referenced by QseDataSetModel::columnCount(), SummaryTableController::updateSummaryTableColumnInfo(), and SummaryTableController::updateSummaryTableHeaders().

00074 {
00075   QMutexLocker lock(&m_Mutex);
00076 
00077   int max=0;
00078   QseScan* scan;
00079 
00080   foreach (scan, m_Scans) {
00081     if (scan) {
00082       if (scan->columnCount()>max) {
00083   max = scan->columnCount();
00084       }
00085     }
00086   }
00087 
00088   return max;
00089 }

Here is the call graph for this function:

QseScan * QseDataSet::scan ( int  n  )  const

QStringList QseDataSet::header (  )  const

Definition at line 116 of file qsedataset.cpp.

References m_Header, and m_Mutex.

Referenced by QseDataExport::applyPressed().

00117 {
00118   QMutexLocker lock(&m_Mutex);
00119 
00120   return m_Header;
00121 }

void QseDataSet::setHeader ( const QStringList &  hdr  ) 

Definition at line 123 of file qsedataset.cpp.

References m_Header.

00124 {
00125   m_Header = hdr;
00126 }

void QseDataSet::appendHeader ( const QString &  hline  ) 

Definition at line 128 of file qsedataset.cpp.

References m_Header, and m_Mutex.

Referenced by QseInputFile::nextInputLine().

00129 {
00130   QMutexLocker lock(&m_Mutex);
00131 
00132   m_Header.push_back(l);
00133 }

QseScan * QseDataSet::appendScan (  ) 

Definition at line 91 of file qsedataset.cpp.

References clear(), dataChanged(), m_Mutex, m_Scans, m_SpareScans, scan(), scanAdded(), and scanCount().

Referenced by QseInputFile::nextInputLine().

00092 {
00093   QseScan *scan = NULL;
00094 
00095   {
00096     QMutexLocker lock(&m_Mutex);
00097 
00098     if (m_SpareScans.size()) {
00099       scan = m_SpareScans.takeLast();
00100       scan -> clear();
00101     } else {
00102       scan = new QseScan("");
00103     }
00104     
00105     m_Scans.append(scan);
00106   }
00107 
00108 //   printf("%s: Append scan %d\n", qPrintable(objectName()), scanCount()-1);
00109 
00110   emit scanAdded(scanCount()-1);
00111   emit dataChanged();
00112 
00113   return scan;
00114 }

Here is the call graph for this function:

void QseDataSet::setDefaultRoles (  ) 

Definition at line 135 of file qsedataset.cpp.

References scan(), and scanCount().

00136 {
00137   for (int i=0; i<scanCount(); i++) {
00138     QseScan *s = scan(i);
00139 
00140     if (s) {
00141       s -> setDefaultRoles();
00142     }
00143   }
00144 }

Here is the call graph for this function:

QString QseDataSet::fileName (  )  const

Definition at line 188 of file qsedataset.cpp.

References m_FileName.

Referenced by QseDataExport::QseDataExport(), and QseDataExport::substituteFilenamePatterns().

00189 {
00190   return m_FileName;
00191 }

void QseDataSet::setFileName ( const QString &  name  ) 

Definition at line 193 of file qsedataset.cpp.

References m_FileName.

Referenced by QseInputFile::nextDataFile().

00194 {
00195   m_FileName = nam;
00196 }

void QseDataSet::emitLoadCompleted (  ) 

Definition at line 36 of file qsedataset.cpp.

References loadCompleted().

Referenced by QseFileReader::run().

00037 {
00038 //   printf("emitLoadCompleted()\n");
00039 
00040   emit loadCompleted();
00041 }

void QseDataSet::loadCompleted (  )  [signal]

void QseDataSet::message ( const QString &  msg  )  [signal]

void QseDataSet::madeProgress ( int  level  )  [signal]

void QseDataSet::dataCleared (  )  [signal]

Referenced by clear().

void QseDataSet::scanAdded ( int  n  )  [signal]

void QseDataSet::dataChanged (  )  [signal]


Member Data Documentation

QStringList QseDataSet::m_Header [private]

Definition at line 56 of file qsedataset.h.

Referenced by appendHeader(), clear(), header(), and setHeader().

QList<QseScan*> QseDataSet::m_Scans [private]

Definition at line 57 of file qsedataset.h.

Referenced by appendScan(), clear(), maxColumnCount(), removeScan(), scan(), scanCount(), and ~QseDataSet().

QList<QseScan*> QseDataSet::m_SpareScans [private]

Definition at line 58 of file qsedataset.h.

Referenced by appendScan(), clear(), removeScan(), and ~QseDataSet().

QString QseDataSet::m_FileName [private]

Definition at line 60 of file qsedataset.h.

Referenced by fileName(), and setFileName().

QMutex QseDataSet::m_Mutex [mutable, protected]


The documentation for this class was generated from the following files:

Generated on Fri May 2 16:26:42 2008 for QSE by  doxygen 1.5.5