forked from qt-creator/qt-creator
StudioWelcome: Show the splash screen at least once if the version changes
The version of the last QDS instance launched is stored in QML/Designer/lastQDSVersion. Whenever the version does change we show the splash screen. Change-Id: Idf94e73446f0498203d979b45378d85e70bd4106 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -28,6 +28,8 @@
|
||||
|
||||
#include "qdsnewdialog.h"
|
||||
|
||||
#include <app/app_version.h>
|
||||
|
||||
#include <coreplugin/coreconstants.h>
|
||||
#include <coreplugin/dialogs/restartdialog.h>
|
||||
#include <coreplugin/editormanager/editormanager.h>
|
||||
@@ -490,6 +492,26 @@ bool StudioWelcomePlugin::initialize(const QStringList &arguments, QString *erro
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool showSplashScreen()
|
||||
{
|
||||
const QString lastQDSVersionEntry = "QML/Designer/lastQDSVersion";
|
||||
|
||||
QSettings *settings = Core::ICore::settings();
|
||||
|
||||
const QString lastQDSVersion = settings->value(lastQDSVersionEntry).toString();
|
||||
|
||||
|
||||
const QString currentVersion = Core::Constants::IDE_VERSION_DISPLAY;
|
||||
|
||||
if (currentVersion != lastQDSVersion) {
|
||||
settings->setValue(lastQDSVersionEntry, currentVersion);
|
||||
return true;
|
||||
}
|
||||
|
||||
return Utils::CheckableMessageBox::shouldAskAgain(Core::ICore::settings(),
|
||||
DO_NOT_SHOW_SPLASHSCREEN_AGAIN_KEY);
|
||||
}
|
||||
|
||||
void StudioWelcomePlugin::extensionsInitialized()
|
||||
{
|
||||
Core::ModeManager::activateMode(m_welcomeMode->id());
|
||||
@@ -497,8 +519,7 @@ void StudioWelcomePlugin::extensionsInitialized()
|
||||
// Enable QDS new project dialog
|
||||
Core::ICore::setNewDialogFactory([](QWidget *parent) { return new QdsNewDialog(parent); });
|
||||
|
||||
if (Utils::CheckableMessageBox::shouldAskAgain(Core::ICore::settings(),
|
||||
DO_NOT_SHOW_SPLASHSCREEN_AGAIN_KEY)) {
|
||||
if (showSplashScreen()) {
|
||||
connect(Core::ICore::instance(), &Core::ICore::coreOpened, this, [this] {
|
||||
s_view = new QQuickWidget(Core::ICore::dialogParent());
|
||||
s_view->setResizeMode(QQuickWidget::SizeRootObjectToView);
|
||||
|
Reference in New Issue
Block a user