forked from qt-creator/qt-creator
Add into settings default line ending for new files
Add option into the Qt Creator settings option to configure what line ending will the newly create files have. Change-Id: I0fa67a54c78524dc943c01acb925c1bac1e47cc1 Fixes: QTCREATORBUG-3590 Reviewed-by: André Hartmann <aha_1980@gmx.de> Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -215,7 +215,9 @@ TextFileFormat::ReadResult readTextFile(const QString &fileName, const QTextCode
|
||||
return TextFileFormat::ReadMemoryAllocationError;
|
||||
}
|
||||
|
||||
if (!data.isEmpty())
|
||||
*format = TextFileFormat::detect(data);
|
||||
|
||||
if (!format->codec)
|
||||
format->codec = defaultCodec ? defaultCodec : QTextCodec::codecForLocale();
|
||||
|
||||
|
||||
@@ -213,6 +213,7 @@ const char SETTINGS_ID_TOOLS[] = "D.ExternalTools";
|
||||
const char SETTINGS_ID_MIMETYPES[] = "E.MimeTypes";
|
||||
|
||||
const char SETTINGS_DEFAULTTEXTENCODING[] = "General/DefaultFileEncoding";
|
||||
const char SETTINGS_DEFAULT_LINE_TERMINATOR[] = "General/DefaultLineTerminator";
|
||||
|
||||
const char SETTINGS_THEME[] = "Core/CreatorTheme";
|
||||
const char DEFAULT_THEME[] = "flat";
|
||||
|
||||
@@ -3167,6 +3167,15 @@ QTextCodec *EditorManager::defaultTextCodec()
|
||||
return QTextCodec::codecForLocale();
|
||||
}
|
||||
|
||||
TextFileFormat::LineTerminationMode EditorManager::defaultLineEnding()
|
||||
{
|
||||
QSettings *settings = ICore::settings();
|
||||
const int defaultLineTerminator = settings->value(Constants::SETTINGS_DEFAULT_LINE_TERMINATOR,
|
||||
TextFileFormat::LineTerminationMode::NativeLineTerminator).toInt();
|
||||
|
||||
return static_cast<TextFileFormat::LineTerminationMode>(defaultLineTerminator);
|
||||
}
|
||||
|
||||
void EditorManager::splitSideBySide()
|
||||
{
|
||||
EditorManagerPrivate::split(Qt::Horizontal);
|
||||
|
||||
@@ -30,6 +30,8 @@
|
||||
|
||||
#include "documentmodel.h"
|
||||
|
||||
#include "utils/textfileformat.h"
|
||||
|
||||
#include <QList>
|
||||
#include <QWidget>
|
||||
|
||||
@@ -154,6 +156,8 @@ public:
|
||||
|
||||
static QTextCodec *defaultTextCodec();
|
||||
|
||||
static Utils::TextFileFormat::LineTerminationMode defaultLineEnding();
|
||||
|
||||
static qint64 maxTextFileSize();
|
||||
|
||||
static void setWindowTitleAdditionHandler(WindowTitleHandler handler);
|
||||
|
||||
@@ -162,6 +162,7 @@ bool GeneratedFile::write(QString *errorMessage) const
|
||||
|
||||
Utils::TextFileFormat format;
|
||||
format.codec = EditorManager::defaultTextCodec();
|
||||
format.lineTerminationMode = EditorManager::defaultLineEnding();
|
||||
return format.writeFile(m_d->path, contents(), errorMessage);
|
||||
}
|
||||
|
||||
|
||||
@@ -59,6 +59,7 @@ BaseTextDocument::BaseTextDocument(QObject *parent) :
|
||||
IDocument(parent), d(new Internal::TextDocumentPrivate)
|
||||
{
|
||||
setCodec(Core::EditorManager::defaultTextCodec());
|
||||
setLineTerminationMode(Core::EditorManager::defaultLineEnding());
|
||||
}
|
||||
|
||||
BaseTextDocument::~BaseTextDocument()
|
||||
|
||||
@@ -196,6 +196,8 @@ void BehaviorSettingsPage::apply()
|
||||
if (s) {
|
||||
s->setValue(QLatin1String(Core::Constants::SETTINGS_DEFAULTTEXTENCODING),
|
||||
d->m_page->behaviorWidget->assignedCodecName());
|
||||
s->setValue(QLatin1String(Core::Constants::SETTINGS_DEFAULT_LINE_TERMINATOR),
|
||||
d->m_page->behaviorWidget->assignedLineEnding());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -217,6 +219,7 @@ void BehaviorSettingsPage::settingsToUI()
|
||||
d->m_page->behaviorWidget->setAssignedBehaviorSettings(d->m_behaviorSettings);
|
||||
d->m_page->behaviorWidget->setAssignedExtraEncodingSettings(d->m_extraEncodingSettings);
|
||||
d->m_page->behaviorWidget->setAssignedCodec(Core::EditorManager::defaultTextCodec());
|
||||
d->m_page->behaviorWidget->setAssignedLineEnding(Core::EditorManager::defaultLineEnding());
|
||||
}
|
||||
|
||||
void BehaviorSettingsPage::finish()
|
||||
|
||||
@@ -84,6 +84,8 @@ BehaviorSettingsWidget::BehaviorSettingsWidget(QWidget *parent)
|
||||
d->m_codecs.prepend(QTextCodec::codecForLocale());
|
||||
}
|
||||
|
||||
d->m_ui.defaultLineEndings->addItems(ExtraEncodingSettings::lineTerminationModeNames());
|
||||
|
||||
auto currentIndexChanged = QOverload<int>::of(&QComboBox::currentIndexChanged);
|
||||
connect(d->m_ui.autoIndent, &QAbstractButton::toggled,
|
||||
this, &BehaviorSettingsWidget::slotTypingSettingsChanged);
|
||||
@@ -245,6 +247,16 @@ void BehaviorSettingsWidget::assignedExtraEncodingSettings(
|
||||
(ExtraEncodingSettings::Utf8BomSetting)d->m_ui.utf8BomBox->currentIndex();
|
||||
}
|
||||
|
||||
void BehaviorSettingsWidget::setAssignedLineEnding(int lineEnding)
|
||||
{
|
||||
d->m_ui.defaultLineEndings->setCurrentIndex(lineEnding);
|
||||
}
|
||||
|
||||
int BehaviorSettingsWidget::assignedLineEnding() const
|
||||
{
|
||||
return d->m_ui.defaultLineEndings->currentIndex();
|
||||
}
|
||||
|
||||
TabSettingsWidget *BehaviorSettingsWidget::tabSettingsWidget() const
|
||||
{
|
||||
return d->m_ui.tabPreferencesWidget->tabSettingsWidget();
|
||||
|
||||
@@ -71,6 +71,9 @@ public:
|
||||
void setAssignedExtraEncodingSettings(const ExtraEncodingSettings &encodingSettings);
|
||||
void assignedExtraEncodingSettings(ExtraEncodingSettings *encodingSettings) const;
|
||||
|
||||
void setAssignedLineEnding(int lineEnding);
|
||||
int assignedLineEnding() const;
|
||||
|
||||
TabSettingsWidget *tabSettingsWidget() const;
|
||||
|
||||
signals:
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>801</width>
|
||||
<height>480</height>
|
||||
<height>547</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
@@ -320,6 +320,16 @@ Specifies how backspace interacts with indentation.
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="defaultLineEndingsLabel">
|
||||
<property name="text">
|
||||
<string>Default line endings:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QComboBox" name="defaultLineEndings"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
||||
Reference in New Issue
Block a user