forked from qt-creator/qt-creator
TextEditor: reduce size of line ending chooser
Change-Id: I3be0890ee78e2e3159e1494f8b5e972e04f11f67 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -107,6 +107,7 @@
|
|||||||
#include <QTimeLine>
|
#include <QTimeLine>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QToolBar>
|
#include <QToolBar>
|
||||||
|
#include <QToolButton>
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\namespace TextEditor
|
\namespace TextEditor
|
||||||
@@ -718,7 +719,7 @@ public:
|
|||||||
QAction *m_fileEncodingLabelAction = nullptr;
|
QAction *m_fileEncodingLabelAction = nullptr;
|
||||||
BaseTextFind *m_find = nullptr;
|
BaseTextFind *m_find = nullptr;
|
||||||
|
|
||||||
QComboBox *m_fileLineEnding = nullptr;
|
QToolButton *m_fileLineEnding = nullptr;
|
||||||
QAction *m_fileLineEndingAction = nullptr;
|
QAction *m_fileLineEndingAction = nullptr;
|
||||||
|
|
||||||
uint m_optionalActionMask = TextEditorActionHandler::None;
|
uint m_optionalActionMask = TextEditorActionHandler::None;
|
||||||
@@ -1027,8 +1028,7 @@ TextEditorWidgetPrivate::TextEditorWidgetPrivate(TextEditorWidget *parent)
|
|||||||
m_cursorPositionLabel->setContentsMargins(spacing, 0, spacing, 0);
|
m_cursorPositionLabel->setContentsMargins(spacing, 0, spacing, 0);
|
||||||
m_toolBarWidget->layout()->addWidget(m_cursorPositionLabel);
|
m_toolBarWidget->layout()->addWidget(m_cursorPositionLabel);
|
||||||
|
|
||||||
m_fileLineEnding = new QComboBox();
|
m_fileLineEnding = new QToolButton(q);
|
||||||
m_fileLineEnding->addItems(ExtraEncodingSettings::lineTerminationModeNames());
|
|
||||||
m_fileLineEnding->setContentsMargins(spacing, 0, spacing, 0);
|
m_fileLineEnding->setContentsMargins(spacing, 0, spacing, 0);
|
||||||
m_fileLineEndingAction = m_toolBar->addWidget(m_fileLineEnding);
|
m_fileLineEndingAction = m_toolBar->addWidget(m_fileLineEnding);
|
||||||
updateFileLineEndingVisible();
|
updateFileLineEndingVisible();
|
||||||
@@ -1081,8 +1081,16 @@ TextEditorWidgetPrivate::TextEditorWidgetPrivate(TextEditorWidget *parent)
|
|||||||
connect(m_fileEncodingLabel, &FixedSizeClickLabel::clicked,
|
connect(m_fileEncodingLabel, &FixedSizeClickLabel::clicked,
|
||||||
q, &TextEditorWidget::selectEncoding);
|
q, &TextEditorWidget::selectEncoding);
|
||||||
|
|
||||||
connect(m_fileLineEnding, &QComboBox::currentIndexChanged,
|
connect(m_fileLineEnding, &QToolButton::clicked, ActionManager::instance(), [this] {
|
||||||
q, &TextEditorWidget::selectLineEnding);
|
QMenu *menu = new QMenu;
|
||||||
|
menu->addAction(tr("Unix Line Endings (LF)"), [this] {
|
||||||
|
q->selectLineEnding(TextFileFormat::LFLineTerminator);
|
||||||
|
});
|
||||||
|
menu->addAction(tr("Windows Line Endings (CRLF)"), [this] {
|
||||||
|
q->selectLineEnding(TextFileFormat::CRLFLineTerminator);
|
||||||
|
});
|
||||||
|
menu->popup(QCursor::pos());
|
||||||
|
});
|
||||||
|
|
||||||
TextEditorSettings *settings = TextEditorSettings::instance();
|
TextEditorSettings *settings = TextEditorSettings::instance();
|
||||||
|
|
||||||
@@ -1790,19 +1798,24 @@ void TextEditorWidget::selectEncoding()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextEditorWidget::selectLineEnding(int index)
|
void TextEditorWidget::selectLineEnding(TextFileFormat::LineTerminationMode lineEnding)
|
||||||
{
|
{
|
||||||
QTC_CHECK(index >= 0);
|
if (d->m_document->lineTerminationMode() != lineEnding) {
|
||||||
const auto newMode = Utils::TextFileFormat::LineTerminationMode(index);
|
d->m_document->setLineTerminationMode(lineEnding);
|
||||||
if (d->m_document->lineTerminationMode() != newMode) {
|
|
||||||
d->m_document->setLineTerminationMode(newMode);
|
|
||||||
d->q->document()->setModified(true);
|
d->q->document()->setModified(true);
|
||||||
|
updateTextLineEndingLabel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextEditorWidget::updateTextLineEndingLabel()
|
void TextEditorWidget::updateTextLineEndingLabel()
|
||||||
{
|
{
|
||||||
d->m_fileLineEnding->setCurrentIndex(d->m_document->lineTerminationMode());
|
const TextFileFormat::LineTerminationMode lineEnding = d->m_document->lineTerminationMode();
|
||||||
|
if (lineEnding == TextFileFormat::LFLineTerminator)
|
||||||
|
d->m_fileLineEnding->setText(Tr::tr("LF"));
|
||||||
|
else if (lineEnding == TextFileFormat::CRLFLineTerminator)
|
||||||
|
d->m_fileLineEnding->setText(Tr::tr("CRLF"));
|
||||||
|
else
|
||||||
|
QTC_ASSERT_STRING("Unsupported line ending mode.");
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextEditorWidget::updateTextCodecLabel()
|
void TextEditorWidget::updateTextCodecLabel()
|
||||||
|
|||||||
@@ -368,7 +368,7 @@ public:
|
|||||||
void unfoldCurrentBlock();
|
void unfoldCurrentBlock();
|
||||||
void selectEncoding();
|
void selectEncoding();
|
||||||
void updateTextCodecLabel();
|
void updateTextCodecLabel();
|
||||||
void selectLineEnding(int index);
|
void selectLineEnding(Utils::TextFileFormat::LineTerminationMode lineEnding);
|
||||||
void updateTextLineEndingLabel();
|
void updateTextLineEndingLabel();
|
||||||
void addSelectionNextFindMatch();
|
void addSelectionNextFindMatch();
|
||||||
void addCursorsToLineEnds();
|
void addCursorsToLineEnds();
|
||||||
|
|||||||
Reference in New Issue
Block a user