void QmitkXnatEditor::CreateQtPartControl(QWidget *parent) { // create GUI widgets from the Qt Designer's .ui file m_Controls.setupUi(parent); m_Controls.buttonDownload->setEnabled(false); m_Controls.labelDownload->setText("Select a xnat file, resource, scan, or scan folder to download..."); GetSite()->GetWorkbenchWindow()->GetSelectionService()->AddSelectionListener(m_SelectionListener.data()); connect(m_Controls.treeView, SIGNAL(activated(const QModelIndex&)), this, SLOT(OnObjectActivated(const QModelIndex&))); connect(m_Controls.buttonDownload, SIGNAL(clicked()), this, SLOT(DownloadResource())); connect(m_Controls.buttonDataModel, SIGNAL(clicked()), this, SLOT(OnDataModelButtonClicked())); connect(m_Controls.buttonProject, SIGNAL(clicked()), this, SLOT(OnProjectButtonClicked())); connect(m_Controls.buttonSubject, SIGNAL(clicked()), this, SLOT(OnSubjectButtonClicked())); connect(m_Controls.buttonExperiment, SIGNAL(clicked()), this, SLOT(OnExperimentButtonClicked())); connect(m_Controls.buttonKindOfData, SIGNAL(clicked()), this, SLOT(OnKindOfDataButtonClicked())); connect(m_Controls.buttonSession, SIGNAL(clicked()), this, SLOT(OnSessionButtonClicked())); connect(m_Controls.buttonResource, SIGNAL(clicked()), this, SLOT(OnResourceButtonClicked())); connect(m_Controls.treeView, SIGNAL(clicked(const QModelIndex&)), SLOT(itemSelected(const QModelIndex&))); m_Tracker = new mitk::XnatSessionTracker(mitk::org_mitk_gui_qt_xnatinterface_Activator::GetXnatModuleContext()); connect(m_Tracker, SIGNAL(AboutToBeClosed(ctkXnatSession*)), this, SLOT(CleanListModel(ctkXnatSession*))); connect(m_Tracker, SIGNAL(Opened(ctkXnatSession*)), this, SLOT(UpdateSession(ctkXnatSession*))); m_Tracker->Open(); // Makes the breadcrumb feature invisible for (int i = 0; i < m_Controls.breadcrumbHorizontalLayout->count() - 1; i++) { QLayoutItem* child = m_Controls.breadcrumbHorizontalLayout->itemAt(i); child->widget()->setVisible(false); } for (int i = 0; i < m_Controls.breadcrumbDescriptionLayout->count() - 1; i++) { QLayoutItem* child = m_Controls.breadcrumbDescriptionLayout->itemAt(i); child->widget()->setVisible(false); } QmitkXnatObjectEditorInput::Pointer oPtr = GetEditorInput().Cast<QmitkXnatObjectEditorInput>(); if (oPtr.IsNotNull()) { UpdateList(); } else { ctkXnatSession* session; try { session = mitk::org_mitk_gui_qt_xnatinterface_Activator::GetXnatModuleContext()->GetService( mitk::org_mitk_gui_qt_xnatinterface_Activator::GetXnatModuleContext()->GetServiceReference<ctkXnatSession>()); } catch (std::invalid_argument) { session = 0; } UpdateSession(session); } }
/* called when kart goes to track */ extern "C" __declspec(dllexport) void RunInit(void *_pData, int _iDataSize) { SPluginsKartSession_t *psSessionData; psSessionData = (SPluginsKartSession_t*)_pData; if (pBuf) { UpdateState(STATE_ON_TRACK); UpdateSession(psSessionData); } }
static void SessionThread( void *para) { SessionCtrl *ctrl; GHashTable *hash; ENTER_FUNC; workq = NewQueue(); hash = NewNameHash(); RecParserInit(); while (TRUE) { ctrl = (SessionCtrl *)DeQueue(workq); switch (ctrl->type) { case SESSION_CONTROL_INSERT: InsertSession(hash,ctrl); break; case SESSION_CONTROL_UPDATE: UpdateSession(hash,ctrl); break; case SESSION_CONTROL_DELETE: DeleteSession(hash,ctrl); break; case SESSION_CONTROL_LOOKUP: LookupSession(hash,ctrl); break; case SESSION_CONTROL_GET_SESSION_NUM: GetSessionNum(hash,ctrl); break; case SESSION_CONTROL_GET_DATA: GetData(hash,ctrl); break; case SESSION_CONTROL_GET_MESSAGE: GetMessage(hash,ctrl); break; case SESSION_CONTROL_RESET_MESSAGE: ResetMessage(hash,ctrl); break; case SESSION_CONTROL_SET_MESSAGE: SetMessage(hash,ctrl); break; case SESSION_CONTROL_SET_MESSAGE_ALL: SetMessageAll(hash,ctrl); break; case SESSION_CONTROL_GET_DATA_ALL: GetDataAll(hash,ctrl); break; } EnQueue(ctrl->waitq,ctrl); } pthread_exit(NULL); LEAVE_FUNC; }
static void TermMain( TermNode *term, SessionData *data) { if (data != NULL) { if (data->status != SESSION_STATUS_ABORT) { UpdateSession(data); data = Process(data); } if (data->status != SESSION_STATUS_NORMAL) { DeregisterSession(data); } else { if (SendTerminal(term->fp,data)) { KeepSession(data); UpdateSession(data); } else { DeregisterSession(data); } } } SendPacketClass(term->fp,WFC_DONE); }