aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmljstools/qmljscodestylepreferenceswidget.cpp
diff options
context:
space:
mode:
authorXavier BESSON <[email protected]>2022-04-02 12:15:26 +0200
committerXavier BESSON <[email protected]>2022-04-07 11:42:37 +0000
commit87e52ad18929110a756bd018793003ad717d3704 (patch)
treeb82e6d4473761c2691095a4a7834fe3c0a550742 /src/plugins/qmljstools/qmljscodestylepreferenceswidget.cpp
parent4762d54401658e28be7fa04491d5ed6a5491e129 (diff)
Line length for QML/JS editing automatic formatting
Adding parameters to functions in the QML/JS formatter Adding widget and setting to the QML/JS editing settings Fixes: QTCREATORBUG-23411 Change-Id: Ib9d3ac3b22443e81cd636fbc276c6544dab1511b Reviewed-by: <[email protected]> Reviewed-by: Fawzi Mohamed <[email protected]>
Diffstat (limited to 'src/plugins/qmljstools/qmljscodestylepreferenceswidget.cpp')
-rw-r--r--src/plugins/qmljstools/qmljscodestylepreferenceswidget.cpp94
1 files changed, 94 insertions, 0 deletions
diff --git a/src/plugins/qmljstools/qmljscodestylepreferenceswidget.cpp b/src/plugins/qmljstools/qmljscodestylepreferenceswidget.cpp
new file mode 100644
index 00000000000..656cdba06d6
--- /dev/null
+++ b/src/plugins/qmljstools/qmljscodestylepreferenceswidget.cpp
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+****************************************************************************/
+
+#include "qmljscodestylepreferenceswidget.h"
+#include "qmljscodestylepreferences.h"
+#include "qmljscodestylesettingswidget.h"
+#include "qmljscodestylesettings.h"
+
+#include <QVBoxLayout>
+#include <QLabel>
+
+namespace QmlJSTools {
+
+QmlJSCodeStylePreferencesWidget::QmlJSCodeStylePreferencesWidget(QWidget *parent) :
+ QWidget(parent)
+{
+ m_codeStyleSettingsWidget = new QmlJSCodeStyleSettingsWidget(this);
+ auto layout = new QVBoxLayout(this);
+ layout->addWidget(m_codeStyleSettingsWidget);
+ layout->setContentsMargins(QMargins());
+ m_codeStyleSettingsWidget->setEnabled(false);
+}
+
+void QmlJSCodeStylePreferencesWidget::setPreferences(QmlJSCodeStylePreferences *preferences)
+{
+ if (m_preferences == preferences)
+ return; // nothing changes
+
+ // cleanup old
+ if (m_preferences) {
+ disconnect(m_preferences, &QmlJSCodeStylePreferences::currentCodeStyleSettingsChanged,
+ m_codeStyleSettingsWidget, &QmlJSCodeStyleSettingsWidget::setCodeStyleSettings);
+ disconnect(m_preferences, &QmlJSCodeStylePreferences::currentPreferencesChanged,
+ this, &QmlJSCodeStylePreferencesWidget::slotCurrentPreferencesChanged);
+ disconnect(m_codeStyleSettingsWidget, &QmlJSCodeStyleSettingsWidget::settingsChanged,
+ this, &QmlJSCodeStylePreferencesWidget::slotSettingsChanged);
+ }
+ m_preferences = preferences;
+ // fillup new
+ if (m_preferences) {
+ slotCurrentPreferencesChanged(m_preferences->currentPreferences());
+
+ m_codeStyleSettingsWidget->setCodeStyleSettings(m_preferences->currentCodeStyleSettings());
+
+ connect(m_preferences, &QmlJSCodeStylePreferences::currentCodeStyleSettingsChanged,
+ m_codeStyleSettingsWidget, &QmlJSCodeStyleSettingsWidget::setCodeStyleSettings);
+ connect(m_preferences, &QmlJSCodeStylePreferences::currentPreferencesChanged,
+ this, &QmlJSCodeStylePreferencesWidget::slotCurrentPreferencesChanged);
+ connect(m_codeStyleSettingsWidget, &QmlJSCodeStyleSettingsWidget::settingsChanged,
+ this, &QmlJSCodeStylePreferencesWidget::slotSettingsChanged);
+ }
+ m_codeStyleSettingsWidget->setEnabled(m_preferences);
+}
+
+void QmlJSCodeStylePreferencesWidget::slotCurrentPreferencesChanged(TextEditor::ICodeStylePreferences *preferences)
+{
+ m_codeStyleSettingsWidget->setEnabled(!preferences->isReadOnly() && !m_preferences->currentDelegate());
+}
+
+void QmlJSCodeStylePreferencesWidget::slotSettingsChanged(const QmlJSCodeStyleSettings &settings)
+{
+ if (!m_preferences)
+ return;
+
+ QmlJSCodeStylePreferences *current = qobject_cast<QmlJSCodeStylePreferences*>(m_preferences->currentPreferences());
+ if (!current)
+ return;
+
+ current->setCodeStyleSettings(settings);
+}
+
+} // namespace QmlJSTools