Browse Source

Use and handle getOutputLocation

Ivo Wolf 13 years ago
parent
commit
a040964d29

+ 11 - 3
Plugins/org.commontk.dah.exampleapp/ctkExampleDicomAppLogic.cpp

@@ -27,6 +27,8 @@
 #include <QApplication>
 #include <QLabel>
 #include <QRect>
+#include <QStringList>
+#include <QDir>
 #include <QTemporaryFile>
 #include <QPainter>
 
@@ -264,11 +266,17 @@ void ctkExampleDicomAppLogic::onCreateSecondaryCapture()
   const QPixmap* pixmap = ui.PlaceHolderForImage->pixmap();
   if(pixmap!=NULL)
   {
-    QTemporaryFile *tempfile = new QTemporaryFile("ctkdahscXXXXXX.png",this->AppWidget);
-    QString filename;
+    QStringList preferredProtocols;
+    preferredProtocols.append("file:");
+    QString outputlocation = getHostInterface()->getOutputLocation(preferredProtocols);
+    QString templatefilename = QDir(outputlocation).absolutePath();
+    if(templatefilename.isEmpty()==false) templatefilename.append('/'); 
+    templatefilename.append("ctkdahscXXXXXX.png");
+    QTemporaryFile *tempfile = new QTemporaryFile(templatefilename,this->AppWidget);
+
     if(tempfile->open())
     {
-      filename = QFileInfo(tempfile->fileName()).absoluteFilePath();
+      QString filename = QFileInfo(tempfile->fileName()).absoluteFilePath();
       qDebug() << "Created file: " << filename;
       tempfile->close();
       QPixmap tmppixmap(*pixmap);

+ 12 - 0
Plugins/org.commontk.dah.examplehost/ctkExampleDicomHost.cpp

@@ -23,6 +23,8 @@
 #include <QProcess>
 #include <QtDebug>
 #include <QRect>
+#include <QStringList>
+#include <QDir>
 
 // CTK includes
 #include "ctkExampleDicomHost.h"
@@ -178,8 +180,18 @@ void ctkExampleDicomHost::releaseData(const QList<QUuid>& objectUUIDs)
   Q_UNUSED(objectUUIDs)
 }
 
+//----------------------------------------------------------------------------
 void ctkExampleDicomHost::exitApplication()
 {
   this->exitingApplication=true;
   getDicomAppService ()->setState (ctkDicomAppHosting::CANCELED);
 }
+
+//----------------------------------------------------------------------------
+QString ctkExampleDicomHost::getOutputLocation(const QStringList& preferredProtocols)
+{ 
+  if(preferredProtocols.indexOf("file:")>=0)
+    return QDir::temp().absolutePath();
+
+  return ""; 
+}

+ 1 - 1
Plugins/org.commontk.dah.examplehost/ctkExampleDicomHost.h

@@ -45,7 +45,7 @@ public:
   virtual void StartApplication(QString AppPath);
   virtual QString generateUID() { return ""; }
   virtual QRect getAvailableScreen(const QRect& preferredScreen);
-  virtual QString getOutputLocation(const QStringList& /*preferredProtocols*/) { return ""; }
+  virtual QString getOutputLocation(const QStringList& preferredProtocols);
 
   virtual void notifyStatus(const ctkDicomAppHosting::Status& status);
   // exchange methods