Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
QmitkDnDFrameWidget.cpp
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #include <QmitkDnDFrameWidget.h>
14 
16 #include <berryIPreferences.h>
17 #include <berryPlatformUI.h>
18 
19 #include "internal/QmitkCommonActivator.h"
20 
21 #include <mitkWorkbenchUtil.h>
22 
23 #include <QDragEnterEvent>
24 #include <QMimeData>
25 
26 class QmitkDnDFrameWidgetPrivate
27 {
28 public:
29 
30  berry::IPreferences::Pointer GetPreferences() const
31  {
32  berry::IPreferencesService* prefService = QmitkCommonActivator::GetInstance()->GetPreferencesService();
33  if (prefService)
34  {
35  return prefService->GetSystemPreferences()->Node("/General");
36  }
37  return berry::IPreferences::Pointer(nullptr);
38  }
39 
40  bool GetOpenEditor() const
41  {
42  berry::IPreferences::Pointer prefs = GetPreferences();
43  if(prefs.IsNotNull())
44  {
45  return prefs->GetBool("OpenEditor", true);
46  }
47  return true;
48  }
49 
50 };
51 
53 : QWidget(parent), d(new QmitkDnDFrameWidgetPrivate())
54 {
55  setAcceptDrops(true);
56 }
57 
59 {
60 }
61 
62 void QmitkDnDFrameWidget::dragEnterEvent( QDragEnterEvent *event )
63 { // accept drags
64  event->acceptProposedAction();
65 }
66 
67 void QmitkDnDFrameWidget::dropEvent( QDropEvent * event )
68 { //open dragged files
69 
70  QList<QUrl> fileNames = event->mimeData()->urls();
71  if (fileNames.empty())
72  return;
73 
74  QStringList fileNames2;
75  foreach(QUrl url, fileNames)
76  {
77  fileNames2.push_back(url.toLocalFile());
78  }
79 
81  berry::PlatformUI::GetWorkbench()->GetActiveWorkbenchWindow(),
82  d->GetOpenEditor());
83 
84  event->accept();
85 }
virtual SmartPointer< IPreferences > GetSystemPreferences()=0
static void LoadFiles(const QStringList &fileNames, berry::IWorkbenchWindow::Pointer wnd, bool openEditor=true)
static IWorkbench * GetWorkbench()
QmitkDnDFrameWidget(QWidget *parent)
berry::SmartPointer< Self > Pointer