Chatterino
GenericListItem.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <QIcon>
4 #include <QPainter>
5 #include <QRect>
6 #include <QVariant>
7 
8 namespace chatterino {
9 
11 {
12 public:
21  static GenericListItem *fromVariant(const QVariant &variant);
22 
23  virtual ~GenericListItem() = default;
24 
26 
30  GenericListItem(const QIcon &icon);
31 
36  virtual void action() = 0;
37 
38  virtual void paint(QPainter *painter, const QRect &rect) const = 0;
39  virtual QSize sizeHint(const QRect &rect) const = 0;
40 
41 protected:
42  QIcon icon_;
43  static const QSize ICON_SIZE;
44 };
45 
46 } // namespace chatterino
47 
48 // This allows us to store GenericListItem * as a QVariant
virtual QSize sizeHint(const QRect &rect) const =0
Definition: Application.cpp:48
virtual ~GenericListItem()=default
Definition: GenericListItem.hpp:10
QIcon icon_
Definition: GenericListItem.hpp:42
virtual void action()=0
Action to perform when this item is activated. Must be implemented in subclasses. ...
virtual void paint(QPainter *painter, const QRect &rect) const =0
static GenericListItem * fromVariant(const QVariant &variant)
Attempt to obtain an GenericListItem * from the passed QVariant.
Definition: GenericListItem.cpp:7
GenericListItem()
Definition: GenericListItem.cpp:13
Q_DECLARE_METATYPE(chatterino::GenericListItem *)
static const QSize ICON_SIZE
Definition: GenericListItem.hpp:43