Browse Source

Functionality as ctkExampleHost

Ivo Wolf 13 years ago
parent
commit
d08af1f73e

+ 3 - 0
Applications/ctkDICOMHost/CMakeLists.txt

@@ -7,14 +7,17 @@ PROJECT(ctkDICOMHost)
 # Source files
 SET(KIT_SRCS
   ctkDICOMHostMain.cpp
+  ctkDICOMHostMainLogic.cpp
   )
 
 # Headers that should run through moc
 SET(KIT_MOC_SRCS
+  ctkDICOMHostMainLogic.h
   )
 
 # UI files
 SET(KIT_UI_FORMS
+  ctkDICOMHostMainWidget.ui
 )
 
 # Resources

+ 16 - 3
Applications/ctkDICOMHost/ctkDICOMHostMain.cpp

@@ -47,6 +47,10 @@
 // STD includes
 #include <iostream>
 
+// ui of this application
+#include "ui_ctkDICOMHostMainWidget.h"
+#include "ctkDICOMHostMainLogic.h"
+
 int main(int argc, char** argv)
 {
   ctkLogger::configure();
@@ -149,10 +153,19 @@ int main(int argc, char** argv)
     }
   }
 
-  ctkDICOMAppWidget DICOMApp;
+  QWidget *widget = new QWidget;
+  Ui::ctkDICOMHostMainWidget ui;
+  ui.setupUi(widget);
+
+  widget->show();
+
+  ctkDICOMHostMainLogic *logic = new ctkDICOMHostMainLogic(ui.placeHolderForHostedApp);
+  logic->connect(ui.configureHostedApp,SIGNAL(clicked()), logic, SLOT(configureHostedApp()));
+
+  //ctkDICOMAppWidget DICOMApp(widget);
 
-  DICOMApp.setDatabaseDirectory(databaseDirectory);
-  DICOMApp.show();
+  ////DICOMApp.setDatabaseDirectory(databaseDirectory);
+  ////DICOMApp.show();
 
   return app.exec();
 }

+ 38 - 0
Applications/ctkDICOMHost/ctkDICOMHostMainLogic.cpp

@@ -0,0 +1,38 @@
+// Qt includes
+#include <QDebug>
+#include <QFileDialog>
+#include <QApplication>
+
+// ctk includes
+#include "ctkDICOMHostMainLogic.h"
+#include "ctkHostedAppPlaceholderWidget.h"
+#include "ctkExampleHostControlWidget.h"
+#include "ctkExampleDicomHost.h"
+
+ctkDICOMHostMainLogic::ctkDICOMHostMainLogic(ctkHostedAppPlaceholderWidget* placeHolder) : 
+  QObject(placeHolder), 
+  placeHolderForHostedApp(placeHolder)
+{
+  this->Host = new ctkExampleDicomHost(placeHolderForHostedApp);
+  this->HostControls = new ctkExampleHostControlWidget(Host, placeHolder);
+  this->HostControls->show();
+  //connect(placeHolder,SIGNAL(resized()),SLOT(placeholderResized()));
+}
+
+ctkDICOMHostMainLogic::~ctkDICOMHostMainLogic()
+{
+}
+
+void ctkDICOMHostMainLogic::configureHostedApp()
+{
+  //qDebug() << "load button clicked";
+  AppFileName = QFileDialog::getOpenFileName(placeHolderForHostedApp,"Choose hosted application",QApplication::applicationDirPath());
+  //HostControls->setAppFileName(name);
+  //if (this->Host)
+  //  {
+  //  this->Host->StartApplication(this->AppFileName);
+  //  bool reply = this->Host->getDicomAppService()->setState(ctkDicomAppHosting::INPROGRESS);
+  //  qDebug() << "  setState(INPROGRESS) returned: " << reply;
+  //  }
+  HostControls->setAppFileName(AppFileName);
+}

+ 26 - 0
Applications/ctkDICOMHost/ctkDICOMHostMainLogic.h

@@ -0,0 +1,26 @@
+#ifndef CTKDICOMHOSTMAINLOGIC_H
+#define CTKDICOMHOSTMAINLOGIC_H
+
+#include <QObject.h>
+
+class ctkHostedAppPlaceholderWidget;
+class ctkExampleDicomHost;
+class ctkExampleHostControlWidget;
+
+class ctkDICOMHostMainLogic :
+  public QObject
+{
+  Q_OBJECT
+public:
+  ctkDICOMHostMainLogic(ctkHostedAppPlaceholderWidget*);
+  virtual ~ctkDICOMHostMainLogic();
+public slots:
+  void configureHostedApp();
+protected:
+  ctkExampleDicomHost* Host;
+  ctkExampleHostControlWidget* HostControls;
+  ctkHostedAppPlaceholderWidget* placeHolderForHostedApp;
+  QString AppFileName;
+};
+
+#endif

+ 71 - 0
Applications/ctkDICOMHost/ctkDICOMHostMainWidget.ui

@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ctkDICOMHostMainWidget</class>
+ <widget class="QWidget" name="ctkDICOMHostMainWidget">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>887</width>
+    <height>359</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="ctkDICOMAppWidget" name="placeHolderForDICOMAppWidget" native="true"/>
+     </item>
+     <item>
+      <widget class="ctkHostedAppPlaceholderWidget" name="placeHolderForHostedApp">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="minimumSize">
+        <size>
+         <width>300</width>
+         <height>0</height>
+        </size>
+       </property>
+       <property name="frameShape">
+        <enum>QFrame::StyledPanel</enum>
+       </property>
+       <property name="frameShadow">
+        <enum>QFrame::Raised</enum>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QPushButton" name="configureHostedApp">
+     <property name="text">
+      <string>Configure Hosted App</string>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>ctkDICOMAppWidget</class>
+   <extends>QWidget</extends>
+   <header>ctkDICOMAppWidget.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>ctkHostedAppPlaceholderWidget</class>
+   <extends>QFrame</extends>
+   <header>ctkhostedappplaceholderwidget.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>