QtWidgets: stop using QLatin1Char constructor for creating char literals

Required for porting away from QLatin1Char/QLatin1String in scope of
QTBUG-98434.

As a drive-by, fix qsizetype -> int narrowing conversion warnings for
the touched lines.

Change-Id: I133b80334b66e0a5ab9546dd8e1ff0631e79601e
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
Sona Kurazyan 2022-04-25 14:10:21 +02:00
parent a7dc1e280b
commit 63b042fb21
37 changed files with 141 additions and 144 deletions

View File

@ -112,18 +112,18 @@ static QString buddyString(const QWidget *widget)
/* This function will return the offset of the '&' in the text that would be /* This function will return the offset of the '&' in the text that would be
preceding the accelerator character. preceding the accelerator character.
If this text does not have an accelerator, -1 will be returned. */ If this text does not have an accelerator, -1 will be returned. */
static int qt_accAmpIndex(const QString &text) static qsizetype qt_accAmpIndex(const QString &text)
{ {
#ifndef QT_NO_SHORTCUT #ifndef QT_NO_SHORTCUT
if (text.isEmpty()) if (text.isEmpty())
return -1; return -1;
int fa = 0; qsizetype fa = 0;
while ((fa = text.indexOf(QLatin1Char('&'), fa)) != -1) { while ((fa = text.indexOf(u'&', fa)) != -1) {
++fa; ++fa;
if (fa < text.length()) { if (fa < text.length()) {
// ignore "&&" // ignore "&&"
if (text.at(fa) == QLatin1Char('&')) { if (text.at(fa) == u'&') {
++fa; ++fa;
continue; continue;
@ -144,7 +144,7 @@ static int qt_accAmpIndex(const QString &text)
QString qt_accStripAmp(const QString &text) QString qt_accStripAmp(const QString &text)
{ {
QString newText(text); QString newText(text);
int ampIndex = qt_accAmpIndex(newText); qsizetype ampIndex = qt_accAmpIndex(newText);
if (ampIndex != -1) if (ampIndex != -1)
newText.remove(ampIndex, 1); newText.remove(ampIndex, 1);
@ -154,7 +154,7 @@ QString qt_accStripAmp(const QString &text)
QString qt_accHotKey(const QString &text) QString qt_accHotKey(const QString &text)
{ {
#ifndef QT_NO_SHORTCUT #ifndef QT_NO_SHORTCUT
int ampIndex = qt_accAmpIndex(text); qsizetype ampIndex = qt_accAmpIndex(text);
if (ampIndex != -1) if (ampIndex != -1)
return QKeySequence(Qt::ALT).toString(QKeySequence::NativeText) + text.at(ampIndex + 1); return QKeySequence(Qt::ALT).toString(QKeySequence::NativeText) + text.at(ampIndex + 1);
#else #else

View File

@ -761,7 +761,7 @@ class AttributeFormatterRef {
public: public:
template <typename RHS> template <typename RHS>
void operator=(RHS &&rhs) void operator=(RHS &&rhs)
{ string += QLatin1String(key) + QLatin1Char(':') + std::forward<RHS>(rhs) + QLatin1Char(';'); } { string += QLatin1String(key) + u':' + std::forward<RHS>(rhs) + u';'; }
}; };
/*! /*!
@ -769,7 +769,7 @@ public:
\brief Small string-builder class that supports a map-like API to serialize key-value pairs. \brief Small string-builder class that supports a map-like API to serialize key-value pairs.
\code \code
AttributeFormatter attrs; AttributeFormatter attrs;
attrs["foo"] = QLatinString("hello") + world + QLatin1Char('!'); attrs["foo"] = QLatinString("hello") + world + u'!';
\endcode \endcode
The key type is always \c{const char*}, and the right-hand-side can The key type is always \c{const char*}, and the right-hand-side can
be any QStringBuilder expression. be any QStringBuilder expression.
@ -858,7 +858,7 @@ QString QAccessibleTextWidget::attributes(int offset, int *startOffset, int *end
family = family.replace(u'=', QLatin1String("\\=")); family = family.replace(u'=', QLatin1String("\\="));
family = family.replace(u';', QLatin1String("\\;")); family = family.replace(u';', QLatin1String("\\;"));
family = family.replace(u'\"', QLatin1String("\\\"")); family = family.replace(u'\"', QLatin1String("\\\""));
attrs["font-family"] = QLatin1Char('"') + family + QLatin1Char('"'); attrs["font-family"] = u'"' + family + u'"';
} }
int fontSize = int(charFormatFont.pointSize()); int fontSize = int(charFormatFont.pointSize());
@ -966,7 +966,7 @@ QString QAccessibleTextWidget::text(int startOffset, int endOffset) const
cursor.setPosition(startOffset, QTextCursor::MoveAnchor); cursor.setPosition(startOffset, QTextCursor::MoveAnchor);
cursor.setPosition(endOffset, QTextCursor::KeepAnchor); cursor.setPosition(endOffset, QTextCursor::KeepAnchor);
return cursor.selectedText().replace(QChar(QChar::ParagraphSeparator), QLatin1Char('\n')); return cursor.selectedText().replace(QChar(QChar::ParagraphSeparator), u'\n');
} }
QPoint QAccessibleTextWidget::scrollBarPosition() const QPoint QAccessibleTextWidget::scrollBarPosition() const

View File

@ -963,10 +963,10 @@ void QFileDialog::setDirectory(const QString &directory)
d->qFileDialogUi->newFolderButton->setEnabled(d->model->flags(root) & Qt::ItemIsDropEnabled); d->qFileDialogUi->newFolderButton->setEnabled(d->model->flags(root) & Qt::ItemIsDropEnabled);
if (root != d->rootIndex()) { if (root != d->rootIndex()) {
#if QT_CONFIG(fscompleter) #if QT_CONFIG(fscompleter)
if (directory.endsWith(QLatin1Char('/'))) if (directory.endsWith(u'/'))
d->completer->setCompletionPrefix(newDirectory); d->completer->setCompletionPrefix(newDirectory);
else else
d->completer->setCompletionPrefix(newDirectory + QLatin1Char('/')); d->completer->setCompletionPrefix(newDirectory + u'/');
#endif #endif
d->setRootIndex(root); d->setRootIndex(root);
} }
@ -1065,7 +1065,7 @@ static inline QString fileFromPath(const QString &rootPath, QString path)
if (path.at(0) == QDir::separator() if (path.at(0) == QDir::separator()
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
//On Windows both cases can happen //On Windows both cases can happen
|| path.at(0) == QLatin1Char('/') || path.at(0) == u'/'
#endif #endif
) { ) {
path.remove(0, 1); path.remove(0, 1);
@ -1089,8 +1089,8 @@ void QFileDialog::selectFile(const QString &filename)
if (QFileInfo(filename).isRelative()) { if (QFileInfo(filename).isRelative()) {
url = d->options->initialDirectory(); url = d->options->initialDirectory();
QString path = url.path(); QString path = url.path();
if (!path.endsWith(QLatin1Char('/'))) if (!path.endsWith(u'/'))
path += QLatin1Char('/'); path += u'/';
url.setPath(path + filename); url.setPath(path + filename);
} else { } else {
url = QUrl::fromLocalFile(filename); url = QUrl::fromLocalFile(filename);
@ -1139,7 +1139,7 @@ void QFileDialog::selectUrl(const QUrl &url)
#ifdef Q_OS_UNIX #ifdef Q_OS_UNIX
Q_AUTOTEST_EXPORT QString qt_tildeExpansion(const QString &path) Q_AUTOTEST_EXPORT QString qt_tildeExpansion(const QString &path)
{ {
if (!path.startsWith(QLatin1Char('~'))) if (!path.startsWith(u'~'))
return path; return path;
int separatorPosition = path.indexOf(QDir::separator()); int separatorPosition = path.indexOf(QDir::separator());
if (separatorPosition < 0) if (separatorPosition < 0)
@ -1185,7 +1185,7 @@ QStringList QFileDialogPrivate::typedFiles() const
Q_Q(const QFileDialog); Q_Q(const QFileDialog);
QStringList files; QStringList files;
QString editText = lineEdit()->text(); QString editText = lineEdit()->text();
if (!editText.contains(QLatin1Char('"'))) { if (!editText.contains(u'"')) {
#ifdef Q_OS_UNIX #ifdef Q_OS_UNIX
const QString prefix = q->directory().absolutePath() + QDir::separator(); const QString prefix = q->directory().absolutePath() + QDir::separator();
if (QFile::exists(prefix + editText)) if (QFile::exists(prefix + editText))
@ -1199,7 +1199,7 @@ QStringList QFileDialogPrivate::typedFiles() const
} else { } else {
// " is used to separate files like so: "file1" "file2" "file3" ... // " is used to separate files like so: "file1" "file2" "file3" ...
// ### need escape character for filenames with quotes (") // ### need escape character for filenames with quotes (")
QStringList tokens = editText.split(QLatin1Char('\"')); QStringList tokens = editText.split(u'\"');
for (int i=0; i<tokens.size(); ++i) { for (int i=0; i<tokens.size(); ++i) {
if ((i % 2) == 0) if ((i % 2) == 0)
continue; // Every even token is a separator continue; // Every even token is a separator
@ -1252,7 +1252,7 @@ QStringList QFileDialogPrivate::addDefaultSuffixToFiles(const QStringList &files
// if the filename has no suffix, add the default suffix // if the filename has no suffix, add the default suffix
const QString defaultSuffix = options->defaultSuffix(); const QString defaultSuffix = options->defaultSuffix();
if (!defaultSuffix.isEmpty() && !info.isDir() && !info.fileName().contains(u'.')) if (!defaultSuffix.isEmpty() && !info.isDir() && !info.fileName().contains(u'.'))
name += QLatin1Char('.') + defaultSuffix; name += u'.' + defaultSuffix;
if (info.isAbsolute()) { if (info.isAbsolute()) {
files.append(name); files.append(name);
@ -1261,8 +1261,8 @@ QStringList QFileDialogPrivate::addDefaultSuffixToFiles(const QStringList &files
// This check is needed since we might be at the root directory // This check is needed since we might be at the root directory
// and on Windows it already ends with slash. // and on Windows it already ends with slash.
QString path = rootPath(); QString path = rootPath();
if (!path.endsWith(QLatin1Char('/'))) if (!path.endsWith(u'/'))
path += QLatin1Char('/'); path += u'/';
path += name; path += name;
files.append(path); files.append(path);
} }
@ -1352,8 +1352,8 @@ QStringList qt_make_filter_list(const QString &filter)
return QStringList(); return QStringList();
QString sep(QLatin1String(";;")); QString sep(QLatin1String(";;"));
if (!filter.contains(sep) && filter.contains(QLatin1Char('\n'))) if (!filter.contains(sep) && filter.contains(u'\n'))
sep = QLatin1Char('\n'); sep = u'\n';
return filter.split(sep); return filter.split(sep);
} }
@ -1554,8 +1554,8 @@ static QString nameFilterForMime(const QString &mimeType)
if (mime.isDefault()) { if (mime.isDefault()) {
return QFileDialog::tr("All files (*)"); return QFileDialog::tr("All files (*)");
} else { } else {
const QString patterns = mime.globPatterns().join(QLatin1Char(' ')); const QString patterns = mime.globPatterns().join(u' ');
return mime.comment() + QLatin1String(" (") + patterns + QLatin1Char(')'); return mime.comment() + QLatin1String(" (") + patterns + u')';
} }
} }
return QString(); return QString();
@ -3625,7 +3625,7 @@ void QFileDialogPrivate::_q_deleteCurrent()
void QFileDialogPrivate::_q_autoCompleteFileName(const QString &text) void QFileDialogPrivate::_q_autoCompleteFileName(const QString &text)
{ {
if (text.startsWith(QLatin1String("//")) || text.startsWith(QLatin1Char('\\'))) { if (text.startsWith(QLatin1String("//")) || text.startsWith(u'\\')) {
qFileDialogUi->listView->selectionModel()->clearSelection(); qFileDialogUi->listView->selectionModel()->clearSelection();
return; return;
} }
@ -3667,7 +3667,7 @@ void QFileDialogPrivate::_q_updateOkButton()
const QStringList files = q->selectedFiles(); const QStringList files = q->selectedFiles();
QString lineEditText = lineEdit()->text(); QString lineEditText = lineEdit()->text();
if (lineEditText.startsWith(QLatin1String("//")) || lineEditText.startsWith(QLatin1Char('\\'))) { if (lineEditText.startsWith(QLatin1String("//")) || lineEditText.startsWith(u'\\')) {
button->setEnabled(true); button->setEnabled(true);
updateOkButtonText(); updateOkButtonText();
return; return;
@ -3697,7 +3697,7 @@ void QFileDialogPrivate::_q_updateOkButton()
if (info.isDir()) { if (info.isDir()) {
fileDir = info.canonicalFilePath(); fileDir = info.canonicalFilePath();
} else { } else {
fileDir = fn.mid(0, fn.lastIndexOf(QLatin1Char('/'))); fileDir = fn.mid(0, fn.lastIndexOf(u'/'));
fileName = fn.mid(fileDir.length() + 1); fileName = fn.mid(fileDir.length() + 1);
} }
if (lineEditText.contains(QLatin1String(".."))) { if (lineEditText.contains(QLatin1String(".."))) {
@ -3875,11 +3875,11 @@ void QFileDialogPrivate::_q_selectionChanged()
allFiles.append(index.data().toString()); allFiles.append(index.data().toString());
} }
if (allFiles.count() > 1) if (allFiles.count() > 1)
for (int i = 0; i < allFiles.count(); ++i) { for (qsizetype i = 0; i < allFiles.count(); ++i) {
allFiles.replace(i, QString(QLatin1Char('"') + allFiles.at(i) + QLatin1Char('"'))); allFiles.replace(i, QString(u'"' + allFiles.at(i) + u'"'));
} }
QString finalFiles = allFiles.join(QLatin1Char(' ')); QString finalFiles = allFiles.join(u' ');
if (!finalFiles.isEmpty() && !lineEdit()->hasFocus() && lineEdit()->isVisible()) if (!finalFiles.isEmpty() && !lineEdit()->hasFocus() && lineEdit()->isVisible())
lineEdit()->setText(finalFiles); lineEdit()->setText(finalFiles);
else else
@ -4003,11 +4003,11 @@ bool QFileDialogPrivate::itemViewKeyboardEvent(QKeyEvent *event) {
QString QFileDialogPrivate::getEnvironmentVariable(const QString &string) QString QFileDialogPrivate::getEnvironmentVariable(const QString &string)
{ {
#ifdef Q_OS_UNIX #ifdef Q_OS_UNIX
if (string.size() > 1 && string.startsWith(QLatin1Char('$'))) { if (string.size() > 1 && string.startsWith(u'$')) {
return QString::fromLocal8Bit(qgetenv(QStringView{string}.mid(1).toLatin1().constData())); return QString::fromLocal8Bit(qgetenv(QStringView{string}.mid(1).toLatin1().constData()));
} }
#else #else
if (string.size() > 2 && string.startsWith(QLatin1Char('%')) && string.endsWith(QLatin1Char('%'))) { if (string.size() > 2 && string.startsWith(u'%') && string.endsWith(u'%')) {
return QString::fromLocal8Bit(qgetenv(QStringView{string}.mid(1, string.size() - 2).toLatin1().constData())); return QString::fromLocal8Bit(qgetenv(QStringView{string}.mid(1, string.size() - 2).toLatin1().constData()));
} }
#endif #endif
@ -4196,7 +4196,7 @@ QString QFSCompleter::pathFromIndex(const QModelIndex &index) const
if (currentLocation == QDir::separator()) if (currentLocation == QDir::separator())
return path.mid(currentLocation.length()); return path.mid(currentLocation.length());
#endif #endif
if (currentLocation.endsWith(QLatin1Char('/'))) if (currentLocation.endsWith(u'/'))
return path.mid(currentLocation.length()); return path.mid(currentLocation.length());
else else
return path.mid(currentLocation.length()+1); return path.mid(currentLocation.length()+1);
@ -4247,7 +4247,7 @@ QStringList QFSCompleter::splitPath(const QString &path) const
#endif #endif
#if defined(Q_OS_WIN) #if defined(Q_OS_WIN)
bool startsFromRoot = !parts.isEmpty() && parts[0].endsWith(QLatin1Char(':')); bool startsFromRoot = !parts.isEmpty() && parts[0].endsWith(u':');
#else #else
bool startsFromRoot = pathCopy[0] == sep; bool startsFromRoot = pathCopy[0] == sep;
#endif #endif
@ -4259,7 +4259,7 @@ QStringList QFSCompleter::splitPath(const QString &path) const
dirModel = sourceModel; dirModel = sourceModel;
QString currentLocation = QDir::toNativeSeparators(dirModel->rootPath()); QString currentLocation = QDir::toNativeSeparators(dirModel->rootPath());
#if defined(Q_OS_WIN) #if defined(Q_OS_WIN)
if (currentLocation.endsWith(QLatin1Char(':'))) if (currentLocation.endsWith(u':'))
currentLocation.append(sep); currentLocation.append(sep);
#endif #endif
if (currentLocation.contains(sep) && path != currentLocation) { if (currentLocation.contains(sep) && path != currentLocation) {

View File

@ -182,7 +182,7 @@ public:
{ {
#if defined(Q_OS_WIN) #if defined(Q_OS_WIN)
QString n(path); QString n(path);
n.replace(QLatin1Char('\\'), QLatin1Char('/')); n.replace(u'\\', u'/');
return n; return n;
#else // the compile should optimize away this #else // the compile should optimize away this
return path; return path;

View File

@ -1497,19 +1497,19 @@ void QMessageBox::keyPressEvent(QKeyEvent *e)
if (e == QKeySequence::Copy) { if (e == QKeySequence::Copy) {
const QLatin1String separator("---------------------------\n"); const QLatin1String separator("---------------------------\n");
QString textToCopy; QString textToCopy;
textToCopy += separator + windowTitle() + QLatin1Char('\n') + separator // title textToCopy += separator + windowTitle() + u'\n' + separator // title
+ d->label->text() + QLatin1Char('\n') + separator; // text + d->label->text() + u'\n' + separator; // text
if (d->informativeLabel) if (d->informativeLabel)
textToCopy += d->informativeLabel->text() + QLatin1Char('\n') + separator; textToCopy += d->informativeLabel->text() + u'\n' + separator;
const QList<QAbstractButton *> buttons = d->buttonBox->buttons(); const QList<QAbstractButton *> buttons = d->buttonBox->buttons();
for (const auto *button : buttons) for (const auto *button : buttons)
textToCopy += button->text() + QLatin1String(" "); textToCopy += button->text() + QLatin1String(" ");
textToCopy += QLatin1Char('\n') + separator; textToCopy += u'\n' + separator;
#if QT_CONFIG(textedit) #if QT_CONFIG(textedit)
if (d->detailsText) if (d->detailsText)
textToCopy += d->detailsText->text() + QLatin1Char('\n') + separator; textToCopy += d->detailsText->text() + u'\n' + separator;
#endif #endif
QGuiApplication::clipboard()->setText(textToCopy); QGuiApplication::clipboard()->setText(textToCopy);
return; return;

View File

@ -206,7 +206,7 @@ QWizardField::QWizardField(QWizardPage *page, const QString &spec, QObject *obje
: page(page), name(spec), mandatory(false), object(object), property(property), : page(page), name(spec), mandatory(false), object(object), property(property),
changedSignal(changedSignal) changedSignal(changedSignal)
{ {
if (name.endsWith(QLatin1Char('*'))) { if (name.endsWith(u'*')) {
name.chop(1); name.chop(1);
mandatory = true; mandatory = true;
} }

View File

@ -79,7 +79,7 @@ void MainWindow::setupContents()
do { do {
QString line = titlesFile.readLine().trimmed(); QString line = titlesFile.readLine().trimmed();
QStringList parts = line.split(QLatin1Char('\t'), Qt::SkipEmptyParts); QStringList parts = line.split(u'\t', Qt::SkipEmptyParts);
if (parts.size() != 2) if (parts.size() != 2)
break; break;

View File

@ -670,7 +670,7 @@ void JavaStyle::drawControl(ControlElement control, const QStyleOption *option,
textRect); textRect);
QString s = menuitem->text; QString s = menuitem->text;
if (!s.isEmpty()) { if (!s.isEmpty()) {
int t = s.indexOf(QLatin1Char('\t')); qsizetype t = s.indexOf(u'\t');
int text_flags = Qt::AlignVCenter | Qt::TextShowMnemonic | int text_flags = Qt::AlignVCenter | Qt::TextShowMnemonic |
Qt::TextDontClip | Qt::TextSingleLine; Qt::TextDontClip | Qt::TextSingleLine;
if (!styleHint(SH_UnderlineShortcut, menuitem, widget)) if (!styleHint(SH_UnderlineShortcut, menuitem, widget))
@ -2727,7 +2727,7 @@ QSize JavaStyle::sizeFromContents(ContentsType type,
if (!menuItem->text.isEmpty()) { if (!menuItem->text.isEmpty()) {
QFontMetrics metrics(menuItem->font); QFontMetrics metrics(menuItem->font);
QString text = menuItem->text; QString text = menuItem->text;
text.remove(QLatin1Char('\t')); text.remove(u'\t');
QRect textRect = metrics.boundingRect(text); QRect textRect = metrics.boundingRect(text);
width += textRect.width(); width += textRect.width();
if (height < textRect.height()) if (height < textRect.height())

View File

@ -10611,7 +10611,7 @@ void QGraphicsSimpleTextItemPrivate::updateBoundingRect()
br = QRectF(); br = QRectF();
} else { } else {
QString tmp = text; QString tmp = text;
tmp.replace(QLatin1Char('\n'), QChar::LineSeparator); tmp.replace(u'\n', QChar::LineSeparator);
QStackTextEngine engine(tmp, font); QStackTextEngine engine(tmp, font);
QTextLayout layout(&engine); QTextLayout layout(&engine);
br = setupTextLayout(&layout); br = setupTextLayout(&layout);
@ -10772,7 +10772,7 @@ void QGraphicsSimpleTextItem::paint(QPainter *painter, const QStyleOptionGraphic
painter->setFont(d->font); painter->setFont(d->font);
QString tmp = d->text; QString tmp = d->text;
tmp.replace(QLatin1Char('\n'), QChar::LineSeparator); tmp.replace(u'\n', QChar::LineSeparator);
QStackTextEngine engine(tmp, d->font); QStackTextEngine engine(tmp, d->font);
QTextLayout layout(&engine); QTextLayout layout(&engine);

View File

@ -605,7 +605,7 @@ QString QAbstractItemDelegatePrivate::textForRole(Qt::ItemDataRole role, const Q
default: { default: {
text = value.toString(); text = value.toString();
if (role == Qt::DisplayRole) if (role == Qt::DisplayRole)
text.replace(QLatin1Char('\n'), QChar::LineSeparator); text.replace(u'\n', QChar::LineSeparator);
break; break;
} }
} }

View File

@ -95,7 +95,7 @@ public:
inline static QString replaceNewLine(QString text) inline static QString replaceNewLine(QString text)
{ {
text.replace(QLatin1Char('\n'), QChar::LineSeparator); text.replace(u'\n', QChar::LineSeparator);
return text; return text;
} }

View File

@ -4391,7 +4391,7 @@ QRect QCommonStyle::subControlRect(ComplexControl cc, const QStyleOptionComplex
case SC_GroupBoxLabel: { case SC_GroupBoxLabel: {
QFontMetrics fontMetrics = groupBox->fontMetrics; QFontMetrics fontMetrics = groupBox->fontMetrics;
int th = fontMetrics.height(); int th = fontMetrics.height();
int tw = fontMetrics.size(Qt::TextShowMnemonic, groupBox->text + QLatin1Char(' ')).width(); int tw = fontMetrics.size(Qt::TextShowMnemonic, groupBox->text + u' ').width();
int marg = (groupBox->features & QStyleOptionFrame::Flat) ? 0 : 8; int marg = (groupBox->features & QStyleOptionFrame::Flat) ? 0 : 8;
ret = groupBox->rect.adjusted(marg, 0, -marg, 0); ret = groupBox->rect.adjusted(marg, 0, -marg, 0);
@ -4926,7 +4926,7 @@ QSize QCommonStyle::sizeFromContents(ContentsType ct, const QStyleOption *opt,
h = qMax(h, mi->icon.actualSize(QSize(iconExtent, iconExtent)).height() + 4); h = qMax(h, mi->icon.actualSize(QSize(iconExtent, iconExtent)).height() + 4);
} }
} }
if (mi->text.contains(QLatin1Char('\t'))) if (mi->text.contains(u'\t'))
w += 12; w += 12;
if (maxpmw > 0) if (maxpmw > 0)
w += maxpmw + 6; w += maxpmw + 6;

View File

@ -1693,7 +1693,7 @@ void QFusionStyle::drawControl(ControlElement element, const QStyleOption *optio
QStringView s(menuitem->text); QStringView s(menuitem->text);
if (!s.isEmpty()) { // draw text if (!s.isEmpty()) { // draw text
p->save(); p->save();
const int tabIndex = s.indexOf(QLatin1Char('\t')); const qsizetype tabIndex = s.indexOf(u'\t');
int text_flags = Qt::AlignVCenter | Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine; int text_flags = Qt::AlignVCenter | Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine;
if (!proxy()->styleHint(SH_UnderlineShortcut, menuitem, widget)) if (!proxy()->styleHint(SH_UnderlineShortcut, menuitem, widget))
text_flags |= Qt::TextHideMnemonic; text_flags |= Qt::TextHideMnemonic;
@ -3185,7 +3185,7 @@ QSize QFusionStyle::sizeFromContents(ContentsType type, const QStyleOption *opti
case CT_MenuItem: case CT_MenuItem:
if (const QStyleOptionMenuItem *menuItem = qstyleoption_cast<const QStyleOptionMenuItem *>(option)) { if (const QStyleOptionMenuItem *menuItem = qstyleoption_cast<const QStyleOptionMenuItem *>(option)) {
int w = size.width(); // Don't rely of QCommonStyle's width calculation here int w = size.width(); // Don't rely of QCommonStyle's width calculation here
if (menuItem->text.contains(QLatin1Char('\t'))) if (menuItem->text.contains(u'\t'))
w += menuItem->reservedShortcutWidth; w += menuItem->reservedShortcutWidth;
else if (menuItem->menuItemType == QStyleOptionMenuItem::SubMenu) else if (menuItem->menuItemType == QStyleOptionMenuItem::SubMenu)
w += 2 * QStyleHelper::dpiScaled(QFusionStylePrivate::menuArrowHMargin, option); w += 2 * QStyleHelper::dpiScaled(QFusionStylePrivate::menuArrowHMargin, option);

View File

@ -1205,10 +1205,10 @@ QPixmap QPixmapStylePrivate::getCachedPixmap(QPixmapStyle::ControlDescriptor con
{ {
Q_Q(const QPixmapStyle); Q_Q(const QPixmapStyle);
const QString sizeString = QString::number(size.width()) % QLatin1Char('*') const QString sizeString = QString::number(size.width()) % u'*'
% QString::number(size.height()); % QString::number(size.height());
const QString key = QLatin1String(q->metaObject()->className()) % QString::number(control) const QString key = QLatin1String(q->metaObject()->className()) % QString::number(control)
% QLatin1Char('@') % sizeString; % u'@' % sizeString;
QPixmap result; QPixmap result;

View File

@ -75,7 +75,7 @@ QString uniqueName(const QString &key, const QStyleOption *option, const QSize &
if (const QStyleOptionSpinBox *spinBox = qstyleoption_cast<const QStyleOptionSpinBox *>(option)) { if (const QStyleOptionSpinBox *spinBox = qstyleoption_cast<const QStyleOptionSpinBox *>(option)) {
tmp = tmp % HexString<uint>(spinBox->buttonSymbols) tmp = tmp % HexString<uint>(spinBox->buttonSymbols)
% HexString<uint>(spinBox->stepEnabled) % HexString<uint>(spinBox->stepEnabled)
% QLatin1Char(spinBox->frame ? '1' : '0'); ; % QChar(spinBox->frame ? u'1' : u'0');
} }
#endif // QT_CONFIG(spinbox) #endif // QT_CONFIG(spinbox)

View File

@ -1567,7 +1567,7 @@ public:
#endif #endif
QStringList result; QStringList result;
do { do {
result += QString::fromLatin1(metaObject->className()).replace(QLatin1Char(':'), QLatin1Char('-')); result += QString::fromLatin1(metaObject->className()).replace(u':', u'-');
metaObject = metaObject->superClass(); metaObject = metaObject->superClass();
} while (metaObject != nullptr); } while (metaObject != nullptr);
return result; return result;
@ -1592,8 +1592,8 @@ public:
if (!value.isValid()) { if (!value.isValid()) {
if (name == "class"_L1) { if (name == "class"_L1) {
QString className = QString::fromLatin1(obj->metaObject()->className()); QString className = QString::fromLatin1(obj->metaObject()->className());
if (className.contains(QLatin1Char(':'))) if (className.contains(u':'))
className.replace(QLatin1Char(':'), QLatin1Char('-')); className.replace(u':', u'-');
valueStr = className; valueStr = className;
} else if (name == "style"_L1) { } else if (name == "style"_L1) {
QWidget *w = qobject_cast<QWidget *>(obj); QWidget *w = qobject_cast<QWidget *>(obj);
@ -1616,7 +1616,7 @@ public:
if (value.isValid()) { if (value.isValid()) {
valueStr = (value.userType() == QMetaType::QStringList valueStr = (value.userType() == QMetaType::QStringList
|| value.userType() == QMetaType::QVariantList) || value.userType() == QMetaType::QVariantList)
? value.toStringList().join(QLatin1Char(' ')) ? value.toStringList().join(u' ')
: value.toString(); : value.toString();
} }
cache[name] = valueStr; cache[name] = valueStr;
@ -1718,7 +1718,7 @@ QList<QCss::StyleRule> QStyleSheetStyle::styleRules(const QObject *obj) const
if (objCacheIt == styleSheetCaches->styleSheetCache.constEnd()) { if (objCacheIt == styleSheetCaches->styleSheetCache.constEnd()) {
parser.init(styleSheet); parser.init(styleSheet);
if (!parser.parse(&ss)) { if (!parser.parse(&ss)) {
parser.init(QLatin1String("* {") + styleSheet + QLatin1Char('}')); parser.init(QLatin1String("* {") + styleSheet + u'}');
if (Q_UNLIKELY(!parser.parse(&ss))) if (Q_UNLIKELY(!parser.parse(&ss)))
qWarning() << "Could not parse stylesheet of object" << o; qWarning() << "Could not parse stylesheet of object" << o;
} }
@ -3961,7 +3961,7 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q
int text_flags = Qt::AlignLeft | Qt::AlignVCenter | Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine; int text_flags = Qt::AlignLeft | Qt::AlignVCenter | Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine;
if (!styleHint(SH_UnderlineShortcut, &mi, w)) if (!styleHint(SH_UnderlineShortcut, &mi, w))
text_flags |= Qt::TextHideMnemonic; text_flags |= Qt::TextHideMnemonic;
int t = s.indexOf(QLatin1Char('\t')); qsizetype t = s.indexOf(u'\t');
if (t >= 0) { if (t >= 0) {
QRect vShortcutRect = visualRect(opt->direction, mi.rect, QRect vShortcutRect = visualRect(opt->direction, mi.rect,
QRect(textRect.topRight(), QPoint(mi.rect.right(), textRect.bottom()))); QRect(textRect.topRight(), QPoint(mi.rect.right(), textRect.bottom())));
@ -5365,7 +5365,7 @@ QSize QStyleSheetStyle::sizeFromContents(ContentsType ct, const QStyleOption *op
} }
if ((pe == PseudoElement_Item) && (subRule.hasBox() || subRule.hasBorder() || subRule.hasFont)) { if ((pe == PseudoElement_Item) && (subRule.hasBox() || subRule.hasBorder() || subRule.hasFont)) {
QSize sz(csz); QSize sz(csz);
if (mi->text.contains(QLatin1Char('\t'))) if (mi->text.contains(u'\t'))
sz.rwidth() += 12; //as in QCommonStyle sz.rwidth() += 12; //as in QCommonStyle
if (!mi->icon.isNull()) { if (!mi->icon.isNull()) {
const int pmSmall = pixelMetric(PM_SmallIconSize); const int pmSmall = pixelMetric(PM_SmallIconSize);

View File

@ -1190,7 +1190,7 @@ void QWindowsStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPai
QStringView s(menuitem->text); QStringView s(menuitem->text);
if (!s.isEmpty()) { // draw text if (!s.isEmpty()) { // draw text
p->save(); p->save();
int t = s.indexOf(QLatin1Char('\t')); qsizetype t = s.indexOf(u'\t');
int text_flags = Qt::AlignVCenter | Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine; int text_flags = Qt::AlignVCenter | Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine;
if (!proxy()->styleHint(SH_UnderlineShortcut, menuitem, widget)) if (!proxy()->styleHint(SH_UnderlineShortcut, menuitem, widget))
text_flags |= Qt::TextHideMnemonic; text_flags |= Qt::TextHideMnemonic;
@ -2348,7 +2348,7 @@ QSize QWindowsStyle::sizeFromContents(ContentsType ct, const QStyleOption *opt,
} }
int maxpmw = mi->maxIconWidth; int maxpmw = mi->maxIconWidth;
int tabSpacing = 20; int tabSpacing = 20;
if (mi->text.contains(QLatin1Char('\t'))) if (mi->text.contains(u'\t'))
w += tabSpacing; w += tabSpacing;
else if (mi->menuItemType == QStyleOptionMenuItem::SubMenu) else if (mi->menuItemType == QStyleOptionMenuItem::SubMenu)
w += 2 * QWindowsStylePrivate::windowsArrowHMargin; w += 2 * QWindowsStylePrivate::windowsArrowHMargin;

View File

@ -983,7 +983,7 @@ static bool completeOnLoaded(const QFileSystemModel *model,
if (prefixSize == pathSize) if (prefixSize == pathSize)
return path.compare(prefix, caseSensitivity) == 0 && isRoot(model, path); return path.compare(prefix, caseSensitivity) == 0 && isRoot(model, path);
// The user is typing something within that directory and is not in a subdirectory yet. // The user is typing something within that directory and is not in a subdirectory yet.
const auto separator = QLatin1Char('/'); const auto separator = u'/';
return prefix.startsWith(path, caseSensitivity) && prefix.at(pathSize) == separator return prefix.startsWith(path, caseSensitivity) && prefix.at(pathSize) == separator
&& !QStringView{prefix}.right(prefixSize - pathSize - 1).contains(separator); && !QStringView{prefix}.right(prefixSize - pathSize - 1).contains(separator);
} }
@ -1893,7 +1893,7 @@ QStringList QCompleter::splitPath(const QString& path) const
parts[0].prepend(QLatin1String("\\\\")); parts[0].prepend(QLatin1String("\\\\"));
#else #else
if (pathCopy[0] == sep) // readd the "/" at the beginning as the split removed it if (pathCopy[0] == sep) // readd the "/" at the beginning as the split removed it
parts[0] = QLatin1Char('/'); parts[0] = u'/';
#endif #endif
return parts; return parts;

View File

@ -906,7 +906,7 @@ QSize QAbstractSpinBox::sizeHint() const
int h = d->edit->sizeHint().height(); int h = d->edit->sizeHint().height();
int w = 0; int w = 0;
QString s; QString s;
QString fixedContent = d->prefix + d->suffix + QLatin1Char(' '); QString fixedContent = d->prefix + d->suffix + u' ';
s = d->textFromValue(d->minimum); s = d->textFromValue(d->minimum);
s.truncate(18); s.truncate(18);
s += fixedContent; s += fixedContent;
@ -946,7 +946,7 @@ QSize QAbstractSpinBox::minimumSizeHint() const
int w = 0; int w = 0;
QString s; QString s;
QString fixedContent = d->prefix + QLatin1Char(' '); QString fixedContent = d->prefix + u' ';
s = d->textFromValue(d->minimum); s = d->textFromValue(d->minimum);
s.truncate(18); s.truncate(18);
s += fixedContent; s += fixedContent;

View File

@ -75,7 +75,7 @@ namespace {
static QString formatNumber(int number, int fieldWidth) static QString formatNumber(int number, int fieldWidth)
{ {
return QString::number(number).rightJustified(fieldWidth, QLatin1Char('0')); return QString::number(number).rightJustified(fieldWidth, u'0');
} }
class QCalendarDateSectionValidator class QCalendarDateSectionValidator
@ -544,7 +544,7 @@ void QCalendarDateValidator::setFormat(const QString &format)
clear(); clear();
int pos = 0; int pos = 0;
const QLatin1Char quote('\''); const auto quote = u'\'';
bool quoting = false; bool quoting = false;
QString separator; QString separator;
while (pos < format.size()) { while (pos < format.size()) {
@ -560,13 +560,13 @@ void QCalendarDateValidator::setFormat(const QString &format)
quoting = false; quoting = false;
} else { } else {
QCalendarDateSectionValidator *validator = nullptr; QCalendarDateSectionValidator *validator = nullptr;
if (nextChar == QLatin1Char('d')) { if (nextChar == u'd') {
offset = qMin(4, countRepeat(format, pos)); offset = qMin(4, countRepeat(format, pos));
validator = &m_dayValidator; validator = &m_dayValidator;
} else if (nextChar == QLatin1Char('M')) { } else if (nextChar == u'M') {
offset = qMin(4, countRepeat(format, pos)); offset = qMin(4, countRepeat(format, pos));
validator = &m_monthValidator; validator = &m_monthValidator;
} else if (nextChar == QLatin1Char('y')) { } else if (nextChar == u'y') {
offset = qMin(4, countRepeat(format, pos)); offset = qMin(4, countRepeat(format, pos));
validator = &m_yearValidator; validator = &m_yearValidator;
} else { } else {

View File

@ -159,7 +159,7 @@ QStyleOptionMenuItem QComboMenuDelegate::getStyleOption(const QStyleOptionViewIt
qvariant_cast<QBrush>(index.data(Qt::BackgroundRole))); qvariant_cast<QBrush>(index.data(Qt::BackgroundRole)));
} }
menuOption.text = index.model()->data(index, Qt::DisplayRole).toString() menuOption.text = index.model()->data(index, Qt::DisplayRole).toString()
.replace(QLatin1Char('&'), QLatin1String("&&")); .replace(u'&', QLatin1String("&&"));
menuOption.reservedShortcutWidth = 0; menuOption.reservedShortcutWidth = 0;
menuOption.maxIconWidth = option.decorationSize.width() + 4; menuOption.maxIconWidth = option.decorationSize.width() + 4;
menuOption.menuRect = option.rect; menuOption.menuRect = option.rect;
@ -398,7 +398,7 @@ QSize QComboBoxPrivate::recomputeSizeHint(QSize &sh) const
case QComboBox::AdjustToContents: case QComboBox::AdjustToContents:
case QComboBox::AdjustToContentsOnFirstShow: case QComboBox::AdjustToContentsOnFirstShow:
if (count == 0) { if (count == 0) {
sh.rwidth() = 7 * fm.horizontalAdvance(QLatin1Char('x')); sh.rwidth() = 7 * fm.horizontalAdvance(u'x');
} else { } else {
for (int i = 0; i < count; ++i) { for (int i = 0; i < count; ++i) {
if (!q->itemIcon(i).isNull()) { if (!q->itemIcon(i).isNull()) {
@ -418,7 +418,7 @@ QSize QComboBoxPrivate::recomputeSizeHint(QSize &sh) const
hasIcon = !q->itemIcon(i).isNull(); hasIcon = !q->itemIcon(i).isNull();
} }
if (minimumContentsLength > 0) if (minimumContentsLength > 0)
sh.setWidth(qMax(sh.width(), minimumContentsLength * fm.horizontalAdvance(QLatin1Char('X')) + (hasIcon ? iconSize.width() + 4 : 0))); sh.setWidth(qMax(sh.width(), minimumContentsLength * fm.horizontalAdvance(u'X') + (hasIcon ? iconSize.width() + 4 : 0)));
if (!placeholderText.isEmpty()) if (!placeholderText.isEmpty())
sh.setWidth(qMax(sh.width(), fm.boundingRect(placeholderText).width())); sh.setWidth(qMax(sh.width(), fm.boundingRect(placeholderText).width()));

View File

@ -1065,9 +1065,9 @@ QSize QDateTimeEdit::sizeHint() const
int h = d->edit->sizeHint().height(); int h = d->edit->sizeHint().height();
int w = 0; int w = 0;
QString s; QString s;
s = d->textFromValue(d->minimum) + QLatin1Char(' '); s = d->textFromValue(d->minimum) + u' ';
w = qMax<int>(w, fm.horizontalAdvance(s)); w = qMax<int>(w, fm.horizontalAdvance(s));
s = d->textFromValue(d->maximum) + QLatin1Char(' '); s = d->textFromValue(d->maximum) + u' ';
w = qMax<int>(w, fm.horizontalAdvance(s)); w = qMax<int>(w, fm.horizontalAdvance(s));
if (d->specialValueText.size()) { if (d->specialValueText.size()) {
s = d->specialValueText; s = d->specialValueText;
@ -1950,7 +1950,7 @@ int QDateTimeEditPrivate::nextPrevSection(int current, bool forward) const
void QDateTimeEditPrivate::clearSection(int index) void QDateTimeEditPrivate::clearSection(int index)
{ {
const QLatin1Char space(' '); const auto space = u' ';
int cursorPos = edit->cursorPosition(); int cursorPos = edit->cursorPosition();
const QSignalBlocker blocker(edit); const QSignalBlocker blocker(edit);
QString t = edit->text(); QString t = edit->text();

View File

@ -567,7 +567,7 @@ QSize QFontComboBox::sizeHint() const
{ {
QSize sz = QComboBox::sizeHint(); QSize sz = QComboBox::sizeHint();
QFontMetrics fm(font()); QFontMetrics fm(font());
sz.setWidth(fm.horizontalAdvance(QLatin1Char('m'))*14); sz.setWidth(fm.horizontalAdvance(u'm') * 14);
return sz; return sz;
} }

View File

@ -496,7 +496,7 @@ QSize QGroupBox::minimumSizeHint() const
QFontMetrics metrics(fontMetrics()); QFontMetrics metrics(fontMetrics());
int baseWidth = metrics.horizontalAdvance(d->title) + metrics.horizontalAdvance(QLatin1Char(' ')); int baseWidth = metrics.horizontalAdvance(d->title) + metrics.horizontalAdvance(u' ');
int baseHeight = metrics.height(); int baseHeight = metrics.height();
if (d->checkable) { if (d->checkable) {
baseWidth += style()->pixelMetric(QStyle::PM_IndicatorWidth, &option); baseWidth += style()->pixelMetric(QStyle::PM_IndicatorWidth, &option);

View File

@ -616,7 +616,7 @@ QSize QLabelPrivate::sizeForWidth(int w) const
int m = indent; int m = indent;
if (m < 0 && q->frameWidth()) // no indent, but we do have a frame if (m < 0 && q->frameWidth()) // no indent, but we do have a frame
m = fm.horizontalAdvance(QLatin1Char('x')) - margin*2; m = fm.horizontalAdvance(u'x') - margin*2;
if (m > 0) { if (m > 0) {
if ((align & Qt::AlignLeft) || (align & Qt::AlignRight)) if ((align & Qt::AlignLeft) || (align & Qt::AlignRight))
hextra += m; hextra += m;
@ -1244,7 +1244,7 @@ void QLabelPrivate::updateShortcut()
// But then we do want to hide the ampersands, so we can't use shortcutId. // But then we do want to hide the ampersands, so we can't use shortcutId.
hasShortcut = false; hasShortcut = false;
if (!text.contains(QLatin1Char('&'))) if (!text.contains(u'&'))
return; return;
hasShortcut = true; hasShortcut = true;
shortcutId = q->grabShortcut(QKeySequence::mnemonic(text)); shortcutId = q->grabShortcut(QKeySequence::mnemonic(text));
@ -1513,7 +1513,7 @@ QRect QLabelPrivate::documentRect() const
: q->layoutDirection(), QFlag(this->align)); : q->layoutDirection(), QFlag(this->align));
int m = indent; int m = indent;
if (m < 0 && q->frameWidth()) // no indent, but we do have a frame if (m < 0 && q->frameWidth()) // no indent, but we do have a frame
m = q->fontMetrics().horizontalAdvance(QLatin1Char('x')) / 2 - margin; m = q->fontMetrics().horizontalAdvance(u'x') / 2 - margin;
if (m > 0) { if (m > 0) {
if (align & Qt::AlignLeft) if (align & Qt::AlignLeft)
cr.setLeft(cr.left() + m); cr.setLeft(cr.left() + m);

View File

@ -179,18 +179,18 @@ static QString int2string(int num, int base, int ndigits, bool *oflow)
} while (n != 0); } while (n != 0);
len = ndigits - len; len = ndigits - len;
if (len > 0) if (len > 0)
s += QString(len, QLatin1Char(' ')); s += QString(len, u' ');
s += QLatin1String(p); s += QLatin1String(p);
} }
break; break;
} }
if (negative) { if (negative) {
for (int i=0; i<(int)s.length(); i++) { for (int i=0; i<(int)s.length(); i++) {
if (s[i] != QLatin1Char(' ')) { if (s[i] != u' ') {
if (i != 0) { if (i != 0) {
s[i-1] = QLatin1Char('-'); s[i-1] = u'-';
} else { } else {
s.insert(0, QLatin1Char('-')); s.insert(0, u'-');
} }
break; break;
} }
@ -217,10 +217,10 @@ static QString double2string(double num, int base, int ndigits, bool *oflow)
int nd = ndigits; int nd = ndigits;
do { do {
s = QString::asprintf("%*.*g", ndigits, nd, num); s = QString::asprintf("%*.*g", ndigits, nd, num);
int i = s.indexOf(QLatin1Char('e')); qsizetype i = s.indexOf(u'e');
if (i > 0 && s[i+1]==QLatin1Char('+')) { if (i > 0 && s[i+1]==u'+') {
s[i] = QLatin1Char(' '); s[i] = u' ';
s[i+1] = QLatin1Char('e'); s[i+1] = u'e';
} }
} while (nd-- && (int)s.length() > ndigits); } while (nd-- && (int)s.length() > ndigits);
} }
@ -408,9 +408,9 @@ void QLCDNumber::setDigitCount(int numDigits)
} }
if (d->digitStr.isNull()) { // from constructor if (d->digitStr.isNull()) { // from constructor
d->ndigits = numDigits; d->ndigits = numDigits;
d->digitStr.fill(QLatin1Char(' '), d->ndigits); d->digitStr.fill(u' ', d->ndigits);
d->points.fill(0, d->ndigits); d->points.fill(0, d->ndigits);
d->digitStr[d->ndigits - 1] = QLatin1Char('0'); // "0" is the default number d->digitStr[d->ndigits - 1] = u'0'; // "0" is the default number
} else { } else {
bool doDisplay = d->ndigits == 0; bool doDisplay = d->ndigits == 0;
if (numDigits == d->ndigits) // no change if (numDigits == d->ndigits) // no change
@ -420,7 +420,7 @@ void QLCDNumber::setDigitCount(int numDigits)
if (numDigits > d->ndigits) { // expand if (numDigits > d->ndigits) { // expand
dif = numDigits - d->ndigits; dif = numDigits - d->ndigits;
QString buf; QString buf;
buf.fill(QLatin1Char(' '), dif); buf.fill(u' ', dif);
d->digitStr.insert(0, buf); d->digitStr.insert(0, buf);
d->points.resize(numDigits); d->points.resize(numDigits);
for (i=numDigits-1; i>=dif; i--) for (i=numDigits-1; i>=dif; i--)
@ -722,18 +722,18 @@ void QLCDNumberPrivate::internalSetString(const QString& s)
if (len == ndigits) if (len == ndigits)
buffer = s; buffer = s;
else else
buffer = s.right(ndigits).rightJustified(ndigits, QLatin1Char(' ')); buffer = s.right(ndigits).rightJustified(ndigits, u' ');
} else { } else {
int index = -1; int index = -1;
bool lastWasPoint = true; bool lastWasPoint = true;
newPoints.clearBit(0); newPoints.clearBit(0);
for (i=0; i<len; i++) { for (i=0; i<len; i++) {
if (s[i] == QLatin1Char('.')) { if (s[i] == u'.') {
if (lastWasPoint) { // point already set for digit? if (lastWasPoint) { // point already set for digit?
if (index == ndigits - 1) // no more digits if (index == ndigits - 1) // no more digits
break; break;
index++; index++;
buffer[index] = QLatin1Char(' '); // 2 points in a row, add space buffer[index] = u' '; // 2 points in a row, add space
} }
newPoints.setBit(index); // set decimal point newPoints.setBit(index); // set decimal point
lastWasPoint = true; lastWasPoint = true;
@ -753,7 +753,7 @@ void QLCDNumberPrivate::internalSetString(const QString& s)
newPoints.testBit(i)); newPoints.testBit(i));
} }
for(i=0; i<ndigits-index-1; i++) { for(i=0; i<ndigits-index-1; i++) {
buffer[i] = QLatin1Char(' '); buffer[i] = u' ';
newPoints.clearBit(i); newPoints.clearBit(i);
} }
} }

View File

@ -85,7 +85,7 @@
#include "qkeysequence.h" #include "qkeysequence.h"
#define ACCEL_KEY(k) (!QCoreApplication::testAttribute(Qt::AA_DontShowShortcutsInContextMenus) \ #define ACCEL_KEY(k) (!QCoreApplication::testAttribute(Qt::AA_DontShowShortcutsInContextMenus) \
&& !QGuiApplicationPrivate::instance()->shortcutMap.hasShortcutForKeySequence(k) ? \ && !QGuiApplicationPrivate::instance()->shortcutMap.hasShortcutForKeySequence(k) ? \
QLatin1Char('\t') + QKeySequence(k).toString(QKeySequence::NativeText) : QString()) u'\t' + QKeySequence(k).toString(QKeySequence::NativeText) : QString())
#else #else
#define ACCEL_KEY(k) QString() #define ACCEL_KEY(k) QString()
#endif #endif
@ -697,7 +697,7 @@ QSize QLineEdit::sizeHint() const
int h = qMax(fm.height(), qMax(14, iconSize - 2)) + 2 * QLineEditPrivate::verticalMargin int h = qMax(fm.height(), qMax(14, iconSize - 2)) + 2 * QLineEditPrivate::verticalMargin
+ tm.top() + tm.bottom() + tm.top() + tm.bottom()
+ d->topmargin + d->bottommargin; + d->topmargin + d->bottommargin;
int w = fm.horizontalAdvance(QLatin1Char('x')) * 17 + 2 * QLineEditPrivate::horizontalMargin int w = fm.horizontalAdvance(u'x') * 17 + 2 * QLineEditPrivate::horizontalMargin
+ tm.left() + tm.right() + tm.left() + tm.right()
+ d->leftmargin + d->rightmargin; // "some" + d->leftmargin + d->rightmargin; // "some"
QStyleOptionFrame opt; QStyleOptionFrame opt;

View File

@ -432,7 +432,7 @@ void QMenuPrivate::updateActionRects(const QRect &screen) const
sz = QSize(2, 2); sz = QSize(2, 2);
} else { } else {
QString s = action->text(); QString s = action->text();
int t = s.indexOf(QLatin1Char('\t')); qsizetype t = s.indexOf(u'\t');
if (t != -1) { if (t != -1) {
tabWidth = qMax(int(tabWidth), qfm.horizontalAdvance(s.mid(t+1))); tabWidth = qMax(int(tabWidth), qfm.horizontalAdvance(s.mid(t+1)));
s = s.left(t); s = s.left(t);
@ -1637,10 +1637,10 @@ void QMenu::initStyleOption(QStyleOptionMenuItem *option, const QAction *action)
QString textAndAccel = action->text(); QString textAndAccel = action->text();
#ifndef QT_NO_SHORTCUT #ifndef QT_NO_SHORTCUT
if ((action->isShortcutVisibleInContextMenu() || !d->isContextMenu()) if ((action->isShortcutVisibleInContextMenu() || !d->isContextMenu())
&& textAndAccel.indexOf(QLatin1Char('\t')) == -1) { && textAndAccel.indexOf(u'\t') == -1) {
QKeySequence seq = action->shortcut(); QKeySequence seq = action->shortcut();
if (!seq.isEmpty()) if (!seq.isEmpty())
textAndAccel += QLatin1Char('\t') + seq.toString(QKeySequence::NativeText); textAndAccel += u'\t' + seq.toString(QKeySequence::NativeText);
} }
#endif #endif
option->text = textAndAccel; option->text = textAndAccel;

View File

@ -1105,7 +1105,7 @@ void QMenuBar::keyPressEvent(QKeyEvent *e)
QAction *act = d->actions.at(i); QAction *act = d->actions.at(i);
QString s = act->text(); QString s = act->text();
if (!s.isEmpty()) { if (!s.isEmpty()) {
int ampersand = s.indexOf(QLatin1Char('&')); qsizetype ampersand = s.indexOf(u'&');
if (ampersand >= 0) { if (ampersand >= 0) {
if (s[ampersand+1].toUpper() == c) { if (s[ampersand+1].toUpper() == c) {
clashCount++; clashCount++;

View File

@ -422,7 +422,7 @@ QSize QProgressBar::sizeHint() const
QStyleOptionProgressBar opt; QStyleOptionProgressBar opt;
initStyleOption(&opt); initStyleOption(&opt);
int cw = style()->pixelMetric(QStyle::PM_ProgressBarChunkWidth, &opt, this); int cw = style()->pixelMetric(QStyle::PM_ProgressBarChunkWidth, &opt, this);
QSize size = QSize(qMax(9, cw) * 7 + fm.horizontalAdvance(QLatin1Char('0')) * 4, fm.height() + 8); QSize size = QSize(qMax(9, cw) * 7 + fm.horizontalAdvance(u'0') * 4, fm.height() + 8);
if (!(opt.state & QStyle::State_Horizontal)) if (!(opt.state & QStyle::State_Horizontal))
size = size.transposed(); size = size.transposed();
return style()->sizeFromContents(QStyle::CT_ProgressBar, &opt, size, this); return style()->sizeFromContents(QStyle::CT_ProgressBar, &opt, size, this);

View File

@ -977,9 +977,8 @@ void QDoubleSpinBox::setDecimals(int decimals)
This virtual function is used by the spin box whenever it needs to This virtual function is used by the spin box whenever it needs to
display the given \a value. The default implementation returns a string display the given \a value. The default implementation returns a string
containing \a value printed using QWidget::locale().toString(\a value, containing \a value printed using QWidget::locale().toString(\a value,
QLatin1Char('f'), decimals()) and will remove the thousand \c u'f', decimals()) and will remove the thousand separator unless
separator unless setGroupSeparatorShown() is set. Reimplementations may setGroupSeparatorShown() is set. Reimplementations may return anything.
return anything.
Note: QDoubleSpinBox does not call this function for Note: QDoubleSpinBox does not call this function for
specialValueText() and that neither prefix() nor suffix() should specialValueText() and that neither prefix() nor suffix() should
@ -1131,7 +1130,7 @@ QVariant QSpinBoxPrivate::validateAndInterpret(QString &input, int &pos,
|| (max >= 0 && copy == QLatin1String("+")))) { || (max >= 0 && copy == QLatin1String("+")))) {
state = QValidator::Intermediate; state = QValidator::Intermediate;
QSBDEBUG() << __FILE__ << __LINE__<< "num is set to" << num; QSBDEBUG() << __FILE__ << __LINE__<< "num is set to" << num;
} else if (copy.startsWith(QLatin1Char('-')) && min >= 0) { } else if (copy.startsWith(u'-') && min >= 0) {
state = QValidator::Invalid; // special-case -0 will be interpreted as 0 and thus not be invalid with a range from 0-100 state = QValidator::Invalid; // special-case -0 will be interpreted as 0 and thus not be invalid with a range from 0-100
} else { } else {
bool ok = false; bool ok = false;
@ -1291,15 +1290,15 @@ QVariant QDoubleSpinBoxPrivate::validateAndInterpret(QString &input, int &pos,
goto end; goto end;
case 1: case 1:
if (copy.at(0) == locale.decimalPoint() if (copy.at(0) == locale.decimalPoint()
|| (plus && copy.at(0) == QLatin1Char('+')) || (plus && copy.at(0) == u'+')
|| (minus && copy.at(0) == QLatin1Char('-'))) { || (minus && copy.at(0) == u'-')) {
state = QValidator::Intermediate; state = QValidator::Intermediate;
goto end; goto end;
} }
break; break;
case 2: case 2:
if (copy.at(1) == locale.decimalPoint() if (copy.at(1) == locale.decimalPoint()
&& ((plus && copy.at(0) == QLatin1Char('+')) || (minus && copy.at(0) == QLatin1Char('-')))) { && ((plus && copy.at(0) == u'+') || (minus && copy.at(0) == u'-'))) {
state = QValidator::Intermediate; state = QValidator::Intermediate;
goto end; goto end;
} }

View File

@ -189,8 +189,8 @@ QString QTextBrowserPrivate::findFile(const QUrl &name) const
return fileName; return fileName;
for (QString path : qAsConst(searchPaths)) { for (QString path : qAsConst(searchPaths)) {
if (!path.endsWith(QLatin1Char('/'))) if (!path.endsWith(u'/'))
path.append(QLatin1Char('/')); path.append(u'/');
path.append(fileName); path.append(fileName);
if (QFileInfo(path).isReadable()) if (QFileInfo(path).isReadable())
return path; return path;
@ -336,7 +336,7 @@ void QTextBrowserPrivate::setSource(const QUrl &url, QTextDocument::ResourceType
qWarning("QTextBrowser: No document for %s", url.toString().toLatin1().constData()); qWarning("QTextBrowser: No document for %s", url.toString().toLatin1().constData());
if (q->isVisible()) { if (q->isVisible()) {
const QStringView firstTag = QStringView{txt}.left(txt.indexOf(QLatin1Char('>')) + 1); const QStringView firstTag = QStringView{txt}.left(txt.indexOf(u'>') + 1);
if (firstTag.startsWith(QLatin1String("<qt")) && firstTag.contains(QLatin1String("type")) && firstTag.contains(QLatin1String("detail"))) { if (firstTag.startsWith(QLatin1String("<qt")) && firstTag.contains(QLatin1String("type")) && firstTag.contains(QLatin1String("detail"))) {
#ifndef QT_NO_CURSOR #ifndef QT_NO_CURSOR
QGuiApplication::restoreOverrideCursor(); QGuiApplication::restoreOverrideCursor();

View File

@ -1408,7 +1408,7 @@ void QTextEdit::keyPressEvent(QKeyEvent *e)
if (cursor.atBlockStart() if (cursor.atBlockStart()
&& (d->autoFormatting & AutoBulletList) && (d->autoFormatting & AutoBulletList)
&& (text.length() == 1) && (text.length() == 1)
&& (text.at(0) == QLatin1Char('-') || text.at(0) == QLatin1Char('*')) && (text.at(0) == u'-' || text.at(0) == u'*')
&& (!cursor.currentList())) { && (!cursor.currentList())) {
d->createAutoBulletList(); d->createAutoBulletList();

View File

@ -347,7 +347,7 @@ QSize QToolButton::sizeHint() const
if (opt.toolButtonStyle != Qt::ToolButtonIconOnly) { if (opt.toolButtonStyle != Qt::ToolButtonIconOnly) {
QSize textSize = fm.size(Qt::TextShowMnemonic, text()); QSize textSize = fm.size(Qt::TextShowMnemonic, text());
textSize.setWidth(textSize.width() + fm.horizontalAdvance(QLatin1Char(' '))*2); textSize.setWidth(textSize.width() + fm.horizontalAdvance(u' ') * 2);
if (opt.toolButtonStyle == Qt::ToolButtonTextUnderIcon) { if (opt.toolButtonStyle == Qt::ToolButtonTextUnderIcon) {
h += 4 + textSize.height(); h += 4 + textSize.height();
if (textSize.width() > w) if (textSize.width() > w)

View File

@ -974,7 +974,7 @@ void QWidgetLineControl::removeSelectedText()
*/ */
void QWidgetLineControl::parseInputMask(const QString &maskFields) void QWidgetLineControl::parseInputMask(const QString &maskFields)
{ {
int delimiter = maskFields.indexOf(QLatin1Char(';')); qsizetype delimiter = maskFields.indexOf(u';');
if (maskFields.isEmpty() || delimiter == 0) { if (maskFields.isEmpty() || delimiter == 0) {
if (m_maskData) { if (m_maskData) {
m_maskData.reset(); m_maskData.reset();
@ -985,11 +985,11 @@ void QWidgetLineControl::parseInputMask(const QString &maskFields)
} }
if (delimiter == -1) { if (delimiter == -1) {
m_blank = QLatin1Char(' '); m_blank = u' ';
m_inputMask = maskFields; m_inputMask = maskFields;
} else { } else {
m_inputMask = maskFields.left(delimiter); m_inputMask = maskFields.left(delimiter);
m_blank = (delimiter + 1 < maskFields.length()) ? maskFields[delimiter + 1] : QLatin1Char(' '); m_blank = (delimiter + 1 < maskFields.length()) ? maskFields[delimiter + 1] : u' ';
} }
// calculate m_maxLength / m_maskData length // calculate m_maxLength / m_maskData length
@ -1008,10 +1008,8 @@ void QWidgetLineControl::parseInputMask(const QString &maskFields)
continue; continue;
} }
if (c != QLatin1Char('\\') && c != QLatin1Char('!') && if (c != u'\\' && c != u'!' && c != u'<' && c != u'>' &&
c != QLatin1Char('<') && c != QLatin1Char('>') && c != u'{' && c != u'}' && c != u'[' && c != u']')
c != QLatin1Char('{') && c != QLatin1Char('}') &&
c != QLatin1Char('[') && c != QLatin1Char(']'))
m_maxLength++; m_maxLength++;
} }
@ -1030,13 +1028,13 @@ void QWidgetLineControl::parseInputMask(const QString &maskFields)
m_maskData[index].caseMode = m; m_maskData[index].caseMode = m;
index++; index++;
escape = false; escape = false;
} else if (c == QLatin1Char('<')) { } else if (c == u'<') {
m = MaskInputData::Lower; m = MaskInputData::Lower;
} else if (c == QLatin1Char('>')) { } else if (c == u'>') {
m = MaskInputData::Upper; m = MaskInputData::Upper;
} else if (c == QLatin1Char('!')) { } else if (c == u'!') {
m = MaskInputData::NoCaseMode; m = MaskInputData::NoCaseMode;
} else if (c != QLatin1Char('{') && c != QLatin1Char('}') && c != QLatin1Char('[') && c != QLatin1Char(']')) { } else if (c != u'{' && c != u'}' && c != u'[' && c != u']') {
switch (c.unicode()) { switch (c.unicode()) {
case 'A': case 'A':
case 'a': case 'a':
@ -1124,23 +1122,23 @@ bool QWidgetLineControl::isValidInput(QChar key, QChar mask) const
return true; return true;
break; break;
case '#': case '#':
if (key.isNumber() || key == QLatin1Char('+') || key == QLatin1Char('-') || key == m_blank) if (key.isNumber() || key == u'+' || key == u'-' || key == m_blank)
return true; return true;
break; break;
case 'B': case 'B':
if (key == QLatin1Char('0') || key == QLatin1Char('1')) if (key == u'0' || key == u'1')
return true; return true;
break; break;
case 'b': case 'b':
if (key == QLatin1Char('0') || key == QLatin1Char('1') || key == m_blank) if (key == u'0' || key == u'1' || key == m_blank)
return true; return true;
break; break;
case 'H': case 'H':
if (key.isNumber() || (key >= QLatin1Char('a') && key <= QLatin1Char('f')) || (key >= QLatin1Char('A') && key <= QLatin1Char('F'))) if (key.isNumber() || (key >= u'a' && key <= u'f') || (key >= u'A' && key <= u'F'))
return true; return true;
break; break;
case 'h': case 'h':
if (key.isNumber() || (key >= QLatin1Char('a') && key <= QLatin1Char('f')) || (key >= QLatin1Char('A') && key <= QLatin1Char('F')) || key == m_blank) if (key.isNumber() || (key >= u'a' && key <= u'f') || (key >= u'A' && key <= u'F') || key == m_blank)
return true; return true;
break; break;
default: default:

View File

@ -323,8 +323,8 @@ public:
QString mask; QString mask;
if (m_maskData) { if (m_maskData) {
mask = m_inputMask; mask = m_inputMask;
if (m_blank != QLatin1Char(' ')) { if (m_blank != u' ') {
mask += QLatin1Char(';'); mask += u';';
mask += m_blank; mask += m_blank;
} }
} }

View File

@ -100,7 +100,7 @@
#include <qkeysequence.h> #include <qkeysequence.h>
#define ACCEL_KEY(k) (!QCoreApplication::testAttribute(Qt::AA_DontShowShortcutsInContextMenus) \ #define ACCEL_KEY(k) (!QCoreApplication::testAttribute(Qt::AA_DontShowShortcutsInContextMenus) \
&& !QGuiApplicationPrivate::instance()->shortcutMap.hasShortcutForKeySequence(k) ? \ && !QGuiApplicationPrivate::instance()->shortcutMap.hasShortcutForKeySequence(k) ? \
QLatin1Char('\t') + QKeySequence(k).toString(QKeySequence::NativeText) : QString()) u'\t' + QKeySequence(k).toString(QKeySequence::NativeText) : QString())
#else #else
#define ACCEL_KEY(k) QString() #define ACCEL_KEY(k) QString()
@ -682,7 +682,7 @@ void QWidgetTextControlPrivate::_q_contentsChanged(int from, int charsRemoved, i
QString newText = tmp.selectedText(); QString newText = tmp.selectedText();
// always report the right number of removed chars, but in lack of the real string use spaces // always report the right number of removed chars, but in lack of the real string use spaces
QString oldText = QString(charsRemoved, QLatin1Char(' ')); QString oldText = QString(charsRemoved, u' ');
QAccessibleEvent *ev = nullptr; QAccessibleEvent *ev = nullptr;
if (charsRemoved == 0) { if (charsRemoved == 0) {
@ -1449,7 +1449,7 @@ QRectF QWidgetTextControlPrivate::rectForPosition(int position) const
if (relativePos < line.textLength() - line.textStart()) if (relativePos < line.textLength() - line.textStart())
w = line.cursorToX(relativePos + 1) - x; w = line.cursorToX(relativePos + 1) - x;
else else
w = QFontMetrics(block.layout()->font()).horizontalAdvance(QLatin1Char(' ')); // in sync with QTextLine::draw() w = QFontMetrics(block.layout()->font()).horizontalAdvance(u' '); // in sync with QTextLine::draw()
} }
r = QRectF(layoutPos.x() + x, layoutPos.y() + line.y(), r = QRectF(layoutPos.x() + x, layoutPos.y() + line.y(),
cursorWidth + w, line.height()); cursorWidth + w, line.height());
@ -2198,7 +2198,7 @@ QVariant QWidgetTextControl::inputMethodQuery(Qt::InputMethodQuery property, QVa
tmpCursor.movePosition(QTextCursor::NextBlock); tmpCursor.movePosition(QTextCursor::NextBlock);
if (tmpCursor.blockNumber() == currentBlock) if (tmpCursor.blockNumber() == currentBlock)
break; break;
result += QLatin1Char('\n') + tmpCursor.block().text(); result += u'\n' + tmpCursor.block().text();
} }
return QVariant(result); return QVariant(result);
} }
@ -2219,7 +2219,7 @@ QVariant QWidgetTextControl::inputMethodQuery(Qt::InputMethodQuery property, QVa
} }
QString result; QString result;
while (numBlocks) { while (numBlocks) {
result += tmpCursor.block().text() + QLatin1Char('\n'); result += tmpCursor.block().text() + u'\n';
tmpCursor.movePosition(QTextCursor::NextBlock); tmpCursor.movePosition(QTextCursor::NextBlock);
--numBlocks; --numBlocks;
} }