Marble

RouteItemDelegate.h
1 #ifndef ROUTEITEMDELEGATE_H
2 #define ROUTEITEMDELEGATE_H
3 
4 #include <QStyledItemDelegate>
5 
6 class QListView;
7 
8 namespace Marble {
9 class CloudRouteModel;
10 
11 class RouteItemDelegate : public QStyledItemDelegate {
12  Q_OBJECT
13 
14 public:
15  RouteItemDelegate( QListView *view, CloudRouteModel *model );
16 
17  void paint( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const override;
18  QSize sizeHint( const QStyleOptionViewItem& option, const QModelIndex& index ) const override;
19  bool editorEvent(QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem& option, const QModelIndex& index) override;
20 
21 
22 Q_SIGNALS:
23  void downloadButtonClicked( const QString& timestamp );
24  void openButtonClicked( const QString& timestamp );
25  void deleteButtonClicked( const QString& timestamp );
26  void removeFromCacheButtonClicked( const QString& timestamp );
27  void uploadToCloudButtonClicked( const QString& timestamp );
28 
29 private:
30  enum Element {
31  Text,
32  OpenButton,
33  DownloadButton,
34  RemoveFromCacheButton,
35  RemoveFromCloudButton,
36  Progressbar,
37  Preview,
38  UploadToCloudButton
39  };
40 
41  int buttonWidth( const QStyleOptionViewItem &option ) const;
42  QStyleOptionButton button( Element element, const QStyleOptionViewItem &option ) const;
43  static QString text( const QModelIndex &index );
44  QRect position( Element element, const QStyleOptionViewItem &option ) const;
45 
46  QListView *m_view;
47  CloudRouteModel *m_model;
48  mutable int m_buttonWidth;
49  int const m_iconSize;
50  int const m_previewSize;
51  int const m_margin;
52 };
53 
54 }
55 
56 #endif
Q_OBJECTQ_OBJECT
Binds a QML item to a specific geodetic location in screen coordinates.
Q_SIGNALSQ_SIGNALS
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Thu Sep 21 2023 04:12:28 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.