aboutsummaryrefslogtreecommitdiff
path: root/demos/widgetsgallery/displaymodespage.cpp
diff options
context:
space:
mode:
authorMarcin Miklas <marcin.miklas@teleca.com>2010-11-18 13:16:39 +0100
committerDominik Kapusta <dominik.kapusta@teleca.com>2010-11-18 15:39:18 +0100
commit7dae2e78f8e0d09a6f2dd2a33fe19ef03eb6d4ce (patch)
treeeb4cbbf24d97df22527b0fb324e0cb3ef879bc5e /demos/widgetsgallery/displaymodespage.cpp
parentaf3698814f85f1dc08263a50505bc5cef2d8a67c (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.cpp39
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);
+}