void Ut_MGridLayoutPolicy::testHeightForWidthInSubLayout()
{
    QFETCH(bool, useMLayout);
    QFETCH(bool, useInnerMLayout);
    QFETCH(bool, putInnerWidgetInWidget);

    QGraphicsWidget *form = new QGraphicsWidget;


    MGridLayoutPolicy *mpolicy = NULL;
    QGraphicsGridLayout *qlayout = NULL;

    if (useMLayout) {
        MLayout *mlayout = new MLayout(form);
        mlayout->setContentsMargins(0, 0, 0, 0);
        mpolicy = new MGridLayoutPolicy(mlayout);
        mpolicy->setSpacing(0);
    } else {
        qlayout = new QGraphicsGridLayout(form);
        qlayout->setContentsMargins(0, 0, 0, 0);
        qlayout->setSpacing(0);
    }

    QGraphicsWidget *topSpacer = createSpacer();
    QGraphicsWidget *leftSpacer = createSpacer();
    QGraphicsWidget *rightSpacer = createSpacer();
    leftSpacer->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
    rightSpacer->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);

    QGraphicsWidget *square = new SquareWidget;

    QGraphicsLayout *innerLayout = NULL;
    if (useInnerMLayout) {
        innerLayout = new MLayout();
        MLinearLayoutPolicy *policy = new MLinearLayoutPolicy(static_cast<MLayout *>(innerLayout), Qt::Horizontal);
        policy->addItem(square);
    } else {
        innerLayout = new QGraphicsLinearLayout(Qt::Horizontal);
        static_cast<QGraphicsLinearLayout *>(innerLayout)->addItem(square);
    }
    innerLayout->setContentsMargins(0,0,0,0);

    QGraphicsLayoutItem *innerItem;
    if (putInnerWidgetInWidget) {
        QGraphicsWidget *innerWidget = new QGraphicsWidget;
        innerWidget->setLayout(innerLayout);
        innerItem = innerWidget;
    } else {
        innerItem = innerLayout;
    }

    if (useMLayout) {
        mpolicy->addItem(topSpacer, 0, 1);
        mpolicy->addItem(leftSpacer, 1, 0);
        mpolicy->addItem(rightSpacer, 1, 2);
        mpolicy->addItem(innerItem, 1, 1);
    } else {
        qlayout->addItem(topSpacer, 0, 1);
        qlayout->addItem(leftSpacer, 1, 0);
        qlayout->addItem(rightSpacer, 1, 2);
        qlayout->addItem(innerItem, 1, 1);
    }


    QCOMPARE(form->preferredSize(), QSizeF(500,500));
    QCOMPARE(form->effectiveSizeHint(Qt::PreferredSize, QSizeF(100,-1)), QSizeF(100,100));

    delete form;
}
void LanguagePage::createContent()
{
    MApplicationPage::createContent();
    pannableViewport()->setAcceptGesturesFromAnyDirection(true);

    setStyleName(inv("CommonApplicationPage"));

    QGraphicsWidget *panel = centralWidget();
    panel->setObjectName("panel");
    MLayout *layout = new MLayout(panel);

    MGridLayoutPolicy *policy = new MGridLayoutPolicy(layout);
    policy->setContentsMargins(0, 0, 0, 0);
    policy->setSpacing(0);

    comboBoxLanguage = new MComboBox;
    comboBoxLanguage->setObjectName("comboBoxLanguage");
    comboBoxLanguage->setStyleName(inv("CommonComboBox"));
    policy->addItem(comboBoxLanguage, 1, 1);

    comboBoxLcTime = new MComboBox;
    comboBoxLcTime->setObjectName("comboBoxLcTime");
    comboBoxLcTime->setStyleName(inv("CommonComboBox"));

    comboBoxLcTimeFormat24h = new MComboBox;
    comboBoxLcTimeFormat24h->setObjectName("comboBoxLcTimeFormat24h");
    comboBoxLcTimeFormat24h->setStyleName(inv("CommonComboBox"));

    comboBoxLcCollate = new MComboBox;
    comboBoxLcCollate->setObjectName("comboBoxLcCollate");
    comboBoxLcCollate->setStyleName(inv("CommonComboBox"));

    comboBoxLcNumeric = new MComboBox;
    comboBoxLcNumeric->setObjectName("comboBoxLcNumeric");
    comboBoxLcNumeric->setStyleName(inv("CommonComboBox"));

    comboBoxLcMonetary = new MComboBox;
    comboBoxLcMonetary->setObjectName("comboBoxLcMonetary");
    comboBoxLcMonetary->setStyleName(inv("CommonComboBox"));

    labelHaveGconf = new MLabel;
    labelHaveGconf->setObjectName("labelHaveGconf");
    labelHaveGconf->setStyleName(inv("CommonBodyText"));
    labelHaveGconf->setWordWrap(true);

    labelHaveIcu = new MLabel;
    labelHaveIcu->setObjectName("labelHaveIcu");
    labelHaveIcu->setStyleName(inv("CommonBodyText"));
    labelHaveIcu->setWordWrap(true);

    labelExampleNumber = new MLabel;
    labelExampleNumber->setObjectName("labelExampleNumber");
    labelExampleNumber->setStyleName(inv("CommonBodyText"));
    labelExampleNumber->setWordWrap(true);

    labelExampleDateTime = new MLabel;
    labelExampleDateTime->setObjectName("labelExampleDateTime");
    labelExampleDateTime->setStyleName(inv("CommonBodyText"));
    labelExampleDateTime->setWordWrap(true);

    labelExampleWeekNumber = new MLabel;
    labelExampleWeekNumber->setObjectName("labelExampleWeekNumber");
    labelExampleWeekNumber->setStyleName(inv("CommonBodyText"));
    labelExampleWeekNumber->setWordWrap(true);

    labelExampleCurrency = new MLabel;
    labelExampleCurrency->setObjectName("labelExampleCurrency");
    labelExampleCurrency->setStyleName(inv("CommonBodyText"));
    labelExampleCurrency->setWordWrap(true);

    labelExampleTranslation1 = new MLabel;
    labelExampleTranslation1->setObjectName("labelExampleTranslation1");
    labelExampleTranslation1->setStyleName(inv("CommonBodyText"));
    labelExampleTranslation1->setWordWrap(true);

    labelExampleTranslation2 = new MLabel;
    labelExampleTranslation2->setObjectName("labelExampleTranslation2");
    labelExampleTranslation2->setStyleName(inv("CommonBodyText"));
    labelExampleTranslation2->setWordWrap(true);

    labelExampleTranslation3 = new MLabel;
    labelExampleTranslation3->setObjectName("labelExampleTranslation3");
    labelExampleTranslation3->setStyleName(inv("CommonBodyText"));
    labelExampleTranslation3->setWordWrap(true);

    labelLtrTest = new MLabel;
    labelLtrTest->setObjectName("labelLtrTest");
    labelLtrTest->setStyleName(inv("CommonBodyText"));
    labelLtrTest->setWordWrap(true);

    labelRtlTest = new MLabel;
    labelRtlTest->setObjectName("labelRtlTest");
    labelRtlTest->setStyleName(inv("CommonBodyText"));
    labelRtlTest->setWordWrap(true);

    labelLtrTestRich = new MLabel;
    labelLtrTestRich->setObjectName("labelLtrTestRich");
    labelLtrTestRich->setStyleName(inv("CommonBodyText"));
    labelLtrTestRich->setWordWrap(true);

    labelRtlTestRich = new MLabel;
    labelRtlTestRich->setObjectName("labelRtlTestRich");
    labelRtlTestRich->setStyleName(inv("CommonBodyText"));
    labelRtlTestRich->setWordWrap(true);

    labelFontTest = new MLabel;
    labelFontTest->setObjectName("labelFontTest");
    labelFontTest->setStyleName(inv("CommonBodyText"));
    labelFontTest->setWordWrap(true);
    labelFontTest->setWordWrap(true);

    policy->addItem(comboBoxLcTime, 2, 1);
    policy->addItem(comboBoxLcTimeFormat24h, 3, 1);
    policy->addItem(comboBoxLcCollate, 4, 1);
    policy->addItem(comboBoxLcNumeric, 5, 1);
    policy->addItem(comboBoxLcMonetary, 6, 1);
    policy->addItem(labelHaveGconf, 7, 1);
    policy->addItem(labelHaveIcu, 8, 1);
    policy->addItem(labelExampleNumber, 9, 1);
    policy->addItem(labelExampleDateTime, 10, 1);
    policy->addItem(labelExampleWeekNumber, 11, 1);
    policy->addItem(labelExampleCurrency, 12, 1);
    policy->addItem(labelExampleTranslation1, 13, 1);
    policy->addItem(labelExampleTranslation2, 14, 1);
    policy->addItem(labelExampleTranslation3, 15, 1);
    policy->addItem(labelLtrTest, 16, 1);
    policy->addItem(labelRtlTest, 17, 1);
    policy->addItem(labelLtrTestRich, 18, 1);
    policy->addItem(labelRtlTestRich, 19, 1);
    policy->addItem(labelFontTest, 20, 1);

    retranslateUi();
}