QXRD  0.11.16
qcepdataobjectspreadsheetwindow.cpp
Go to the documentation of this file.
2 #include "qcepexperiment.h"
3 #include "qcepdataobject.h"
4 #include <QCloseEvent>
5 #include <QMessageBox>
6 
7 #include "qcepimagedata.h"
8 #include "qcepimagedata-ptr.h"
10 
11 #include "qcepintegrateddata-ptr.h"
12 #include "qcepintegrateddata.h"
14 
15 #include "qcepdataarray.h"
16 #include "qcepdataarray-ptr.h"
18 
19 #include "qcepdatacolumn.h"
20 #include "qcepdatacolumn-ptr.h"
22 
23 #include "qcepdatacolumnscan.h"
24 #include "qcepdatacolumnscan-ptr.h"
26 
27 #include "qcepdatagroup.h"
28 #include "qcepdatagroup-ptr.h"
30 
32  QcepDataObjectWindow(parent),
33  m_Experiment(expt),
34  m_Object(obj),
35  m_Model()
36 {
37  setupUi(this);
38 
41 
42  if (objp && e) {
43  setWindowTitle(tr("%1 Data from %2")
44  .arg(objp->pathName())
45  .arg(e->get_ExperimentName()));
46  } else if (objp) {
47  setWindowTitle(tr("%1 Data")
48  .arg(objp->pathName()));
49  } else {
50  setWindowTitle("Unknown Data");
51  }
52 
53  if (objp) {
54  QSharedPointer<QcepImageDataBase> data = qSharedPointerDynamicCast<QcepImageDataBase>(objp);
55 
56  if (data) {
57  m_Model = QSharedPointer<QcepSpreadsheetModel>(
59  } else {
60 
61  QcepIntegratedDataPtr integ = qSharedPointerDynamicCast<QcepIntegratedData>(m_Object);
62 
63  if (integ) {
64  m_Model = QSharedPointer<QcepSpreadsheetModel>(
66  } else {
67 
68  QcepDataArrayPtr array = qSharedPointerDynamicCast<QcepDataArray>(m_Object);
69 
70  if (array) {
71  m_Model = QSharedPointer<QcepSpreadsheetModel>(
73  } else {
74 
75  QcepDataColumnPtr col = qSharedPointerDynamicCast<QcepDataColumn>(m_Object);
76 
77  if (col) {
78  m_Model = QSharedPointer<QcepSpreadsheetModel>(
80  } else {
81  QcepDataColumnScanPtr scan = qSharedPointerDynamicCast<QcepDataColumnScan>(m_Object);
82 
83  if (scan) {
84  m_Model = QSharedPointer<QcepSpreadsheetModel>(
86  } else {
87  QcepDataGroupPtr group = qSharedPointerDynamicCast<QcepDataGroup>(m_Object);
88 
89  if (group) {
90  m_Model = QSharedPointer<QcepSpreadsheetModel>(
92  }
93  }
94  }
95  }
96  }
97  }
98  }
99 
100  m_TableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
101 
102  if (m_Model) {
103  m_TableView->setModel(m_Model.data());
104  }
105 
106  if (objp && m_Model) {
107  connect(objp.data(), SIGNAL(dataObjectChanged()), m_Model.data(), SLOT(onDataObjectChanged()));
108  }
109 
110  setAttribute(Qt::WA_DeleteOnClose, true);
111 }
112 
114 {
115 #ifndef QT_NO_DEBUG
116  printf("Deleting Spreadsheet Window\n");
117 #endif
118 }
119 
121 {
122  if (wantToClose()) {
123  event -> accept();
124  } else {
125  event -> ignore();
126  }
127 }
128 
130 {
131  return QMessageBox::question(this, tr("Really Close?"),
132  tr("Do you really want to close the window %1 ?")
133  .arg(windowTitle()),
134  QMessageBox::Ok | QMessageBox::Cancel) == QMessageBox::Ok;
135 }
QSharedPointer< QcepDataArray > QcepDataArrayPtr
QSharedPointer< QcepDataGroup > QcepDataGroupPtr
QSharedPointer< QcepDataColumnScan > QcepDataColumnScanPtr
QSharedPointer< QcepDataColumn > QcepDataColumnPtr
QSharedPointer< QcepIntegratedData > QcepIntegratedDataPtr
QWeakPointer< QcepExperiment > QcepExperimentWPtr
QWeakPointer< QcepDataObject > QcepDataObjectWPtr
QcepDataObjectSpreadsheetWindow(QcepExperimentWPtr expt, QcepDataObjectWPtr obj, QWidget *parent=0)
QSharedPointer< QcepSpreadsheetModel > m_Model
QSharedPointer< QcepDataObject > QcepDataObjectPtr
QSharedPointer< QcepExperiment > QcepExperimentPtr