0027398: Integrate Qt Browser Widget to Open CASCADE Technology
[occt.git] / tools / DFBrowser / DFBrowser_Shortcut.cxx
1 // Created on: 2017-06-16
2 // Created by: Natalia ERMOLAEVA
3 // Copyright (c) 2017 OPEN CASCADE SAS
4 //
5 // This file is part of Open CASCADE Technology software library.
6 //
7 // This library is free software; you can redistribute it and/or modify it under
8 // the terms of the GNU Lesser General Public License version 2.1 as published
9 // by the Free Software Foundation, with special exception defined in the file
10 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 // distribution for complete text of the license and disclaimer of any warranty.
12 //
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement. 
15
16 #include <DFBrowser_Shortcut.hxx>
17
18 #include <DFBrowser_Module.hxx>
19
20 #include <QApplication>
21 #include <QKeyEvent>
22
23 // =======================================================================
24 // function : Constructor
25 // purpose :
26 // =======================================================================
27 DFBrowser_Shortcut::DFBrowser_Shortcut (QObject* theParent)
28 : QObject (theParent), myModule (0)
29 {
30   qApp->installEventFilter (this);
31 }
32
33 // =======================================================================
34 // function : eventFilter
35 // purpose :
36 // =======================================================================
37 bool DFBrowser_Shortcut::eventFilter (QObject* theObject, QEvent* theEvent)
38 {
39   if (!myModule || theEvent->type() != QEvent::KeyRelease)
40     return QObject::eventFilter (theObject, theEvent);
41
42   QKeyEvent* aKeyEvent = dynamic_cast<QKeyEvent*> (theEvent);
43   switch (aKeyEvent->key())
44   {
45     case Qt::Key_F5:
46     {
47       myModule->UpdateTreeModel();
48       return true;
49     }
50     default: break;
51   }
52   return QObject::eventFilter (theObject, theEvent);
53 }