Wireshark  4.3.0
The Wireshark network protocol analyzer
label_stack.h
Go to the documentation of this file.
1 
10 #ifndef LABEL_STACK_H
11 #define LABEL_STACK_H
12 
13 #include <QLabel>
14 #include <QStack>
15 #include <QElapsedTimer>
16 #include <QTimer>
17 
18 class LabelStack : public QLabel
19 {
20  Q_OBJECT
21 public:
22  explicit LabelStack(QWidget *parent = 0);
23  void setTemporaryContext(const int ctx);
24  void pushText(const QString &text, int ctx);
25  void setShrinkable(bool shrinkable = true);
26 
27 protected:
28  void mousePressEvent(QMouseEvent *event);
29  void mouseReleaseEvent(QMouseEvent *event);
30  void mouseDoubleClickEvent(QMouseEvent *event);
31  void mouseMoveEvent(QMouseEvent *event);
32  void contextMenuEvent(QContextMenuEvent *event);
33  void paintEvent (QPaintEvent *event);
34 
35 private:
36  typedef struct _StackItem {
37  QString text;
38  int ctx;
39  } StackItem;
40 
41  int temporary_ctx_;
42  QList<StackItem> labels_;
43  bool shrinkable_;
44  QElapsedTimer temporary_epoch_;
45  QTimer temporary_timer_;
46 
47  void fillLabel();
48 
49 signals:
50  void toggleTemporaryFlash(bool enable);
51  void mousePressedAt(const QPoint &global_pos, Qt::MouseButton button);
52 
53 public slots:
54  void popText(int ctx);
55 
56 private slots:
57  void updateTemporaryStatus();
58 };
59 
60 #endif // LABEL_STACK_H
Definition: label_stack.h:19