ctkDicomExampleHost.cpp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #include "ctkDicomExampleHost.h"
  2. #include "ctkDicomWG23TypesHelper.h"
  3. #include <QProcess>
  4. #include <QtDebug>
  5. #include <QRect>
  6. ctkDicomExampleHost::ctkDicomExampleHost(ctkHostedAppPlaceholderWidget* placeholderWidget, int hostPort, int appPort) :
  7. ctkDicomAbstractHost(hostPort, appPort),
  8. placeholderWidget(placeholderWidget),
  9. applicationState(ctkDicomWG23::IDLE)
  10. {
  11. }
  12. void ctkDicomExampleHost::StartApplication(QString AppPath){
  13. QStringList l;
  14. l.append("--hostURL");
  15. l.append(QString("http://localhost:") + QString::number(this->getHostPort()) );
  16. l.append("--applicationURL");
  17. l.append(QString("http://localhost:") + QString::number(this->getAppPort()));
  18. l.append("dicomapp"); // the app plugin to use - has to be changed later
  19. if (!QProcess::startDetached (
  20. AppPath,l))
  21. {
  22. qCritical() << "application failed to start!";
  23. }
  24. qDebug() << "starting application: " << AppPath << " " << l;
  25. this->appProcess.start(AppPath,l);
  26. }
  27. QRect ctkDicomExampleHost::getAvailableScreen(const QRect& preferredScreen){
  28. qDebug()<< "Application asked for this area:"<< preferredScreen;
  29. QRect rect (this->placeholderWidget->getAbsolutePosition());
  30. emit giveAvailableScreen(rect);
  31. return rect;
  32. }
  33. void ctkDicomExampleHost::notifyStateChanged(ctkDicomWG23::State state){
  34. qDebug()<< "new state received:"<< ctkDicomSoapState::toStringValue(state);
  35. emit stateChangedReceived(state);
  36. }
  37. void ctkDicomExampleHost::notifyStatus(const ctkDicomWG23::Status& status){
  38. qDebug()<< "new status received:"<<status.codeMeaning;
  39. emit statusReceived(status);;
  40. }
  41. ctkDicomExampleHost::~ctkDicomExampleHost()
  42. {
  43. qDebug() << "Exiting host: trying to terminate app";
  44. this->appProcess.terminate();
  45. qDebug() << "Exiting host: trying to kill app";
  46. this->appProcess.kill();
  47. }