curvelist_view.h
Go to the documentation of this file.
1 #ifndef CURVELIST_VIEW_H
2 #define CURVELIST_VIEW_H
3 
4 #include <QFont>
5 #include <QFontDatabase>
6 #include <QGuiApplication>
7 #include <QHeaderView>
8 #include <QMouseEvent>
9 #include <QPainter>
10 #include <QSettings>
11 #include <QStandardItem>
12 #include <QStandardItemModel>
13 #include <QTableWidget>
14 #include <vector>
15 #include <QSet>
16 
17 #include "PlotJuggler/alphanum.hpp"
18 
19 class CurveListPanel;
20 
21 template <typename ItemType>
22 class SortedTableItem : public ItemType
23 {
24 public:
25  SortedTableItem(const QString& name) : ItemType(name), str(name.toStdString())
26  {
27  }
28 
29  bool operator<(const SortedTableItem& other) const
30  {
31  return doj::alphanum_impl(this->str.c_str(), other.str.c_str()) < 0;
32  }
33 
34 protected:
35  std::string str;
36 };
37 
39 {
40 public:
41  CurvesView(CurveListPanel* parent);
42 
43  virtual void clear() = 0;
44 
45  virtual void addItem(const QString& item_name) = 0;
46 
47  virtual std::vector<std::string> getSelectedNames() = 0;
48 
49  virtual bool applyVisibilityFilter(const QString& filter_string) = 0;
50 
51  virtual void refreshFontSize() = 0;
52 
53  virtual void refreshColumns() = 0;
54 
55  virtual void hideValuesColumn(bool hide) = 0;
56 
57  virtual void setViewResizeEnabled(bool enable) = 0;
58 
59  bool eventFilterBase(QObject* object, QEvent* event);
60 
61  virtual std::pair<int, int> hiddenItemsCount() = 0;
62 
63  virtual void removeCurve(const QString& name) = 0;
64 
65  void setFontSize(int size)
66  {
67  _point_size = size;
68  refreshFontSize();
69  }
70 
71 protected:
72  int _point_size = 9;
74  bool _newX_modifier = false;
75  bool _dragging = false;
77 };
78 
79 class CurveTableView : public QTableWidget, public CurvesView
80 {
81 public:
83 
84  void clear() override
85  {
86  setRowCount(0);
87  _inserted_curves.clear();
88  }
89 
90  void addItem(const QString& item_name) override;
91 
92  void refreshColumns() override;
93 
94  std::vector<std::string> getSelectedNames() override;
95 
96  void refreshFontSize() override;
97 
98  void removeCurve(const QString& name) override;
99 
100  bool applyVisibilityFilter(const QString& filter_string) override;
101 
102  bool eventFilter(QObject* object, QEvent* event) override
103  {
104  bool ret = CurvesView::eventFilterBase(object, event);
105  if (!ret)
106  {
107  return QWidget::eventFilter(object, event);
108  }
109  else
110  {
111  return true;
112  }
113  }
114 
115  void setViewResizeEnabled(bool enable) override;
116 
117  virtual std::pair<int, int> hiddenItemsCount() override
118  {
119  return { _hidden_count, model()->rowCount() };
120  }
121 
122  virtual void hideValuesColumn(bool hide) override;
123 
124 private:
125  int _hidden_count = 0;
126  QSet<QString> _inserted_curves;
127 };
128 
129 #endif // CURVELIST_VIEW_H
bool operator<(const SortedTableItem &other) const
std::string str
QPoint _drag_start_pos
QSet< QString > _inserted_curves
void setFontSize(int size)
CurveListPanel * _parent_panel
virtual std::pair< int, int > hiddenItemsCount() override
void clear() override
const char * name
SortedTableItem(const QString &name)
std::enable_if_t< all< Args... >::value, enable_t > enable
Definition: sol.hpp:1726
void clear(lua_State *L, int table_index)
Definition: sol.hpp:10569
bool eventFilterBase(QObject *object, QEvent *event)
bool eventFilter(QObject *object, QEvent *event) override


plotjuggler
Author(s): Davide Faconti
autogenerated on Sun Dec 6 2020 03:47:33