roviz  0.7
Code Documentation of roviz
abstract_window_item.h
1 #ifndef ABSTRACT_WINDOW_ITEM_H
2 #define ABSTRACT_WINDOW_ITEM_H
3 
4 #include "appcore.h"
5 #include "abstract_item.h"
6 
7 #include <QObject>
8 #include <QMainWindow>
9 #include <functional>
10 
21 class ITEMFRAMEWORK_EXPORT AbstractWindowItem : public AbstractItem
22 {
23  Q_OBJECT
24 
25 public:
30  explicit AbstractWindowItem(QString const& typeName);
31 
32  virtual ~AbstractWindowItem() = 0; // prevent this class from being instantiated directly, enforce deriving this class
33 
34 protected:
40  virtual QMainWindow* allocateWindow() = 0;
41 
49  QMainWindow* window() const;
50 
58  void setWindow(QMainWindow* window);
59 
67  void deleteWindow();
68 
76  void hideWindow();
77 
88  void setOpenWindowContextActionEnabled(bool enabled) const;
89 
98  QAction* addContextMenuEntry(QString const& text, std::function<void()> f = nullptr);
99 
100  virtual void contextMenuPrepare(QMenu& menu) const;
101  virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event);
102 
103 protected slots:
110  virtual void openWindow();
111 
112 private:
113  QScopedPointer<class AbstractWindowItemPrivate> const d_ptr;
114  Q_DECLARE_PRIVATE(AbstractWindowItem)
115 };
116 
117 #endif // ABSTRACT_WINDOW_ITEM_H
The AbstractWindowItem class provides basic standard functionality for a typical item that uses a win...
Definition: abstract_window_item.h:21
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override
A simple default implementation of the mouseDoubleClickEvent. Override to do custom things (e...
Definition: abstract_item.cpp:248
virtual void contextMenuPrepare(QMenu &menu) const
This method is called with an empty QMenu whenever a contextmenu on the current item is requested...
Definition: abstract_item.cpp:244
The AbstractItem class is the base class for all items.
Definition: abstract_item.h:69