forked from qt-creator/qt-creator
QmlDesigner: Show feedback popup only if telemetry is enabled
- Also removed logic that tracks the status of the previous shutdown. - Cleaned up a deprecated invokeMethod call. Task-number: QDS-14649 Change-Id: I3d753610e8d35eedbb7cb6129a1f079cdada1785 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
#include "settingspage.h"
|
#include "settingspage.h"
|
||||||
#include "shortcutmanager.h"
|
#include "shortcutmanager.h"
|
||||||
#include "toolbar.h"
|
#include "toolbar.h"
|
||||||
|
#include "utils/checkablemessagebox.h"
|
||||||
|
|
||||||
#include <colortool/colortool.h>
|
#include <colortool/colortool.h>
|
||||||
#include <connectionview.h>
|
#include <connectionview.h>
|
||||||
@@ -271,7 +272,9 @@ bool QmlDesignerPlugin::initialize(const QStringList & /*arguments*/, QString *
|
|||||||
Sqlite::LibraryInitializer::initialize();
|
Sqlite::LibraryInitializer::initialize();
|
||||||
QDir{}.mkpath(Core::ICore::cacheResourcePath().toUrlishString());
|
QDir{}.mkpath(Core::ICore::cacheResourcePath().toUrlishString());
|
||||||
|
|
||||||
|
if (Core::ICore::isQtDesignStudio()) {
|
||||||
QAction *action = new QAction(tr("Give Feedback..."), this);
|
QAction *action = new QAction(tr("Give Feedback..."), this);
|
||||||
|
action->setVisible(false); // keep hidden unless UsageStatistic plugin activates it
|
||||||
Core::Command *cmd = Core::ActionManager::registerAction(action, "Help.GiveFeedback");
|
Core::Command *cmd = Core::ActionManager::registerAction(action, "Help.GiveFeedback");
|
||||||
Core::ActionManager::actionContainer(Core::Constants::M_HELP)
|
Core::ActionManager::actionContainer(Core::Constants::M_HELP)
|
||||||
->addAction(cmd, Core::Constants::G_HELP_SUPPORT);
|
->addAction(cmd, Core::Constants::G_HELP_SUPPORT);
|
||||||
@@ -279,6 +282,7 @@ bool QmlDesignerPlugin::initialize(const QStringList & /*arguments*/, QString *
|
|||||||
connect(action, &QAction::triggered, this, [this] {
|
connect(action, &QAction::triggered, this, [this] {
|
||||||
launchFeedbackPopupInternal(QGuiApplication::applicationDisplayName());
|
launchFeedbackPopupInternal(QGuiApplication::applicationDisplayName());
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
d = new QmlDesignerPluginPrivate;
|
d = new QmlDesignerPluginPrivate;
|
||||||
d->timer.start();
|
d->timer.start();
|
||||||
@@ -309,18 +313,8 @@ bool QmlDesignerPlugin::initialize(const QStringList & /*arguments*/, QString *
|
|||||||
if (Core::ICore::isQtDesignStudio()) {
|
if (Core::ICore::isQtDesignStudio()) {
|
||||||
d->toolBar = ToolBar::create();
|
d->toolBar = ToolBar::create();
|
||||||
d->statusBar = ToolBar::createStatusBar();
|
d->statusBar = ToolBar::createStatusBar();
|
||||||
|
|
||||||
// uses simplified Telemetry settings page in case of Qt Design Studio
|
|
||||||
ExtensionSystem::PluginSpec *usageStatistic = Utils::findOrDefault(ExtensionSystem::PluginManager::plugins(), [](ExtensionSystem::PluginSpec *p) {
|
|
||||||
return p->id() == "usagestatistic";
|
|
||||||
});
|
|
||||||
|
|
||||||
if (usageStatistic && usageStatistic->plugin())
|
|
||||||
QMetaObject::invokeMethod(usageStatistic->plugin(), "useSimpleUi", true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
initializeShutdownSettings();
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -355,33 +349,26 @@ void QmlDesignerPlugin::extensionsInitialized()
|
|||||||
Core::IWizardFactory::registerFeatureProvider(new FullQDSFeatureProvider);
|
Core::IWizardFactory::registerFeatureProvider(new FullQDSFeatureProvider);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QmlDesignerPlugin::initializeShutdownSettings()
|
|
||||||
{
|
|
||||||
auto settings = Core::ICore::settings();
|
|
||||||
|
|
||||||
if (!settings->contains("ShutdownCount"))
|
|
||||||
settings->setValue("ShutdownCount", 0);
|
|
||||||
|
|
||||||
m_lastShutdownType = settings->value("LastShutdownType", "UserQuit").toString();
|
|
||||||
settings->setValue("LastShutdownType", "Crash"); // value will persist unless changed in aboutToShutdown()
|
|
||||||
}
|
|
||||||
|
|
||||||
ExtensionSystem::IPlugin::ShutdownFlag QmlDesignerPlugin::aboutToShutdown()
|
ExtensionSystem::IPlugin::ShutdownFlag QmlDesignerPlugin::aboutToShutdown()
|
||||||
{
|
{
|
||||||
Utils::QtcSettings *settings = Core::ICore::settings();
|
Utils::QtcSettings *settings = Core::ICore::settings();
|
||||||
|
|
||||||
int shutdownCount = settings->value("ShutdownCount", 0).toInt();
|
if (!Utils::CheckableDecider("FeedbackPopup").shouldAskAgain())
|
||||||
if (m_lastShutdownType == "UserQuit")
|
|
||||||
settings->setValue("ShutdownCount", ++shutdownCount);
|
|
||||||
|
|
||||||
settings->setValue("LastShutdownType", "UserQuit");
|
|
||||||
if (shutdownCount != 5) // feedback popup should be displayed on the 5th shutdown
|
|
||||||
return SynchronousShutdown;
|
return SynchronousShutdown;
|
||||||
|
|
||||||
|
int shutdownCount = settings->value("ShutdownCount", 0).toInt();
|
||||||
|
settings->setValue("ShutdownCount", ++shutdownCount);
|
||||||
|
|
||||||
|
if (!settings->value("UsageStatistic/TrackingEnabled").toBool())
|
||||||
|
return SynchronousShutdown;
|
||||||
|
|
||||||
|
if (shutdownCount >= 5) {
|
||||||
m_shutdownPending = true;
|
m_shutdownPending = true;
|
||||||
launchFeedbackPopupInternal(QGuiApplication::applicationDisplayName());
|
launchFeedbackPopupInternal(QGuiApplication::applicationDisplayName());
|
||||||
|
|
||||||
return AsynchronousShutdown;
|
return AsynchronousShutdown;
|
||||||
|
}
|
||||||
|
|
||||||
|
return SynchronousShutdown;
|
||||||
}
|
}
|
||||||
|
|
||||||
static QStringList allUiQmlFilesforCurrentProject(const Utils::FilePath &fileName)
|
static QStringList allUiQmlFilesforCurrentProject(const Utils::FilePath &fileName)
|
||||||
@@ -886,8 +873,10 @@ void QmlDesignerPlugin::closeFeedbackPopup()
|
|||||||
m_feedbackWidget = nullptr;
|
m_feedbackWidget = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_shutdownPending)
|
if (m_shutdownPending) {
|
||||||
|
Utils::CheckableDecider("FeedbackPopup").doNotAskAgain();
|
||||||
emit asynchronousShutdownFinished();
|
emit asynchronousShutdownFinished();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void QmlDesignerPlugin::emitUsageStatisticsTime(const QString &identifier, int elapsed)
|
void QmlDesignerPlugin::emitUsageStatisticsTime(const QString &identifier, int elapsed)
|
||||||
|
@@ -135,7 +135,6 @@ private: // variables
|
|||||||
QElapsedTimer m_usageTimer;
|
QElapsedTimer m_usageTimer;
|
||||||
bool m_delayedInitialized = false;
|
bool m_delayedInitialized = false;
|
||||||
bool m_shutdownPending = false;
|
bool m_shutdownPending = false;
|
||||||
QString m_lastShutdownType;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace QmlDesigner
|
} // namespace QmlDesigner
|
||||||
|
Reference in New Issue
Block a user