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;
|
return TextFileFormat::ReadMemoryAllocationError;
|
||||||
}
|
}
|
||||||
|
|
||||||
*format = TextFileFormat::detect(data);
|
if (!data.isEmpty())
|
||||||
|
*format = TextFileFormat::detect(data);
|
||||||
|
|
||||||
if (!format->codec)
|
if (!format->codec)
|
||||||
format->codec = defaultCodec ? defaultCodec : QTextCodec::codecForLocale();
|
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_ID_MIMETYPES[] = "E.MimeTypes";
|
||||||
|
|
||||||
const char SETTINGS_DEFAULTTEXTENCODING[] = "General/DefaultFileEncoding";
|
const char SETTINGS_DEFAULTTEXTENCODING[] = "General/DefaultFileEncoding";
|
||||||
|
const char SETTINGS_DEFAULT_LINE_TERMINATOR[] = "General/DefaultLineTerminator";
|
||||||
|
|
||||||
const char SETTINGS_THEME[] = "Core/CreatorTheme";
|
const char SETTINGS_THEME[] = "Core/CreatorTheme";
|
||||||
const char DEFAULT_THEME[] = "flat";
|
const char DEFAULT_THEME[] = "flat";
|
||||||
|
|||||||
@@ -3167,6 +3167,15 @@ QTextCodec *EditorManager::defaultTextCodec()
|
|||||||
return QTextCodec::codecForLocale();
|
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()
|
void EditorManager::splitSideBySide()
|
||||||
{
|
{
|
||||||
EditorManagerPrivate::split(Qt::Horizontal);
|
EditorManagerPrivate::split(Qt::Horizontal);
|
||||||
|
|||||||
@@ -30,6 +30,8 @@
|
|||||||
|
|
||||||
#include "documentmodel.h"
|
#include "documentmodel.h"
|
||||||
|
|
||||||
|
#include "utils/textfileformat.h"
|
||||||
|
|
||||||
#include <QList>
|
#include <QList>
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
||||||
@@ -154,6 +156,8 @@ public:
|
|||||||
|
|
||||||
static QTextCodec *defaultTextCodec();
|
static QTextCodec *defaultTextCodec();
|
||||||
|
|
||||||
|
static Utils::TextFileFormat::LineTerminationMode defaultLineEnding();
|
||||||
|
|
||||||
static qint64 maxTextFileSize();
|
static qint64 maxTextFileSize();
|
||||||
|
|
||||||
static void setWindowTitleAdditionHandler(WindowTitleHandler handler);
|
static void setWindowTitleAdditionHandler(WindowTitleHandler handler);
|
||||||
|
|||||||
@@ -162,6 +162,7 @@ bool GeneratedFile::write(QString *errorMessage) const
|
|||||||
|
|
||||||
Utils::TextFileFormat format;
|
Utils::TextFileFormat format;
|
||||||
format.codec = EditorManager::defaultTextCodec();
|
format.codec = EditorManager::defaultTextCodec();
|
||||||
|
format.lineTerminationMode = EditorManager::defaultLineEnding();
|
||||||
return format.writeFile(m_d->path, contents(), errorMessage);
|
return format.writeFile(m_d->path, contents(), errorMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ BaseTextDocument::BaseTextDocument(QObject *parent) :
|
|||||||
IDocument(parent), d(new Internal::TextDocumentPrivate)
|
IDocument(parent), d(new Internal::TextDocumentPrivate)
|
||||||
{
|
{
|
||||||
setCodec(Core::EditorManager::defaultTextCodec());
|
setCodec(Core::EditorManager::defaultTextCodec());
|
||||||
|
setLineTerminationMode(Core::EditorManager::defaultLineEnding());
|
||||||
}
|
}
|
||||||
|
|
||||||
BaseTextDocument::~BaseTextDocument()
|
BaseTextDocument::~BaseTextDocument()
|
||||||
|
|||||||
@@ -196,6 +196,8 @@ void BehaviorSettingsPage::apply()
|
|||||||
if (s) {
|
if (s) {
|
||||||
s->setValue(QLatin1String(Core::Constants::SETTINGS_DEFAULTTEXTENCODING),
|
s->setValue(QLatin1String(Core::Constants::SETTINGS_DEFAULTTEXTENCODING),
|
||||||
d->m_page->behaviorWidget->assignedCodecName());
|
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->setAssignedBehaviorSettings(d->m_behaviorSettings);
|
||||||
d->m_page->behaviorWidget->setAssignedExtraEncodingSettings(d->m_extraEncodingSettings);
|
d->m_page->behaviorWidget->setAssignedExtraEncodingSettings(d->m_extraEncodingSettings);
|
||||||
d->m_page->behaviorWidget->setAssignedCodec(Core::EditorManager::defaultTextCodec());
|
d->m_page->behaviorWidget->setAssignedCodec(Core::EditorManager::defaultTextCodec());
|
||||||
|
d->m_page->behaviorWidget->setAssignedLineEnding(Core::EditorManager::defaultLineEnding());
|
||||||
}
|
}
|
||||||
|
|
||||||
void BehaviorSettingsPage::finish()
|
void BehaviorSettingsPage::finish()
|
||||||
|
|||||||
@@ -84,6 +84,8 @@ BehaviorSettingsWidget::BehaviorSettingsWidget(QWidget *parent)
|
|||||||
d->m_codecs.prepend(QTextCodec::codecForLocale());
|
d->m_codecs.prepend(QTextCodec::codecForLocale());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
d->m_ui.defaultLineEndings->addItems(ExtraEncodingSettings::lineTerminationModeNames());
|
||||||
|
|
||||||
auto currentIndexChanged = QOverload<int>::of(&QComboBox::currentIndexChanged);
|
auto currentIndexChanged = QOverload<int>::of(&QComboBox::currentIndexChanged);
|
||||||
connect(d->m_ui.autoIndent, &QAbstractButton::toggled,
|
connect(d->m_ui.autoIndent, &QAbstractButton::toggled,
|
||||||
this, &BehaviorSettingsWidget::slotTypingSettingsChanged);
|
this, &BehaviorSettingsWidget::slotTypingSettingsChanged);
|
||||||
@@ -245,6 +247,16 @@ void BehaviorSettingsWidget::assignedExtraEncodingSettings(
|
|||||||
(ExtraEncodingSettings::Utf8BomSetting)d->m_ui.utf8BomBox->currentIndex();
|
(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
|
TabSettingsWidget *BehaviorSettingsWidget::tabSettingsWidget() const
|
||||||
{
|
{
|
||||||
return d->m_ui.tabPreferencesWidget->tabSettingsWidget();
|
return d->m_ui.tabPreferencesWidget->tabSettingsWidget();
|
||||||
|
|||||||
@@ -71,6 +71,9 @@ public:
|
|||||||
void setAssignedExtraEncodingSettings(const ExtraEncodingSettings &encodingSettings);
|
void setAssignedExtraEncodingSettings(const ExtraEncodingSettings &encodingSettings);
|
||||||
void assignedExtraEncodingSettings(ExtraEncodingSettings *encodingSettings) const;
|
void assignedExtraEncodingSettings(ExtraEncodingSettings *encodingSettings) const;
|
||||||
|
|
||||||
|
void setAssignedLineEnding(int lineEnding);
|
||||||
|
int assignedLineEnding() const;
|
||||||
|
|
||||||
TabSettingsWidget *tabSettingsWidget() const;
|
TabSettingsWidget *tabSettingsWidget() const;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>801</width>
|
<width>801</width>
|
||||||
<height>480</height>
|
<height>547</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
@@ -320,6 +320,16 @@ Specifies how backspace interacts with indentation.
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</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>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
Reference in New Issue
Block a user