14 #include "ui_QmitkSelectXnatUploadDestinationDialog.h" 16 #include <ctkXnatObject.h> 17 #include <ctkXnatResource.h> 18 #include <ctkXnatResourceFolder.h> 19 #include <ctkXnatSession.h> 23 #include <QModelIndex> 26 const QStringList &availableResources,
32 m_CreateNewFolder(false),
37 m_TreeModel->addDataModel(session->dataModel());
38 ui->treeView->setModel(m_TreeModel);
40 connect(ui->cbSelectResources,
41 SIGNAL(currentIndexChanged(
const QString &)),
44 connect(ui->treeView, SIGNAL(clicked(
const QModelIndex &)),
this, SLOT(
OnXnatNodeSelected(
const QModelIndex &)));
45 connect(ui->rbSelectResource, SIGNAL(toggled(
bool)),
this, SLOT(
OnSelectResource(
bool)));
46 connect(ui->rbSelectFromTreeView, SIGNAL(toggled(
bool)),
this, SLOT(
OnSelectFromTreeView(
bool)));
47 connect(ui->leResourceName, SIGNAL(textChanged(
const QString &)),
this, SLOT(
OnResourceEntered(
const QString &)));
48 connect(ui->pbCancel, SIGNAL(clicked()),
this, SLOT(
OnCancel()));
49 connect(ui->pbUpload, SIGNAL(clicked()),
this, SLOT(
OnUpload()));
52 ui->pbUpload->setEnabled(
false);
53 ui->leResourceName->setVisible(
false);
56 if (availableResources.isEmpty())
58 ui->rbSelectFromTreeView->setChecked(
true);
59 ui->rbSelectResource->setEnabled(
false);
63 foreach (QString resourceName, availableResources)
65 ui->cbSelectResources->addItem(resourceName);
67 ui->cbSelectResources->addItem(
"Create new resource folder...");
78 this->done(QDialog::Rejected);
83 this->done(QDialog::Accepted);
88 ui->pbUpload->setEnabled(
false);
89 ui->cbSelectResources->setVisible(selectResource);
90 ui->leResourceName->setVisible(!selectResource);
91 ui->treeView->setVisible(!selectResource);
93 ui->cbSelectResources->setCurrentIndex(0);
98 ui->pbUpload->setEnabled(
false);
99 ui->cbSelectResources->setVisible(!selectFromTreeView);
100 ui->leResourceName->setVisible(!selectFromTreeView);
101 ui->treeView->setVisible(selectFromTreeView);
111 if (ui->rbSelectResource->isChecked() && !m_Url.isEmpty() && !m_ResourceName.isEmpty())
115 ctkXnatResource *resource =
new ctkXnatResource();
116 resource->setName(m_ResourceName);
117 resource->setParent(selectedXnatObject);
118 if (!resource->exists())
124 QModelIndex index = ui->treeView->selectionModel()->currentIndex();
125 return m_TreeModel->xnatObject(index);
131 if (resource.isEmpty())
132 ui->pbUpload->setEnabled(
false);
134 if (resource !=
"Create new resource folder...")
136 ui->pbUpload->setEnabled(
true);
137 m_ResourceName = resource;
138 ui->leResourceName->hide();
140 else if (resource ==
"Create new resource folder...")
142 ui->pbUpload->setEnabled(
false);
143 ui->leResourceName->show();
149 m_CreateNewFolder = !resourceEntered.isEmpty();
150 ui->pbUpload->setEnabled(m_CreateNewFolder);
151 m_ResourceName = resourceEntered;
156 if (!index.isValid())
159 ctkXnatObject *selectedObject = m_TreeModel->xnatObject(index);
160 ui->pbUpload->setEnabled(dynamic_cast<ctkXnatResource *>(selectedObject) !=
nullptr);
QmitkSelectXnatUploadDestinationDialog(ctkXnatSession *session, const QStringList &, QWidget *parent=nullptr)
ctkXnatObject * GetXnatObjectFromUrl(const QString &)
void OnSelectFromTreeView(bool selectFromTreeView)
void OnResourceSelected(const QString &resource)
void OnResourceEntered(const QString &resourceEntered)
void OnSelectResource(bool selectResource)
ctkXnatObject * GetUploadDestination()
void SetXnatResourceFolderUrl(const QString &url)
~QmitkSelectXnatUploadDestinationDialog() override
void OnXnatNodeSelected(const QModelIndex &)