NorMIT-nav  2023.01.05-dev+develop.0da12
An IGT application
cxExportDataTypeWidget.cpp
Go to the documentation of this file.
1 /*=========================================================================
2 This file is part of CustusX, an Image Guided Therapy Application.
3 
4 Copyright (c) SINTEF Department of Medical Technology.
5 All rights reserved.
6 
7 CustusX is released under a BSD 3-Clause license.
8 
9 See Lisence.txt (https://github.com/SINTEFMedtek/CustusX/blob/master/License.txt) for details.
10 =========================================================================*/
11 
12 #include "cxExportDataTypeWidget.h"
13 
14 #include <QVBoxLayout>
15 #include <QLabel>
16 
17 #include "cxOptionsWidget.h"
19 #include "cxFileManagerService.h"
20 #include "cxLogger.h"
21 #include "cxImage.h"
22 
23 namespace cx
24 {
25 
27  BaseWidget(parent, "ExportDataTypeWidget", "Export "+dataType),
28  mFileManager(filemanager),
29  mServices(services),
30  mSelectedData(property),
31  mDataType(dataType)
32 {
33  QStringList exporters;
34  std::vector<FileReaderWriterServicePtr> writers = filemanager->getExportersForDataType(mDataType);
35  CX_LOG_DEBUG() << "Found " << writers.size() << " writers that export " << mDataType;
36  for(int i=0; i<writers.size(); ++i)
37  {
38  //exporters << writers[i]->getName()+ " (*." + writers[i]->getFileSuffix() +")";
39  exporters << writers[i]->getFileSuffix();
40  }
41 
42  mSelectedData->setValueName(mDataType);
43  mSelectedData->setHelp("Select "+mDataType);
44 
45  //create gui
46  std::vector<SelectDataStringPropertyBasePtr> properties;
47  properties.push_back(mSelectedData);
48  OptionsWidget *options = new OptionsWidget(services->view(), services->patient(), this);
49  options->setOptions(mDataType, properties, true);
50 
51  //add the layout
52  QVBoxLayout *layout = new QVBoxLayout(this);
53  layout->addWidget(new QLabel(mDataType));
54  QString exporter;
55  foreach(exporter,exporters)
56  {
57  QCheckBox *checkbox = new QCheckBox(exporter);
58  mCheckboxes.push_back(checkbox);
59  layout->addWidget(checkbox);
60  }
61  mExportButton = new QPushButton("Export");
62  mExportAllButton = new QPushButton("Export All "+mDataType+"s");
63 
64  QHBoxLayout *hLayout = new QHBoxLayout();
65  hLayout->addWidget(options);
66  hLayout->addWidget(mExportButton);
67  hLayout->addWidget(new QLabel("or"));
68  hLayout->addWidget(mExportAllButton);
69  layout->addLayout(hLayout);
70  layout->addWidget(this->createHorizontalLine());
71 }
72 
74 {
75  CX_LOG_ERROR() << "Q_OBJECTExportDataTypeWidget::exportButtonClicked()";
76 }
77 
79 {
80  CX_LOG_ERROR() << "Q_OBJECTExportDataTypeWidget::exportAllButtonClicked()";
81 }
82 
83 }
cxLogger.h
cxFileManagerService.h
cx::Q_OBJECTExportDataTypeWidget::mCheckboxes
std::vector< QCheckBox * > mCheckboxes
Definition: cxExportDataTypeWidget.h:48
cxExportDataTypeWidget.h
cx::Q_OBJECTExportDataTypeWidget::exportAllButtonClicked
virtual void exportAllButtonClicked()
Definition: cxExportDataTypeWidget.cpp:78
cx
Namespace for all CustusX production code.
Definition: cx_dev_group_definitions.h:13
cx::Q_OBJECTExportDataTypeWidget::mExportAllButton
QPushButton * mExportAllButton
Definition: cxExportDataTypeWidget.h:50
cx::Q_OBJECTExportDataTypeWidget::Q_OBJECTExportDataTypeWidget
Q_OBJECTExportDataTypeWidget(QWidget *parent, QString dataType, FileManagerServicePtr filemanager, VisServicesPtr services, SelectDataStringPropertyBasePtr property)
Definition: cxExportDataTypeWidget.cpp:26
cx::BaseWidget
Interface for QWidget which handles widgets uniformly for the system.
Definition: cxBaseWidget.h:88
cxImage.h
cx::Q_OBJECTExportDataTypeWidget::mDataType
QString mDataType
Definition: cxExportDataTypeWidget.h:46
cx::VisServicesPtr
boost::shared_ptr< class VisServices > VisServicesPtr
Definition: cxMainWindow.h:40
cx::Q_OBJECTExportDataTypeWidget::mSelectedData
SelectDataStringPropertyBasePtr mSelectedData
Definition: cxExportDataTypeWidget.h:43
cx::FileManagerServicePtr
boost::shared_ptr< class FileManagerService > FileManagerServicePtr
Definition: cxLogicManager.h:31
cxOptionsWidget.h
cx::BaseWidget::createHorizontalLine
static QFrame * createHorizontalLine()
Creates a horizontal line which can be inserted into widgets.
Definition: cxBaseWidget.cpp:66
cxFileReaderWriterService.h
CX_LOG_ERROR
#define CX_LOG_ERROR
Definition: cxLogger.h:99
cx::Q_OBJECTExportDataTypeWidget::mExportButton
QPushButton * mExportButton
Definition: cxExportDataTypeWidget.h:49
CX_LOG_DEBUG
#define CX_LOG_DEBUG
Definition: cxLogger.h:95
cx::OptionsWidget::setOptions
void setOptions(QString uid, std::vector< PropertyPtr > options, bool showAdvanced)
Definition: cxOptionsWidget.cpp:37
cx::Q_OBJECTExportDataTypeWidget::exportButtonClicked
virtual void exportButtonClicked()
Definition: cxExportDataTypeWidget.cpp:73
cx::OptionsWidget
Definition: cxOptionsWidget.h:31
cx::SelectDataStringPropertyBasePtr
boost::shared_ptr< class SelectDataStringPropertyBase > SelectDataStringPropertyBasePtr
Definition: cxMeshGlyphsWidget.h:26