Skip to content

Commit 428e46e

Browse files
CarlSchwanbackportbot[bot]
authored andcommitted
refactor: Use correct string overload
Use QLatin1String overload when possible (mostly QJsonObject and string comparaison). See https://www.volkerkrause.eu/2023/09/09/qt-string-bloat.html Save around 11Kib in the final binary. Signed-off-by: Carl Schwan <[email protected]>
1 parent bae8e0c commit 428e46e

16 files changed

+289
-258
lines changed

src/gui/accountstate.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030

3131
#include <cmath>
3232

33+
using namespace Qt::StringLiterals;
34+
3335
namespace OCC {
3436

3537
Q_LOGGING_CATEGORY(lcAccountState, "nextcloud.gui.account.state", QtInfoMsg)
@@ -638,8 +640,8 @@ void AccountState::slotNavigationAppsFetched(const QJsonDocument &reply, int sta
638640
for (const QJsonValue &value : navLinks) {
639641
auto navLink = value.toObject();
640642

641-
auto *app = new AccountApp(navLink.value("name").toString(), QUrl(navLink.value("href").toString()),
642-
navLink.value("id").toString(), QUrl(navLink.value("icon").toString()));
643+
auto *app = new AccountApp(navLink.value("name"_L1).toString(), QUrl(navLink.value("href"_L1).toString()),
644+
navLink.value("id"_L1).toString(), QUrl(navLink.value("icon"_L1).toString()));
643645

644646
_apps << app;
645647
}

src/gui/folderstatusmodel.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
#include <QVarLengthArray>
1717
#include <set>
1818

19+
using namespace Qt::StringLiterals;
20+
1921
Q_DECLARE_METATYPE(QPersistentModelIndex)
2022

2123
namespace OCC {
@@ -742,8 +744,8 @@ void FolderStatusModel::slotUpdateDirectories(const QStringList &list)
742744
newInfo._folder = parentInfo->_folder;
743745
newInfo._pathIdx = parentInfo->_pathIdx;
744746
newInfo._pathIdx << newSubs.size();
745-
newInfo._isExternal = permissionMap.value(removeTrailingSlash(path)).toString().contains("M");
746-
newInfo._isEncrypted = encryptionMap.value(removeTrailingSlash(path)).toString() == QStringLiteral("1");
747+
newInfo._isExternal = permissionMap.value(removeTrailingSlash(path)).toString().contains("M"_L1);
748+
newInfo._isEncrypted = encryptionMap.value(removeTrailingSlash(path)).toString() == "1"_L1;
747749
newInfo._path = relativePath;
748750

749751
newInfo._isNonDecryptable = newInfo.isEncrypted()

src/gui/macOS/fileprovidereditlocallyjob.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
#include "networkjobs.h"
1212
#include "systray.h"
1313

14+
using namespace Qt::StringLiterals;
15+
1416
namespace OCC::Mac {
1517

1618
Q_LOGGING_CATEGORY(lcFileProviderEditLocallyJob, "nextcloud.gui.fileprovidereditlocally", QtInfoMsg)
@@ -34,7 +36,7 @@ void FileProviderEditLocallyJob::start()
3436
return;
3537
}
3638

37-
const auto relPathSplit = _relPath.split(QLatin1Char('/'));
39+
const auto relPathSplit = _relPath.split(u'/');
3840
if (relPathSplit.isEmpty()) {
3941
showError(tr("Could not find a file for local editing. "
4042
"Make sure its path is valid and it is synced locally."), _relPath);
@@ -74,7 +76,7 @@ void FileProviderEditLocallyJob::idGetError(const QNetworkReply * const reply)
7476

7577
void FileProviderEditLocallyJob::idGetFinished(const QVariantMap &data)
7678
{
77-
const auto ocId = data.value("id").toString();
79+
const auto ocId = data.value("id"_L1).toString();
7880
if (ocId.isEmpty()) {
7981
qCWarning(lcFileProviderEditLocallyJob) << "Could not get file ocId.";
8082
showError(tr("Could not get file identifier."), tr("The file identifier is empty."));

src/gui/owncloudsetupwizard.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737
#include <QDesktopServices>
3838
#include <QApplication>
3939

40+
using namespace Qt::StringLiterals;
41+
4042
namespace OCC {
4143

4244
OwncloudSetupWizard::OwncloudSetupWizard(QObject *parent)
@@ -378,9 +380,9 @@ void OwncloudSetupWizard::slotConnectToOCUrl(const QString &url)
378380

379381
sender()->deleteLater();
380382

381-
const auto objData = json.object().value("ocs").toObject().value("data").toObject();
382-
const auto userId = objData.value("id").toString("");
383-
const auto displayName = objData.value("display-name").toString("");
383+
const auto objData = json.object().value("ocs"_L1).toObject().value("data"_L1).toObject();
384+
const auto userId = objData.value("id"_L1).toString(QString());
385+
const auto displayName = objData.value("display-name"_L1).toString(QString());
384386
_ocWizard->account()->setDavUser(userId);
385387
_ocWizard->account()->setDavDisplayName(displayName);
386388

@@ -442,7 +444,7 @@ void OwncloudSetupWizard::slotAuthError()
442444

443445
// strip the expected path
444446
QString path = redirectUrl.path();
445-
static QString expectedPath = "/" + _ocWizard->account()->davPath();
447+
static QString expectedPath = u'/' + _ocWizard->account()->davPath();
446448
if (path.endsWith(expectedPath)) {
447449
path.chop(expectedPath.size());
448450
redirectUrl.setPath(path);
@@ -488,7 +490,7 @@ void OwncloudSetupWizard::slotAuthError()
488490

489491
bool OwncloudSetupWizard::checkDowngradeAdvised(QNetworkReply *reply)
490492
{
491-
if (reply->url().scheme() != QLatin1String("https")) {
493+
if (reply->url().scheme() != "https"_L1) {
492494
return false;
493495
}
494496

@@ -503,7 +505,7 @@ bool OwncloudSetupWizard::checkDowngradeAdvised(QNetworkReply *reply)
503505
}
504506

505507
// Adhere to HSTS, even though we do not parse it properly
506-
if (reply->hasRawHeader("Strict-Transport-Security")) {
508+
if (reply->hasRawHeader("Strict-Transport-Security"_L1)) {
507509
return false;
508510
}
509511
return true;

src/gui/sharemanager.cpp

Lines changed: 63 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
#include <QJsonObject>
1818
#include <QJsonArray>
1919

20+
using namespace Qt::StringLiterals;
21+
2022
Q_LOGGING_CATEGORY(lcUserGroupShare, "nextcloud.gui.usergroupshare", QtInfoMsg)
2123

2224
namespace OCC {
@@ -294,14 +296,14 @@ OcsShareJob *LinkShare::createShareJob(const LinkShareSlot slotFunction) {
294296

295297
void LinkShare::slotExpireDateSet(const QJsonDocument &reply, const QVariant &value)
296298
{
297-
auto data = reply.object().value("ocs").toObject().value("data").toObject();
299+
auto data = reply.object().value("ocs"_L1).toObject().value("data"_L1).toObject();
298300

299301
/*
300302
* If the reply provides a data back (more REST style)
301303
* they use this date.
302304
*/
303-
if (data.value("expiration").isString()) {
304-
_expireDate = QDate::fromString(data.value("expiration").toString(), "yyyy-MM-dd 00:00:00");
305+
if (data.value("expiration"_L1).isString()) {
306+
_expireDate = QDate::fromString(data.value("expiration"_L1).toString(), "yyyy-MM-dd 00:00:00");
305307
} else {
306308
_expireDate = value.toDate();
307309
}
@@ -391,14 +393,14 @@ void UserGroupShare::setExpireDate(const QDate &date)
391393

392394
void UserGroupShare::slotExpireDateSet(const QJsonDocument &reply, const QVariant &value)
393395
{
394-
auto data = reply.object().value("ocs").toObject().value("data").toObject();
396+
auto data = reply.object().value("ocs"_L1).toObject().value("data"_L1).toObject();
395397

396398
/*
397399
* If the reply provides a data back (more REST style)
398400
* they use this date.
399401
*/
400-
if (data.value("expiration").isString()) {
401-
_expireDate = QDate::fromString(data.value("expiration").toString(), "yyyy-MM-dd 00:00:00");
402+
if (data.value("expiration"_L1).isString()) {
403+
_expireDate = QDate::fromString(data.value("expiration"_L1).toString(), "yyyy-MM-dd 00:00:00");
402404
} else {
403405
_expireDate = value.toDate();
404406
}
@@ -466,12 +468,12 @@ void ShareManager::createShare(const QString &path,
466468
// Find existing share permissions (if this was shared with us)
467469
Share::Permissions existingPermissions = SharePermissionAll;
468470
const auto &replyObject = reply.object();
469-
const auto &ocsObject = replyObject["ocs"].toObject();
470-
const auto &dataArray = ocsObject["data"].toArray();
471+
const auto &ocsObject = replyObject["ocs"_L1].toObject();
472+
const auto &dataArray = ocsObject["data"_L1].toArray();
471473
for (const auto &element : dataArray) {
472474
auto map = element.toObject();
473-
if (map["file_target"] == path)
474-
existingPermissions = Share::Permissions(map["permissions"].toInt());
475+
if (map["file_target"_L1] == path)
476+
existingPermissions = Share::Permissions(map["permissions"_L1].toInt());
475477
}
476478

477479
// Limit the permissions we request for a share to the ones the item
@@ -510,7 +512,7 @@ void ShareManager::createE2EeShareJob(const QString &fullRemotePath,
510512
return;
511513
}
512514

513-
Q_ASSERT(folder->remotePath() == QStringLiteral("/") ||
515+
Q_ASSERT(folder->remotePath() == "/"_L1 ||
514516
Utility::noLeadingSlashPath(fullRemotePath).startsWith(Utility::noLeadingSlashPath(Utility::noTrailingSlashPath(folder->remotePath()))));
515517

516518
const auto createE2eeShareJob = new UpdateE2eeFolderUsersMetadataJob(_account,
@@ -530,7 +532,7 @@ void ShareManager::createE2EeShareJob(const QString &fullRemotePath,
530532
void ShareManager::slotShareCreated(const QJsonDocument &reply)
531533
{
532534
//Parse share
533-
auto data = reply.object().value("ocs").toObject().value("data").toObject();
535+
auto data = reply.object().value("ocs"_L1).toObject().value("data"_L1).toObject();
534536
SharePtr share(parseShare(data));
535537

536538
emit shareCreated(share);
@@ -557,7 +559,7 @@ void ShareManager::fetchSharedWithMe(const QString &path)
557559
const QList<SharePtr> ShareManager::parseShares(const QJsonDocument &reply) const
558560
{
559561
qDebug() << reply;
560-
const auto tmpShares = reply.object().value("ocs").toObject().value("data").toArray();
562+
const auto tmpShares = reply.object().value("ocs"_L1).toObject().value("data"_L1).toArray();
561563
const QString versionString = _account->serverVersion();
562564
qCDebug(lcSharing) << versionString << "Fetched" << tmpShares.count() << "shares";
563565

@@ -566,7 +568,7 @@ const QList<SharePtr> ShareManager::parseShares(const QJsonDocument &reply) cons
566568
for (const auto &share : tmpShares) {
567569
auto data = share.toObject();
568570

569-
auto shareType = data.value("share_type").toInt();
571+
auto shareType = data.value("share_type"_L1).toInt();
570572

571573
SharePtr newShare;
572574

@@ -599,29 +601,29 @@ void ShareManager::slotSharedWithMeFetched(const QJsonDocument &reply)
599601

600602
QSharedPointer<UserGroupShare> ShareManager::parseUserGroupShare(const QJsonObject &data) const
601603
{
602-
ShareePtr sharee(new Sharee(data.value("share_with").toString(),
603-
data.value("share_with_displayname").toString(),
604-
static_cast<Sharee::Type>(data.value("share_type").toInt())));
604+
ShareePtr sharee(new Sharee(data.value("share_with"_L1).toString(),
605+
data.value("share_with_displayname"_L1).toString(),
606+
static_cast<Sharee::Type>(data.value("share_type"_L1).toInt())));
605607

606608
QDate expireDate;
607-
if (data.value("expiration").isString()) {
608-
expireDate = QDate::fromString(data.value("expiration").toString(), "yyyy-MM-dd 00:00:00");
609+
if (data.value("expiration"_L1).isString()) {
610+
expireDate = QDate::fromString(data.value("expiration"_L1).toString(), "yyyy-MM-dd 00:00:00");
609611
}
610612

611613
QString note;
612-
if (data.value("note").isString()) {
613-
note = data.value("note").toString();
614+
if (data.value("note"_L1).isString()) {
615+
note = data.value("note"_L1).toString();
614616
}
615617

616618
return QSharedPointer<UserGroupShare>(new UserGroupShare(_account,
617-
data.value("id").toVariant().toString(), // "id" used to be an integer, support both
618-
data.value("uid_owner").toVariant().toString(),
619-
data.value("uid_file_owner").toVariant().toString(),
620-
data.value("displayname_owner").toVariant().toString(),
621-
data.value("path").toString(),
622-
static_cast<Share::ShareType>(data.value("share_type").toInt()),
623-
!data.value("password").toString().isEmpty(),
624-
static_cast<Share::Permissions>(data.value("permissions").toInt()),
619+
data.value("id"_L1).toVariant().toString(), // "id" used to be an integer, support both
620+
data.value("uid_owner"_L1).toVariant().toString(),
621+
data.value("uid_file_owner"_L1).toVariant().toString(),
622+
data.value("displayname_owner"_L1).toVariant().toString(),
623+
data.value("path"_L1).toString(),
624+
static_cast<Share::ShareType>(data.value("share_type"_L1).toInt()),
625+
!data.value("password"_L1).toString().isEmpty(),
626+
static_cast<Share::Permissions>(data.value("permissions"_L1).toInt()),
625627
sharee,
626628
expireDate,
627629
note));
@@ -632,60 +634,60 @@ QSharedPointer<LinkShare> ShareManager::parseLinkShare(const QJsonObject &data)
632634
QUrl url;
633635

634636
// From ownCloud server 8.2 the url field is always set for public shares
635-
if (data.contains("url")) {
636-
url = QUrl(data.value("url").toString());
637+
if (data.contains("url"_L1)) {
638+
url = QUrl(data.value("url"_L1).toString());
637639
} else if (_account->serverVersionInt() >= Account::makeServerVersion(8, 0, 0)) {
638640
// From ownCloud server version 8 on, a different share link scheme is used.
639-
url = QUrl(Utility::concatUrlPath(_account->url(), QLatin1String("index.php/s/") + data.value("token").toString())).toString();
641+
url = QUrl(Utility::concatUrlPath(_account->url(), QLatin1String("index.php/s/") + data.value("token"_L1).toString())).toString();
640642
} else {
641643
QUrlQuery queryArgs;
642-
queryArgs.addQueryItem(QLatin1String("service"), QLatin1String("files"));
643-
queryArgs.addQueryItem(QLatin1String("t"), data.value("token").toString());
644-
url = QUrl(Utility::concatUrlPath(_account->url(), QLatin1String("public.php"), queryArgs).toString());
644+
queryArgs.addQueryItem(u"service"_s, u"files"_s);
645+
queryArgs.addQueryItem(u"t"_s, data.value("token"_L1).toString());
646+
url = QUrl(Utility::concatUrlPath(_account->url(), u"public.php"_s, queryArgs).toString());
645647
}
646648

647649
QDate expireDate;
648-
if (data.value("expiration").isString()) {
649-
expireDate = QDate::fromString(data.value("expiration").toString(), "yyyy-MM-dd 00:00:00");
650+
if (data.value("expiration"_L1).isString()) {
651+
expireDate = QDate::fromString(data.value("expiration"_L1).toString(), "yyyy-MM-dd 00:00:00");
650652
}
651653

652654
QString note;
653-
if (data.value("note").isString()) {
654-
note = data.value("note").toString();
655+
if (data.value("note"_L1).isString()) {
656+
note = data.value("note"_L1).toString();
655657
}
656658

657659
return QSharedPointer<LinkShare>(new LinkShare(_account,
658-
data.value("id").toVariant().toString(), // "id" used to be an integer, support both
659-
data.value("uid_owner").toString(),
660-
data.value("uid_file_owner").toString(),
661-
data.value("displayname_owner").toString(),
662-
data.value("path").toString(),
663-
data.value("name").toString(),
664-
data.value("token").toString(),
665-
(Share::Permissions)data.value("permissions").toInt(),
666-
data.value("share_with").isString(), // has password?
660+
data.value("id"_L1).toVariant().toString(), // "id" used to be an integer, support both
661+
data.value("uid_owner"_L1).toString(),
662+
data.value("uid_file_owner"_L1).toString(),
663+
data.value("displayname_owner"_L1).toString(),
664+
data.value("path"_L1).toString(),
665+
data.value("name"_L1).toString(),
666+
data.value("token"_L1).toString(),
667+
(Share::Permissions)data.value("permissions"_L1).toInt(),
668+
data.value("share_with"_L1).isString(), // has password?
667669
url,
668670
expireDate,
669671
note,
670-
data.value("label").toString(),
671-
data.value("hide_download").toInt() == 1));
672+
data.value("label"_L1).toString(),
673+
data.value("hide_download"_L1).toInt() == 1));
672674
}
673675

674676
SharePtr ShareManager::parseShare(const QJsonObject &data) const
675677
{
676-
ShareePtr sharee(new Sharee(data.value("share_with").toString(),
677-
data.value("share_with_displayname").toString(),
678-
(Sharee::Type)data.value("share_type").toInt()));
678+
ShareePtr sharee(new Sharee(data.value("share_with"_L1).toString(),
679+
data.value("share_with_displayname"_L1).toString(),
680+
(Sharee::Type)data.value("share_type"_L1).toInt()));
679681

680682
return SharePtr(new Share(_account,
681-
data.value("id").toVariant().toString(), // "id" used to be an integer, support both
682-
data.value("uid_owner").toVariant().toString(),
683-
data.value("uid_file_owner").toVariant().toString(),
684-
data.value("displayname_owner").toVariant().toString(),
685-
data.value("path").toString(),
686-
(Share::ShareType)data.value("share_type").toInt(),
687-
!data.value("password").toString().isEmpty(),
688-
(Share::Permissions)data.value("permissions").toInt(),
683+
data.value("id"_L1).toVariant().toString(), // "id" used to be an integer, support both
684+
data.value("uid_owner"_L1).toVariant().toString(),
685+
data.value("uid_file_owner"_L1).toVariant().toString(),
686+
data.value("displayname_owner"_L1).toVariant().toString(),
687+
data.value("path"_L1).toString(),
688+
(Share::ShareType)data.value("share_type"_L1).toInt(),
689+
!data.value("password"_L1).toString().isEmpty(),
690+
(Share::Permissions)data.value("permissions"_L1).toInt(),
689691
sharee));
690692
}
691693

src/gui/socketapi/socketapi.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@
7777
// The second number should be changed when there are new features.
7878
#define MIRALL_SOCKET_API_VERSION "1.1"
7979

80+
using namespace Qt::StringLiterals;
81+
8082
namespace {
8183
constexpr auto encryptJobPropertyFolder = "folder";
8284
constexpr auto encryptJobPropertyPath = "path";
@@ -389,7 +391,7 @@ void SocketApi::slotReadSocket()
389391
}();
390392

391393
const auto argument = QString{argPos != -1 ? line.mid(argPos + 1) : QString()};
392-
if (command.startsWith("ASYNC_")) {
394+
if (command.startsWith("ASYNC_"_L1)) {
393395
const auto arguments = argument.split('|');
394396
if (arguments.size() != 2) {
395397
listener->sendError(QStringLiteral("argument count is wrong"));
@@ -706,8 +708,8 @@ void SocketApi::command_EDIT(const QString &localFile, SocketListener *listener)
706708
job->setVerb(JsonApiJob::Verb::Post);
707709

708710
QObject::connect(job, &JsonApiJob::jsonReceived, [](const QJsonDocument &json){
709-
auto data = json.object().value("ocs").toObject().value("data").toObject();
710-
auto url = QUrl(data.value("url").toString());
711+
auto data = json.object().value("ocs"_L1).toObject().value("data"_L1).toObject();
712+
auto url = QUrl(data.value("url"_L1).toString());
711713

712714
if(!url.isEmpty())
713715
Utility::openBrowser(url);

0 commit comments

Comments
 (0)