From a881b57cc8dbbfc090deb940973d6a1239ce77ed Mon Sep 17 00:00:00 2001 From: Ievgenii Meshcheriakov Date: Fri, 12 May 2023 15:29:49 +0200 Subject: qdbusviewer: Use modern string literals Replace most uses of QLatin1String by _L1, QStringLiteral by _s. Use tr() for user-visible strings. Reorganize the loop inside QDBusViewer::dumpMessage() slightly to make it less sensitive to translation changes. Change-Id: Id987bd0efe06d0efd80c57982c3c2a6a031c369a Reviewed-by: Thiago Macieira --- src/qdbus/qdbusviewer/main.cpp | 10 ++-- src/qdbus/qdbusviewer/mainwindow.cpp | 29 +++++++---- src/qdbus/qdbusviewer/propertydialog.cpp | 10 ++-- src/qdbus/qdbusviewer/qdbusmodel.cpp | 66 +++++++++++++------------ src/qdbus/qdbusviewer/qdbusviewer.cpp | 72 +++++++++++++++------------- src/qdbus/qdbusviewer/servicesproxymodel.cpp | 6 ++- 6 files changed, 112 insertions(+), 81 deletions(-) diff --git a/src/qdbus/qdbusviewer/main.cpp b/src/qdbus/qdbusviewer/main.cpp index 05a82c652..fa55420df 100644 --- a/src/qdbus/qdbusviewer/main.cpp +++ b/src/qdbus/qdbusviewer/main.cpp @@ -7,16 +7,18 @@ #include +using namespace Qt::StringLiterals; + int main(int argc, char *argv[]) { QApplication app(argc, argv); - QCoreApplication::setOrganizationName(QStringLiteral("QtProject")); - QCoreApplication::setApplicationName(QStringLiteral("QDBusViewer")); + QCoreApplication::setOrganizationName(u"QtProject"_s); + QCoreApplication::setApplicationName(u"QDBusViewer"_s); MainWindow mw; #if !defined(Q_OS_OSX) && !defined(Q_OS_WIN) - app.setWindowIcon(QIcon(QLatin1String(":/qt-project.org/qdbusviewer/images/qdbusviewer.png"))); + app.setWindowIcon(QIcon(":/qt-project.org/qdbusviewer/images/qdbusviewer.png"_L1)); #endif #ifdef Q_OS_OSX mw.setWindowTitle(qApp->translate("QtDBusViewer", "Qt D-Bus Viewer")); @@ -25,7 +27,7 @@ int main(int argc, char *argv[]) QStringList args = app.arguments(); while (args.size()) { QString arg = args.takeFirst(); - if (arg == QLatin1String("--bus")) + if (arg == "--bus"_L1) mw.addCustomBusTab(args.takeFirst()); } diff --git a/src/qdbus/qdbusviewer/mainwindow.cpp b/src/qdbus/qdbusviewer/mainwindow.cpp index 0845dd58b..5f1ef486c 100644 --- a/src/qdbus/qdbusviewer/mainwindow.cpp +++ b/src/qdbus/qdbusviewer/mainwindow.cpp @@ -15,6 +15,8 @@ #include #include +using namespace Qt::StringLiterals; + MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { @@ -61,18 +63,29 @@ void MainWindow::about() { QMessageBox box(this); - box.setText(QString::fromLatin1("
" - "

%1

" - "

Version %2

" - "

Copyright (C) %3 The Qt Company Ltd.

") - .arg(tr("D-Bus Viewer"), QLatin1String(QT_VERSION_STR), QStringLiteral("2023"))); + box.setText(tr("
" + "

%1

" + "

Version %2

" + "

Copyright (C) %3 The Qt Company Ltd.

") + .arg(tr("D-Bus Viewer"), QLatin1String(QT_VERSION_STR), u"2023"_s)); box.setWindowTitle(tr("D-Bus Viewer")); box.exec(); } -static inline QString windowGeometryKey() { return QStringLiteral("WindowGeometry"); } -static inline QString sessionTabGroup() { return QStringLiteral("SessionTab"); } -static inline QString systemTabGroup() { return QStringLiteral("SystemTab"); } +static inline QString windowGeometryKey() +{ + return u"WindowGeometry"_s; +} + +static inline QString sessionTabGroup() +{ + return u"SessionTab"_s; +} + +static inline QString systemTabGroup() +{ + return u"SystemTab"_s; +} void MainWindow::saveSettings() { diff --git a/src/qdbus/qdbusviewer/propertydialog.cpp b/src/qdbus/qdbusviewer/propertydialog.cpp index 6d133d7af..5fbfd94bc 100644 --- a/src/qdbus/qdbusviewer/propertydialog.cpp +++ b/src/qdbus/qdbusviewer/propertydialog.cpp @@ -7,6 +7,8 @@ #include #include +using namespace Qt::StringLiterals; + PropertyDialog::PropertyDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) { @@ -16,7 +18,7 @@ PropertyDialog::PropertyDialog(QWidget *parent, Qt::WindowFlags f) buttonBox->setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); propertyTable->setColumnCount(2); - const QStringList labels = QStringList() << QLatin1String("Name") << QLatin1String("Value"); + const QStringList labels = QStringList() << tr("Name") << tr("Value"); propertyTable->setHorizontalHeaderLabels(labels); propertyTable->horizontalHeader()->setStretchLastSection(true); propertyTable->setEditTriggers(QAbstractItemView::AllEditTriggers); @@ -42,10 +44,10 @@ void PropertyDialog::addProperty(const QString &aname, int type) QString name = aname; if (name.isEmpty()) - name = QLatin1String("argument ") + QString::number(rowCount + 1); - name += QLatin1String(" ("); + name = tr("argument %1").arg(rowCount + 1); + name += " ("_L1; name += QLatin1String(QMetaType(type).name()); - name += QLatin1String(")"); + name += ")"_L1; QTableWidgetItem *nameItem = new QTableWidgetItem(name); nameItem->setFlags(nameItem->flags() & ~(Qt::ItemIsEditable | Qt::ItemIsSelectable)); diff --git a/src/qdbus/qdbusviewer/qdbusmodel.cpp b/src/qdbus/qdbusviewer/qdbusmodel.cpp index 9bb0dd97b..97c0094e6 100644 --- a/src/qdbus/qdbusviewer/qdbusmodel.cpp +++ b/src/qdbus/qdbusviewer/qdbusmodel.cpp @@ -12,6 +12,8 @@ #include +using namespace Qt::StringLiterals; + struct QDBusItem { inline QDBusItem(QDBusModel::Type aType, const QString &aName, QDBusItem *aParent = 0) @@ -50,24 +52,29 @@ QDomDocument QDBusModel::introspect(const QString &path) { QDomDocument doc; - QDBusInterface iface(service, path, QLatin1String("org.freedesktop.DBus.Introspectable"), c); + QDBusInterface iface(service, path, "org.freedesktop.DBus.Introspectable"_L1, c); if (!iface.isValid()) { QDBusError err(iface.lastError()); - emit busError(QString::fromLatin1("Cannot introspect object %1 at %2:\n %3 (%4)\n").arg(path).arg( - service).arg(err.name()).arg(err.message())); + emit busError(tr("Cannot introspect object %1 at %2:\n %3 (%4)\n") + .arg(path) + .arg(service) + .arg(err.name()) + .arg(err.message())); return doc; } - QDBusReply xml = iface.call(QLatin1String("Introspect")); + QDBusReply xml = iface.call("Introspect"_L1); if (!xml.isValid()) { QDBusError err(xml.error()); if (err.isValid()) { - emit busError(QString::fromLatin1("Call to object %1 at %2:\n %3 (%4) failed\n").arg( - path).arg(service).arg(err.name()).arg(err.message())); + emit busError(tr("Call to object %1 at %2:\n %3 (%4) failed\n") + .arg(path) + .arg(service) + .arg(err.name()) + .arg(err.message())); } else { - emit busError(QString::fromLatin1("Invalid XML received from object %1 at %2\n").arg( - path).arg(service)); + emit busError(tr("Invalid XML received from object %1 at %2\n").arg(path).arg(service)); } return doc; } @@ -83,25 +90,22 @@ void QDBusModel::addMethods(QDBusItem *parent, const QDomElement &iface) QDomElement child = iface.firstChildElement(); while (!child.isNull()) { QDBusItem *item = nullptr; - if (child.tagName() == QLatin1String("method")) { - item = new QDBusItem(QDBusModel::MethodItem, - child.attribute(QLatin1String("name")), parent); - item->caption = QLatin1String("Method: ") + item->name; + if (child.tagName() == "method"_L1) { + item = new QDBusItem(QDBusModel::MethodItem, child.attribute("name"_L1), parent); + item->caption = tr("Method: %1").arg(item->name); //get "type" from where "direction" is "in" QDomElement n = child.firstChildElement(); while (!n.isNull()) { - if (n.attribute(QLatin1String("direction")) == QLatin1String("in")) - item->typeSignature += n.attribute(QLatin1String("type")); + if (n.attribute("direction"_L1) == "in"_L1) + item->typeSignature += n.attribute("type"_L1); n = n.nextSiblingElement(); } - } else if (child.tagName() == QLatin1String("signal")) { - item = new QDBusItem(QDBusModel::SignalItem, - child.attribute(QLatin1String("name")), parent); - item->caption = QLatin1String("Signal: ") + item->name; - } else if (child.tagName() == QLatin1String("property")) { - item = new QDBusItem(QDBusModel::PropertyItem, - child.attribute(QLatin1String("name")), parent); - item->caption = QLatin1String("Property: ") + item->name; + } else if (child.tagName() == "signal"_L1) { + item = new QDBusItem(QDBusModel::SignalItem, child.attribute("name"_L1), parent); + item->caption = tr("Signal: %1").arg(item->name); + } else if (child.tagName() == "property"_L1) { + item = new QDBusItem(QDBusModel::PropertyItem, child.attribute("name"_L1), parent); + item->caption = tr("Property: %1").arg(item->name); } else { qDebug() << "addMethods: unknown tag:" << child.tagName(); } @@ -122,15 +126,15 @@ void QDBusModel::addPath(QDBusItem *parent) QDomElement node = doc.documentElement(); QDomElement child = node.firstChildElement(); while (!child.isNull()) { - if (child.tagName() == QLatin1String("node")) { + if (child.tagName() == "node"_L1) { QDBusItem *item = new QDBusItem(QDBusModel::PathItem, - child.attribute(QLatin1String("name")) + QLatin1Char('/'), parent); + child.attribute("name"_L1) + '/'_L1, parent); parent->children.append(item); addMethods(item, child); - } else if (child.tagName() == QLatin1String("interface")) { - QDBusItem *item = new QDBusItem(QDBusModel::InterfaceItem, - child.attribute(QLatin1String("name")), parent); + } else if (child.tagName() == "interface"_L1) { + QDBusItem *item = + new QDBusItem(QDBusModel::InterfaceItem, child.attribute("name"_L1), parent); parent->children.append(item); addMethods(item, child); @@ -146,7 +150,7 @@ void QDBusModel::addPath(QDBusItem *parent) QDBusModel::QDBusModel(const QString &aService, const QDBusConnection &connection) : service(aService), c(connection), root(0) { - root = new QDBusItem(QDBusModel::PathItem, QLatin1String("/")); + root = new QDBusItem(QDBusModel::PathItem, "/"_L1); } QDBusModel::~QDBusModel() @@ -208,7 +212,7 @@ QVariant QDBusModel::headerData(int section, Qt::Orientation orientation, int ro if (role != Qt::DisplayRole || orientation == Qt::Vertical || section != 0) return QVariant(); - return QLatin1String("Methods"); + return tr("Methods"); } QDBusModel::Type QDBusModel::itemType(const QModelIndex &index) const @@ -282,12 +286,12 @@ QString QDBusModel::dBusTypeSignature(const QModelIndex &index) const QModelIndex QDBusModel::findObject(const QDBusObjectPath &objectPath) { - QStringList path = objectPath.path().split(QLatin1Char('/'), Qt::SkipEmptyParts); + QStringList path = objectPath.path().split('/'_L1, Qt::SkipEmptyParts); QDBusItem *item = root; int childIdx = -1; while (item && !path.isEmpty()) { - const QString branch = path.takeFirst() + QLatin1Char('/'); + const QString branch = path.takeFirst() + '/'_L1; childIdx = -1; // do a linear search over all the children diff --git a/src/qdbus/qdbusviewer/qdbusviewer.cpp b/src/qdbus/qdbusviewer/qdbusviewer.cpp index 9c23c65a9..7e5afe3b1 100644 --- a/src/qdbus/qdbusviewer/qdbusviewer.cpp +++ b/src/qdbus/qdbusviewer/qdbusviewer.cpp @@ -32,6 +32,8 @@ #include +using namespace Qt::StringLiterals; + class QDBusViewModel: public QDBusModel { public: @@ -63,10 +65,8 @@ public: } }; -QDBusViewer::QDBusViewer(const QDBusConnection &connection, QWidget *parent) : - QWidget(parent), - c(connection), - objectPathRegExp(QLatin1String("\\[ObjectPath: (.*)\\]")) +QDBusViewer::QDBusViewer(const QDBusConnection &connection, QWidget *parent) + : QWidget(parent), c(connection), objectPathRegExp("\\[ObjectPath: (.*)\\]"_L1) { serviceFilterLine = new QLineEdit(this); serviceFilterLine->setPlaceholderText(tr("Search...")); @@ -136,16 +136,23 @@ QDBusViewer::QDBusViewer(const QDBusConnection &connection, QWidget *parent) : new QDBusServiceWatcher("*", c, QDBusServiceWatcher::WatchForOwnerChange, this); connect(watcher, &QDBusServiceWatcher::serviceOwnerChanged, this, &QDBusViewer::serviceOwnerChanged); - logMessage(QLatin1String("Connected to D-Bus.")); + logMessage(tr("Connected to D-Bus.")); } else { - logError(QLatin1String("Cannot connect to D-Bus: ") + c.lastError().message()); + logError(tr("Cannot connect to D-Bus: %1").arg(c.lastError().message())); } objectPathRegExp.setPatternOptions(QRegularExpression::InvertedGreedinessOption); } -static inline QString topSplitterStateKey() { return QStringLiteral("topSplitterState"); } -static inline QString splitterStateKey() { return QStringLiteral("splitterState"); } +static inline QString topSplitterStateKey() +{ + return u"topSplitterState"_s; +} + +static inline QString splitterStateKey() +{ + return u"splitterState"_s; +} void QDBusViewer::saveState(QSettings *settings) const { @@ -161,7 +168,7 @@ void QDBusViewer::restoreState(const QSettings *settings) void QDBusViewer::logMessage(const QString &msg) { - log->append(msg + QLatin1Char('\n')); + log->append(msg + '\n'_L1); } void QDBusViewer::showEvent(QShowEvent *) @@ -186,7 +193,7 @@ bool QDBusViewer::eventFilter(QObject *obj, QEvent *event) void QDBusViewer::logError(const QString &msg) { - log->append(QLatin1String("Error: ") + msg.toHtmlEscaped() + QLatin1String("
")); + log->append(tr("Error: %1
").arg(msg.toHtmlEscaped())); } void QDBusViewer::refresh() @@ -230,7 +237,8 @@ void QDBusViewer::activate(const QModelIndex &item) void QDBusViewer::getProperty(const BusSignature &sig) { - QDBusMessage message = QDBusMessage::createMethodCall(sig.mService, sig.mPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("Get")); + QDBusMessage message = QDBusMessage::createMethodCall( + sig.mService, sig.mPath, "org.freedesktop.DBus.Properties"_L1, "Get"_L1); QList arguments; arguments << sig.mInterface << sig.mName; message.setArguments(arguments); @@ -257,7 +265,8 @@ void QDBusViewer::setProperty(const BusSignature &sig) return; } - QDBusMessage message = QDBusMessage::createMethodCall(sig.mService, sig.mPath, QLatin1String("org.freedesktop.DBus.Properties"), QLatin1String("Set")); + QDBusMessage message = QDBusMessage::createMethodCall( + sig.mService, sig.mPath, "org.freedesktop.DBus.Properties"_L1, "Set"_L1); QList arguments; arguments << sig.mInterface << sig.mName << QVariant::fromValue(QDBusVariant(value)); message.setArguments(arguments); @@ -282,7 +291,7 @@ void QDBusViewer::callMethod(const BusSignature &sig) QMetaMethod method; for (int i = 0; i < mo->methodCount(); ++i) { const QString signature = QString::fromLatin1(mo->method(i).methodSignature()); - if (signature.startsWith(sig.mName) && signature.at(sig.mName.size()) == QLatin1Char('(')) + if (signature.startsWith(sig.mName) && signature.at(sig.mName.size()) == '('_L1) if (getDbusSignature(mo->method(i)) == sig.mTypeSig) method = mo->method(i); } @@ -420,46 +429,45 @@ void QDBusViewer::connectionRequested(const BusSignature &sig) void QDBusViewer::dumpMessage(const QDBusMessage &message) { QList args = message.arguments(); - QString out = QLatin1String("Received "); + QString messageType; switch (message.type()) { case QDBusMessage::SignalMessage: - out += QLatin1String("signal "); + messageType = tr("signal"); break; case QDBusMessage::ErrorMessage: - out += QLatin1String("error message "); + messageType = tr("error message"); break; case QDBusMessage::ReplyMessage: - out += QLatin1String("reply "); + messageType = tr("reply"); break; default: - out += QLatin1String("message "); + messageType = tr("message"); break; } - out += QLatin1String("from "); - out += message.service(); + QString out = tr("Received %1 from %2").arg(messageType).arg(message.service()); + if (!message.path().isEmpty()) - out += QLatin1String(", path ") + message.path(); + out += tr(", path %1").arg(message.path()); if (!message.interface().isEmpty()) - out += QLatin1String(", interface ") + message.interface() + QLatin1String(""); + out += tr(", interface %1").arg(message.interface()); if (!message.member().isEmpty()) - out += QLatin1String(", member ") + message.member(); - out += QLatin1String("
"); + out += tr(", member %1").arg(message.member()); + out += "
"_L1; if (args.isEmpty()) { - out += QLatin1String("  (no arguments)"); + out += tr("  (no arguments)"); } else { - out += QLatin1String("  Arguments: "); + QStringList argStrings; for (const QVariant &arg : std::as_const(args)) { QString str = QDBusUtil::argumentToString(arg).toHtmlEscaped(); // turn object paths into clickable links - str.replace(objectPathRegExp, QLatin1String("[ObjectPath: \\1]")); + str.replace(objectPathRegExp, tr("[ObjectPath: \\1]")); // convert new lines from command to proper HTML line breaks - str.replace(QStringLiteral("\n"), QStringLiteral("
")); - out += str; - out += QLatin1String(", "); + str.replace("\n"_L1, "
"_L1); + argStrings.append(str); } - out.chop(2); + out += tr("  Arguments: %1").arg(argStrings.join(tr(", "))); } log->append(out); @@ -536,7 +544,7 @@ void QDBusViewer::refreshChildren() void QDBusViewer::anchorClicked(const QUrl &url) { - if (url.scheme() != QLatin1String("qdbus")) + if (url.scheme() != "qdbus"_L1) // not ours return; diff --git a/src/qdbus/qdbusviewer/servicesproxymodel.cpp b/src/qdbus/qdbusviewer/servicesproxymodel.cpp index 544340265..f79c6dfa5 100644 --- a/src/qdbus/qdbusviewer/servicesproxymodel.cpp +++ b/src/qdbus/qdbusviewer/servicesproxymodel.cpp @@ -3,6 +3,8 @@ #include "servicesproxymodel.h" +using namespace Qt::StringLiterals; + ServicesProxyModel::ServicesProxyModel(QObject *parent) : QSortFilterProxyModel(parent) { @@ -23,8 +25,8 @@ bool ServicesProxyModel::lessThan(const QModelIndex &left, QString s1 = sourceModel()->data(left).toString(); QString s2 = sourceModel()->data(right).toString(); - const bool isNumber1 = s1.startsWith(QLatin1String(":1.")); - const bool isNumber2 = s2.startsWith(QLatin1String(":1.")); + const bool isNumber1 = s1.startsWith(":1."_L1); + const bool isNumber2 = s2.startsWith(":1."_L1); if (isNumber1 == isNumber2) { if (isNumber1) { int number1 = QStringView{s1}.mid(3).toInt(); -- cgit v1.2.1