6 #include "eventmodel.h"
10 TreeView::TreeView(QWidget *aParent)
15 void TreeView::mouseReleaseEvent(QMouseEvent *aEvent)
17 QModelIndex index = currentIndex();
18 QPoint point = aEvent->pos();
20 testForControlClicked(index,point);
22 // pass the event to the Base class, so item clicks/events are handled correctly
23 QTreeView::mouseReleaseEvent(aEvent);
26 void TreeView::testForControlClicked(const QModelIndex &aIndex, const QPoint &aPoint)
31 QRect rect = visualRect(aIndex); // visual QRect of selected/clicked item in the list
32 Delegate *delegate = static_cast<Delegate*>(itemDelegate(aIndex));
33 switch(delegate->whichControlClicked(aIndex,aPoint))
35 case Delegate::FavouriteControlOn:
36 case Delegate::FavouriteControlOff:
38 // handle Favourite Control clicked
39 Event event = Event::getById(aIndex.data().toInt(),1);
40 if(event.isFavourite())
42 static_cast<Event*>(aIndex.internalPointer())->setFavourite(false); // list of events
43 event.setFavourite(false); // update DB
47 static_cast<Event*>(aIndex.internalPointer())->setFavourite(true); // list of events
48 event.setFavourite(true);
50 qDebug() << " FAVOURITE [" << qVariantValue<QString>(aIndex.data()) << "] -> " << event.isFavourite();
51 event.update("favourite");
52 // since the Favourite icon has changed, update TreeView accordingly
53 static_cast<EventModel*>(model())->emitDataChangedSignal(aIndex,aIndex);
56 case Delegate::AlarmControlOn:
57 case Delegate::AlarmControlOff:
59 // handle Alarm Control clicked
60 qDebug() << "ALARM CLICKED: " << qVariantValue<QString>(aIndex.data());
63 case Delegate::MapControl:
65 // handle Alarm Control clicked
66 qDebug() << "MAP CLICKED: " << qVariantValue<QString>(aIndex.data());
69 case Delegate::ControlNone:
72 // item was clicked, but not a control