Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "QmitkNodeTableViewKeyFilter.h"
00019
00020 #include <QKeyEvent>
00021 #include <QKeySequence>
00022 #include "../QmitkDataManagerView.h"
00023
00024 QmitkNodeTableViewKeyFilter::QmitkNodeTableViewKeyFilter( QObject* _DataManagerView )
00025 : QObject(_DataManagerView)
00026 {
00027 m_PreferencesService =
00028 berry::Platform::GetServiceRegistry().GetServiceById<berry::IPreferencesService>(berry::IPreferencesService::ID);
00029 }
00030
00031 bool QmitkNodeTableViewKeyFilter::eventFilter( QObject *obj, QEvent *event )
00032 {
00033 QmitkDataManagerView* _DataManagerView = qobject_cast<QmitkDataManagerView*>(this->parent());
00034 if (event->type() == QEvent::KeyPress && _DataManagerView)
00035 {
00036 berry::IPreferencesService::Pointer prefService = m_PreferencesService.Lock();
00037 berry::IPreferences::Pointer nodeTableKeyPrefs = prefService->GetSystemPreferences()->Node("/DataManager/Hotkeys");
00038
00039 QKeySequence _MakeAllInvisible = QKeySequence(QString::fromStdString(nodeTableKeyPrefs->Get("Make all nodes invisible", "Ctrl+, V")));
00040 QKeySequence _ToggleVisibility = QKeySequence(QString::fromStdString(nodeTableKeyPrefs->Get("Toggle visibility of selected nodes", "V")));
00041 QKeySequence _DeleteSelectedNodes = QKeySequence(QString::fromStdString(nodeTableKeyPrefs->Get("Delete selected nodes", "Del")));
00042 QKeySequence _Reinit = QKeySequence(QString::fromStdString(nodeTableKeyPrefs->Get("Reinit selected nodes", "R")));
00043 QKeySequence _GlobalReinit = QKeySequence(QString::fromStdString(nodeTableKeyPrefs->Get("Global Reinit", "Ctrl+, R")));
00044 QKeySequence _Save = QKeySequence(QString::fromStdString(nodeTableKeyPrefs->Get("Save selected nodes", "Ctrl+, S")));
00045 QKeySequence _Load = QKeySequence(QString::fromStdString(nodeTableKeyPrefs->Get("Load", "Ctrl+, L")));
00046 QKeySequence _ShowInfo = QKeySequence(QString::fromStdString(nodeTableKeyPrefs->Get("Show Node Information", "Ctrl+, I")));
00047
00048 QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
00049
00050 QKeySequence _KeySequence = QKeySequence(keyEvent->modifiers(), keyEvent->key());
00051
00052 if(_KeySequence.isEmpty())
00053 _KeySequence = QKeySequence(keyEvent->key());
00054
00055 if(_KeySequence == _MakeAllInvisible)
00056 {
00057
00058 _DataManagerView->MakeAllNodesInvisible(true);
00059
00060 return true;
00061 }
00062 else if(_KeySequence == _DeleteSelectedNodes)
00063 {
00064
00065 _DataManagerView->RemoveSelectedNodes(true);
00066
00067 return true;
00068 }
00069 else if(_KeySequence == _ToggleVisibility)
00070 {
00071
00072 _DataManagerView->ToggleVisibilityOfSelectedNodes(true);
00073
00074 return true;
00075 }
00076 else if(_KeySequence == _Reinit)
00077 {
00078 _DataManagerView->ReinitSelectedNodes(true);
00079 return true;
00080 }
00081 else if(_KeySequence == _GlobalReinit)
00082 {
00083 _DataManagerView->GlobalReinit(true);
00084 return true;
00085 }
00086 else if(_KeySequence == _Save)
00087 {
00088 _DataManagerView->SaveSelectedNodes(true);
00089 return true;
00090 }
00091 else if(_KeySequence == _Load)
00092 {
00093 _DataManagerView->Load(true);
00094 return true;
00095 }
00096 else if(_KeySequence == _ShowInfo)
00097 {
00098 _DataManagerView->ShowInfoDialogForSelectedNodes(true);
00099 return true;
00100 }
00101 }
00102
00103 return QObject::eventFilter(obj, event);
00104 }