diff --git a/src/plugins/qmljsinspector/qmljsinspector.cpp b/src/plugins/qmljsinspector/qmljsinspector.cpp index 6f0c513a1ba45d5d90371d8773cd07203227b43a..e6a5b7e8d83c644da14c020709f7a43f38de6963 100644 --- a/src/plugins/qmljsinspector/qmljsinspector.cpp +++ b/src/plugins/qmljsinspector/qmljsinspector.cpp @@ -33,6 +33,7 @@ #include "qmljslivetextpreview.h" #include "qmljsprivateapi.h" #include "qmljscontextcrumblepath.h" +#include "qmljsinspectorsettings.h" #include <qmljseditor/qmljseditorconstants.h> @@ -112,7 +113,6 @@ enum { ConnectionAttemptSimultaneousInterval = 500 }; -bool Inspector::m_showExperimentalWarning = true; Inspector *Inspector::m_instance = 0; Inspector::Inspector(QObject *parent) @@ -120,6 +120,7 @@ Inspector::Inspector(QObject *parent) m_connectionTimer(new QTimer(this)), m_connectionAttempts(0), m_listeningToEditorManager(false), + m_settings(new InspectorSettings(this)), m_debugProject(0) { m_clientProxy = ClientProxy::instance(); @@ -143,6 +144,17 @@ Inspector::Inspector(QObject *parent) Inspector::~Inspector() { + +} + +void Inspector::saveSettings() const +{ + m_settings->saveSettings(Core::ICore::instance()->settings()); +} + +void Inspector::restoreSettings() +{ + m_settings->restoreSettings(Core::ICore::instance()->settings()); } void Inspector::disconnected() @@ -409,12 +421,12 @@ void Inspector::crumblePathElementClicked(int pathIndex) bool Inspector::showExperimentalWarning() { - return m_showExperimentalWarning; + return m_settings->showLivePreviewWarning(); } void Inspector::setShowExperimentalWarning(bool value) { - m_showExperimentalWarning = value; + m_settings->setShowLivePreviewWarning(value); } Inspector *Inspector::instance() diff --git a/src/plugins/qmljsinspector/qmljsinspector.h b/src/plugins/qmljsinspector/qmljsinspector.h index dd1b3d44188648374084fe241e2dd77a46aa6143..aadc9e6be4e7aeed831a3b0217f70bc369c254a9 100644 --- a/src/plugins/qmljsinspector/qmljsinspector.h +++ b/src/plugins/qmljsinspector/qmljsinspector.h @@ -65,6 +65,7 @@ namespace Internal { class ClientProxy; class InspectorContext; +class InspectorSettings; class ContextCrumblePath; class QmlJSLiveTextPreview; @@ -94,14 +95,19 @@ public: QDeclarativeDebugExpressionQuery *setBindingForObject(int objectDebugId, const QString &objectId, const QString &propertyName, const QVariant &value, bool isLiteralValue); - static bool showExperimentalWarning(); - static void setShowExperimentalWarning(bool value); + void saveSettings() const; + void restoreSettings(); + + bool showExperimentalWarning(); + void setShowExperimentalWarning(bool value); + static Inspector *instance(); // returns the project being currently debugged, or 0 if not debugging anything ProjectExplorer::Project *debugProject() const; void createDockWidgets(); + signals: void statusMessage(const QString &text); void livePreviewActivated(bool isActivated); @@ -150,12 +156,13 @@ private: int m_connectionAttempts; ClientProxy *m_clientProxy; - static bool m_showExperimentalWarning; bool m_listeningToEditorManager; ContextCrumblePath *m_crumblePath; QDockWidget *m_crumblePathDock; + InspectorSettings *m_settings; + // Qml/JS integration QHash<QString, QmlJSLiveTextPreview *> m_textPreviews; QmlJS::Snapshot m_loadedSnapshot; //the snapshot loaded by the viewer diff --git a/src/plugins/qmljsinspector/qmljsinspector.pro b/src/plugins/qmljsinspector/qmljsinspector.pro index 9850290731103afcd3690b5775a10d0176f688b3..5f96f765daaccf6a8e43ff8c69072bccd98f019e 100644 --- a/src/plugins/qmljsinspector/qmljsinspector.pro +++ b/src/plugins/qmljsinspector/qmljsinspector.pro @@ -19,7 +19,8 @@ qmlinspectortoolbar.h \ qmljslivetextpreview.h \ qmljstoolbarcolorbox.h \ qmljsdesigndebugclient.h \ - qmljscontextcrumblepath.h +qmljscontextcrumblepath.h \ +qmljsinspectorsettings.h SOURCES += \ qmljsdebuggerclient.cpp \ @@ -31,7 +32,8 @@ qmlinspectortoolbar.cpp \ qmljslivetextpreview.cpp \ qmljstoolbarcolorbox.cpp \ qmljsdesigndebugclient.cpp \ - qmljscontextcrumblepath.cpp +qmljscontextcrumblepath.cpp \ +qmljsinspectorsettings.cpp include(../../libs/qmljsdebugclient/qmljsdebugclient-lib.pri) diff --git a/src/plugins/qmljsinspector/qmljsinspectorconstants.h b/src/plugins/qmljsinspector/qmljsinspectorconstants.h index b8ffb798b93e2cd1951b9d5ecf5e027250a813e0..1f9b5313b72fe90256d59428557e6dbe8ce9e9f4 100644 --- a/src/plugins/qmljsinspector/qmljsinspectorconstants.h +++ b/src/plugins/qmljsinspector/qmljsinspectorconstants.h @@ -58,12 +58,7 @@ const char * const FROM_QML_ACTION = "QmlInspector.FromQml"; // settings const char * const S_QML_INSPECTOR = "QML.Inspector"; -const char * const S_EXTERNALPORT_KEY = "ExternalPort"; -const char * const S_EXTERNALURL_KEY = "ExternalUrl"; -const char * const S_SHOW_UNINSPECTABLE_ITEMS = "ShowUninspectableProperties"; -const char * const S_SHOW_UNWATCHABLE_PROPERTIES = "ShowUninspectableItem"; -const char * const S_GROUP_PROPERTIES_BY_ITEM_TYPE = "GroupPropertiesByItemType"; - +const char * const S_LIVE_PREVIEW_WARNING_KEY = "ShowLivePreview"; const char * const ARG_DESIGNMODE = "-designmode"; enum DesignTool { diff --git a/src/plugins/qmljsinspector/qmljsinspectorplugin.cpp b/src/plugins/qmljsinspector/qmljsinspectorplugin.cpp index b79d74ec802d32802f8bbd9d1681dac226833abe..b28614f9c7b421e7d4675986539f02bbb9b624e6 100644 --- a/src/plugins/qmljsinspector/qmljsinspectorplugin.cpp +++ b/src/plugins/qmljsinspector/qmljsinspectorplugin.cpp @@ -116,6 +116,7 @@ Inspector *InspectorPlugin::inspector() const ExtensionSystem::IPlugin::ShutdownFlag InspectorPlugin::aboutToShutdown() { + m_inspector->saveSettings(); return SynchronousShutdown; } @@ -172,7 +173,7 @@ void InspectorPlugin::extensionsInitialized() connect(m_clientProxy, SIGNAL(animationSpeedChanged(qreal)), m_toolbar, SLOT(changeAnimationSpeed(qreal))); - + m_inspector->restoreSettings(); } void InspectorPlugin::activateDebuggerForProject(ProjectExplorer::Project *project, const QString &runMode) diff --git a/src/plugins/qmljsinspector/qmljsinspectorsettings.cpp b/src/plugins/qmljsinspector/qmljsinspectorsettings.cpp new file mode 100644 index 0000000000000000000000000000000000000000..8feda7aebf92e5cc6eef266d65ad36bfc4221ee6 --- /dev/null +++ b/src/plugins/qmljsinspector/qmljsinspectorsettings.cpp @@ -0,0 +1,46 @@ +#include "qmljsinspectorsettings.h" +#include "qmljsinspectorconstants.h" +#include <QtCore/QSettings> + +namespace QmlJSInspector { +namespace Internal { + +InspectorSettings::InspectorSettings(QObject *parent) + : QObject(parent), + m_showLivePreviewWarning(true) +{ +} + +InspectorSettings::~InspectorSettings() +{ + +} + +void InspectorSettings::restoreSettings(QSettings *settings) +{ + + settings->beginGroup(QLatin1String(QmlJSInspector::Constants::S_QML_INSPECTOR)); + m_showLivePreviewWarning = settings->value(QLatin1String(QmlJSInspector::Constants::S_LIVE_PREVIEW_WARNING_KEY), true).toBool(); + settings->endGroup(); +} + +void InspectorSettings::saveSettings(QSettings *settings) const +{ + settings->beginGroup(QLatin1String(QmlJSInspector::Constants::S_QML_INSPECTOR)); + settings->setValue(QLatin1String(QmlJSInspector::Constants::S_LIVE_PREVIEW_WARNING_KEY), m_showLivePreviewWarning); + settings->endGroup(); +} + + +bool InspectorSettings::showLivePreviewWarning() const +{ + return m_showLivePreviewWarning; +} + +void InspectorSettings::setShowLivePreviewWarning(bool value) +{ + m_showLivePreviewWarning = value; +} + +} // namespace Internal +} // namespace QmlJSInspector diff --git a/src/plugins/qmljsinspector/qmljsinspectorsettings.h b/src/plugins/qmljsinspector/qmljsinspectorsettings.h new file mode 100644 index 0000000000000000000000000000000000000000..d07a5ebc40c489dc0992417e5146567a1c68a2ea --- /dev/null +++ b/src/plugins/qmljsinspector/qmljsinspectorsettings.h @@ -0,0 +1,29 @@ +#ifndef INSPECTORSETTINGS_H +#define INSPECTORSETTINGS_H + +#include <QObject> + +QT_FORWARD_DECLARE_CLASS(QSettings) + +namespace QmlJSInspector { +namespace Internal { + +class InspectorSettings : public QObject +{ +public: + InspectorSettings(QObject *parent = 0); + ~InspectorSettings(); + void restoreSettings(QSettings *settings); + void saveSettings(QSettings *settings) const; + + bool showLivePreviewWarning() const; + void setShowLivePreviewWarning(bool value); + +private: + bool m_showLivePreviewWarning; +}; + +} // namespace Internal +} // namespace QmlJSInspector + +#endif // INSPECTORSETTINGS_H diff --git a/src/plugins/qmljsinspector/qmljslivetextpreview.cpp b/src/plugins/qmljsinspector/qmljslivetextpreview.cpp index d5f8a1e654bc39401f056b76a3a14b39a563b385..4dbd6468d8ab41b7168b82a14cb57df535e713e9 100644 --- a/src/plugins/qmljsinspector/qmljslivetextpreview.cpp +++ b/src/plugins/qmljsinspector/qmljslivetextpreview.cpp @@ -554,10 +554,10 @@ void QmlJSLiveTextPreview::documentChanged(QmlJS::Document::Ptr doc) if (delta.referenceRefreshRequired) ClientProxy::instance()->refreshObjectTree(); - if (Inspector::showExperimentalWarning() && delta.appliedChangesToViewer) { + if (Inspector::instance()->showExperimentalWarning() && delta.appliedChangesToViewer) { showExperimentalWarning(); experimentalWarningShown = true; - Inspector::setShowExperimentalWarning(false); + Inspector::instance()->setShowExperimentalWarning(false); } if (delta.unsyncronizableChanges != NoUnsyncronizableChanges && !experimentalWarningShown)