diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2018-09-19 17:03:41 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@qt.io> | 2018-09-20 04:45:26 +0000 |
commit | 3ec0d129ab9d0237f0afb8421a422cabee4f6977 (patch) | |
tree | bdba4f8bec3b1542a7ba0ff8446ad7c5cad37578 | |
parent | ed5ee58f2ef389054560615c3420d7e13dec6877 (diff) |
Update welcome screen
Welcome screen is now simply a single screen instead of a multi-screen
tutorial. A button was added to open getting started documentation.
Note: Font family is not correct, to be fixed later.
Task-number: QT3DS-2239
Change-Id: I98e8d07d72ce33c433a187d989f36d10d09a4ec8
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
40 files changed, 456 insertions, 581 deletions
diff --git a/src/Authoring/Client/Code/Core/Utility/StudioPreferences.cpp b/src/Authoring/Client/Code/Core/Utility/StudioPreferences.cpp index 18632072..8a1f61ac 100644 --- a/src/Authoring/Client/Code/Core/Utility/StudioPreferences.cpp +++ b/src/Authoring/Client/Code/Core/Utility/StudioPreferences.cpp @@ -56,6 +56,7 @@ static QColor s_textColor; static QColor s_masterColor; static QColor s_disabledColor; static QColor s_dataInputColor; +static QLinearGradient s_welcomeBackgroundGradient; static QColor s_timelineRowColorNormal; static QColor s_timelineRowColorNormalProp; @@ -136,6 +137,10 @@ void CStudioPreferences::LoadPreferences() s_disabledColor = QColor("#727476"); s_dataInputColor = QColor("#ff5102"); + s_welcomeBackgroundGradient = QLinearGradient(0.0, 0.0, 1.0, 0.0); + s_welcomeBackgroundGradient.setColorAt(0.0, QColor("#343E55")); + s_welcomeBackgroundGradient.setColorAt(1.0, QColor("#000727")); + s_timelineRowColorNormal = QColor("#404040"); s_timelineRowColorNormalProp = QColor("#373737"); s_timelineRowColorOver = QColor("#4d4d4d"); @@ -849,6 +854,11 @@ QColor CStudioPreferences::dataInputColor() return s_dataInputColor; } +QLinearGradient CStudioPreferences::welcomeBackgroundGradient() +{ + return s_welcomeBackgroundGradient; +} + QColor CStudioPreferences::timelineRowColorNormal() { return s_timelineRowColorNormal; diff --git a/src/Authoring/Client/Code/Core/Utility/StudioPreferences.h b/src/Authoring/Client/Code/Core/Utility/StudioPreferences.h index ae8be55c..bd586629 100644 --- a/src/Authoring/Client/Code/Core/Utility/StudioPreferences.h +++ b/src/Authoring/Client/Code/Core/Utility/StudioPreferences.h @@ -33,6 +33,7 @@ #pragma once #include <qglobal.h> +#include <QtGui/qbrush.h> #include "CoreConst.h" #include "Qt3DSFile.h" @@ -163,6 +164,7 @@ public: static QColor masterColor(); static QColor disabledColor(); static QColor dataInputColor(); + static QLinearGradient welcomeBackgroundGradient(); static QColor timelineRowColorNormal(); static QColor timelineRowColorNormalProp(); diff --git a/src/Authoring/Studio/Application/StudioApp.cpp b/src/Authoring/Studio/Application/StudioApp.cpp index f7dc7b42..91b1ab92 100644 --- a/src/Authoring/Studio/Application/StudioApp.cpp +++ b/src/Authoring/Studio/Application/StudioApp.cpp @@ -310,9 +310,11 @@ bool CStudioApp::initInstance(const QCommandLineParser &parser) thePreferencesPath, CFilePath(L"Qt3DSComposer\\Preferences.setting")); CPreferences::SetPreferencesFile(thePreferencesPath); - // Initialize help file path - m_pszHelpFilePath = Qt3DSFile::GetApplicationDirectory().GetPath() + - Q3DStudio::CString("/../doc/qt3dstudio/qt3dstudio-index.html"); + // Initialize help file paths + m_helpFilePath = Qt3DSFile::GetApplicationDirectory().GetPath().toQString() + + QStringLiteral("/../doc/qt3dstudio/qt3dstudio-index.html"); + m_gettingStartedFilePath = Qt3DSFile::GetApplicationDirectory().GetPath().toQString() + + QStringLiteral("/../doc/qt3dstudio/getting-started.html"); CStudioPreferences::LoadPreferences(); @@ -393,83 +395,88 @@ bool CStudioApp::run(const QCommandLineParser &parser) bool CStudioApp::handleWelcomeRes(int res, bool recursive) { bool theReturn = true; + bool canceled = false; switch (res) { case StudioTutorialWidget::createNewResult: { - Qt3DSFile theFile(m_dialogs->GetNewDocumentChoice(getMostRecentProjectParentDir())); - if (theFile.GetPath() != "") { - if (!m_core->OnNewDocument(theFile, true)) { - // Invalid filename, show a message box and the startup dialog - showInvalidFilenameWarning(); - theReturn = showStartupDialog(); + if (PerformSavePrompt()) { + Qt3DSFile theFile(m_dialogs->GetNewDocumentChoice(getMostRecentProjectParentDir())); + if (theFile.GetPath() != "") { + if (!m_core->OnNewDocument(theFile, true)) { + // Invalid filename, show a message box and the startup dialog + showInvalidFilenameWarning(); + theReturn = showStartupDialog(); + } else { + theReturn = true; + m_welcomeShownThisSession = true; + } } else { - theReturn = true; - m_welcomeShownThisSession = true; + canceled = true; } } else { - // User Cancels the dialog. Show the welcome screen. - if (recursive) { - m_welcomeShownThisSession = false; - m_goStraightToWelcomeFileDialog = true; - theReturn = showStartupDialog(); - } else { - theReturn = false; - } + canceled = true; } } break; case StudioTutorialWidget::openSampleResult: { - // Try three options: - // - open a specific example .uip - // - failing that, show the main example root dir - // - failing all previous, show default Documents dir - QFileInfo filePath; - QString theFile(QStringLiteral(".")); + if (PerformSavePrompt()) { + // Try three options: + // - open a specific example .uip + // - failing that, show the main example root dir + // - failing all previous, show default Documents dir + QFileInfo filePath; + QString theFile(QStringLiteral(".")); #ifndef Q_OS_MACOS - filePath.setFile(Qt3DSFile::GetApplicationDirectory().GetPath().toQString() + - QStringLiteral("/../examples/studio3d/SampleProject")); - - if (!filePath.exists()) { filePath.setFile(Qt3DSFile::GetApplicationDirectory().GetPath().toQString() + - QStringLiteral("/../examples/studio3d")); -#else - filePath.setFile(Qt3DSFile::GetApplicationDirectory().GetPath().toQString() + - QStringLiteral("/../../../../examples/studio3d/SampleProject")); + QStringLiteral("/../examples/studio3d/SampleProject")); - if (!filePath.exists()) { + if (!filePath.exists()) { + filePath.setFile(Qt3DSFile::GetApplicationDirectory().GetPath().toQString() + + QStringLiteral("/../examples/studio3d")); +#else filePath.setFile(Qt3DSFile::GetApplicationDirectory().GetPath().toQString() + - QStringLiteral("/../../../../examples/studio3d")); -#endif + QStringLiteral("/../../../../examples/studio3d/SampleProject")); + if (!filePath.exists()) { - filePath.setFile(QStandardPaths::writableLocation( - QStandardPaths::DocumentsLocation)); + filePath.setFile(Qt3DSFile::GetApplicationDirectory().GetPath().toQString() + + QStringLiteral("/../../../../examples/studio3d")); +#endif + if (!filePath.exists()) { + filePath.setFile(QStandardPaths::writableLocation( + QStandardPaths::DocumentsLocation)); + } + theFile = m_dialogs->GetFileOpenChoice(filePath.absoluteFilePath()); + } else { + theFile = filePath.absoluteFilePath() + QStringLiteral("/SampleProject.uip"); } - theFile = m_dialogs->GetFileOpenChoice(filePath.absoluteFilePath()); - } else { - theFile = filePath.absoluteFilePath() + QStringLiteral("/SampleProject.uip"); - } - if (!theFile.isEmpty()) { - OnLoadDocument(theFile); - theReturn = true; - m_welcomeShownThisSession = true; - } else { - // User Cancels the dialog. Show the welcome screen. - if (recursive) { - m_welcomeShownThisSession = false; - m_goStraightToWelcomeFileDialog = true; - theReturn = showStartupDialog(); + if (!theFile.isEmpty()) { + OnLoadDocument(theFile); + theReturn = true; + m_welcomeShownThisSession = true; } else { - theReturn = false; + canceled = true; } + } else { + canceled = true; } } break; - default: - ASSERT(false); // Should not reach this block. + // Welcome screen was simply closed theReturn = false; break; } + + if (canceled) { + // User Cancels the dialog. Show the welcome screen. + if (recursive) { + m_welcomeShownThisSession = false; + m_goStraightToWelcomeFileDialog = true; + theReturn = showStartupDialog(); + } else { + theReturn = false; + } + } return theReturn; } @@ -527,7 +534,7 @@ bool CStudioApp::showStartupDialog() } if (show) { - StudioTutorialWidget tutorial(m_pMainWnd, m_goStraightToWelcomeFileDialog, true); + StudioTutorialWidget tutorial(m_pMainWnd); welcomeRes = tutorial.exec(); } } diff --git a/src/Authoring/Studio/Application/StudioApp.h b/src/Authoring/Studio/Application/StudioApp.h index c4b10ca9..e91be9e8 100644 --- a/src/Authoring/Studio/Application/StudioApp.h +++ b/src/Authoring/Studio/Application/StudioApp.h @@ -95,6 +95,7 @@ public: #if (defined Q_OS_MACOS) void openApplication(const QString &inFilename); #endif + bool handleWelcomeRes(int res, bool recursive); public Q_SLOTS: void handleMessageReceived(const QString &message, QObject *socket); @@ -108,7 +109,6 @@ protected: bool isNewProject = true); void initCore(); bool showStartupDialog(); - bool handleWelcomeRes(int res, bool recursive); QString resolvePresentationFile(const QString &inFile); CCore *m_core; @@ -249,7 +249,8 @@ public: void OnNewPresentation() override; void OnPresentationModifiedExternally() override; - Q3DStudio::CString m_pszHelpFilePath; + QString m_helpFilePath; + QString m_gettingStartedFilePath; QVector<SubPresentationRecord> m_subpresentations; QMap<QString, CDataInputDialogItem *> m_dataInputDialogItems; diff --git a/src/Authoring/Studio/Application/StudioTutorialWidget.cpp b/src/Authoring/Studio/Application/StudioTutorialWidget.cpp index c6240531..bb80e7bf 100644 --- a/src/Authoring/Studio/Application/StudioTutorialWidget.cpp +++ b/src/Authoring/Studio/Application/StudioTutorialWidget.cpp @@ -28,165 +28,69 @@ #include "StudioTutorialWidget.h" #include "ui_StudioTutorialWidget.h" #include "StudioUtils.h" +#include "StudioApp.h" +#include "StudioPreferences.h" #include <QtWidgets/qdesktopwidget.h> #include <QtGui/qpainter.h> +#include <QtGui/qbrush.h> +#include <QtCore/qtimer.h> +#include <QtGui/qdesktopservices.h> +#include <QtCore/qurl.h> -StudioTutorialWidget::StudioTutorialWidget(QWidget *parent, bool goToFileDialog, - bool showProjectButtons) : +StudioTutorialWidget::StudioTutorialWidget(QWidget *parent) : QDialog(parent, Qt::MSWindowsFixedSizeDialogHint), - m_ui(new Ui::StudioTutorialWidget), - m_welcomeImages(0), - m_imgIter(0), - m_palette(0), - m_displayScale(1.0), - m_showProjectButtons(showProjectButtons) + m_ui(new Ui::StudioTutorialWidget) { m_ui->setupUi(this); - connect(m_ui->studioTutorialBack, &QPushButton::clicked, this, - &StudioTutorialWidget::handleBack); - connect(m_ui->studioTutorialForward, &QPushButton::clicked, this, - &StudioTutorialWidget::handleFwd); - connect(m_ui->pageIndicator, &StudioTutorialPageIndicator::indexChanged, this, - &StudioTutorialWidget::handleIndexChange); connect(m_ui->studioTutorialShowAgain, &QCheckBox::stateChanged, this, &StudioTutorialWidget::handleDoNotShowAgainChange); connect(m_ui->studioTutorialNew, &QPushButton::clicked, this, &StudioTutorialWidget::handleCreateNew); connect(m_ui->studioTutorialOpen, &QPushButton::clicked, this, &StudioTutorialWidget::handleOpenSample); + connect(m_ui->studioTutorialQuickStart, &QPushButton::clicked, this, + &StudioTutorialWidget::handleQuickStartGuide); - OnInitDialog(goToFileDialog); + QTimer::singleShot(0, this, &StudioTutorialWidget::OnInitDialog); - if (m_showProjectButtons) - m_ui->studioTutorialNew->setText(tr("Create New")); - else - m_ui->studioTutorialNew->setText(tr("OK")); + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); } StudioTutorialWidget::~StudioTutorialWidget() { delete m_ui; - delete m_welcomeImages; - delete m_palette; + delete m_backgroundPalette; } -void StudioTutorialWidget::OnInitDialog(bool goToFileDialog) +void StudioTutorialWidget::OnInitDialog() { - m_welcomeImages = new QList<QString>(); - - // populate welcome screen images - getImageList(); - m_imgIter = m_welcomeImages->begin(); - m_imgIterPrev = m_imgIter; - m_pageOutPixmap = getScaledPic(m_imgIterPrev); - m_pageInPixmap = getScaledPic(m_imgIter); - m_backgroundPixmap = QPixmap(":/images/Tutorial/background.png"); - - // based on background PNG, get the scale that we need to fit welcome - // screen and buttons comfortably on display - m_displayScale = getDisplayScalingForImage(m_backgroundPixmap); - QSize backgroundSize = m_backgroundPixmap.size(); + QSize backgroundSize = size(); QRect screenRect = QApplication::desktop()->availableGeometry( QApplication::desktop()->screenNumber(this)); QSize windowSize = screenRect.size(); - m_ui->verticalWidget->setFixedSize(backgroundSize); - move(screenRect.x() + (windowSize.width() - backgroundSize.width()) / 2, screenRect.y() + (windowSize.height() - backgroundSize.height()) / 2); - // do we go straight to last page with file dialog buttons? - int initPage = goToFileDialog ? m_welcomeImages->size() - 1 : 0; - m_imgIter = m_welcomeImages->begin() + initPage; - updateButtons(); + setFixedSize(backgroundSize); QSettings settings; m_ui->studioTutorialShowAgain->setChecked(!settings.value("showWelcomeScreen").toBool()); - - setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); -} - -void StudioTutorialWidget::paintEvent(QPaintEvent *event) -{ - Q_UNUSED(event) - - QPainter painter(this); - - if (!m_palette) { - m_palette = new QPalette; - m_palette->setBrush(QPalette::Window, m_backgroundPixmap); - setPalette(*m_palette); - resize(m_backgroundPixmap.size()); - setFixedSize(size()); - } - - // Make tutorial images to scale to full background width, vertically centered, - // while keeping correct aspect ratio - qreal aspectRatio = (qreal) m_pageInPixmap.height() / m_pageInPixmap.width(); - int rectHeight = size().width() * aspectRatio; - QRect rect(0, (size().height() / 2) - (rectHeight / 2), - size().width(), rectHeight); - - qreal pageOutOpacity = 1.0 - m_pageInOpacity; - - if (pageOutOpacity > 0.0) { - painter.setOpacity(pageOutOpacity); - painter.drawPixmap(rect, m_pageOutPixmap); - } - if (m_pageInOpacity > 0.0) { - painter.setOpacity(m_pageInOpacity); - painter.drawPixmap(rect, m_pageInPixmap); - } - - if (m_pageInOpacity < 1.0) { - // Page switching animation still going on - qreal opacityAnimationStep = qreal(m_opacityTime.restart()) / 300.0; - m_pageInOpacity += opacityAnimationStep; - m_pageInOpacity = qMin(m_pageInOpacity, 1.0); - update(); - } -} - -void StudioTutorialWidget::animateInOut() -{ - m_pageOutPixmap = getScaledPic(m_imgIterPrev); - m_pageInPixmap = getScaledPic(m_imgIter); - m_pageInOpacity = 0.0; - m_opacityTime.start(); - update(); -} - -void StudioTutorialWidget::handleFwd() -{ - if (*m_imgIter != m_welcomeImages->last()) { - m_imgIterPrev = m_imgIter; - m_imgIter++; - updateButtons(); - animateInOut(); - } -} - -void StudioTutorialWidget::handleBack() -{ - if (*m_imgIter != m_welcomeImages->first()) { - m_imgIterPrev = m_imgIter; - m_imgIter--; - updateButtons(); - animateInOut(); - } + m_backgroundPalette = new QPalette(palette()); + QPixmap background(size()); + QPainter backgroundPainter(&background); + QLinearGradient gradient = CStudioPreferences::welcomeBackgroundGradient(); + gradient.setFinalStop(background.width(), 0.0); + backgroundPainter.fillRect(background.rect(), gradient); + QPixmap laptop(":/images/welcomedialog/laptop.png"); + backgroundPainter.drawPixmap(0, 100, laptop.width(), laptop.height(), laptop); + backgroundPainter.end(); + m_backgroundPalette->setBrush(backgroundRole(), QBrush(background)); + setAutoFillBackground(true); + setPalette(*m_backgroundPalette); } -void StudioTutorialWidget::handleIndexChange(int index) -{ - index = qBound(0, index, m_welcomeImages->size() - 1); - if (index != page()) { - m_imgIterPrev = m_imgIter; - m_imgIter = m_welcomeImages->begin() + index; - updateButtons(); - animateInOut(); - } -} void StudioTutorialWidget::handleDoNotShowAgainChange(int state) { @@ -205,79 +109,9 @@ void StudioTutorialWidget::handleCreateNew() this->done(StudioTutorialWidget::createNewResult); } -void StudioTutorialWidget::getImageList() -{ - QString imagePath = QStringLiteral(":/images/Tutorial/screens/1x"); - - // Use @2x images for hiDPI displays - if (devicePixelRatio() > 1.0) - imagePath = QStringLiteral(":/images/Tutorial/screens/2x"); - - QDirIterator *it = new QDirIterator(imagePath, QDirIterator::NoIteratorFlags); - - while (it->hasNext()) - m_welcomeImages->append(it->next()); - - m_ui->pageIndicator->setCount(m_welcomeImages->size()); -} - -int StudioTutorialWidget::page() const +void StudioTutorialWidget::handleQuickStartGuide() { - int i = 0; - QList<QString>::iterator iter = m_welcomeImages->begin(); - while (iter != m_imgIter) { ++i; iter++; } - return i; -} - -QPixmap StudioTutorialWidget::getScaledPic(const QList<QString>::iterator &iter) -{ - QPixmap picOrig = QPixmap(*iter); - QPixmap pic = picOrig; - if (m_displayScale < 1.0) { - // Limit to the maximum size of @2x images - pic = picOrig.scaledToHeight(qMin(1200.0, m_displayScale * picOrig.height()), - Qt::SmoothTransformation); - } - - pic.setDevicePixelRatio(devicePixelRatio()); - return pic; -} - -qreal StudioTutorialWidget::getDisplayScalingForImage(const QPixmap &picOrig) -{ - // Note that high DPI scaling has an effect on the display - // resolution returned by QApplication::desktop()->availableGeometry(). - // DPI scaling factor is integer and taken from the primary screen. - // When running studio on secondary monitor with different DPI, - // or running it on primary with non-integer scaling, we might - // get different dialog size than intended. - QSize displaySize = QApplication::desktop()->availableGeometry( - QApplication::desktop()->screenNumber(this)).size(); - - // Scale down if images do not fit on screen, otherwise use - // 1:1 PNGs to avoid scaling artifacts. Scale to 90% of the display size if scaling is needed. - if (picOrig.height() > displaySize.height() || picOrig.width() > displaySize.width()) { - QSize picScaledSize = picOrig.size(); - picScaledSize.scale(displaySize * 0.9, Qt::KeepAspectRatio); - m_displayScale = qMin((qreal)picScaledSize.height() / (qreal)picOrig.height(), - (qreal)picScaledSize.width() / (qreal)picOrig.width()); - return m_displayScale; - } else { - return 1.0; - } -} - -void StudioTutorialWidget::updateButtons() -{ - bool isFirst = (*m_imgIter == m_welcomeImages->first()); - bool isLast = (*m_imgIter == m_welcomeImages->last()); - - m_ui->studioTutorialBack->setVisible(!isFirst); - m_ui->studioTutorialForward->setVisible(!isLast); - m_ui->studioTutorialOpen->setVisible(isLast && m_showProjectButtons); - m_ui->studioTutorialNew->setVisible(isLast); - m_ui->studioTutorialShowAgain->setVisible(isFirst); - m_ui->checkBoxLabel->setVisible(isFirst); - - m_ui->pageIndicator->setCurrentIndex(page()); + QFile theFile(g_StudioApp.m_gettingStartedFilePath); + if (theFile.exists()) + QDesktopServices::openUrl(QUrl::fromLocalFile(theFile.fileName())); } diff --git a/src/Authoring/Studio/Application/StudioTutorialWidget.h b/src/Authoring/Studio/Application/StudioTutorialWidget.h index e55f5efb..8cd8ca0f 100644 --- a/src/Authoring/Studio/Application/StudioTutorialWidget.h +++ b/src/Authoring/Studio/Application/StudioTutorialWidget.h @@ -51,7 +51,7 @@ class StudioTutorialWidget : public QDialog { Q_OBJECT public: - explicit StudioTutorialWidget(QWidget *parent, bool goToFileDialog, bool showProjectButtons); + explicit StudioTutorialWidget(QWidget *parent); ~StudioTutorialWidget(); @@ -63,42 +63,17 @@ public: }; protected: - void paintEvent(QPaintEvent *event) override; - void OnInitDialog(bool goToFileDialog); + void OnInitDialog(); public: - void handleFwd(); - void handleBack(); - void handleIndexChange(int index); void handleDoNotShowAgainChange(int state); void handleOpenSample(); void handleCreateNew(); - int page() const; + void handleQuickStartGuide(); private: Ui::StudioTutorialWidget *m_ui; - - QList<QString> *m_welcomeImages; - QList<QString>::iterator m_imgIter; - QList<QString>::iterator m_imgIterPrev; - - QPalette *m_palette; - QPixmap m_pageInPixmap; - QPixmap m_pageOutPixmap; - QPixmap m_backgroundPixmap; - - qreal m_displayScale; - qreal m_pageInOpacity = 0.0; - QTime m_opacityTime; - - bool m_showProjectButtons; - - void getImageList(); - void updateButtons(); - void animateInOut(); - - QPixmap getScaledPic(const QList<QString>::iterator &iter); - qreal getDisplayScalingForImage(const QPixmap &picOrig); + QPalette *m_backgroundPalette = nullptr; }; #endif // STUDIOTUTORIALWIDGET_H diff --git a/src/Authoring/Studio/Application/StudioTutorialWidget.ui b/src/Authoring/Studio/Application/StudioTutorialWidget.ui index f7e9dd64..f251cc7b 100644 --- a/src/Authoring/Studio/Application/StudioTutorialWidget.ui +++ b/src/Authoring/Studio/Application/StudioTutorialWidget.ui @@ -14,7 +14,7 @@ </rect> </property> <property name="sizePolicy"> - <sizepolicy hsizetype="Maximum" vsizetype="Maximum"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> @@ -25,7 +25,10 @@ <property name="accessibleName"> <string>StudioTutorialWidget</string> </property> - <layout class="QGridLayout" name="gridLayout"> + <layout class="QVBoxLayout" name="verticalLayout"> + <property name="spacing"> + <number>0</number> + </property> <property name="leftMargin"> <number>0</number> </property> @@ -38,186 +41,58 @@ <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> - <layout class="QHBoxLayout" name="checkboxLayout"> - <property name="sizeConstraint"> - <enum>QLayout::SetNoConstraint</enum> + <item> + <widget class="QWidget" name="studioTutorialBackground" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="autoFillBackground"> + <bool>false</bool> + </property> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0"> + <widget class="QWidget" name="CheckboxLayout" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> </property> - <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> - <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> + <layout class="QHBoxLayout" name="horizontalLayout_2"> <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> + <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>studioTutorialBack</string> + <string>studioTutorialShowAgain</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"> + <widget class="QLabel" name="checkBoxLabel"> <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <sizepolicy hsizetype="Expanding" 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/> + <string>Do Not Show This Again</string> </property> - <property name="icon"> - <iconset resource="../images.qrc"> - <normaloff>:/images/Tutorial/button_next.png</normaloff>:/images/Tutorial/button_next.png</iconset> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> </property> - <property name="iconSize"> - <size> - <width>39</width> - <height>39</height> - </size> - </property> - <property name="flat"> + <property name="wordWrap"> <bool>true</bool> </property> </widget> @@ -225,11 +100,14 @@ </layout> </widget> </item> - <item> - <spacer name="verticalSpacer"> + <item row="0" column="1"> + <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> @@ -238,102 +116,275 @@ </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> - <widget class="QWidget" name="leftSpacer"> - <property name="minimumSize"> - <size> - <width>160</width> - <height>80</height> - </size> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </spacer> - </item> - <item> - <widget class="StudioTutorialPageIndicator" name="pageIndicator" native="true"> - <property name="minimumSize"> - <size> - <width>200</width> - <height>40</height> - </size> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - </spacer> - </item> - <item> - <widget class="QWidget" name="buttonsArea" native="true"> - <property name="minimumSize"> - <size> - <width>160</width> - <height>80</height> - </size> - </property> - <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> + <item row="1" column="1"> + <spacer name="verticalSpacer_4"> + <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>150</height> + </size> + </property> + </spacer> + </item> + <item row="2" column="0"> + <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>700</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="2" column="1"> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <item> + <widget class="QWidget" name="studioLabel" native="true"> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <spacer name="horizontalSpacer_6"> + <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> + <widget class="QLabel" name="studioTutorialWelcome"> + <property name="font"> + <font> + <family>Titillium Web</family> + <pointsize>24</pointsize> + </font> + </property> + <property name="text"> + <string>Welcome to</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="studioTutorialName"> + <property name="font"> + <font> + <family>Titillium Web</family> + <pointsize>24</pointsize> + </font> + </property> + <property name="text"> + <string>Qt 3D Studio</string> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_5"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="verticalSpacer_3"> + <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>10</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QWidget" name="buttonsContainer" native="true"> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <item> + <spacer name="horizontalSpacer_3"> + <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> + <widget class="QWidget" name="buttonsArea" native="true"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>160</width> + <height>80</height> + </size> + </property> + <layout class="QVBoxLayout" name="buttons"> + <property name="spacing"> + <number>18</number> </property> - </widget> - </item> - </layout> - </widget> - </item> - </layout> - </widget> + <item> + <widget class="QPushButton" name="studioTutorialQuickStart"> + <property name="minimumSize"> + <size> + <width>300</width> + <height>50</height> + </size> + </property> + <property name="font"> + <font> + <pointsize>24</pointsize> + </font> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="accessibleName"> + <string>studioTutorialNew</string> + </property> + <property name="text"> + <string>Quick Start Guide</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="studioTutorialOpen"> + <property name="minimumSize"> + <size> + <width>300</width> + <height>50</height> + </size> + </property> + <property name="font"> + <font> + <pointsize>24</pointsize> + </font> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="accessibleName"> + <string>studioTutorialOpen</string> + </property> + <property name="text"> + <string>Open Example Project</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="studioTutorialNew"> + <property name="minimumSize"> + <size> + <width>300</width> + <height>50</height> + </size> + </property> + <property name="font"> + <font> + <pointsize>24</pointsize> + </font> + </property> + <property name="focusPolicy"> + <enum>Qt::NoFocus</enum> + </property> + <property name="accessibleName"> + <string>studioTutorialNew</string> + </property> + <property name="text"> + <string>Create New Project</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_4"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + </layout> + </item> + <item row="2" column="2"> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>80</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="3" column="0"> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>250</height> + </size> + </property> + </spacer> </item> </layout> </widget> </item> </layout> </widget> - <customwidgets> - <customwidget> - <class>StudioTutorialPageIndicator</class> - <extends>QWidget</extends> - <header>StudioTutorialPageIndicator.h</header> - <container>1</container> - </customwidget> - </customwidgets> - <resources> - <include location="../images.qrc"/> - </resources> + <resources/> <connections/> </ui> diff --git a/src/Authoring/Studio/MainFrm.cpp b/src/Authoring/Studio/MainFrm.cpp index 1862e256..e1ba46b6 100644 --- a/src/Authoring/Studio/MainFrm.cpp +++ b/src/Authoring/Studio/MainFrm.cpp @@ -1717,7 +1717,7 @@ void CMainFrame::OnViewTooltips() */ void CMainFrame::OnUpdateHelpIndex() { - QFile theFile(g_StudioApp.m_pszHelpFilePath.toQString()); + QFile theFile(g_StudioApp.m_helpFilePath); m_ui->action_Reference_Manual->setEnabled(theFile.exists()); } @@ -1727,7 +1727,7 @@ void CMainFrame::OnUpdateHelpIndex() */ void CMainFrame::OnHelpIndex() { - QFile theFile(g_StudioApp.m_pszHelpFilePath.toQString()); + QFile theFile(g_StudioApp.m_helpFilePath); if (theFile.exists()) QDesktopServices::openUrl(QUrl::fromLocalFile(theFile.fileName())); } @@ -1747,8 +1747,9 @@ void CMainFrame::OnHelpVisitQt() */ void CMainFrame::OnHelpOpenTutorial() { - StudioTutorialWidget tutorial(this, false, false); - tutorial.exec(); + StudioTutorialWidget tutorial(this); + int welcomeRes = tutorial.exec(); + g_StudioApp.handleWelcomeRes(welcomeRes, false); } //============================================================================== diff --git a/src/Authoring/Studio/MainFrm.ui b/src/Authoring/Studio/MainFrm.ui index 7d9c0aae..6e4ca810 100644 --- a/src/Authoring/Studio/MainFrm.ui +++ b/src/Authoring/Studio/MainFrm.ui @@ -45,7 +45,7 @@ Project palette using Import functionality.</string> <x>0</x> <y>0</y> <width>1800</width> - <height>22</height> + <height>21</height> </rect> </property> <widget class="QMenu" name="menu_File"> @@ -274,7 +274,7 @@ Project palette using Import functionality.</string> </action> <action name="action_Open_Tutorial"> <property name="text"> - <string>&Open Tutorial...</string> + <string>&Show Welcome Screen...</string> </property> </action> <action name="actionSet_Changed_Keyframes"> diff --git a/src/Authoring/Studio/images.qrc b/src/Authoring/Studio/images.qrc index 3f2d3c5c..7e0367fb 100644 --- a/src/Authoring/Studio/images.qrc +++ b/src/Authoring/Studio/images.qrc @@ -230,10 +230,6 @@ <file>images/client_tools_hi_color-06@2x.png</file> <file>images/prefstab-00@2x.png</file> <file>images/playback_tools_low-03@2x.png</file> - <file>images/Tutorial/button_back.png</file> - <file>images/Tutorial/button_next.png</file> - <file>images/Tutorial/button_back@2x.png</file> - <file>images/Tutorial/button_next@2x.png</file> <file>images/Objects-edit-disabled.png</file> <file>images/Objects-edit-disabled@2x.png</file> <file>images/Objects-edit-normal.png</file> @@ -257,30 +253,6 @@ <file>images/zoom_out@2x.png</file> <file>images/zoom_in.png</file> <file>images/zoom_in@2x.png</file> - <file>images/Tutorial/background.png</file> - <file>images/Tutorial/background@2x.png</file> - <file>images/Tutorial/dot_active.png</file> - <file>images/Tutorial/dot_active@2x.png</file> - <file>images/Tutorial/dot_inactive.png</file> - <file>images/Tutorial/dot_inactive@2x.png</file> - <file>images/Tutorial/screens/1x/1.png</file> - <file>images/Tutorial/screens/1x/2.png</file> - <file>images/Tutorial/screens/1x/3.png</file> - <file>images/Tutorial/screens/1x/4.png</file> - <file>images/Tutorial/screens/1x/5.png</file> - <file>images/Tutorial/screens/1x/6.png</file> - <file>images/Tutorial/screens/1x/7.png</file> - <file>images/Tutorial/screens/1x/8.png</file> - <file>images/Tutorial/screens/1x/9.png</file> - <file>images/Tutorial/screens/2x/1.png</file> - <file>images/Tutorial/screens/2x/2.png</file> - <file>images/Tutorial/screens/2x/3.png</file> - <file>images/Tutorial/screens/2x/4.png</file> - <file>images/Tutorial/screens/2x/5.png</file> - <file>images/Tutorial/screens/2x/6.png</file> - <file>images/Tutorial/screens/2x/7.png</file> - <file>images/Tutorial/screens/2x/8.png</file> - <file>images/Tutorial/screens/2x/9.png</file> <file>images/remote.png</file> <file>images/remote@2x.png</file> <file>images/remote-disabled.png</file> @@ -299,6 +271,7 @@ <file>images/qml_used@2x.png</file> <file>images/Toggle-HideShowControlled.png</file> <file>images/Toggle-HideShowControlled@2x.png</file> + <file>images/welcomedialog/laptop.png</file> </qresource> <qresource prefix="/startup"> <file alias="open_dialog.png">images/open_dialog.png</file> diff --git a/src/Authoring/Studio/images/Tutorial/background.png b/src/Authoring/Studio/images/Tutorial/background.png Binary files differdeleted file mode 100644 index 374eb982..00000000 --- a/src/Authoring/Studio/images/Tutorial/background.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/background@2x.png b/src/Authoring/Studio/images/Tutorial/background@2x.png Binary files differdeleted file mode 100644 index d6235212..00000000 --- a/src/Authoring/Studio/images/Tutorial/background@2x.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/button_back.png b/src/Authoring/Studio/images/Tutorial/button_back.png Binary files differdeleted file mode 100644 index 8113df5b..00000000 --- a/src/Authoring/Studio/images/Tutorial/button_back.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/button_back@2x.png b/src/Authoring/Studio/images/Tutorial/button_back@2x.png Binary files differdeleted file mode 100644 index ec6a2f13..00000000 --- a/src/Authoring/Studio/images/Tutorial/button_back@2x.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/button_next.png b/src/Authoring/Studio/images/Tutorial/button_next.png Binary files differdeleted file mode 100644 index 857dcada..00000000 --- a/src/Authoring/Studio/images/Tutorial/button_next.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/button_next@2x.png b/src/Authoring/Studio/images/Tutorial/button_next@2x.png Binary files differdeleted file mode 100644 index f32c4f26..00000000 --- a/src/Authoring/Studio/images/Tutorial/button_next@2x.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/dot_active.png b/src/Authoring/Studio/images/Tutorial/dot_active.png Binary files differdeleted file mode 100644 index 009e5f85..00000000 --- a/src/Authoring/Studio/images/Tutorial/dot_active.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/dot_active@2x.png b/src/Authoring/Studio/images/Tutorial/dot_active@2x.png Binary files differdeleted file mode 100644 index 59ab92bb..00000000 --- a/src/Authoring/Studio/images/Tutorial/dot_active@2x.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/dot_inactive.png b/src/Authoring/Studio/images/Tutorial/dot_inactive.png Binary files differdeleted file mode 100644 index 0550db1e..00000000 --- a/src/Authoring/Studio/images/Tutorial/dot_inactive.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/dot_inactive@2x.png b/src/Authoring/Studio/images/Tutorial/dot_inactive@2x.png Binary files differdeleted file mode 100644 index 697d1db0..00000000 --- a/src/Authoring/Studio/images/Tutorial/dot_inactive@2x.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/screens/1x/1.png b/src/Authoring/Studio/images/Tutorial/screens/1x/1.png Binary files differdeleted file mode 100644 index b20c2154..00000000 --- a/src/Authoring/Studio/images/Tutorial/screens/1x/1.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/screens/1x/2.png b/src/Authoring/Studio/images/Tutorial/screens/1x/2.png Binary files differdeleted file mode 100644 index d890a8f8..00000000 --- a/src/Authoring/Studio/images/Tutorial/screens/1x/2.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/screens/1x/3.png b/src/Authoring/Studio/images/Tutorial/screens/1x/3.png Binary files differdeleted file mode 100644 index 41a9ea8a..00000000 --- a/src/Authoring/Studio/images/Tutorial/screens/1x/3.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/screens/1x/4.png b/src/Authoring/Studio/images/Tutorial/screens/1x/4.png Binary files differdeleted file mode 100644 index fd43b00c..00000000 --- a/src/Authoring/Studio/images/Tutorial/screens/1x/4.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/screens/1x/5.png b/src/Authoring/Studio/images/Tutorial/screens/1x/5.png Binary files differdeleted file mode 100644 index 8204a1bb..00000000 --- a/src/Authoring/Studio/images/Tutorial/screens/1x/5.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/screens/1x/6.png b/src/Authoring/Studio/images/Tutorial/screens/1x/6.png Binary files differdeleted file mode 100644 index 8f878f7b..00000000 --- a/src/Authoring/Studio/images/Tutorial/screens/1x/6.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/screens/1x/7.png b/src/Authoring/Studio/images/Tutorial/screens/1x/7.png Binary files differdeleted file mode 100644 index 39aaf6dc..00000000 --- a/src/Authoring/Studio/images/Tutorial/screens/1x/7.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/screens/1x/8.png b/src/Authoring/Studio/images/Tutorial/screens/1x/8.png Binary files differdeleted file mode 100644 index adfbb798..00000000 --- a/src/Authoring/Studio/images/Tutorial/screens/1x/8.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/screens/1x/9.png b/src/Authoring/Studio/images/Tutorial/screens/1x/9.png Binary files differdeleted file mode 100644 index 5a3401f0..00000000 --- a/src/Authoring/Studio/images/Tutorial/screens/1x/9.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/screens/2x/1.png b/src/Authoring/Studio/images/Tutorial/screens/2x/1.png Binary files differdeleted file mode 100644 index 1cea5bfa..00000000 --- a/src/Authoring/Studio/images/Tutorial/screens/2x/1.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/screens/2x/2.png b/src/Authoring/Studio/images/Tutorial/screens/2x/2.png Binary files differdeleted file mode 100644 index a95f4cfd..00000000 --- a/src/Authoring/Studio/images/Tutorial/screens/2x/2.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/screens/2x/3.png b/src/Authoring/Studio/images/Tutorial/screens/2x/3.png Binary files differdeleted file mode 100644 index d8d3cf42..00000000 --- a/src/Authoring/Studio/images/Tutorial/screens/2x/3.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/screens/2x/4.png b/src/Authoring/Studio/images/Tutorial/screens/2x/4.png Binary files differdeleted file mode 100644 index a27debc9..00000000 --- a/src/Authoring/Studio/images/Tutorial/screens/2x/4.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/screens/2x/5.png b/src/Authoring/Studio/images/Tutorial/screens/2x/5.png Binary files differdeleted file mode 100644 index 1723dad6..00000000 --- a/src/Authoring/Studio/images/Tutorial/screens/2x/5.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/screens/2x/6.png b/src/Authoring/Studio/images/Tutorial/screens/2x/6.png Binary files differdeleted file mode 100644 index 4a552b84..00000000 --- a/src/Authoring/Studio/images/Tutorial/screens/2x/6.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/screens/2x/7.png b/src/Authoring/Studio/images/Tutorial/screens/2x/7.png Binary files differdeleted file mode 100644 index 0efe714d..00000000 --- a/src/Authoring/Studio/images/Tutorial/screens/2x/7.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/screens/2x/8.png b/src/Authoring/Studio/images/Tutorial/screens/2x/8.png Binary files differdeleted file mode 100644 index 2b97b613..00000000 --- a/src/Authoring/Studio/images/Tutorial/screens/2x/8.png +++ /dev/null diff --git a/src/Authoring/Studio/images/Tutorial/screens/2x/9.png b/src/Authoring/Studio/images/Tutorial/screens/2x/9.png Binary files differdeleted file mode 100644 index a9b2317f..00000000 --- a/src/Authoring/Studio/images/Tutorial/screens/2x/9.png +++ /dev/null diff --git a/src/Authoring/Studio/images/welcomedialog/laptop.png b/src/Authoring/Studio/images/welcomedialog/laptop.png Binary files differnew file mode 100644 index 00000000..0bdeef44 --- /dev/null +++ b/src/Authoring/Studio/images/welcomedialog/laptop.png diff --git a/src/Authoring/Studio/style.qss b/src/Authoring/Studio/style.qss index b464bbc0..dbc1bbba 100644 --- a/src/Authoring/Studio/style.qss +++ b/src/Authoring/Studio/style.qss @@ -267,21 +267,42 @@ QHeaderView::section:hover { /* Tutorial Dialog */ QDialog#StudioTutorialWidget, QDialog#StudioTutorialWidget QWidget { - color: #ffffff; background-color: transparent; border: 0px; } +QLabel#studioTutorialName { + font-size: 52px; + color: "#00cd45"; +} + +QLabel#studioTutorialWelcome { + font-size: 52px; + color: #ffffff; +} + +QPushButton#studioTutorialOpen, +QPushButton#studioTutorialNew, +QPushButton#studioTutorialQuickStart { + font-size: 36px; + color: #ffffff; + padding: 0px 60px 0px 60px; +} + QPushButton:!pressed#studioTutorialOpen, -QPushButton:!pressed#studioTutorialNew { - background: transparent; - border: 1px solid #41cd52; +QPushButton:!pressed#studioTutorialNew, +QPushButton:!pressed#studioTutorialQuickStart { + background: "#00cd45"; + border: 3px solid "#00cd45"; + border-radius: 10px; } QPushButton:pressed#studioTutorialOpen, -QPushButton:pressed#studioTutorialNew { - background: #41cd52; - border: 1px solid #41cd52; +QPushButton:pressed#studioTutorialNew, +QPushButton:pressed#studioTutorialQuickStart { + background: transparent; + border: 3px solid "#00cd45"; + border-radius: 10px; } /* Startup Dialog */ |