roviz  0.7
Code Documentation of roviz
abstract_item.h
1 #ifndef ABSTRACT_ITEM_H
2 #define ABSTRACT_ITEM_H
3 
4 #include <QGraphicsObject>
5 #include <QList>
6 #include "appcore.h"
7 
9 class ItemInput;
10 class ItemOutput;
11 class SettingsScope;
12 
69 class ITEMFRAMEWORK_EXPORT AbstractItem : public QGraphicsObject
70 {
71  Q_OBJECT
72  Q_PROPERTY(SettingsScope* settingsScope READ settingsScope)
73 
74 public:
79  explicit AbstractItem(QString typeName);
80 
81  virtual ~AbstractItem();
82 
86  QString typeName() const;
87 
93  QString name() const;
94 
102  QString description() const;
103 
110  void setName(QString name);
111 
116  QRectF boundingRect() const override;
117 
122  QPainterPath shape() const override;
123 
130  void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = 0) override;
131 
138  QList<ItemInput*> const inputs() const;
139 
146  QList<ItemOutput*> const outputs() const;
147 
154  QImage const image() const;
155 
163  int progress() const;
164 
183  virtual bool load(class QDomElement& element);
184 
200  virtual bool save(class QDomDocument& document, class QDomElement& element) const;
201 
207  SettingsScope* settingsScope() const;
208 
214  static int connectorHeight();
215 
221  static int connectorWidth();
222 
231  static bool registerConnectorStyle(QColor const& color, int transportType);
232 
239  static QPen connectorStyle(int transportType);
240 
241 
242 protected:
252  ItemInput* addInput(int transportType, QString const& description = "");
253 
264  ItemOutput* addOutput(int transportType, QString const& description = "");
265 
274  void remove(ItemInput* input);
275 
284  void remove(ItemOutput* output);
285 
292  void clearInputs();
293 
300  void clearOutputs();
301 
302 
309  void setDescription(QString const& description);
310 
317  void setImage(QImage const& image);
318 
324  void setOutputData(ItemOutput* output, QObject* data);
325 
334  void setProgress(int progress);
335 
344  void setProgressAutohide(int ms);
345 
351  virtual void contextMenuPrepare(QMenu& menu) const;
352 
358  virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event) override;
359 
365  virtual void paintItemBox(QPainter* painter);
366 
367  void timerEvent(QTimerEvent* t) override;
368  QVariant itemChange(GraphicsItemChange change, const QVariant& value) override;
369  void contextMenuEvent(QGraphicsSceneContextMenuEvent* event) override;
370 
371 signals:
376  void changed();
377 
381  void nameChanged();
382 
386  void descriptionChanged();
387 
391  void progressChanged();
392 
393 public slots:
397  void disconnectConnections();
398 
399 private:
400  QScopedPointer<class AbstractItemPrivate> const d_ptr;
401  Q_DECLARE_PRIVATE(AbstractItem)
402 
403  friend class Item_Origin_Visualizer_Entry;
404 };
405 
406 #endif // ABSTRACT_ITEM_H
The ItemOutput class represents an output that belongs to an item.
Definition: item_output.h:28
The ItemInput class represents an input that belongs to an item.
Definition: item_input.h:28
The SettingsScope class acts as a container for scoped settings.
Definition: settings_scope.h:21
Definition: item_origin_visualizer_entry.h:13
The AbstractItemInputOutputBase class provides common functionality for the ItemInput and ItemOutput ...
Definition: abstract_item_input_output_base.h:12
The AbstractItem class is the base class for all items.
Definition: abstract_item.h:69