Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
QmitkDefaultDropTargetListener.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 
15 #include <QDebug>
16 #include <QDropEvent>
17 #include <QMimeData>
18 #include <QStringList>
19 #include <QUrl>
20 
21 #include "internal/org_mitk_gui_qt_application_Activator.h"
22 
24 #include <berryIPreferences.h>
25 #include <berryPlatformUI.h>
26 
27 #include <mitkWorkbenchUtil.h>
28 
29 class QmitkDefaultDropTargetListenerPrivate
30 {
31 public:
32 
33  berry::IPreferences::Pointer GetPreferences() const
34  {
35  berry::IPreferencesService* prefService = mitk::PluginActivator::GetInstance()->GetPreferencesService();
36  if (prefService)
37  {
38  return prefService->GetSystemPreferences()->Node("/General");
39  }
40  return berry::IPreferences::Pointer(nullptr);
41  }
42 
43  bool GetOpenEditor() const
44  {
45  berry::IPreferences::Pointer prefs = GetPreferences();
46  if(prefs.IsNotNull())
47  {
48  return prefs->GetBool("OpenEditor", true);
49  }
50  return true;
51  }
52 };
53 
55  : berry::IDropTargetListener(), d(new QmitkDefaultDropTargetListenerPrivate())
56 {
57 }
58 
60 {
61 }
62 
63 berry::IDropTargetListener::Events::Types QmitkDefaultDropTargetListener::GetDropTargetEventTypes() const
64 {
65  return Events::DROP;
66 }
67 
69 {
70  qDebug() << event->mimeData()->formats();
71  qDebug() << event->mimeData()->text();
72 
73  QList<QUrl> fileNames = event->mimeData()->urls();
74  if (fileNames.empty())
75  return;
76 
77  QStringList fileNames2;
78  foreach(QUrl url, fileNames)
79  {
80  fileNames2.push_back(url.toLocalFile());
81  }
82 
84  berry::PlatformUI::GetWorkbench()->GetActiveWorkbenchWindow(),
85  d->GetOpenEditor());
86 
87  event->accept();
88 }
virtual SmartPointer< IPreferences > GetSystemPreferences()=0
static void LoadFiles(const QStringList &fileNames, berry::IWorkbenchWindow::Pointer wnd, bool openEditor=true)
static IWorkbench * GetWorkbench()
void DropEvent(QDropEvent *event) override
Events::Types GetDropTargetEventTypes() const override
berry::SmartPointer< Self > Pointer