]> Creatis software - clitk.git/commitdiff
Merge branch 'drop_files' of https://github.com/m-pilia/vv into m-pilia-drop_files
authortbaudier <thomas.baudier@creatis.insa-lyon.fr>
Thu, 4 Oct 2018 12:32:55 +0000 (14:32 +0200)
committertbaudier <thomas.baudier@creatis.insa-lyon.fr>
Thu, 4 Oct 2018 12:32:55 +0000 (14:32 +0200)
1  2 
vv/vvMainWindow.cxx
vv/vvMainWindow.h

diff --combined vv/vvMainWindow.cxx
index 6a81732949e5857d50b2acb260925c5a0a2f7b7f,153b461380e4566fb22418e90bd388141d84e887..30f7da57693088207b345d4420971b291daf6858
@@@ -18,6 -18,7 +18,7 @@@ It is distributed under dual licenc
  
  #include <algorithm>
  #include <QMessageBox>
+ #include <QMimeData>
  #include <QInputDialog>
  #include <QTimer>
  #include "QTreePushButton.h"
@@@ -132,6 -133,8 +133,8 @@@ vvMainWindow::vvMainWindow():vvMainWind
  { 
    setupUi(this); // this sets up the GUI
  
+   setAcceptDrops(true); // enable to drop into the window
    setDicomClient();
  
    //Qt::WindowFlags flags = windowFlags();
@@@ -816,6 -819,25 +819,25 @@@ void vvMainWindow::OpenRecentImage(
    LoadImages(images, vvImageReader::IMAGE);
  }
  //------------------------------------------------------------------------------
+ void vvMainWindow::dragEnterEvent(QDragEnterEvent *event)
+ {
+   if (event->mimeData()->hasUrls()) {
+     event->acceptProposedAction();
+   }
+ }
+ //------------------------------------------------------------------------------
+ void vvMainWindow::dropEvent(QDropEvent *event)
+ {
+   const QMimeData * mimeData = event->mimeData();
+   if (!mimeData->hasUrls())
+     return;
+   std::vector<std::string> images;
+   for (auto const & url : mimeData->urls()) {
+     images.push_back(url.toLocalFile().toStdString());
+   }
+   LoadImages(images, vvImageReader::IMAGE);
+ }
+ //------------------------------------------------------------------------------
  
  
  //------------------------------------------------------------------------------
@@@ -3278,11 -3300,7 +3300,11 @@@ void vvMainWindow::SaveSEScreenshot(
  //------------------------------------------------------------------------------
  void vvMainWindow::SaveScreenshotAllSlices()
  { 
 +#if (VTK_MAJOR_VERSION == 8 && VTK_MINOR_VERSION >= 1) || VTK_MAJOR_VERSION >= 9
 +  QVTKOpenGLNativeWidget *widget = NOViewWidget;
 +#else
    QVTKWidget *widget = NOViewWidget;
 +#endif
  
    int index = 0;// GetSlicerIndexFromItem(DataTree->selectedItems()[0]);
    vvSlicerManager * SM = mSlicerManagers[index];
  
  
  //------------------------------------------------------------------------------
 +#if (VTK_MAJOR_VERSION == 8 && VTK_MINOR_VERSION >= 1) || VTK_MAJOR_VERSION >= 9
 +void vvMainWindow::SaveScreenshot(QVTKOpenGLNativeWidget *widget)
 +#else
  void vvMainWindow::SaveScreenshot(QVTKWidget *widget)
 +#endif
  { 
    QString Extensions = "Images( *.png);;";
    Extensions += "Images( *.jpg);;";
diff --combined vv/vvMainWindow.h
index 2be7e7584caaf78ad91daf261642d5b343eb7449,2d6a21dde238ef34ed446114ed907ad503cfc429..07f38e5f9f415613c68410f8eb35445a504203b8
  
  #include <iostream>
  #include <vector>
+ #include <QDropEvent>
 +#include "vtkVersion.h"
 +#if (VTK_MAJOR_VERSION == 8 && VTK_MINOR_VERSION >= 1) || VTK_MAJOR_VERSION >= 9
  #include "ui_vvMainWindow.h"
 +#else
 +#include "ui_vvMainWindowVTK7.h"
 +#endif
  #include "vvMainWindowBase.h"
  #include "vvToolManager.h"
  #include "vvImageReader.h"
@@@ -197,6 -193,10 +198,10 @@@ protected
    void createRecentlyOpenedFilesMenu();
    void updateRecentlyOpenedFilesMenu(const std::list<std::string> &files);
    
+   // Drag and drop event handlers
+   virtual void dragEnterEvent(QDragEnterEvent *event);
+   virtual void dropEvent(QDropEvent *event);
  private:
  
    //variables
    QString GetVectorIntAsString(std::vector<int> vectorInt);
    int GetSlicerIndexFromItem(QTreeWidgetItem* item); //this actually returns the SlicerManager index TODO: rename it to GetSlicerManagerIndexFromItem
    QTreeWidgetItem* GetItemFromSlicerManager(vvSlicerManager* sm);
 +#if (VTK_MAJOR_VERSION == 8 && VTK_MINOR_VERSION >= 1) || VTK_MAJOR_VERSION >= 9
 +  void SaveScreenshot(QVTKOpenGLNativeWidget *widget);
 +#else
    void SaveScreenshot(QVTKWidget *widget);
 +#endif
    int GetImageDuplicateFilenameNumber(std::string filename);
  
    QMenu contextMenu;