source: src/mvc/treeview.cpp @ 03ff157

qt5
Last change on this file since 03ff157 was 03ff157, checked in by fortefr <fortefr@…>, 12 years ago

Map button/compass icon added

  • Property mode set to 100644
File size: 1.6 KB
Line 
1#include <QMouseEvent>
2
3#include "treeview.h"
4#include "delegate.h"
5
6#include <QDebug>
7
8TreeView::TreeView(QWidget *aParent)
9    : QTreeView(aParent)
10{
11}
12
13void TreeView::mouseReleaseEvent(QMouseEvent *aEvent)
14{
15    QModelIndex index = currentIndex();
16    QPoint point = aEvent->pos();
17
18    testForControlClicked(index,point);
19
20    // pass the event to the Base class, so item clicks/events are handled correctly
21    QTreeView::mouseReleaseEvent(aEvent);
22}
23
24void TreeView::testForControlClicked(const QModelIndex &aIndex, const QPoint &aPoint)
25{
26    if(!aIndex.isValid())
27        return;
28
29    QRect rect = visualRect(aIndex); // visual QRect of selected/clicked item in the list
30    Delegate *delegate = static_cast<Delegate*>(itemDelegate(aIndex));
31    switch(delegate->whichControlClicked(aIndex,aPoint))
32    {
33        case Delegate::FavouriteControl:
34            {
35                // handle Favourite Control clicked
36                qDebug() << "FAVOURITE CLICKED: " << qVariantValue<QString>(aIndex.data());
37            }
38            break;
39        case Delegate::AlarmControl:
40            {
41                // handle Alarm Control clicked
42                qDebug() << "ALARM CLICKED: " << qVariantValue<QString>(aIndex.data());
43            }
44            break;
45        case Delegate::MapControl:
46            {
47                // handle Alarm Control clicked
48                qDebug() << "MAP CLICKED: " << qVariantValue<QString>(aIndex.data());
49            }
50        break;
51        case Delegate::ControlNone:
52        default:
53            {
54                // item was clicked, but not a control
55            }
56    };
57}
58
Note: See TracBrowser for help on using the repository browser.