forked from qt-creator/qt-creator
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: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Fawzi Mohamed <fawzi.mohamed@qt.io>
This commit is contained in:
@@ -98,6 +98,7 @@ class Rewriter : protected Visitor
|
||||
bool _hadEmptyLine = false;
|
||||
int _binaryExpDepth = 0;
|
||||
bool _hasOpenComment = false;
|
||||
int _lineLength = 80;
|
||||
|
||||
public:
|
||||
Rewriter(Document::Ptr doc)
|
||||
@@ -107,6 +108,7 @@ public:
|
||||
|
||||
void setIndentSize(int size) { _formatter.setIndentSize(size); }
|
||||
void setTabSize(int size) { _formatter.setTabSize(size); }
|
||||
void setLineLength(int size) { _lineLength = size; }
|
||||
|
||||
QString operator()(Node *node)
|
||||
{
|
||||
@@ -286,10 +288,10 @@ protected:
|
||||
QStringList lines;
|
||||
qreal badnessFromSplits;
|
||||
|
||||
qreal badness()
|
||||
qreal badness(int lineLength)
|
||||
{
|
||||
const int maxLineLength = 80;
|
||||
const int strongMaxLineLength = 100;
|
||||
const int maxLineLength = lineLength;
|
||||
const int strongMaxLineLength = lineLength + 20;
|
||||
const int minContentLength = 10;
|
||||
|
||||
qreal result = badnessFromSplits;
|
||||
@@ -369,7 +371,7 @@ protected:
|
||||
|
||||
nested.lines.prepend(newContextLine);
|
||||
nested.badnessFromSplits += possibleSplits.at(i).badness;
|
||||
if (nested.badness() < result.badness())
|
||||
if (nested.badness(_lineLength) < result.badness(_lineLength))
|
||||
result = nested;
|
||||
}
|
||||
|
||||
@@ -391,6 +393,7 @@ protected:
|
||||
_indent = tryIndent(_line);
|
||||
adjustIndent(&_line, &_possibleSplits, _indent);
|
||||
|
||||
if (_lineLength > 0) {
|
||||
// maybe make multi-line?
|
||||
BestSplit split = computeBestSplits(QStringList(), _line, _possibleSplits);
|
||||
if (!split.lines.isEmpty() && split.lines.size() > 1) {
|
||||
@@ -401,6 +404,7 @@ protected:
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
finishLine();
|
||||
_possibleSplits.clear();
|
||||
@@ -1414,10 +1418,11 @@ QString QmlJS::reformat(const Document::Ptr &doc)
|
||||
return rewriter(doc->ast());
|
||||
}
|
||||
|
||||
QString QmlJS::reformat(const Document::Ptr &doc, int indentSize, int tabSize)
|
||||
QString QmlJS::reformat(const Document::Ptr &doc, int indentSize, int tabSize, int lineLength)
|
||||
{
|
||||
Rewriter rewriter(doc);
|
||||
rewriter.setIndentSize(indentSize);
|
||||
rewriter.setTabSize(tabSize);
|
||||
rewriter.setLineLength(lineLength);
|
||||
return rewriter(doc->ast());
|
||||
}
|
||||
|
@@ -31,5 +31,5 @@
|
||||
|
||||
namespace QmlJS {
|
||||
QMLJS_EXPORT QString reformat(const Document::Ptr &doc);
|
||||
QMLJS_EXPORT QString reformat(const Document::Ptr &doc, int indentSize, int tabSize);
|
||||
}
|
||||
QMLJS_EXPORT QString reformat(const Document::Ptr &doc, int indentSize, int tabSize, int lineLength);
|
||||
} // namespace QmlJS
|
||||
|
@@ -28,12 +28,12 @@
|
||||
#include <qmljs/qmljsmodelmanagerinterface.h>
|
||||
#include <qmljs/parser/qmljsast_p.h>
|
||||
#include <qmljstools/qmljsindenter.h>
|
||||
#include <qmljstools/qmljscodestylepreferences.h>
|
||||
#include <qmljseditor/qmljseditordocument.h>
|
||||
#include <qmljseditor/qmljscomponentfromobjectdef.h>
|
||||
#include <qmljseditor/qmljscompletionassist.h>
|
||||
#include <qmljstools/qmljstoolssettings.h>
|
||||
#include <texteditor/tabsettings.h>
|
||||
#include <texteditor/simplecodestylepreferences.h>
|
||||
#include <utils/changeset.h>
|
||||
|
||||
#include <typeinfo>
|
||||
|
@@ -38,6 +38,8 @@
|
||||
#include <qmljs/qmljsmodelmanagerinterface.h>
|
||||
#include <qmljs/qmljsreformatter.h>
|
||||
#include <qmljstools/qmljstoolsconstants.h>
|
||||
#include <qmljstools/qmljstoolssettings.h>
|
||||
#include <qmljstools/qmljscodestylepreferences.h>
|
||||
|
||||
#include <coreplugin/coreconstants.h>
|
||||
#include <coreplugin/icore.h>
|
||||
@@ -274,7 +276,8 @@ void QmlJSEditorPluginPrivate::reformatFile()
|
||||
TextEditor::TabSettings tabSettings = m_currentDocument->tabSettings();
|
||||
const QString &newText = QmlJS::reformat(document,
|
||||
tabSettings.m_indentSize,
|
||||
tabSettings.m_tabSize);
|
||||
tabSettings.m_tabSize,
|
||||
QmlJSTools::QmlJSToolsSettings::globalCodeStyle()->currentCodeStyleSettings().lineLength);
|
||||
|
||||
// QTextDocument::setPlainText cannot be used, as it would reset undo/redo history
|
||||
const auto setNewText = [this, &newText]() {
|
||||
|
@@ -5,6 +5,10 @@ add_qtc_plugin(QmlJSTools
|
||||
SOURCES
|
||||
qmljsbundleprovider.cpp qmljsbundleprovider.h
|
||||
qmljscodestylepreferencesfactory.cpp qmljscodestylepreferencesfactory.h
|
||||
qmljscodestylepreferences.cpp qmljscodestylepreferences.h
|
||||
qmljscodestylepreferenceswidget.cpp qmljscodestylepreferenceswidget.h
|
||||
qmljscodestylesettings.cpp qmljscodestylesettings.h
|
||||
qmljscodestylesettingswidget.cpp qmljscodestylesettingswidget.h qmljscodestylesettingswidget.ui
|
||||
qmljscodestylesettingspage.cpp qmljscodestylesettingspage.h qmljscodestylesettingspage.ui
|
||||
qmljsfunctionfilter.cpp qmljsfunctionfilter.h
|
||||
qmljsindenter.cpp qmljsindenter.h
|
||||
|
110
src/plugins/qmljstools/qmljscodestylepreferences.cpp
Normal file
110
src/plugins/qmljstools/qmljscodestylepreferences.cpp
Normal file
@@ -0,0 +1,110 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** 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 "qmljscodestylepreferences.h"
|
||||
|
||||
namespace QmlJSTools {
|
||||
|
||||
QmlJSCodeStylePreferences::QmlJSCodeStylePreferences(QObject *parent) :
|
||||
ICodeStylePreferences(parent)
|
||||
{
|
||||
setSettingsSuffix("CodeStyleSettings");
|
||||
|
||||
connect(this, &QmlJSCodeStylePreferences::currentValueChanged,
|
||||
this, &QmlJSCodeStylePreferences::slotCurrentValueChanged);
|
||||
}
|
||||
|
||||
QVariant QmlJSCodeStylePreferences::value() const
|
||||
{
|
||||
QVariant v;
|
||||
v.setValue(codeStyleSettings());
|
||||
return v;
|
||||
}
|
||||
|
||||
void QmlJSCodeStylePreferences::setValue(const QVariant &data)
|
||||
{
|
||||
if (!data.canConvert<QmlJSCodeStyleSettings>())
|
||||
return;
|
||||
|
||||
setCodeStyleSettings(data.value<QmlJSCodeStyleSettings>());
|
||||
}
|
||||
|
||||
QmlJSCodeStyleSettings QmlJSCodeStylePreferences::codeStyleSettings() const
|
||||
{
|
||||
return m_data;
|
||||
}
|
||||
|
||||
void QmlJSCodeStylePreferences::setCodeStyleSettings(const QmlJSCodeStyleSettings &data)
|
||||
{
|
||||
if (m_data == data)
|
||||
return;
|
||||
|
||||
m_data = data;
|
||||
|
||||
QVariant v;
|
||||
v.setValue(data);
|
||||
emit valueChanged(v);
|
||||
emit codeStyleSettingsChanged(m_data);
|
||||
if (!currentDelegate())
|
||||
emit currentValueChanged(v);
|
||||
}
|
||||
|
||||
QmlJSCodeStyleSettings QmlJSCodeStylePreferences::currentCodeStyleSettings() const
|
||||
{
|
||||
QVariant v = currentValue();
|
||||
if (!v.canConvert<QmlJSCodeStyleSettings>()) {
|
||||
// warning
|
||||
return {};
|
||||
}
|
||||
return v.value<QmlJSCodeStyleSettings>();
|
||||
}
|
||||
|
||||
void QmlJSCodeStylePreferences::slotCurrentValueChanged(const QVariant &value)
|
||||
{
|
||||
if (!value.canConvert<QmlJSCodeStyleSettings>())
|
||||
return;
|
||||
|
||||
emit currentCodeStyleSettingsChanged(value.value<QmlJSCodeStyleSettings>());
|
||||
}
|
||||
|
||||
QVariantMap QmlJSCodeStylePreferences::toMap() const
|
||||
{
|
||||
QVariantMap map = ICodeStylePreferences::toMap();
|
||||
if (!currentDelegate()) {
|
||||
const QVariantMap dataMap = m_data.toMap();
|
||||
for (auto it = dataMap.begin(), end = dataMap.end(); it != end; ++it)
|
||||
map.insert(it.key(), it.value());
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
void QmlJSCodeStylePreferences::fromMap(const QVariantMap &map)
|
||||
{
|
||||
ICodeStylePreferences::fromMap(map);
|
||||
if (!currentDelegate())
|
||||
m_data.fromMap(map);
|
||||
}
|
||||
|
||||
} // namespace QmlJSTools
|
65
src/plugins/qmljstools/qmljscodestylepreferences.h
Normal file
65
src/plugins/qmljstools/qmljscodestylepreferences.h
Normal file
@@ -0,0 +1,65 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** 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.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "qmljstools_global.h"
|
||||
#include "qmljscodestylesettings.h"
|
||||
|
||||
#include <texteditor/icodestylepreferences.h>
|
||||
|
||||
namespace QmlJSTools {
|
||||
|
||||
class QMLJSTOOLS_EXPORT QmlJSCodeStylePreferences : public TextEditor::ICodeStylePreferences
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit QmlJSCodeStylePreferences(QObject *parent = nullptr);
|
||||
|
||||
QVariant value() const override;
|
||||
void setValue(const QVariant &) override;
|
||||
|
||||
QmlJSCodeStyleSettings codeStyleSettings() const;
|
||||
|
||||
// tracks parent hierarchy until currentParentSettings is null
|
||||
QmlJSCodeStyleSettings currentCodeStyleSettings() const;
|
||||
|
||||
QVariantMap toMap() const override;
|
||||
void fromMap(const QVariantMap &map) override;
|
||||
|
||||
public slots:
|
||||
void setCodeStyleSettings(const QmlJSCodeStyleSettings &data);
|
||||
|
||||
signals:
|
||||
void codeStyleSettingsChanged(const QmlJSCodeStyleSettings &);
|
||||
void currentCodeStyleSettingsChanged(const QmlJSCodeStyleSettings &);
|
||||
|
||||
private:
|
||||
void slotCurrentValueChanged(const QVariant &);
|
||||
|
||||
QmlJSCodeStyleSettings m_data;
|
||||
};
|
||||
|
||||
} // namespace QmlJSTools
|
@@ -28,7 +28,7 @@
|
||||
#include "qmljstoolsconstants.h"
|
||||
#include "qmljsindenter.h"
|
||||
|
||||
#include <texteditor/simplecodestylepreferences.h>
|
||||
#include <qmljscodestylepreferences.h>
|
||||
|
||||
#include <qmljseditor/qmljseditorconstants.h>
|
||||
|
||||
@@ -68,16 +68,19 @@ QString QmlJSCodeStylePreferencesFactory::displayName()
|
||||
|
||||
TextEditor::ICodeStylePreferences *QmlJSCodeStylePreferencesFactory::createCodeStyle() const
|
||||
{
|
||||
return new TextEditor::SimpleCodeStylePreferences();
|
||||
return new QmlJSCodeStylePreferences();
|
||||
}
|
||||
|
||||
TextEditor::CodeStyleEditorWidget *QmlJSCodeStylePreferencesFactory::createEditor(
|
||||
TextEditor::ICodeStylePreferences *preferences,
|
||||
QWidget *parent) const
|
||||
{
|
||||
auto qmlJSPreferences = qobject_cast<QmlJSCodeStylePreferences *>(preferences);
|
||||
if (!qmlJSPreferences)
|
||||
return nullptr;
|
||||
auto widget = new Internal::QmlJSCodeStylePreferencesWidget(parent);
|
||||
widget->layout()->setContentsMargins(0, 0, 0, 0);
|
||||
widget->setPreferences(preferences);
|
||||
widget->setPreferences(qmlJSPreferences);
|
||||
return widget;
|
||||
}
|
||||
|
||||
|
94
src/plugins/qmljstools/qmljscodestylepreferenceswidget.cpp
Normal file
94
src/plugins/qmljstools/qmljscodestylepreferenceswidget.cpp
Normal file
@@ -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
|
60
src/plugins/qmljstools/qmljscodestylepreferenceswidget.h
Normal file
60
src/plugins/qmljstools/qmljscodestylepreferenceswidget.h
Normal file
@@ -0,0 +1,60 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** 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.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "qmljstools_global.h"
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
namespace TextEditor {
|
||||
class ICodeStylePreferences;
|
||||
}
|
||||
|
||||
namespace QmlJSTools {
|
||||
class QmlJSCodeStyleSettings;
|
||||
class QmlJSCodeStyleSettingsWidget;
|
||||
class QmlJSCodeStylePreferences;
|
||||
|
||||
namespace Ui { class TabPreferencesWidget; }
|
||||
|
||||
class QMLJSTOOLS_EXPORT QmlJSCodeStylePreferencesWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit QmlJSCodeStylePreferencesWidget(QWidget *parent = nullptr);
|
||||
|
||||
void setPreferences(QmlJSCodeStylePreferences *tabPreferences);
|
||||
|
||||
private:
|
||||
void slotCurrentPreferencesChanged(TextEditor::ICodeStylePreferences* preferences);
|
||||
void slotSettingsChanged(const QmlJSCodeStyleSettings &settings);
|
||||
|
||||
QmlJSCodeStyleSettingsWidget *m_codeStyleSettingsWidget;
|
||||
QmlJSCodeStylePreferences *m_preferences = nullptr;
|
||||
};
|
||||
|
||||
} // namespace QmlJSTools
|
83
src/plugins/qmljstools/qmljscodestylesettings.cpp
Normal file
83
src/plugins/qmljstools/qmljscodestylesettings.cpp
Normal file
@@ -0,0 +1,83 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** 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 "qmljscodestylesettings.h"
|
||||
|
||||
#include "qmljscodestylepreferences.h"
|
||||
#include "qmljstoolssettings.h"
|
||||
|
||||
#include <projectexplorer/editorconfiguration.h>
|
||||
#include <projectexplorer/project.h>
|
||||
#include <projectexplorer/projecttree.h>
|
||||
|
||||
#include <texteditor/tabsettings.h>
|
||||
|
||||
#include <cplusplus/Overview.h>
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
#include <utils/settingsutils.h>
|
||||
|
||||
static const char lineLengthKey[] = "LineLength";
|
||||
|
||||
namespace QmlJSTools {
|
||||
|
||||
// ------------------ QmlJSCodeStyleSettingsWidget
|
||||
|
||||
QmlJSCodeStyleSettings::QmlJSCodeStyleSettings() = default;
|
||||
|
||||
QVariantMap QmlJSCodeStyleSettings::toMap() const
|
||||
{
|
||||
return {
|
||||
{lineLengthKey, lineLength}
|
||||
};
|
||||
}
|
||||
|
||||
void QmlJSCodeStyleSettings::fromMap(const QVariantMap &map)
|
||||
{
|
||||
lineLength = map.value(lineLengthKey, lineLength).toInt();
|
||||
}
|
||||
|
||||
bool QmlJSCodeStyleSettings::equals(const QmlJSCodeStyleSettings &rhs) const
|
||||
{
|
||||
return lineLength == rhs.lineLength;
|
||||
}
|
||||
|
||||
QmlJSCodeStyleSettings QmlJSCodeStyleSettings::currentGlobalCodeStyle()
|
||||
{
|
||||
QmlJSCodeStylePreferences *QmlJSCodeStylePreferences = QmlJSToolsSettings::globalCodeStyle();
|
||||
QTC_ASSERT(QmlJSCodeStylePreferences, return QmlJSCodeStyleSettings());
|
||||
|
||||
return QmlJSCodeStylePreferences->currentCodeStyleSettings();
|
||||
}
|
||||
|
||||
TextEditor::TabSettings QmlJSCodeStyleSettings::currentGlobalTabSettings()
|
||||
{
|
||||
QmlJSCodeStylePreferences *QmlJSCodeStylePreferences = QmlJSToolsSettings::globalCodeStyle();
|
||||
QTC_ASSERT(QmlJSCodeStylePreferences, return TextEditor::TabSettings());
|
||||
|
||||
return QmlJSCodeStylePreferences->currentTabSettings();
|
||||
}
|
||||
|
||||
} // namespace QmlJSTools
|
58
src/plugins/qmljstools/qmljscodestylesettings.h
Normal file
58
src/plugins/qmljstools/qmljscodestylesettings.h
Normal file
@@ -0,0 +1,58 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** 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.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "qmljstools_global.h"
|
||||
|
||||
#include <utils/optional.h>
|
||||
|
||||
#include <QVariantMap>
|
||||
|
||||
namespace TextEditor { class TabSettings; }
|
||||
|
||||
namespace QmlJSTools {
|
||||
|
||||
class QMLJSTOOLS_EXPORT QmlJSCodeStyleSettings
|
||||
{
|
||||
public:
|
||||
QmlJSCodeStyleSettings();
|
||||
|
||||
int lineLength = 80;
|
||||
|
||||
QVariantMap toMap() const;
|
||||
void fromMap(const QVariantMap &map);
|
||||
|
||||
bool equals(const QmlJSCodeStyleSettings &rhs) const;
|
||||
bool operator==(const QmlJSCodeStyleSettings &s) const { return equals(s); }
|
||||
bool operator!=(const QmlJSCodeStyleSettings &s) const { return !equals(s); }
|
||||
|
||||
static QmlJSCodeStyleSettings currentGlobalCodeStyle();
|
||||
static TextEditor::TabSettings currentGlobalTabSettings();
|
||||
};
|
||||
|
||||
} // namespace CppEditor
|
||||
|
||||
Q_DECLARE_METATYPE(QmlJSTools::QmlJSCodeStyleSettings)
|
@@ -29,11 +29,11 @@
|
||||
#include "qmljstoolssettings.h"
|
||||
#include "qmljsindenter.h"
|
||||
#include "qmljsqtstylecodeformatter.h"
|
||||
#include "qmljscodestylepreferences.h"
|
||||
|
||||
#include <texteditor/fontsettings.h>
|
||||
#include <texteditor/snippets/snippetprovider.h>
|
||||
#include <texteditor/tabsettings.h>
|
||||
#include <texteditor/simplecodestylepreferences.h>
|
||||
#include <texteditor/displaysettings.h>
|
||||
#include <texteditor/texteditorsettings.h>
|
||||
#include <texteditor/codestyleeditor.h>
|
||||
@@ -70,13 +70,18 @@ QmlJSCodeStylePreferencesWidget::~QmlJSCodeStylePreferencesWidget()
|
||||
delete m_ui;
|
||||
}
|
||||
|
||||
void QmlJSCodeStylePreferencesWidget::setPreferences(ICodeStylePreferences *preferences)
|
||||
void QmlJSCodeStylePreferencesWidget::setPreferences(QmlJSCodeStylePreferences *preferences)
|
||||
{
|
||||
m_preferences = preferences;
|
||||
m_ui->tabPreferencesWidget->setPreferences(preferences);
|
||||
m_ui->codeStylePreferencesWidget->setPreferences(preferences);
|
||||
if (m_preferences)
|
||||
{
|
||||
connect(m_preferences, &ICodeStylePreferences::currentTabSettingsChanged,
|
||||
this, &QmlJSCodeStylePreferencesWidget::slotSettingsChanged);
|
||||
connect(m_preferences, &QmlJSCodeStylePreferences::currentCodeStyleSettingsChanged,
|
||||
this, &QmlJSCodeStylePreferencesWidget::slotSettingsChanged);
|
||||
}
|
||||
updatePreview();
|
||||
}
|
||||
|
||||
@@ -134,15 +139,16 @@ QmlJSCodeStyleSettingsPage::QmlJSCodeStyleSettingsPage()
|
||||
QWidget *QmlJSCodeStyleSettingsPage::widget()
|
||||
{
|
||||
if (!m_widget) {
|
||||
SimpleCodeStylePreferences *originalTabPreferences
|
||||
QmlJSCodeStylePreferences *originalPreferences
|
||||
= QmlJSToolsSettings::globalCodeStyle();
|
||||
m_pageTabPreferences = new SimpleCodeStylePreferences(m_widget);
|
||||
m_pageTabPreferences->setDelegatingPool(originalTabPreferences->delegatingPool());
|
||||
m_pageTabPreferences->setTabSettings(originalTabPreferences->tabSettings());
|
||||
m_pageTabPreferences->setCurrentDelegate(originalTabPreferences->currentDelegate());
|
||||
m_pageTabPreferences->setId(originalTabPreferences->id());
|
||||
m_preferences = new QmlJSCodeStylePreferences(m_widget);
|
||||
m_preferences->setDelegatingPool(originalPreferences->delegatingPool());
|
||||
m_preferences->setCodeStyleSettings(originalPreferences->codeStyleSettings());
|
||||
m_preferences->setTabSettings(originalPreferences->tabSettings());
|
||||
m_preferences->setCurrentDelegate(originalPreferences->currentDelegate());
|
||||
m_preferences->setId(originalPreferences->id());
|
||||
m_widget = new CodeStyleEditor(TextEditorSettings::codeStyleFactory(QmlJSTools::Constants::QML_JS_SETTINGS_ID),
|
||||
m_pageTabPreferences);
|
||||
m_preferences);
|
||||
}
|
||||
return m_widget;
|
||||
}
|
||||
@@ -152,14 +158,18 @@ void QmlJSCodeStyleSettingsPage::apply()
|
||||
if (m_widget) {
|
||||
QSettings *s = Core::ICore::settings();
|
||||
|
||||
SimpleCodeStylePreferences *originalTabPreferences = QmlJSToolsSettings::globalCodeStyle();
|
||||
if (originalTabPreferences->tabSettings() != m_pageTabPreferences->tabSettings()) {
|
||||
originalTabPreferences->setTabSettings(m_pageTabPreferences->tabSettings());
|
||||
originalTabPreferences->toSettings(QLatin1String(QmlJSTools::Constants::QML_JS_SETTINGS_ID), s);
|
||||
QmlJSCodeStylePreferences *originalPreferences = QmlJSToolsSettings::globalCodeStyle();
|
||||
if (originalPreferences->codeStyleSettings() != m_preferences->codeStyleSettings()) {
|
||||
originalPreferences->setCodeStyleSettings(m_preferences->codeStyleSettings());
|
||||
originalPreferences->toSettings(QLatin1String(QmlJSTools::Constants::QML_JS_SETTINGS_ID), s);
|
||||
}
|
||||
if (originalTabPreferences->currentDelegate() != m_pageTabPreferences->currentDelegate()) {
|
||||
originalTabPreferences->setCurrentDelegate(m_pageTabPreferences->currentDelegate());
|
||||
originalTabPreferences->toSettings(QLatin1String(QmlJSTools::Constants::QML_JS_SETTINGS_ID), s);
|
||||
if (originalPreferences->tabSettings() != m_preferences->tabSettings()) {
|
||||
originalPreferences->setTabSettings(m_preferences->tabSettings());
|
||||
originalPreferences->toSettings(QLatin1String(QmlJSTools::Constants::QML_JS_SETTINGS_ID), s);
|
||||
}
|
||||
if (originalPreferences->currentDelegate() != m_preferences->currentDelegate()) {
|
||||
originalPreferences->setCurrentDelegate(m_preferences->currentDelegate());
|
||||
originalPreferences->toSettings(QLatin1String(QmlJSTools::Constants::QML_JS_SETTINGS_ID), s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -37,12 +37,13 @@ QT_END_NAMESPACE
|
||||
|
||||
namespace TextEditor {
|
||||
class FontSettings;
|
||||
class TabSettings;
|
||||
class CodeStyleEditor;
|
||||
class ICodeStylePreferences;
|
||||
}
|
||||
|
||||
namespace QmlJSTools {
|
||||
class QmlJSCodeStylePreferences;
|
||||
class QmlJSCodeStyleSettings;
|
||||
|
||||
namespace Internal {
|
||||
|
||||
namespace Ui { class QmlJSCodeStyleSettingsPage; }
|
||||
@@ -55,7 +56,7 @@ public:
|
||||
explicit QmlJSCodeStylePreferencesWidget(QWidget *parent = nullptr);
|
||||
~QmlJSCodeStylePreferencesWidget() override;
|
||||
|
||||
void setPreferences(TextEditor::ICodeStylePreferences *preferences);
|
||||
void setPreferences(QmlJSCodeStylePreferences* preferences);
|
||||
|
||||
private:
|
||||
void decorateEditor(const TextEditor::FontSettings &fontSettings);
|
||||
@@ -63,7 +64,7 @@ private:
|
||||
void slotSettingsChanged();
|
||||
void updatePreview();
|
||||
|
||||
TextEditor::ICodeStylePreferences *m_preferences = nullptr;
|
||||
QmlJSCodeStylePreferences *m_preferences = nullptr;
|
||||
Ui::QmlJSCodeStyleSettingsPage *m_ui;
|
||||
};
|
||||
|
||||
@@ -78,7 +79,7 @@ public:
|
||||
void finish() override;
|
||||
|
||||
private:
|
||||
TextEditor::ICodeStylePreferences *m_pageTabPreferences = nullptr;
|
||||
QmlJSCodeStylePreferences *m_preferences = nullptr;
|
||||
QPointer<TextEditor::CodeStyleEditor> m_widget;
|
||||
};
|
||||
|
||||
|
@@ -24,7 +24,20 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" rowspan="2">
|
||||
<item row="2" column="0">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>267</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="1" rowspan="3">
|
||||
<widget class="TextEditor::SnippetEditorWidget" name="previewTextEdit">
|
||||
<property name="plainText">
|
||||
<string notr="true">import QtQuick 1.0
|
||||
@@ -48,17 +61,7 @@ Rectangle {
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>267</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
<widget class="QmlJSTools::QmlJSCodeStylePreferencesWidget" name="codeStylePreferencesWidget" native="true"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
@@ -74,6 +77,12 @@ Rectangle {
|
||||
<extends>QPlainTextEdit</extends>
|
||||
<header location="global">texteditor/snippets/snippeteditor.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QmlJSTools::QmlJSCodeStylePreferencesWidget</class>
|
||||
<extends>QWidget</extends>
|
||||
<header location="global">qmljscodestylepreferenceswidget.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
70
src/plugins/qmljstools/qmljscodestylesettingswidget.cpp
Normal file
70
src/plugins/qmljstools/qmljscodestylesettingswidget.cpp
Normal file
@@ -0,0 +1,70 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** 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 "qmljscodestylesettingswidget.h"
|
||||
#include "ui_qmljscodestylesettingswidget.h"
|
||||
#include "qmljscodestylesettings.h"
|
||||
|
||||
#include <QTextStream>
|
||||
|
||||
namespace QmlJSTools {
|
||||
|
||||
QmlJSCodeStyleSettingsWidget::QmlJSCodeStyleSettingsWidget(QWidget *parent) :
|
||||
QGroupBox(parent),
|
||||
ui(new Internal::Ui::QmlJSCodeStyleSettingsWidget)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
auto spinValueChanged = QOverload<int>::of(&QSpinBox::valueChanged);
|
||||
connect(ui->lineLengthSpinBox, spinValueChanged,
|
||||
this, &QmlJSCodeStyleSettingsWidget::slotSettingsChanged);
|
||||
}
|
||||
|
||||
QmlJSCodeStyleSettingsWidget::~QmlJSCodeStyleSettingsWidget()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void QmlJSCodeStyleSettingsWidget::setCodeStyleSettings(const QmlJSCodeStyleSettings& s)
|
||||
{
|
||||
QSignalBlocker blocker(this);
|
||||
ui->lineLengthSpinBox->setValue(s.lineLength);
|
||||
}
|
||||
|
||||
QmlJSCodeStyleSettings QmlJSCodeStyleSettingsWidget::codeStyleSettings() const
|
||||
{
|
||||
QmlJSCodeStyleSettings set;
|
||||
|
||||
set.lineLength = ui->lineLengthSpinBox->value();
|
||||
|
||||
return set;
|
||||
}
|
||||
|
||||
void QmlJSCodeStyleSettingsWidget::slotSettingsChanged()
|
||||
{
|
||||
emit settingsChanged(codeStyleSettings());
|
||||
}
|
||||
|
||||
} // namespace TextEditor
|
66
src/plugins/qmljstools/qmljscodestylesettingswidget.h
Normal file
66
src/plugins/qmljstools/qmljscodestylesettingswidget.h
Normal file
@@ -0,0 +1,66 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** 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.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "qmljstools_global.h"
|
||||
|
||||
#include <QGroupBox>
|
||||
|
||||
namespace QmlJSTools {
|
||||
class QmlJSCodeStyleSettings;
|
||||
|
||||
namespace Internal { namespace Ui { class QmlJSCodeStyleSettingsWidget; } }
|
||||
|
||||
|
||||
class QMLJSTOOLS_EXPORT QmlJSCodeStyleSettingsWidget : public QGroupBox
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
enum CodingStyleLink {
|
||||
CppLink,
|
||||
QtQuickLink
|
||||
};
|
||||
|
||||
explicit QmlJSCodeStyleSettingsWidget(QWidget *parent = nullptr);
|
||||
~QmlJSCodeStyleSettingsWidget() override;
|
||||
|
||||
QmlJSCodeStyleSettings codeStyleSettings() const;
|
||||
|
||||
void setCodingStyleWarningVisible(bool visible);
|
||||
void setCodeStyleSettings(const QmlJSCodeStyleSettings& s);
|
||||
|
||||
signals:
|
||||
void settingsChanged(const QmlJSCodeStyleSettings &);
|
||||
|
||||
private:
|
||||
void slotSettingsChanged();
|
||||
void codingStyleLinkActivated(const QString &linkString);
|
||||
|
||||
Internal::Ui::QmlJSCodeStyleSettingsWidget *ui;
|
||||
};
|
||||
|
||||
} // namespace QmlJSTools
|
76
src/plugins/qmljstools/qmljscodestylesettingswidget.ui
Normal file
76
src/plugins/qmljstools/qmljscodestylesettingswidget.ui
Normal file
@@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>QmlJSTools::Internal::QmlJSCodeStyleSettingsWidget</class>
|
||||
<widget class="QGroupBox" name="QmlJSTools::Internal::QmlJSCodeStyleSettingsWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>254</width>
|
||||
<height>203</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Qml JS Code Style</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0" colspan="2">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="lineLengthLabel">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Indent size:</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>lineLengthSpinBox</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="lineLengthSpinBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>999</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<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>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>lineLengthSpinBox</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
@@ -25,10 +25,10 @@
|
||||
|
||||
#include "qmljstoolssettings.h"
|
||||
#include "qmljstoolsconstants.h"
|
||||
#include "qmljscodestylepreferences.h"
|
||||
#include "qmljscodestylepreferencesfactory.h"
|
||||
|
||||
#include <texteditor/texteditorsettings.h>
|
||||
#include <texteditor/simplecodestylepreferences.h>
|
||||
#include <texteditor/tabsettings.h>
|
||||
#include <texteditor/codestylepool.h>
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace QmlJSTools {
|
||||
|
||||
const char idKey[] = "QmlJSGlobal";
|
||||
|
||||
static SimpleCodeStylePreferences *m_globalCodeStyle = nullptr;
|
||||
static QmlJSCodeStylePreferences *m_globalCodeStyle = nullptr;
|
||||
|
||||
QmlJSToolsSettings::QmlJSToolsSettings()
|
||||
{
|
||||
@@ -59,7 +59,7 @@ QmlJSToolsSettings::QmlJSToolsSettings()
|
||||
TextEditorSettings::registerCodeStylePool(Constants::QML_JS_SETTINGS_ID, pool);
|
||||
|
||||
// global code style settings
|
||||
m_globalCodeStyle = new SimpleCodeStylePreferences(this);
|
||||
m_globalCodeStyle = new QmlJSCodeStylePreferences(this);
|
||||
m_globalCodeStyle->setDelegatingPool(pool);
|
||||
m_globalCodeStyle->setDisplayName(tr("Global", "Settings"));
|
||||
m_globalCodeStyle->setId(idKey);
|
||||
@@ -68,7 +68,7 @@ QmlJSToolsSettings::QmlJSToolsSettings()
|
||||
|
||||
// built-in settings
|
||||
// Qt style
|
||||
auto qtCodeStyle = new SimpleCodeStylePreferences;
|
||||
auto qtCodeStyle = new QmlJSCodeStylePreferences;
|
||||
qtCodeStyle->setId("qt");
|
||||
qtCodeStyle->setDisplayName(tr("Qt"));
|
||||
qtCodeStyle->setReadOnly(true);
|
||||
@@ -78,6 +78,9 @@ QmlJSToolsSettings::QmlJSToolsSettings()
|
||||
qtTabSettings.m_indentSize = 4;
|
||||
qtTabSettings.m_continuationAlignBehavior = TabSettings::ContinuationAlignWithIndent;
|
||||
qtCodeStyle->setTabSettings(qtTabSettings);
|
||||
QmlJSCodeStyleSettings qtQmlJSSetings;
|
||||
qtQmlJSSetings.lineLength = 80;
|
||||
qtCodeStyle->setCodeStyleSettings(qtQmlJSSetings);
|
||||
pool->addCodeStyle(qtCodeStyle);
|
||||
|
||||
// default delegate for global preferences
|
||||
@@ -148,7 +151,7 @@ QmlJSToolsSettings::~QmlJSToolsSettings()
|
||||
m_globalCodeStyle = nullptr;
|
||||
}
|
||||
|
||||
SimpleCodeStylePreferences *QmlJSToolsSettings::globalCodeStyle()
|
||||
QmlJSCodeStylePreferences *QmlJSToolsSettings::globalCodeStyle()
|
||||
{
|
||||
return m_globalCodeStyle;
|
||||
}
|
||||
|
@@ -29,9 +29,8 @@
|
||||
|
||||
#include <QObject>
|
||||
|
||||
namespace TextEditor { class SimpleCodeStylePreferences; }
|
||||
|
||||
namespace QmlJSTools {
|
||||
class QmlJSCodeStylePreferences;
|
||||
|
||||
/**
|
||||
* This class provides a central place for cpp tools settings.
|
||||
@@ -44,7 +43,7 @@ public:
|
||||
explicit QmlJSToolsSettings();
|
||||
~QmlJSToolsSettings() override;
|
||||
|
||||
static TextEditor::SimpleCodeStylePreferences *globalCodeStyle();
|
||||
static QmlJSCodeStylePreferences *globalCodeStyle();
|
||||
};
|
||||
|
||||
} // namespace QmlJSTools
|
||||
|
@@ -14,7 +14,7 @@
|
||||
<string/>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="margin">
|
||||
<property name="margin" stdset="0">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
|
Reference in New Issue
Block a user