|
@@ -32,18 +32,18 @@ class QWidgetItem;
|
|
|
class ctkLayoutViewFactoryPrivate;
|
|
|
|
|
|
/// \ingroup Widgets
|
|
|
-/// ctkLayoutViewFactory is a factory that creates and setups widgets for a
|
|
|
+/// ctkLayoutViewFactory is an abstract class that creates and setups widgets for a
|
|
|
/// specific view XML element from ctkLayoutManager.
|
|
|
/// See ctkTemplateLayoutViewFactory for a factory that can instantiate
|
|
|
/// any Qt widget.
|
|
|
-/// This class is meant to be derived with at least the method viewFromXML()
|
|
|
+/// This class is meant to be derived with at least the method createViewFromXML()
|
|
|
/// being overwritten.
|
|
|
-/// \sa ctkLayoutManager, ctkTemplateLayoutViewFactory
|
|
|
+/// \sa ctkLayoutManager, ctkTemplateLayoutViewFactory, createViewFromXML()
|
|
|
class CTK_WIDGETS_EXPORT ctkLayoutViewFactory: public QObject
|
|
|
{
|
|
|
Q_OBJECT
|
|
|
/// This property controls whether the views are cached and reused
|
|
|
- /// for a different layout. False by default.
|
|
|
+ /// from a previous layout. True by default.
|
|
|
/// \sa useCachedViews(), setUseCachedViews()
|
|
|
Q_PROPERTY(bool useCachedViews READ useCachedViews WRITE setUseCachedViews);
|
|
|
public:
|
|
@@ -87,10 +87,13 @@ public:
|
|
|
/// \sa viewsFromXML()
|
|
|
virtual void setupView(QDomElement layoutElement, QWidget* view);
|
|
|
/// Virtual method that returns a widget from a "view" layout element.
|
|
|
- /// You are ensured that the tagName of the element is "view".
|
|
|
+ /// You are ensured that the tagName of the element is one of the element
|
|
|
+ /// from the supportedElementNames() list.
|
|
|
/// The XML element can contain an arbitrary number of XML attributes.
|
|
|
- /// Create the widget if needed or reuse a compatible registered view.
|
|
|
- /// \sa viewsFromXML(), setupView()
|
|
|
+ /// Returns previously registered or cached view if any, otherwise create
|
|
|
+ /// a new view using createViewFromXML(). Must be reimplemented.
|
|
|
+ /// \sa viewsFromXML(), setupView(), registeredViews(), useCachedView,
|
|
|
+ /// createViewFromXML()
|
|
|
virtual QWidget* viewFromXML(QDomElement layoutElement);
|
|
|
/// Virtual method that returns a list of widgets from a "view" layout
|
|
|
/// element.
|
|
@@ -99,10 +102,9 @@ public:
|
|
|
/// widget.
|
|
|
/// The returned widgets will automatically be layout into their parent
|
|
|
/// layout (e.g. boxlayout).
|
|
|
- ///
|
|
|
- /// This method can be reimplemented. By default, returns the associated
|
|
|
- /// registered views or viewFromXML() if no view was registered.
|
|
|
- /// \sa viewFromXML()
|
|
|
+ /// Returns previously registered or cached views if any, otherwise create
|
|
|
+ /// new views using createViewsFromXML().
|
|
|
+ /// \sa viewFromXML(), registeredViews(),
|
|
|
virtual QList<QWidget*> viewsFromXML(QDomElement layoutElement);
|
|
|
|
|
|
/// Return all the widgets that have been registered.
|
|
@@ -112,6 +114,14 @@ public:
|
|
|
protected:
|
|
|
QScopedPointer<ctkLayoutViewFactoryPrivate> d_ptr;
|
|
|
|
|
|
+ /// Create a new view from a layoutElement. Returns 0 by default
|
|
|
+ /// \sa viewFromXML
|
|
|
+ virtual QWidget* createViewFromXML(QDomElement layoutElement);
|
|
|
+ /// Create new views from a layoutElement. Returns createViewFromXML()
|
|
|
+ /// by default.
|
|
|
+ /// \sa viewsFromXML(), createViewFromXML()
|
|
|
+ virtual QList<QWidget*> createViewsFromXML(QDomElement layoutElement);
|
|
|
+
|
|
|
/// Return the list of widgets that have already been created by
|
|
|
/// view(s)FromXML().
|
|
|
/// \sa registerView(), unregisterView()
|
|
@@ -169,13 +179,8 @@ public:
|
|
|
{
|
|
|
this->setUseCachedViews(true);
|
|
|
}
|
|
|
- virtual QWidget* viewFromXML(QDomElement layoutElement){
|
|
|
- QWidget* res = this->ctkLayoutViewFactory::viewFromXML(layoutElement);
|
|
|
- if (!res)
|
|
|
- {
|
|
|
- res = new T;
|
|
|
- }
|
|
|
- return res;
|
|
|
+ virtual QWidget* createViewFromXML(QDomElement layoutElement){
|
|
|
+ return new T;
|
|
|
}
|
|
|
};
|
|
|
|