diff options
author | Marcin Miklas <marcin.miklas@teleca.com> | 2010-11-18 13:16:39 +0100 |
---|---|---|
committer | Dominik Kapusta <dominik.kapusta@teleca.com> | 2010-11-18 15:39:18 +0100 |
commit | 7dae2e78f8e0d09a6f2dd2a33fe19ef03eb6d4ce (patch) | |
tree | eb4cbbf24d97df22527b0fb324e0cb3ef879bc5e /demos/widgetsgallery/displaymodespage.cpp | |
parent | af3698814f85f1dc08263a50505bc5cef2d8a67c (diff) |
Fixes: NB#203831 - There is no easy way to change the opacity of MNavigationBar.
RevBy: Dominik
Details: Added navigationBarOpacity property to MApplicationWindow.
This allow making navigationbar transparent in runtime,
which can be used to simulate videoGlobalAlpha.
Diffstat (limited to 'demos/widgetsgallery/displaymodespage.cpp')
-rw-r--r-- | demos/widgetsgallery/displaymodespage.cpp | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/demos/widgetsgallery/displaymodespage.cpp b/demos/widgetsgallery/displaymodespage.cpp index 9480340c..fa9ba469 100644 --- a/demos/widgetsgallery/displaymodespage.cpp +++ b/demos/widgetsgallery/displaymodespage.cpp @@ -32,6 +32,7 @@ #include <QGraphicsLinearLayout> #include <QStringList> #include <QTimer> +#include <QPropertyAnimation> DisplayModesPage::DisplayModesPage() : TemplatePage(TemplatePage::ApplicationView), @@ -42,7 +43,10 @@ DisplayModesPage::DisplayModesPage() lblWindowState(0), checkboxFullScreen(0), lblFullScreen(0), - fullScreenCheckboxLayout(0) + fullScreenCheckboxLayout(0), + checkboxNavigationBarTransparency(0), + lblNavigationBarTransparency(0), + navigationBarTransparencyLayout(0) { } @@ -86,12 +90,13 @@ void DisplayModesPage::createContent() connect(comboHomeButtonDisplayMode, SIGNAL(currentIndexChanged(int)), SLOT(changeHomeButtonDisplayMode(int))); + createWindowStateWidgets(); + lytButtons->addItem(comboNavigationBarDisplayMode); + lytButtons->addItem(navigationBarTransparencyLayout); lytButtons->addItem(comboHomeButtonDisplayMode); lytButtons->addItem(comboEscapeButtonDisplayMode); - createWindowStateWidgets(); - lytMain->addItem(lblDisplayMode); lytMain->addItem(lytButtons); lytMain->addItem(new MSeparator); @@ -127,6 +132,19 @@ void DisplayModesPage::createWindowStateWidgets() fullScreenCheckboxLayout->addItem(lblFullScreen); fullScreenCheckboxLayout->setAlignment(checkboxFullScreen, Qt::AlignCenter); fullScreenCheckboxLayout->setAlignment(lblFullScreen, Qt::AlignCenter); + + checkboxNavigationBarTransparency = new MButton; + checkboxNavigationBarTransparency->setViewType(MButton::checkboxType); + checkboxNavigationBarTransparency->setCheckable(true); + connect(checkboxNavigationBarTransparency, SIGNAL(toggled(bool)), SLOT(changeNavigationBarTransparency(bool))); + + lblNavigationBarTransparency = new MLabel; + + navigationBarTransparencyLayout = new QGraphicsLinearLayout(Qt::Horizontal); + navigationBarTransparencyLayout->addItem(checkboxNavigationBarTransparency); + navigationBarTransparencyLayout->addItem(lblNavigationBarTransparency); + navigationBarTransparencyLayout->setAlignment(checkboxNavigationBarTransparency, Qt::AlignCenter); + navigationBarTransparencyLayout->setAlignment(lblNavigationBarTransparency, Qt::AlignCenter); } void DisplayModesPage::addExampleActions() @@ -161,6 +179,9 @@ void DisplayModesPage::retranslateUi() //% "Full Screen" lblFullScreen->setText(qtTrId("xx_displaymodes_full_screen")); + //% "Navigation Bar Transparency" + lblNavigationBarTransparency->setText(qtTrId("xx_displaymodes_navigation_bar_transparency")); + retranslateDisplayModeComboBox(comboNavigationBarDisplayMode); retranslateDisplayModeComboBox(comboHomeButtonDisplayMode); retranslateDisplayModeComboBox(comboEscapeButtonDisplayMode); @@ -239,3 +260,15 @@ void DisplayModesPage::changeFullScreenMode(bool fullScreen) window->showNormal(); } } + +void DisplayModesPage::changeNavigationBarTransparency(bool transparent) +{ + QPropertyAnimation *animation = new QPropertyAnimation(this); + animation->setDuration(800); + animation->setEasingCurve(QEasingCurve::InOutCubic); + animation->setTargetObject(applicationWindow()); + animation->setPropertyName("navigationBarOpacity"); + animation->setStartValue(applicationWindow()->navigationBarOpacity()); + animation->setEndValue(transparent ? 0.5 : 1.0); + animation->start(QAbstractAnimation::DeleteWhenStopped); +} |