summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2018-06-07 18:00:39 +0300
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2018-06-11 06:10:13 +0000
commit014f0cf7dbfe89d7b024282a5b6d876de36c745d (patch)
tree1875848cd559689d696ec57592fe44f5f5752bca
parent7001801a34083601e8f8a693a0561002b035e5e6 (diff)
Fix tutorial dialog flickering when dragging to another screen
It's still unclear what the actual issue was, but copying paintEvent handling from about dialog, and making the dialog form more like about dialog, i.e. adding a layout to the dialog and setting one of the QLabels to have word wrap fixes the flickering. The fact that word wrap makes a difference likely means that the root cause is some Qt bug and this might break again when Qt version changes. Since tutorial dialog didn't have QLabel originally, removed text from checkbox and added a separate label for it. Task-number: QT3DS-939 Change-Id: If39d73851c5f7095bf630d4fe46446b81b9b4100 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Pasi Keränen <pasi.keranen@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
-rw-r--r--src/Authoring/Studio/Application/StudioTutorialWidget.cpp19
-rw-r--r--src/Authoring/Studio/Application/StudioTutorialWidget.ui445
2 files changed, 248 insertions, 216 deletions
diff --git a/src/Authoring/Studio/Application/StudioTutorialWidget.cpp b/src/Authoring/Studio/Application/StudioTutorialWidget.cpp
index 3ebd016c..b5b662e5 100644
--- a/src/Authoring/Studio/Application/StudioTutorialWidget.cpp
+++ b/src/Authoring/Studio/Application/StudioTutorialWidget.cpp
@@ -90,6 +90,7 @@ void StudioTutorialWidget::OnInitDialog(bool goToFileDialog)
m_imgIter++;
m_ui->studioTutorialShowAgain->setVisible(false);
+ m_ui->checkBoxLabel->setVisible(false);
if (*m_imgIter == m_welcomeImages->last() || m_imgIter == m_welcomeImages->end()) {
if (m_imgIter == m_welcomeImages->end())
m_imgIter--;
@@ -100,6 +101,7 @@ void StudioTutorialWidget::OnInitDialog(bool goToFileDialog)
if (m_imgIter == m_welcomeImages->begin()) {
m_ui->studioTutorialBack->setVisible(false);
m_ui->studioTutorialShowAgain->setVisible(true);
+ m_ui->checkBoxLabel->setVisible(true);
}
m_ui->studioTutorialOpen->setVisible(false);
m_ui->studioTutorialNew->setVisible(false);
@@ -115,14 +117,14 @@ void StudioTutorialWidget::OnInitDialog(bool goToFileDialog)
void StudioTutorialWidget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event)
- QPixmap pic = getScaledPic(m_imgIter);
-
- if (!m_palette) {
- m_palette = new QPalette;
- m_palette->setBrush(QPalette::Window, pic);
- setPalette(*m_palette);
- }
+ if (m_palette)
+ return;
+ m_palette = new QPalette;
+ QPixmap pic = getScaledPic(m_imgIter);
+ pic.setDevicePixelRatio(devicePixelRatio());
+ m_palette->setBrush(QPalette::Window, pic);
+ setPalette(*m_palette);
resize(pic.size());
setFixedSize(size());
}
@@ -136,6 +138,7 @@ void StudioTutorialWidget::handleFwd()
m_ui->studioTutorialBack->setVisible(true);
m_ui->studioTutorialShowAgain->setVisible(false);
+ m_ui->checkBoxLabel->setVisible(false);
}
if (*m_imgIter == m_welcomeImages->last()) {
@@ -158,6 +161,7 @@ void StudioTutorialWidget::handleBack()
m_ui->studioTutorialForward->setVisible(true);
m_ui->studioTutorialShowAgain->setVisible(false);
+ m_ui->checkBoxLabel->setVisible(false);
m_ui->studioTutorialOpen->setVisible(false);
m_ui->studioTutorialNew->setVisible(false);
@@ -166,6 +170,7 @@ void StudioTutorialWidget::handleBack()
if (*m_imgIter == m_welcomeImages->first()) {
m_ui->studioTutorialBack->setVisible(false);
m_ui->studioTutorialShowAgain->setVisible(true);
+ m_ui->checkBoxLabel->setVisible(true);
}
}
diff --git a/src/Authoring/Studio/Application/StudioTutorialWidget.ui b/src/Authoring/Studio/Application/StudioTutorialWidget.ui
index f7fe978c..2ec4fe7d 100644
--- a/src/Authoring/Studio/Application/StudioTutorialWidget.ui
+++ b/src/Authoring/Studio/Application/StudioTutorialWidget.ui
@@ -25,248 +25,275 @@
<property name="accessibleName">
<string>StudioTutorialWidget</string>
</property>
- <widget class="QWidget" name="verticalWidget" native="true">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>1440</width>
- <height>900</height>
- </rect>
+ <layout class="QGridLayout" name="gridLayout">
+ <property name="leftMargin">
+ <number>0</number>
</property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <property name="spacing">
- <number>0</number>
- </property>
- <item>
- <layout class="QHBoxLayout" name="checkboxLayout">
- <property name="sizeConstraint">
- <enum>QLayout::SetNoConstraint</enum>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item row="0" column="0">
+ <widget class="QWidget" name="verticalWidget" native="true">
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <property name="spacing">
+ <number>0</number>
</property>
<item>
- <widget class="QCheckBox" name="studioTutorialShowAgain">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
+ <layout class="QHBoxLayout" name="checkboxLayout">
+ <property name="sizeConstraint">
+ <enum>QLayout::SetNoConstraint</enum>
</property>
- <property name="accessibleName">
- <string>studioTutorialShowAgain</string>
- </property>
- <property name="text">
- <string>Do Not Show This Again</string>
- </property>
- </widget>
+ <item>
+ <widget class="QCheckBox" name="studioTutorialShowAgain">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="accessibleName">
+ <string>studioTutorialShowAgain</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="checkBoxLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Do Not Show This Again</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>16</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_3">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>16</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
</item>
<item>
- <spacer name="verticalSpacer_2">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeType">
- <enum>QSizePolicy::Fixed</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>16</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <spacer name="horizontalSpacer_3">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>16</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QWidget" name="topBar" native="true">
- <layout class="QHBoxLayout" name="topBarLayout">
- <property name="spacing">
- <number>0</number>
- </property>
- <property name="sizeConstraint">
- <enum>QLayout::SetMaximumSize</enum>
- </property>
- <property name="leftMargin">
- <number>0</number>
- </property>
- <property name="topMargin">
- <number>0</number>
- </property>
- <property name="rightMargin">
- <number>0</number>
- </property>
- <property name="bottomMargin">
- <number>0</number>
- </property>
- <item>
- <widget class="QPushButton" name="studioTutorialBack">
- <property name="maximumSize">
- <size>
- <width>39</width>
- <height>39</height>
- </size>
- </property>
- <property name="focusPolicy">
- <enum>Qt::NoFocus</enum>
- </property>
- <property name="accessibleName">
- <string>studioTutorialBack</string>
- </property>
- <property name="text">
- <string/>
- </property>
- <property name="icon">
- <iconset resource="../images.qrc">
- <normaloff>:/images/Tutorial/button_back.png</normaloff>:/images/Tutorial/button_back.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>39</width>
- <height>39</height>
- </size>
- </property>
- <property name="flat">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer_2">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>QSizePolicy::Expanding</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>323</width>
- <height>46</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QPushButton" name="studioTutorialForward">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maximumSize">
- <size>
- <width>39</width>
- <height>39</height>
- </size>
- </property>
- <property name="focusPolicy">
- <enum>Qt::NoFocus</enum>
- </property>
- <property name="accessibleName">
- <string>StudioTutorialWidget</string>
- </property>
- <property name="text">
- <string/>
+ <widget class="QWidget" name="topBar" native="true">
+ <layout class="QHBoxLayout" name="topBarLayout">
+ <property name="spacing">
+ <number>0</number>
</property>
- <property name="icon">
- <iconset resource="../images.qrc">
- <normaloff>:/images/Tutorial/button_next.png</normaloff>:/images/Tutorial/button_next.png</iconset>
+ <property name="sizeConstraint">
+ <enum>QLayout::SetMaximumSize</enum>
</property>
- <property name="iconSize">
- <size>
- <width>39</width>
- <height>39</height>
- </size>
+ <property name="leftMargin">
+ <number>0</number>
</property>
- <property name="flat">
- <bool>true</bool>
+ <property name="topMargin">
+ <number>0</number>
</property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item>
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QWidget" name="bottomBar" native="true">
- <layout class="QHBoxLayout" name="bottomBarLayout">
- <property name="sizeConstraint">
- <enum>QLayout::SetMaximumSize</enum>
- </property>
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
+ <property name="rightMargin">
+ <number>0</number>
</property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
+ <property name="bottomMargin">
+ <number>0</number>
</property>
- </spacer>
- </item>
- <item>
- <layout class="QVBoxLayout" name="buttons">
<item>
- <widget class="QPushButton" name="studioTutorialOpen">
+ <widget class="QPushButton" name="studioTutorialBack">
+ <property name="maximumSize">
+ <size>
+ <width>39</width>
+ <height>39</height>
+ </size>
+ </property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="accessibleName">
- <string>studioTutorialOpen</string>
+ <string>studioTutorialBack</string>
</property>
<property name="text">
- <string>Open Sample Project</string>
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="../images.qrc">
+ <normaloff>:/images/Tutorial/button_back.png</normaloff>:/images/Tutorial/button_back.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>39</width>
+ <height>39</height>
+ </size>
+ </property>
+ <property name="flat">
+ <bool>true</bool>
</property>
</widget>
</item>
<item>
- <widget class="QPushButton" name="studioTutorialNew">
+ <spacer name="horizontalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>323</width>
+ <height>46</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="studioTutorialForward">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>39</width>
+ <height>39</height>
+ </size>
+ </property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="accessibleName">
- <string>studioTutorialNew</string>
+ <string>StudioTutorialWidget</string>
</property>
<property name="text">
- <string>Create New</string>
+ <string/>
+ </property>
+ <property name="icon">
+ <iconset resource="../images.qrc">
+ <normaloff>:/images/Tutorial/button_next.png</normaloff>:/images/Tutorial/button_next.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>39</width>
+ <height>39</height>
+ </size>
+ </property>
+ <property name="flat">
+ <bool>true</bool>
</property>
</widget>
</item>
</layout>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </widget>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QWidget" name="bottomBar" native="true">
+ <layout class="QHBoxLayout" name="bottomBarLayout">
+ <property name="sizeConstraint">
+ <enum>QLayout::SetMaximumSize</enum>
+ </property>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="buttons">
+ <item>
+ <widget class="QPushButton" name="studioTutorialOpen">
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="accessibleName">
+ <string>studioTutorialOpen</string>
+ </property>
+ <property name="text">
+ <string>Open Sample Project</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="studioTutorialNew">
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="accessibleName">
+ <string>studioTutorialNew</string>
+ </property>
+ <property name="text">
+ <string>Create New</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
</widget>
<resources>
<include location="../images.qrc"/>