QXRD  0.11.16
Public Member Functions | Private Slots | Private Attributes | List of all members
QcepDatasetBrowserDialog Class Reference

#include <qcepdatasetbrowserdialog.h>

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

Public Member Functions

 QcepDatasetBrowserDialog (QcepExperimentWPtr expt, QcepDatasetModelPtr ds, QWidget *parent=0)
 
virtual ~QcepDatasetBrowserDialog ()
 

Private Slots

void onCustomContextMenuRequested (QPoint pt)
 
void onDoubleClicked (QModelIndex idx)
 
void newGroup (const QModelIndex &idx)
 
void newDataColumn (const QModelIndex &idx)
 
void newColumnScan (const QModelIndex &idx)
 
void newImage (const QModelIndex &idx)
 
void newArray (const QModelIndex &idx)
 
void readData (const QModelIndex &idx)
 
void saveData (const QModelIndex &idx)
 
void openGraph (const QModelIndex &idx)
 
void openSpreadsheet (const QModelIndex &idx)
 
void openProperties (const QModelIndex &idx)
 
void deleteData (const QModelIndex &idx)
 

Private Attributes

QcepExperimentWPtr m_Experiment
 
QcepDatasetModelPtr m_DatasetModel
 

Detailed Description

Definition at line 9 of file qcepdatasetbrowserdialog.h.

Constructor & Destructor Documentation

QcepDatasetBrowserDialog::QcepDatasetBrowserDialog ( QcepExperimentWPtr  expt,
QcepDatasetModelPtr  ds,
QWidget *  parent = 0 
)
explicit

Definition at line 20 of file qcepdatasetbrowserdialog.cpp.

References m_DatasetModel, onCustomContextMenuRequested(), and onDoubleClicked().

20  :
21  QDockWidget(parent),
22  m_Experiment(expt),
23  m_DatasetModel(ds)
24 {
25  setupUi(this);
26 
27  if (m_DatasetModel) {
28  m_DatasetBrowserView -> setModel(m_DatasetModel.data());
29 
30  connect(m_DatasetBrowserView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(onCustomContextMenuRequested(QPoint)));
31  connect(m_DatasetBrowserView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(onDoubleClicked(QModelIndex)));
32 
33  m_DatasetBrowserView -> setContextMenuPolicy(Qt::CustomContextMenu);
34  m_DatasetBrowserView -> header() -> setSectionResizeMode(QHeaderView::Stretch);
35  }
36 }
QcepDatasetModelPtr m_DatasetModel
void onDoubleClicked(QModelIndex idx)

Here is the call graph for this function:

QcepDatasetBrowserDialog::~QcepDatasetBrowserDialog ( )
virtual

Definition at line 38 of file qcepdatasetbrowserdialog.cpp.

39 {
40 }

Member Function Documentation

void QcepDatasetBrowserDialog::deleteData ( const QModelIndex &  idx)
privateslot

Definition at line 254 of file qcepdatasetbrowserdialog.cpp.

References QcepObject::get_Name(), and m_DatasetModel.

Referenced by onCustomContextMenuRequested().

255 {
256  QcepDataObject *obj = static_cast<QcepDataObject*>(idx.internalPointer());
257 
258  if (obj) {
259  if (QMessageBox::question(NULL, "Delete Object?",
260  tr("Do you really want to delete %1").arg(obj->get_Name()),
261  QMessageBox::Ok | QMessageBox::No, QMessageBox::No) == QMessageBox::Ok) {
262  m_DatasetModel->remove(idx);
263  }
264  }
265 }
QString get_Name() const
Definition: qcepobject.cpp:72
QcepDatasetModelPtr m_DatasetModel

Here is the call graph for this function:

Here is the caller graph for this function:

void QcepDatasetBrowserDialog::newArray ( const QModelIndex &  idx)
privateslot

Definition at line 221 of file qcepdatasetbrowserdialog.cpp.

Referenced by onCustomContextMenuRequested().

222 {
223  QcepDataObject *obj = static_cast<QcepDataObject*>(idx.internalPointer());
224 
226 
227  if (dlog->exec()) {
228  }
229 
230  delete dlog;
231 }

Here is the caller graph for this function:

void QcepDatasetBrowserDialog::newColumnScan ( const QModelIndex &  idx)
privateslot

Definition at line 197 of file qcepdatasetbrowserdialog.cpp.

Referenced by onCustomContextMenuRequested().

198 {
199  QcepDataObject *obj = static_cast<QcepDataObject*>(idx.internalPointer());
200 
202 
203  if (dlog->exec()) {
204  }
205 
206  delete dlog;
207 }

Here is the caller graph for this function:

void QcepDatasetBrowserDialog::newDataColumn ( const QModelIndex &  idx)
privateslot

Definition at line 185 of file qcepdatasetbrowserdialog.cpp.

Referenced by onCustomContextMenuRequested().

186 {
187  QcepDataObject *obj = static_cast<QcepDataObject*>(idx.internalPointer());
188 
190 
191  if (dlog->exec()) {
192  }
193 
194  delete dlog;
195 }

Here is the caller graph for this function:

void QcepDatasetBrowserDialog::newGroup ( const QModelIndex &  idx)
privateslot

Definition at line 173 of file qcepdatasetbrowserdialog.cpp.

Referenced by onCustomContextMenuRequested().

174 {
175  QcepDataObject *obj = static_cast<QcepDataObject*>(idx.internalPointer());
176 
178 
179  if (dlog->exec()) {
180  }
181 
182  delete dlog;
183 }

Here is the caller graph for this function:

void QcepDatasetBrowserDialog::newImage ( const QModelIndex &  idx)
privateslot

Definition at line 209 of file qcepdatasetbrowserdialog.cpp.

Referenced by onCustomContextMenuRequested().

210 {
211  QcepDataObject *obj = static_cast<QcepDataObject*>(idx.internalPointer());
212 
213  QcepNewImageDialog *dlog = new QcepNewImageDialog(obj);
214 
215  if (dlog->exec()) {
216  }
217 
218  delete dlog;
219 }

Here is the caller graph for this function:

void QcepDatasetBrowserDialog::onCustomContextMenuRequested ( QPoint  pt)
privateslot

Definition at line 42 of file qcepdatasetbrowserdialog.cpp.

References deleteData(), newArray(), newColumnScan(), newDataColumn(), newGroup(), newImage(), openGraph(), openProperties(), openSpreadsheet(), QcepDataObject::parentItem(), QcepDataObject::pathName(), readData(), and saveData().

Referenced by QcepDatasetBrowserDialog().

43 {
44 // m_Dataset->printMessage(tr("QcepDatasetBrowserDialog::onCustomContextMenuRequested([%1,%2])").arg(pt.x()).arg(pt.y()));
45 
46  QModelIndex index = m_DatasetBrowserView->indexAt(pt);
47 
48  QcepDataObject *obj = static_cast<QcepDataObject*>(index.internalPointer());
49  QcepDataGroup *grp = qobject_cast<QcepDataGroup*>(obj);
50  QcepDataColumnScan *scn = qobject_cast<QcepDataColumnScan*>(obj);
51  QcepDataObject *prn = (obj ? obj->parentItem().data() : NULL);
52  QcepDataColumnScan *psc = qobject_cast<QcepDataColumnScan*>(prn);
53 
54  QMenu menu(NULL, NULL);
55 
56  QString name = (obj ? obj->pathName() : "");
57 
58  QAction *tt = menu.addAction("Data operations...");
59 
60  tt->setDisabled(true);
61 
62  QMenu *nm = menu.addMenu("Create New");
63  QAction *ng = nm->addAction(tr("New Group in %1").arg(name));
64 
65  QAction *nc = NULL;
66 
67  if (psc == NULL) {
68  nc = nm->addAction(tr("New Data Column in %1").arg(name));
69  } else {
70  nc = nm->addAction(tr("Insert Data Column after %1").arg(name));
71  }
72 
73  QAction *ns = nm->addAction(tr("New Column Scan in %1").arg(name));
74  QAction *ni = nm->addAction(tr("New Image in %1").arg(name));
75  QAction *na = nm->addAction(tr("New Array in %1").arg(name));
76  QAction *rd = menu.addAction(tr("Read Data into %1 ...").arg(name));
77  QAction *sv = menu.addAction(tr("Save %1 as ...").arg(name));
78  QAction *og = menu.addAction(tr("Open %1 in graph window").arg(name));
79  QAction *os = menu.addAction(tr("Open %1 in spreadsheet window").arg(name));
80  QAction *op = menu.addAction(tr("Open %1 in properties window").arg(name));
81  QAction *dl = menu.addAction(tr("Delete %1").arg(name));
82 
83  ng->setEnabled(grp != NULL && scn == NULL);
84  nc->setEnabled(grp != NULL || psc != NULL);
85  ns->setEnabled(grp != NULL && scn == NULL);
86  ni->setEnabled(grp != NULL && scn == NULL);
87  na->setEnabled(grp != NULL && scn == NULL);
88 
89  nm->setEnabled(ng->isEnabled()
90  || nc->isEnabled()
91  || ns->isEnabled()
92  || ni->isEnabled()
93  || na->isEnabled());
94 
95  rd->setEnabled(grp != NULL);
96 
97 
98  QAction *action = menu.exec(QCursor::pos(), tt);
99 
100  if (action == ng) {
101  newGroup(index);
102  } else if (action == nc) {
103  newDataColumn(index);
104  } else if (action == ns) {
105  newColumnScan(index);
106  } else if (action == ni) {
107  newImage(index);
108  } else if (action == na) {
109  newArray(index);
110  } else if (action == rd) {
111  readData(index);
112  } else if (action == sv) {
113  saveData(index);
114  } else if (action == og) {
115  openGraph(index);
116  } else if (action == os) {
117  openSpreadsheet(index);
118  } else if (action == op) {
119  openProperties(index);
120  } else if (action == dl) {
121  deleteData(index);
122  }
123 }
void saveData(const QModelIndex &idx)
void openGraph(const QModelIndex &idx)
void newGroup(const QModelIndex &idx)
virtual QcepDataGroupPtr parentItem() const
void newColumnScan(const QModelIndex &idx)
void openProperties(const QModelIndex &idx)
void newImage(const QModelIndex &idx)
void newArray(const QModelIndex &idx)
void newDataColumn(const QModelIndex &idx)
void readData(const QModelIndex &idx)
void openSpreadsheet(const QModelIndex &idx)
QString pathName() const
void deleteData(const QModelIndex &idx)

Here is the call graph for this function:

Here is the caller graph for this function:

void QcepDatasetBrowserDialog::onDoubleClicked ( QModelIndex  idx)
privateslot

Definition at line 125 of file qcepdatasetbrowserdialog.cpp.

References m_Experiment.

Referenced by QcepDatasetBrowserDialog().

126 {
128 
129  if (expt) {
130  expt->printMessage(tr("QcepDatasetBrowserDialog::onDoubleClicked([%1,%2])").arg(idx.row()).arg(idx.column()));
131  }
132 }
QSharedPointer< QcepExperiment > QcepExperimentPtr

Here is the caller graph for this function:

void QcepDatasetBrowserDialog::openGraph ( const QModelIndex &  idx)
privateslot

Definition at line 134 of file qcepdatasetbrowserdialog.cpp.

References m_Experiment.

Referenced by onCustomContextMenuRequested().

135 {
136  QcepDataObject *obj = static_cast<QcepDataObject*>(idx.internalPointer());
137 
139 
140  if (obj && expt) {
141  QcepDataObjectGraphWindow *gw = new QcepDataObjectGraphWindow(expt, obj->sharedFromThis());
142 
143  gw->show();
144  }
145 }
QSharedPointer< QcepExperiment > QcepExperimentPtr

Here is the caller graph for this function:

void QcepDatasetBrowserDialog::openProperties ( const QModelIndex &  idx)
privateslot

Definition at line 160 of file qcepdatasetbrowserdialog.cpp.

References m_Experiment.

Referenced by onCustomContextMenuRequested().

161 {
162  QcepDataObject *obj = static_cast<QcepDataObject*>(idx.internalPointer());
163 
165 
166  if (obj && expt) {
167  QcepDataObjectPropertiesWindow *pw = new QcepDataObjectPropertiesWindow(expt, obj->sharedFromThis());
168 
169  pw->show();
170  }
171 }
QSharedPointer< QcepExperiment > QcepExperimentPtr

Here is the caller graph for this function:

void QcepDatasetBrowserDialog::openSpreadsheet ( const QModelIndex &  idx)
privateslot

Definition at line 147 of file qcepdatasetbrowserdialog.cpp.

References m_Experiment.

Referenced by onCustomContextMenuRequested().

148 {
149  QcepDataObject *obj = static_cast<QcepDataObject*>(idx.internalPointer());
150 
152 
153  if (obj && expt) {
154  QcepDataObjectSpreadsheetWindow *sw = new QcepDataObjectSpreadsheetWindow(expt, obj->sharedFromThis());
155 
156  sw->show();
157  }
158 }
QSharedPointer< QcepExperiment > QcepExperimentPtr

Here is the caller graph for this function:

void QcepDatasetBrowserDialog::readData ( const QModelIndex &  idx)
privateslot

Definition at line 233 of file qcepdatasetbrowserdialog.cpp.

Referenced by onCustomContextMenuRequested().

234 {
235  QcepDataObject *obj = static_cast<QcepDataObject*>(idx.internalPointer());
236 }

Here is the caller graph for this function:

void QcepDatasetBrowserDialog::saveData ( const QModelIndex &  idx)
privateslot

Definition at line 238 of file qcepdatasetbrowserdialog.cpp.

References QcepDataObject::CanOverwrite, and QcepDataObject::fileFormatFilterString().

Referenced by onCustomContextMenuRequested().

239 {
240  QcepDataObject *obj = static_cast<QcepDataObject*>(idx.internalPointer());
241 
242  if (obj) {
243  static QString selectedFilter;
244  QString theFile = QFileDialog::getSaveFileName(this,
245  "Save data in", obj->get_FileName(),
246  obj->fileFormatFilterString(), &selectedFilter);
247 
248  if (theFile.length()) {
249  obj -> saveData(theFile, selectedFilter, QcepDataObject::CanOverwrite);
250  }
251  }
252 }
void saveData(const QModelIndex &idx)
virtual QString fileFormatFilterString()

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

QcepDatasetModelPtr QcepDatasetBrowserDialog::m_DatasetModel
private

Definition at line 35 of file qcepdatasetbrowserdialog.h.

Referenced by deleteData(), and QcepDatasetBrowserDialog().

QcepExperimentWPtr QcepDatasetBrowserDialog::m_Experiment
private

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