aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDominik Kapusta <dominik.kapusta@teleca.com>2010-09-09 17:16:04 +0200
committerDominik Kapusta <dominik.kapusta@teleca.com>2010-09-13 14:11:01 +0200
commit5f1f0f91a4e02b73ba78d5d839ba58cec543f408 (patch)
tree0d35a6cbed2ca476d5b09433eb485c06562ff64b /src
parent2d421e7624152f7a50a81391b615c7fcdca20f19 (diff)
Changes: Clean up MApplicationPage by moving its view-related code to MApplicationPageView.
RevBy: Marcin Miklas, Daniel d'Andrada
Diffstat (limited to 'src')
-rw-r--r--src/corelib/widgets/mapplicationpage.cpp207
-rw-r--r--src/corelib/widgets/mapplicationpage_p.h36
-rw-r--r--src/corelib/widgets/mapplicationpagemodel.h19
-rw-r--r--src/corelib/widgets/mapplicationwindow.cpp10
-rw-r--r--src/views/mapplicationpageview.cpp179
-rw-r--r--src/views/mapplicationpageview.h16
-rw-r--r--src/views/mapplicationpageview_p.h23
7 files changed, 265 insertions, 225 deletions
diff --git a/src/corelib/widgets/mapplicationpage.cpp b/src/corelib/widgets/mapplicationpage.cpp
index d1681fc5..bf69876b 100644
--- a/src/corelib/widgets/mapplicationpage.cpp
+++ b/src/corelib/widgets/mapplicationpage.cpp
@@ -19,139 +19,37 @@
#include "mapplicationpage.h"
#include "mapplicationpage_p.h"
-#include <mapplicationpagemodel.h>
-#include <MDebug>
-#include <MPannableViewport>
-#include <QGraphicsLinearLayout>
-#include <MTheme>
-#include <MApplication>
-#include <MApplicationWindow>
-#include <MPannableViewport>
-#include <MSceneManager>
-#include <MEscapeButtonPanel>
-#include <MAction>
-#include <MScene>
-#include <MPositionIndicator>
-#include <mdockwidget.h>
-#include <mapplicationwindow_p.h>
-
+#include "mapplicationpagemodel.h"
+#include "mapplicationwindow.h"
+#include "mwidgetview.h"
#include "mondisplaychangeevent.h"
-
#include "mwidgetcreator.h"
+#include "mpannableviewport.h"
+
+#include <QAction>
+#include <QGraphicsLinearLayout>
+
M_REGISTER_WIDGET(MApplicationPage)
MApplicationPagePrivate::MApplicationPagePrivate() :
- rememberPosition(false),
- topSpacer(NULL),
- bottomSpacer(NULL),
- mainWidget(NULL),
- mainLayout(NULL),
- pannableViewPort(NULL),
- centralWidget(NULL),
- contentCreated(false),
- backEnabled(false)
+ pannableViewport(0),
+ contentCreated(false)
{}
void MApplicationPagePrivate::init()
{
Q_Q(MApplicationPage);
- contentCreated = false;
- backEnabled = false;
- rememberPosition = true;
-
- QGraphicsLinearLayout *layout = createLayout();
- q->setLayout(layout);
-
- pannableViewPort = new MPannableViewport(q);
- pannableViewPort->setClipping(false);
- layout->addItem(pannableViewPort);
-
- mainWidget = new MWidget;
-
- pannableViewPort->setWidget(mainWidget);
-
- mainLayout = createLayout();
- mainWidget->setLayout(mainLayout);
-
- topSpacer = createSpacer(mainWidget);
- setWidgetHeight(topSpacer, 0);
- mainLayout->addItem(topSpacer);
-
- centralWidget = new MWidget(mainWidget);
- mainLayout->addItem(centralWidget);
-
- bottomSpacer = createSpacer(mainWidget);
- setWidgetHeight(bottomSpacer, 0);
- mainLayout->addItem(bottomSpacer);
-}
-
-QGraphicsLinearLayout *MApplicationPagePrivate::createLayout()
-{
QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical);
layout->setContentsMargins(0, 0, 0, 0);
layout->setSpacing(0.0);
- return layout;
-}
-
-MWidget *MApplicationPagePrivate::createSpacer(QGraphicsItem *parent)
-{
- MWidget *spacer = new MWidget(parent);
- return spacer;
-}
-
-void MApplicationPagePrivate::setWidgetHeight(MWidget *w, qreal height)
-{
- w->setMinimumHeight(height);
- w->setMaximumHeight(height);
- w->setPreferredHeight(height);
-}
-
-void MApplicationPagePrivate::deleteCurrentCentralWidget()
-{
- if (centralWidget) {
- mainLayout->removeItem(centralWidget);
- delete centralWidget;
- centralWidget = 0;
- }
-}
-void MApplicationPagePrivate::placeCentralWidget(QGraphicsWidget *widget)
-{
- if (widget) {
- // insert the new central widget between top and bottom spacers
- if (mainLayout->count() > 0)
- mainLayout->insertItem(1,widget);
- else
- mainLayout->addItem(widget);
- centralWidget = widget;
- }
-}
-
-void MApplicationPagePrivate::updatePannableViewportPosition()
-{
- if (!rememberPosition) {
- pannableViewPort->setPosition(QPointF(0, 0));
- }
-}
+ pannableViewport = new MPannableViewport;
+ pannableViewport->setClipping(false);
-void MApplicationPagePrivate::propagateOnDisplayChangeEvent(bool visible)
-{
- Q_Q(MApplicationPage);
+ layout->addItem(pannableViewport);
- if (q->scene() == 0 || q->sceneManager() == 0)
- return;
-
- if (centralWidget) {
- QRectF viewRect(QPointF(0, 0), q->sceneManager()->visibleSceneSize());
- if (visible) {
- MOnDisplayChangeEvent ev(MOnDisplayChangeEvent::MustBeResolved, viewRect);
- q->scene()->sendEvent(centralWidget, &ev);
- } else {
- MOnDisplayChangeEvent ev(false, viewRect);
- q->scene()->sendEvent(centralWidget, &ev);
- }
- }
+ q->setLayout(layout);
}
MApplicationPage::MApplicationPage(QGraphicsItem *parent)
@@ -165,22 +63,20 @@ MApplicationPage::MApplicationPage(QGraphicsItem *parent)
MApplicationPage::~MApplicationPage()
{
+ setCentralWidget(0);
}
void MApplicationPage::setCentralWidget(QGraphicsWidget *centralWidget)
{
- Q_D(MApplicationPage);
+ if (model()->centralWidget())
+ delete model()->centralWidget();
- d->deleteCurrentCentralWidget();
- d->placeCentralWidget(centralWidget);
- d->propagateOnDisplayChangeEvent(isOnDisplay());
+ model()->setCentralWidget(centralWidget);
}
QGraphicsWidget *MApplicationPage::centralWidget()
{
- Q_D(MApplicationPage);
-
- return d->centralWidget;
+ return model()->centralWidget();
}
MApplicationWindow *MApplicationPage::applicationWindow()
@@ -227,44 +123,40 @@ bool MApplicationPage::isContentCreated() const
void MApplicationPage::setRememberPosition(bool remember)
{
- Q_D(MApplicationPage);
-
- d->rememberPosition = remember;
+ model()->setRememberPosition(remember);
}
bool MApplicationPage::rememberPosition() const
{
- Q_D(const MApplicationPage);
-
- return d->rememberPosition;
+ return model()->rememberPosition();
}
void MApplicationPage::setPannable(bool pannable)
{
Q_D(MApplicationPage);
- d->pannableViewPort->setEnabled(pannable);
+ d->pannableViewport->setEnabled(pannable);
}
bool MApplicationPage::isPannable() const
{
Q_D(const MApplicationPage);
- return d->pannableViewPort->isEnabled();
+ return d->pannableViewport->isEnabled();
}
-Qt::Orientations MApplicationPage::panningDirection() const
+void MApplicationPage::setPanningDirection(Qt::Orientations directions)
{
- Q_D(const MApplicationPage);
+ Q_D(MApplicationPage);
- return d->pannableViewPort->panDirection();
+ d->pannableViewport->setPanDirection(directions);
}
-void MApplicationPage::setPanningDirection(Qt::Orientations directions)
+Qt::Orientations MApplicationPage::panningDirection() const
{
- Q_D(MApplicationPage);
+ Q_D(const MApplicationPage);
- d->pannableViewPort->setPanDirection(directions);
+ return d->pannableViewport->panDirection();
}
void MApplicationPage::actionEvent(QActionEvent *e)
@@ -301,8 +193,6 @@ void MApplicationPagePrivate::doEnterDisplayEvent()
q->createContent();
}
- updatePannableViewportPosition();
-
MWidgetPrivate::doEnterDisplayEvent();
}
@@ -310,45 +200,15 @@ void MApplicationPagePrivate::setExposedContentRect(const QRectF &exposedContent
{
Q_Q(MApplicationPage);
- if (exposedContentRect != this->exposedContentRect) {
- this->exposedContentRect = exposedContentRect;
+ if (exposedContentRect != q->model()->exposedContentRect()) {
+ q->model()->setExposedContentRect(exposedContentRect);
emit q->exposedContentRectChanged();
-
- updateAutoMarginsForComponents();
}
}
QRectF MApplicationPage::exposedContentRect() const
{
- Q_D(const MApplicationPage);
-
- return d->exposedContentRect;
-}
-
-void MApplicationPagePrivate::updateAutoMarginsForComponents()
-{
- Q_Q(MApplicationPage);
-
- qreal topMargin = 0.0;
- qreal bottomMargin = 0.0;
-
- if (q->autoMarginsForComponentsEnabled()) {
- topMargin = exposedContentRect.y();
-
- qreal exposedContentRectBottomEdge = exposedContentRect.y() + exposedContentRect.height();
- bottomMargin = q->boundingRect().height() - exposedContentRectBottomEdge;
- }
-
- pannableViewPort->positionIndicator()->setPos(exposedContentRect.topLeft());
- setWidgetHeight(pannableViewPort->positionIndicator(), exposedContentRect.height());
-
- setWidgetHeight(topSpacer, topMargin);
- setWidgetHeight(bottomSpacer, bottomMargin);
-
- // FIXME: This activation is needed so input widget relocator can correctly calculate
- // positions after decorations hide. Correct place for this would be after all
- // decorations have been hidden. Only one activation is required.
- pannableViewPort->widget()->layout()->activate();
+ return model()->exposedContentRect();
}
MApplicationPageModel::ComponentDisplayMode MApplicationPage::componentDisplayMode(
@@ -421,7 +281,8 @@ void MApplicationPage::setEscapeMode(MApplicationPageModel::PageEscapeMode mode)
MPannableViewport * MApplicationPage::pannableViewport()
{
Q_D(MApplicationPage);
- return d->pannableViewPort;
+
+ return d->pannableViewport;
}
#include "moc_mapplicationpage.cpp"
diff --git a/src/corelib/widgets/mapplicationpage_p.h b/src/corelib/widgets/mapplicationpage_p.h
index 3d27c719..2af1a17d 100644
--- a/src/corelib/widgets/mapplicationpage_p.h
+++ b/src/corelib/widgets/mapplicationpage_p.h
@@ -22,18 +22,9 @@
#include <mapplicationpage.h>
#include <mscenewindow_p.h>
-#include <QList>
#include <QRect>
-#include <mnamespace.h>
-class MScene;
-class MAction;
-class MWidget;
-class MToolBar;
class MPannableViewport;
-class QGraphicsLinearLayout;
-class MApplicationWindow;
-class MApplicationWindowPrivate;
class MApplicationPagePrivate : public MSceneWindowPrivate
{
@@ -42,39 +33,14 @@ class MApplicationPagePrivate : public MSceneWindowPrivate
public:
MApplicationPagePrivate();
-
void init();
virtual void doEnterDisplayEvent();
-
- void deleteCurrentCentralWidget();
- void placeCentralWidget(QGraphicsWidget *widget);
- void setWidgetHeight(MWidget *w, qreal height);
- void updatePannableViewportPosition();
-
- void propagateOnDisplayChangeEvent(bool visible);
-
// Note: Called by MApplicationWindow
void setExposedContentRect(const QRectF &rect);
- void updateAutoMarginsForComponents();
-
-private:
- QGraphicsLinearLayout *createLayout();
- MWidget *createSpacer(QGraphicsItem *parent);
- QRectF range;
-
-public:
- bool rememberPosition;
- MWidget *topSpacer;
- MWidget *bottomSpacer;
- MWidget *mainWidget;
- QGraphicsLinearLayout *mainLayout;
- MPannableViewport *pannableViewPort;
- QGraphicsWidget *centralWidget;
- QRectF exposedContentRect;
+ MPannableViewport *pannableViewport;
bool contentCreated;
- bool backEnabled;
};
#endif
diff --git a/src/corelib/widgets/mapplicationpagemodel.h b/src/corelib/widgets/mapplicationpagemodel.h
index 6c21402a..21847d47 100644
--- a/src/corelib/widgets/mapplicationpagemodel.h
+++ b/src/corelib/widgets/mapplicationpagemodel.h
@@ -117,12 +117,31 @@ private:
M_MODEL_PROPERTY(bool, autoMarginsForComponentsEnabled, AutoMarginsForComponentsEnabled, true, true)
/*!
+ \property MApplicationPageModel::rememberPosition
+ \brief Whether the page should remember the pannable viewport position it had
+ on its last appearance.
+ */
+ M_MODEL_PROPERTY(bool, rememberPosition, RememberPosition, true, true)
+
+ /*!
+ \property MApplicationPageModel::exposedContentRect
+ \brief Area of the page whose content is not covered by any bar
+ */
+ M_MODEL_PROPERTY(QRectF, exposedContentRect, ExposedContentRect, true, QRectF())
+
+ /*!
\property MApplicationPageModel::title
\brief Title for a page.
Title appears on the navigation bar.
*/
M_MODEL_PROPERTY(QString, title, Title, true, QString())
+
+ /*!
+ \property MApplicationPageModel::centralWidget
+ \brief Central widget for the applicationPage.
+ */
+ M_MODEL_PTR_PROPERTY(QGraphicsWidget *, centralWidget, CentralWidget, true, new MWidget)
};
#endif
diff --git a/src/corelib/widgets/mapplicationwindow.cpp b/src/corelib/widgets/mapplicationwindow.cpp
index fe692249..d2c69916 100644
--- a/src/corelib/widgets/mapplicationwindow.cpp
+++ b/src/corelib/widgets/mapplicationwindow.cpp
@@ -213,6 +213,8 @@ void MApplicationWindowPrivate::init()
#endif
q->connect(q, SIGNAL(orientationAngleChanged(M::OrientationAngle)),
SLOT(_q_updatePageExposedContentRect()));
+ q->connect(MTheme::instance(), SIGNAL(themeChangeCompleted()),
+ SLOT(_q_updatePageExposedContentRect()));
}
#ifdef Q_WS_X11
@@ -401,14 +403,6 @@ void MApplicationWindowPrivate::_q_handlePageModelModifications(const QList<cons
if (member == MApplicationPageModel::ProgressIndicatorVisible) {
navigationBar->setProgressIndicatorVisible(page->model()->progressIndicatorVisible());
- } else if (member == MApplicationPageModel::AutoMarginsForComponentsEnabled) {
-
- // FIXME: Fix this on the next ABI break.
- // updateAutoMarginsForComponents() calls due to changes in
- // MApplicationPageModel::autoMarginsForComponentsEnabled() should
- // be handled in MApplicationPage::updateData().
- page->d_func()->updateAutoMarginsForComponents();
-
} else if (member == MApplicationPageModel::EscapeMode) {
setupPageEscape();
diff --git a/src/views/mapplicationpageview.cpp b/src/views/mapplicationpageview.cpp
index a6d10fd4..b54f6565 100644
--- a/src/views/mapplicationpageview.cpp
+++ b/src/views/mapplicationpageview.cpp
@@ -26,9 +26,20 @@
#include "mapplicationpage.h"
#include "mscenemanager.h"
#include "mviewcreator.h"
+#include "mpannableviewport.h"
+#include "mondisplaychangeevent.h"
+#include "mpositionindicator.h"
+
+#include <QGraphicsLinearLayout>
MApplicationPageViewPrivate::MApplicationPageViewPrivate()
- : q_ptr(0)
+ : q_ptr(0),
+ controller(0),
+ topSpacer(0),
+ bottomSpacer(0),
+ mainWidget(0),
+ mainLayout(0),
+ centralWidget(0)
{
}
@@ -36,23 +47,183 @@ MApplicationPageViewPrivate::~MApplicationPageViewPrivate()
{
}
+void MApplicationPageViewPrivate::init()
+{
+ mainWidget = new MWidget;
+
+ controller->pannableViewport()->setWidget(mainWidget);
+
+ mainLayout = createLayout();
+ mainWidget->setLayout(mainLayout);
+
+ topSpacer = createSpacer(mainWidget);
+ bottomSpacer = createSpacer(mainWidget);
+
+ setWidgetHeight(topSpacer, 0);
+ setWidgetHeight(bottomSpacer, 0);
+
+ mainLayout->addItem(topSpacer);
+ mainLayout->addItem(bottomSpacer);
+}
+
+
+QGraphicsLinearLayout *MApplicationPageViewPrivate::createLayout()
+{
+ QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical);
+ layout->setContentsMargins(0, 0, 0, 0);
+ layout->setSpacing(0.0);
+ return layout;
+}
+
+MWidget *MApplicationPageViewPrivate::createSpacer(QGraphicsItem *parent)
+{
+ MWidget *spacer = new MWidget(parent);
+ return spacer;
+}
+
+void MApplicationPageViewPrivate::setWidgetHeight(MWidget *w, qreal height)
+{
+ w->setMinimumHeight(height);
+ w->setMaximumHeight(height);
+ w->setPreferredHeight(height);
+}
+
+void MApplicationPageViewPrivate::propagateOnDisplayChangeEvent(bool visible)
+{
+ Q_Q(MApplicationPageView);
+
+ if (controller->scene() == 0 || controller->sceneManager() == 0)
+ return;
+
+ if (q->model()->centralWidget()) {
+ QRectF viewRect(QPointF(0, 0), controller->sceneManager()->visibleSceneSize());
+ if (visible) {
+ MOnDisplayChangeEvent ev(MOnDisplayChangeEvent::MustBeResolved, viewRect);
+ controller->scene()->sendEvent(q->model()->centralWidget(), &ev);
+ } else {
+ MOnDisplayChangeEvent ev(false, viewRect);
+ controller->scene()->sendEvent(q->model()->centralWidget(), &ev);
+ }
+ }
+}
+
+void MApplicationPageViewPrivate::setCentralWidget(QGraphicsWidget *newCentralWidget)
+{
+ if (centralWidget)
+ mainLayout->removeItem(centralWidget);
+
+ // Place the new one
+ if (newCentralWidget) {
+ mainLayout->insertItem(1, newCentralWidget);
+ centralWidget = newCentralWidget;
+ propagateOnDisplayChangeEvent(controller->isOnDisplay());
+ }
+}
+
+void MApplicationPageViewPrivate::updateAutoMarginsForComponents()
+{
+ Q_Q(MApplicationPageView);
+
+ qreal topMargin = 0.0;
+ qreal bottomMargin = 0.0;
+
+ QRectF exposedContentRect = q->model()->exposedContentRect();
+
+ if (q->model()->autoMarginsForComponentsEnabled()) {
+ topMargin = exposedContentRect.y();
+
+ qreal exposedContentRectBottomEdge = exposedContentRect.y() + exposedContentRect.height();
+ bottomMargin = q->boundingRect().height() - exposedContentRectBottomEdge;
+ }
+
+ controller->pannableViewport()->positionIndicator()->setPos(exposedContentRect.topLeft());
+ setWidgetHeight(controller->pannableViewport()->positionIndicator(), exposedContentRect.height());
+
+ setWidgetHeight(topSpacer, topMargin);
+ setWidgetHeight(bottomSpacer, bottomMargin);
+
+ // FIXME: This activation is needed so input widget relocator can correctly calculate
+ // positions after decorations hide. Correct place for this would be after all
+ // decorations have been hidden. Only one activation is required.
+ controller->pannableViewport()->widget()->layout()->activate();
+}
+
+void MApplicationPageViewPrivate::_q_onPageStateChanged()
+{
+ if (controller->sceneWindowState() == MSceneWindow::Disappeared)
+ resetPannableViewportPositionIfNeeded();
+}
+
+void MApplicationPageViewPrivate::resetPannableViewportPositionIfNeeded()
+{
+ Q_Q(MApplicationPageView);
+
+ if (!q->model()->rememberPosition())
+ controller->pannableViewport()->setPosition(QPointF(0, 0));
+}
+
MApplicationPageView::MApplicationPageView(MApplicationPage *controller) :
MSceneWindowView(controller),
d_ptr(new MApplicationPageViewPrivate)
{
Q_D(MApplicationPageView);
d->q_ptr = this;
+ d->controller = controller;
+ d->init();
+ connect(d->controller, SIGNAL(sceneWindowStateChanged(MSceneWindow::SceneWindowState,MSceneWindow::SceneWindowState)),
+ SLOT(_q_onPageStateChanged()));
}
MApplicationPageView::~MApplicationPageView()
{
+ Q_D(MApplicationPageView);
+
+ if (model()->centralWidget())
+ model()->centralWidget()->setParentItem(0);
+ d->setCentralWidget(0);
+ d->controller->pannableViewport()->setWidget(0);
+
+ delete d->mainWidget;
delete d_ptr;
}
-/*
-QRectF MApplicationPageView::boundingRect() const
+
+void MApplicationPageView::applyStyle()
+{
+ Q_D(MApplicationPageView);
+
+ MSceneWindowView::applyStyle();
+ d->updateAutoMarginsForComponents();
+ d->resetPannableViewportPositionIfNeeded();
+}
+
+void MApplicationPageView::setupModel()
{
+ Q_D(MApplicationPageView);
+
+ MSceneWindowView::setupModel();
+
+ d->setCentralWidget(model()->centralWidget());
+ d->updateAutoMarginsForComponents();
+}
+
+void MApplicationPageView::updateData(const QList<const char *> &modifications)
+{
+ Q_D(MApplicationPageView);
+
+ MSceneWindowView::updateData(modifications);
+
+ const char *member;
+ foreach(member, modifications) {
+ if (member == MApplicationPageModel::CentralWidget) {
+ d->setCentralWidget(model()->centralWidget());
+ } else if (member == MApplicationPageModel::AutoMarginsForComponentsEnabled ||
+ member == MApplicationPageModel::ExposedContentRect)
+ {
+ d->updateAutoMarginsForComponents();
+ }
+ }
}
-*/
M_REGISTER_VIEW_NEW(MApplicationPageView, MApplicationPage)
+#include "moc_mapplicationpageview.cpp"
diff --git a/src/views/mapplicationpageview.h b/src/views/mapplicationpageview.h
index 87868acb..535688f5 100644
--- a/src/views/mapplicationpageview.h
+++ b/src/views/mapplicationpageview.h
@@ -22,6 +22,7 @@
#include "mscenewindowview.h"
#include <mapplicationpagestyle.h>
+#include <mapplicationpagemodel.h>
class MApplicationPage;
class MApplicationPageViewPrivate;
@@ -29,20 +30,25 @@ class MApplicationPageViewPrivate;
class M_EXPORT MApplicationPageView : public MSceneWindowView
{
Q_OBJECT
- M_VIEW(MWidgetModel, MApplicationPageStyle)
+ M_VIEW(MApplicationPageModel, MApplicationPageStyle)
public:
MApplicationPageView(MApplicationPage *controller);
virtual ~MApplicationPageView();
- //! \reimp
- //virtual QRectF boundingRect() const;
- //! \reimp_end
-
protected:
MApplicationPageViewPrivate *const d_ptr;
+ //! \reimp
+ virtual void applyStyle();
+ virtual void setupModel();
+
+protected slots:
+ virtual void updateData(const QList<const char *>& modifications);
+ //! \reimp_end
+
private:
+ Q_PRIVATE_SLOT(d_func(), void _q_onPageStateChanged())
Q_DECLARE_PRIVATE(MApplicationPageView)
};
diff --git a/src/views/mapplicationpageview_p.h b/src/views/mapplicationpageview_p.h
index d01f30db..d8a31ef7 100644
--- a/src/views/mapplicationpageview_p.h
+++ b/src/views/mapplicationpageview_p.h
@@ -21,6 +21,9 @@
#define MAPPLICATIONPAGEVIEW_P_H
#include "mapplicationpageview.h"
+#include <QPointer>
+
+class QGraphicsLinearLayout;
class MApplicationPageViewPrivate
{
@@ -28,10 +31,30 @@ class MApplicationPageViewPrivate
protected:
MApplicationPageView *q_ptr;
+ MApplicationPage *controller;
public:
MApplicationPageViewPrivate();
virtual ~MApplicationPageViewPrivate();
+ void init();
+
+ void setWidgetHeight(MWidget *w, qreal height);
+ QGraphicsLinearLayout *createLayout();
+ MWidget *createSpacer(QGraphicsItem *parent);
+ void propagateOnDisplayChangeEvent(bool visible);
+ void setCentralWidget(QGraphicsWidget *newCentralWidget);
+ void updateAutoMarginsForComponents();
+ void resetPannableViewportPositionIfNeeded();
+
+ void _q_onPageStateChanged();
+
+ MWidget *topSpacer;
+ MWidget *bottomSpacer;
+ MWidget *mainWidget;
+ QGraphicsLinearLayout *mainLayout;
+ QPointer<QGraphicsWidget> centralWidget;
+
+ QRectF exposedContentRect;
};
#endif