QXRD  0.11.16
Public Types | Public Slots | Signals | Public Member Functions | Static Public Member Functions | Protected Member Functions | Properties | Private Attributes | List of all members
QcepDataObject Class Reference

#include <qcepdataobject.h>

Inheritance diagram for QcepDataObject:
Inheritance graph
[legend]
Collaboration diagram for QcepDataObject:
Collaboration graph
[legend]

Public Types

enum  Overwrite { NoOverwrite, CanOverwrite }
 

Public Slots

virtual QString description () const
 
QString metaTypeName (int id) const
 
QString pathName () const
 
QcepDataGroupPtr rootItem ()
 
virtual QcepDataGroupPtr parentItem () const
 
- Public Slots inherited from QcepObject
virtual void printLine (QString line)
 
virtual void printMessage (QString msg, QDateTime dt=QDateTime::currentDateTime()) const
 
virtual void criticalMessage (QString msg, QDateTime ts=QDateTime::currentDateTime()) const
 
virtual void statusMessage (QString msg, QDateTime ts=QDateTime::currentDateTime()) const
 
virtual QString settingsScript ()
 
QString scriptValueLiteral (QVariant v)
 

Signals

void dataObjectChanged ()
 

Public Member Functions

 QcepDataObject (QcepSettingsSaverWPtr saver, QString name, int byteSize, QcepObject *parent)
 
virtual ~QcepDataObject ()
 
QcepSettingsSaverWPtr saver ()
 
virtual int childCount () const
 
virtual QcepDataObjectPtr item (int n)
 
virtual QcepDataObjectPtr item (QString nm)
 
virtual void setParentItem (QcepDataGroupWPtr parent)
 
virtual int indexInParent () const
 
virtual int rowCount () const
 
virtual int columnCount () const
 
virtual QVariant columnData (int col) const
 
virtual QString fileFormatFilterString ()
 
virtual void saveData (QString &name, QString filter, Overwrite canOverwrite=NoOverwrite)
 
- Public Member Functions inherited from QcepObject
 QcepObject (QString name, QcepObject *parent)
 
virtual ~QcepObject ()
 
virtual void writeSettings (QSettings *set, QString section)
 
virtual void readSettings (QSettings *set, QString section)
 
QString get_Name () const
 
void set_Name (QString name)
 

Static Public Member Functions

static QcepDataObjectPtr newDataObject (QcepSettingsSaverWPtr saver, QString name, QcepObject *parent)
 
static QScriptValue toScriptValue (QScriptEngine *engine, const QcepDataObjectPtr &data)
 
static void fromScriptValue (const QScriptValue &obj, QcepDataObjectPtr &data)
 
static int allocatedObjects ()
 
static int deletedObjects ()
 
- Static Public Member Functions inherited from QcepObject
static int allocatedObjects ()
 
static int deletedObjects ()
 
static QSet< QcepObject * > allocatedObjectsSet ()
 
static QString addSlashes (QString str)
 

Protected Member Functions

void mkPath (QString filePath)
 
QString uniqueFileName (QString name)
 

Properties

QString type
 
quint64 byteSize
 
QString creator
 
QString version
 
QString qtVersion
 
QString description
 
QString fileName
 
int objectSaved
 
- Properties inherited from QcepObject
QString name
 

Private Attributes

QcepDataGroupWPtr m_Parent
 
QcepSettingsSaverWPtr m_Saver
 

Detailed Description

Definition at line 11 of file qcepdataobject.h.

Member Enumeration Documentation

Enumerator
NoOverwrite 
CanOverwrite 

Definition at line 38 of file qcepdataobject.h.

Constructor & Destructor Documentation

QcepDataObject::QcepDataObject ( QcepSettingsSaverWPtr  saver,
QString  name,
int  byteSize,
QcepObject parent 
)

Definition at line 13 of file qcepdataobject.cpp.

References g_Application, QcepObject::printMessage(), s_ObjectAllocateCount(), and QcepApplication::setDefaultObjectData().

Referenced by newDataObject().

16  :
17  QcepObject(name, parent),
18  m_Saver(saver),
19  m_Type(saver, this, "type", "object", "Data object type"),
20  m_ByteSize(QcepSettingsSaverWPtr(), this, "size", byteSize, "Object Size"),
21  m_Creator(saver, this, "creator", "Unknown", "QXRD Version Number"),
22  m_Version(saver, this, "version", "Unknown", "QXRD Version Number"),
23  m_QtVersion(saver, this, "qtVersion", QT_VERSION_STR, "QT Version Number"),
24  m_Description(saver, this, "description", "", "Object Description"),
25  m_FileName(saver, this, "fileName", "", "File Name of Image"),
26  m_ObjectSaved(saver, this, "objectSaved",0, "Object is Saved?")
27 {
28  s_ObjectAllocateCount.fetchAndAddOrdered(1);
29 
30  set_Type("object");
31 
32  if (name.contains("/")) {
33  printMessage(tr("object %1 name contains \"/\"").arg(name));
34  }
35 
36  if (g_Application) {
38  }
39 }
QcepSettingsSaverWPtr m_Saver
virtual void setDefaultObjectData(QcepDataObject *obj)=0
QcepObject(QString name, QcepObject *parent)
Definition: qcepobject.cpp:16
virtual void printMessage(QString msg, QDateTime dt=QDateTime::currentDateTime()) const
Definition: qcepobject.cpp:84
QcepApplication * g_Application
QString name
Definition: qcepobject.h:49
static QAtomicInt s_ObjectAllocateCount(0)
QWeakPointer< QcepSettingsSaver > QcepSettingsSaverWPtr
QcepSettingsSaverWPtr saver()

Here is the call graph for this function:

Here is the caller graph for this function:

QcepDataObject::~QcepDataObject ( )
virtual

Definition at line 41 of file qcepdataobject.cpp.

References s_ObjectDeleteCount().

42 {
43  s_ObjectDeleteCount.fetchAndAddOrdered(1);
44 }
static QAtomicInt s_ObjectDeleteCount(0)

Here is the call graph for this function:

Member Function Documentation

int QcepDataObject::allocatedObjects ( )
static

Definition at line 46 of file qcepdataobject.cpp.

References s_ObjectAllocateCount().

Referenced by main().

47 {
48  return s_ObjectAllocateCount.load();
49 }
static QAtomicInt s_ObjectAllocateCount(0)

Here is the call graph for this function:

Here is the caller graph for this function:

int QcepDataObject::childCount ( ) const
virtual

Definition at line 156 of file qcepdataobject.cpp.

157 {
158  return 0;
159 }
int QcepDataObject::columnCount ( ) const
virtual

Definition at line 166 of file qcepdataobject.cpp.

167 {
168  return 0;
169 }
QVariant QcepDataObject::columnData ( int  col) const
virtual

Definition at line 224 of file qcepdataobject.cpp.

References description(), and QcepObject::get_Name().

225 {
226  if (col == 0) {
227  return get_Name();
228  } else if (col == 1) {
229  return get_Type();
230  } else {
231  return QVariant(description());
232  }
233 }
QString get_Name() const
Definition: qcepobject.cpp:72
virtual QString description() const

Here is the call graph for this function:

void QcepDataObject::dataObjectChanged ( )
signal
int QcepDataObject::deletedObjects ( )
static

Definition at line 51 of file qcepdataobject.cpp.

References s_ObjectDeleteCount().

Referenced by main().

52 {
53  return s_ObjectDeleteCount.load();
54 }
static QAtomicInt s_ObjectDeleteCount(0)

Here is the call graph for this function:

Here is the caller graph for this function:

virtual QString QcepDataObject::description ( ) const
virtualslot

Referenced by columnData().

Here is the caller graph for this function:

QString QcepDataObject::fileFormatFilterString ( )
virtual

Reimplemented in QcepImageDataBase.

Definition at line 240 of file qcepdataobject.cpp.

Referenced by QcepDatasetBrowserDialog::saveData().

241 {
242  return "Text (*.txt)";
243 }

Here is the caller graph for this function:

void QcepDataObject::fromScriptValue ( const QScriptValue &  obj,
QcepDataObjectPtr data 
)
static

Definition at line 137 of file qcepdataobject.cpp.

138 {
139  QObject *qobj = obj.toQObject();
140 
141  if (qobj) {
142  QcepDataObject *qdobj = qobject_cast<QcepDataObject*>(qobj);
143 
144  if (qdobj) {
145  QcepDataObjectPtr p = qdobj->sharedFromThis();
146 
147  if (p) {
148  data = p;
149  } else {
150  printf("QcepDataObject::fromScriptValue returns NULL\n");
151  }
152  }
153  }
154 }
QSharedPointer< QcepDataObject > QcepDataObjectPtr
int QcepDataObject::indexInParent ( ) const
virtual

Definition at line 204 of file qcepdataobject.cpp.

References QcepDataGroup::childCount(), QcepDataGroup::item(), and m_Parent.

205 {
206  QcepDataObjectPtr parent = m_Parent;
207 
208  if (parent) {
209  QcepDataGroup *parentGroup =
210  qobject_cast<QcepDataGroup*>(parent.data());
211 
212  if (parentGroup) {
213  for (int i=0; i<parentGroup->childCount(); i++) {
214  if (parentGroup->item(i).data() == this) {
215  return i;
216  }
217  }
218  }
219  }
220 
221  return 0;
222 }
QcepDataObjectPtr item(QString nm)
int childCount() const
QcepDataGroupWPtr m_Parent
QSharedPointer< QcepDataObject > QcepDataObjectPtr

Here is the call graph for this function:

QcepDataObjectPtr QcepDataObject::item ( int  n)
virtual

Definition at line 171 of file qcepdataobject.cpp.

172 {
173  return QcepDataObjectPtr();
174 }
QSharedPointer< QcepDataObject > QcepDataObjectPtr
QcepDataObjectPtr QcepDataObject::item ( QString  nm)
virtual

Definition at line 176 of file qcepdataobject.cpp.

177 {
178  return QcepDataObjectPtr();
179 }
QSharedPointer< QcepDataObject > QcepDataObjectPtr
QString QcepDataObject::metaTypeName ( int  id) const
slot

Definition at line 235 of file qcepdataobject.cpp.

236 {
237  return QMetaType::typeName(id);
238 }
void QcepDataObject::mkPath ( QString  filePath)
protected

Definition at line 76 of file qcepdataobject.cpp.

Referenced by QcepImageData< T >::saveData().

77 {
78  QFileInfo f(filePath);
79  QDir dir = f.dir();
80 
81  if (!dir.exists()) {
82  dir.mkpath(dir.absolutePath());
83  }
84 }

Here is the caller graph for this function:

QcepDataObjectPtr QcepDataObject::newDataObject ( QcepSettingsSaverWPtr  saver,
QString  name,
QcepObject parent 
)
static

Definition at line 120 of file qcepdataobject.cpp.

References QcepDataObject().

121 {
122  QcepDataObjectPtr res(new QcepDataObject(saver, name, 0, parent));
123 
124  return res;
125 }
QcepDataObject(QcepSettingsSaverWPtr saver, QString name, int byteSize, QcepObject *parent)
QSharedPointer< QcepDataObject > QcepDataObjectPtr
QString name
Definition: qcepobject.h:49
QcepSettingsSaverWPtr saver()

Here is the call graph for this function:

QcepDataGroupPtr QcepDataObject::parentItem ( ) const
virtualslot

Definition at line 181 of file qcepdataobject.cpp.

References m_Parent.

Referenced by QcepDataGroup::containingGroup(), QcepDatasetBrowserDialog::onCustomContextMenuRequested(), and pathName().

182 {
183  return m_Parent;
184 }
QcepDataGroupWPtr m_Parent

Here is the caller graph for this function:

QString QcepDataObject::pathName ( ) const
slot

Definition at line 61 of file qcepdataobject.cpp.

References QcepObject::get_Name(), and parentItem().

Referenced by QcepDatasetBrowserDialog::onCustomContextMenuRequested(), QcepNewColumnScanDialog::QcepNewColumnScanDialog(), QcepNewDataArrayDialog::QcepNewDataArrayDialog(), QcepNewDataColumnDialog::QcepNewDataColumnDialog(), QcepNewDataGroupDialog::QcepNewDataGroupDialog(), and QcepNewImageDialog::QcepNewImageDialog().

62 {
63  QString suffix="";
64 
65  if (qobject_cast<const QcepDataGroup*>(this)) {
66  suffix = "/";
67  }
68 
69  if (parentItem()) {
70  return parentItem()->pathName()+get_Name()+suffix;
71  } else {
72  return "/";
73  }
74 }
virtual QcepDataGroupPtr parentItem() const
QString get_Name() const
Definition: qcepobject.cpp:72

Here is the call graph for this function:

Here is the caller graph for this function:

QcepDataGroupPtr QcepDataObject::rootItem ( )
slot

Definition at line 186 of file qcepdataobject.cpp.

References m_Parent.

Referenced by QcepDataGroup::containingGroup(), QcepDataGroup::item(), and QcepDataGroup::referencedObject().

187 {
188  QcepDataGroupPtr parent(m_Parent);
189 
190  if (parent) {
191  return parent->rootItem();
192  } else {
193  QcepDataObjectPtr obj = sharedFromThis();
194 
195  return qSharedPointerDynamicCast<QcepDataGroup>(obj);
196  }
197 }
QSharedPointer< QcepDataGroup > QcepDataGroupPtr
QcepDataGroupWPtr m_Parent
QSharedPointer< QcepDataObject > QcepDataObjectPtr

Here is the caller graph for this function:

int QcepDataObject::rowCount ( ) const
virtual

Definition at line 161 of file qcepdataobject.cpp.

162 {
163  return 0;
164 }
void QcepDataObject::saveData ( QString &  name,
QString  filter,
Overwrite  canOverwrite = NoOverwrite 
)
virtual

Reimplemented in QcepImageData< T >, and QcepImageData< short >.

Definition at line 116 of file qcepdataobject.cpp.

117 {
118 }
QcepSettingsSaverWPtr QcepDataObject::saver ( )
void QcepDataObject::setParentItem ( QcepDataGroupWPtr  parent)
virtual

Definition at line 199 of file qcepdataobject.cpp.

References m_Parent.

Referenced by QcepDataGroup::append().

200 {
201  m_Parent = parent;
202 }
QcepDataGroupWPtr m_Parent

Here is the caller graph for this function:

QScriptValue QcepDataObject::toScriptValue ( QScriptEngine *  engine,
const QcepDataObjectPtr data 
)
static

Definition at line 132 of file qcepdataobject.cpp.

133 {
134  return engine->newQObject(data.data());
135 }
QString QcepDataObject::uniqueFileName ( QString  name)
protected

Definition at line 86 of file qcepdataobject.cpp.

References QcepObject::name.

Referenced by QcepImageData< T >::saveData().

87 {
88  QFileInfo f(name);
89 
90  if (f.exists()) {
91  QDir dir = f.dir();
92  QString base = f.baseName();
93  QString suff = f.completeSuffix();
94 
95 // QxrdAcquisitionPtr acq(acquisition());
96 
97  int width = 5;
98 
99 // if (acq) {
100 // width = acq->get_FileOverflowWidth();
101 // }
102 
103  for (int i=1; ; i++) {
104  QString newname = dir.filePath(base+QString().sprintf("-%0*d.",width,i)+suff);
105  QFileInfo f(newname);
106 
107  if (!f.exists()) {
108  return newname;
109  }
110  }
111  } else {
112  return name;
113  }
114 }
QString name
Definition: qcepobject.h:49

Here is the caller graph for this function:

Member Data Documentation

QcepDataGroupWPtr QcepDataObject::m_Parent
private

Definition at line 67 of file qcepdataobject.h.

Referenced by indexInParent(), parentItem(), rootItem(), and setParentItem().

QcepSettingsSaverWPtr QcepDataObject::m_Saver
private

Definition at line 68 of file qcepdataobject.h.

Referenced by saver().

Property Documentation

quint64 QcepDataObject::byteSize
readwrite

Definition at line 74 of file qcepdataobject.h.

QString QcepDataObject::creator
readwrite

Definition at line 77 of file qcepdataobject.h.

QString QcepDataObject::description
readwrite

Definition at line 86 of file qcepdataobject.h.

QString QcepDataObject::fileName
readwrite

Definition at line 89 of file qcepdataobject.h.

Referenced by QcepImageDataBase::setDefaultFileName().

int QcepDataObject::objectSaved
readwrite

Definition at line 92 of file qcepdataobject.h.

QString QcepDataObject::qtVersion
readwrite

Definition at line 83 of file qcepdataobject.h.

QString QcepDataObject::type
readwrite

Definition at line 71 of file qcepdataobject.h.

QString QcepDataObject::version
readwrite

Definition at line 80 of file qcepdataobject.h.


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