diff --git a/CustomModels/emojismodel.cpp b/CustomModels/emojismodel.cpp index 520afdda884b233075bad04977fd018d62b9f5a9..2b246fac9eb582a21ee01211cd7dc6180b8d5285 100644 --- a/CustomModels/emojismodel.cpp +++ b/CustomModels/emojismodel.cpp @@ -1,4 +1,5 @@ #include "emojismodel.h" +#include <QDebug> EmojisModel::EmojisModel() { @@ -91,6 +92,10 @@ void EmojisModel::addEmoji( const QSharedPointer<Emoji> &pEmoji ) void EmojisModel::addEmojisByCategory( const QString &pCategory, const QList<QSharedPointer<Emoji> > &pList ) { + static int counter = 0; + qDebug() << "called: " << counter++; + qDebug() << "category: " << pCategory; + if ( mCurrentCategory == pCategory ) { beginResetModel(); } @@ -102,8 +107,8 @@ void EmojisModel::addEmojisByCategory( const QString &pCategory, const QList<QSh for ( const auto &element : pList ) { if ( !mDuplicateCheck.contains( element->getIdentifier() ) ) { - mData[pCategory].append( element ); mDuplicateCheck.insert( element->getIdentifier() ); + mData[pCategory].append( std::move( element ) ); } } diff --git a/CustomModels/messagemodel.cpp b/CustomModels/messagemodel.cpp index 36aa0520958f67ea31d580f415923b3b27028d56..dc15ebb6c0b8ba830d68633eb3051dcbf7aa55fb 100644 --- a/CustomModels/messagemodel.cpp +++ b/CustomModels/messagemodel.cpp @@ -157,7 +157,7 @@ QString MessagesModel::getCurrent() const void MessagesModel::setCurrent( const QString &value ) { - QMutexLocker( &this->mutex ); + //QMutexLocker( &this->mutex ); current = value; beginResetModel(); @@ -165,7 +165,7 @@ void MessagesModel::setCurrent( const QString &value ) messagesOfCurrentChannel = mChannelMap[value]->getMessageRepo()->timestampIndex().values().toVector(); duplicateCheck.clear(); - for ( auto currentMessage : messagesOfCurrentChannel ) { + for ( const auto ¤tMessage : messagesOfCurrentChannel ) { duplicateCheck.insert( currentMessage->getId() ); } } else { @@ -262,7 +262,7 @@ QHash<int, QByteArray> MessagesModel::roleNames() const void MessagesModel::onNewMessage( const QSharedPointer<RocketChatChannel> &channel, qint64 timestamp ) { - QMutexLocker( &this->mutex ); + //QMutexLocker( &this->mutex ); if ( timestamp == 0 ) { setCurrent( current ); diff --git a/CustomModels/usermodel.cpp b/CustomModels/usermodel.cpp index 56c3e56deef72566d3ab86005d7e1809816fe049..137059d3f314fe93a3e93b513924018f43024c6d 100644 --- a/CustomModels/usermodel.cpp +++ b/CustomModels/usermodel.cpp @@ -43,7 +43,7 @@ QVariant UserModel::data( const QModelIndex &index, int role ) const return QVariant(); } - auto user = userList.at( index.row() ); + const auto &user = userList.at( index.row() ); auto roleType = static_cast<UserRoles>( role ); @@ -151,7 +151,7 @@ void UserModel::setCurrent( const QString &value ) QList<QSharedPointer<RocketChatUser>> userList = userMap.values( value ); mMutex.unlock(); - for ( auto current : userList ) { + for ( const auto ¤t : userList ) { userOfCurrentChannel.insert( current->getUserId(), current ); } diff --git a/api/meteorddp.cpp b/api/meteorddp.cpp index 35f0ff54493204df0ff0aa144a7a15db74f4237a..3aa72349eac3f59b2d37d7d53ee09f5f0191936d 100755 --- a/api/meteorddp.cpp +++ b/api/meteorddp.cpp @@ -42,6 +42,7 @@ void MeteorDDP::init( const QString &pUri, bool pUnsecure ) QString protocol = QStringLiteral( "wss://" ); unsecure = pUnsecure; + if ( pUnsecure ) { protocol = QStringLiteral( "ws://" ); } @@ -65,14 +66,14 @@ void MeteorDDP::init( const QString &pUri, bool pUnsecure ) mLastPing = currentTime; } -void MeteorDDP::registerMessageHandler(MessageListener &listener) +void MeteorDDP::registerMessageHandler( MessageListener &listener ) { - connect(this, &MeteorDDP::messageReceived , &listener, &MessageListener::handlesMessage); + connect( this, &MeteorDDP::messageReceived, &listener, &MessageListener::handlesMessage ); } -void MeteorDDP::registerMessageHandler(MessageListener *listener) +void MeteorDDP::registerMessageHandler( MessageListener *listener ) { - connect(this, &MeteorDDP::messageReceived , listener, &MessageListener::handlesMessage); + connect( this, &MeteorDDP::messageReceived, listener, &MessageListener::handlesMessage ); } void MeteorDDP::connectWithServer() @@ -248,8 +249,8 @@ void MeteorDDP::resume() if ( mWsClient->isDisconnected() ) { mWsClient->open( wsUri ); } else if ( !mWsClient->isConnecting() ) { - QMetaObject::Connection *const connection = new QMetaObject::Connection; - *connection = connect( mWsClient, &Websocket::closed, [&]() { + auto const connection = new QMetaObject::Connection; + *connection = connect( mWsClient, &Websocket::closed, [ = ]() { qDebug() << "websocket closed"; mWsClient->open( wsUri ); QDateTime now = QDateTime::currentDateTime(); diff --git a/ddpRequests/ddprequest.cpp b/ddpRequests/ddprequest.cpp index b3c65acf3059c9b7e1eadf297d3830856d87da90..1c3aa474fe3490d633604a308f727b441bf97c0f 100755 --- a/ddpRequests/ddprequest.cpp +++ b/ddpRequests/ddprequest.cpp @@ -28,12 +28,12 @@ DDPRequest::DDPRequest( const QJsonObject &pRequest ): mRawRequest( pRequest ) } -DDPRequest::DDPRequest( const QJsonObject &pRequest, const DdpCallback &pSuccess ): mRawRequest( pRequest ), mSuccess( pSuccess ) +DDPRequest::DDPRequest( const QJsonObject &pRequest, DdpCallback pSuccess ): mRawRequest( pRequest ), mSuccess( std::move( pSuccess ) ) { } -DDPRequest::DDPRequest( const QJsonObject &pRequest, const DdpCallback &pSuccess, const DdpCallback &error ): mRawRequest( pRequest ), mSuccess( pSuccess ), mError( error ) +DDPRequest::DDPRequest( const QJsonObject &pRequest, DdpCallback pSuccess, DdpCallback error ): mRawRequest( pRequest ), mSuccess( std::move( pSuccess ) ), mError( std::move( error ) ) { } diff --git a/ddpRequests/ddprequest.h b/ddpRequests/ddprequest.h index 34d3d4057fe99a6faf7cb3d959c6a052dbd3d758..e925b27c8ec3f6d150993cce11324d00a7b41543 100755 --- a/ddpRequests/ddprequest.h +++ b/ddpRequests/ddprequest.h @@ -34,8 +34,8 @@ class DDPRequest : public QObject Q_OBJECT public: DDPRequest( const QJsonObject &pRequest ); - DDPRequest( const QJsonObject &pRequest, const DdpCallback &pSuccess ); - DDPRequest( const QJsonObject &pRequest, const DdpCallback &pSuccess, const DdpCallback &pError ); + DDPRequest( const QJsonObject &pRequest, DdpCallback pSuccess ); + DDPRequest( const QJsonObject &pRequest, DdpCallback pSuccess, DdpCallback pError ); QJsonObject getRawRequest() const; QString getFrame() const; void setFrame( const QString &value ); diff --git a/fileuploader.cpp b/fileuploader.cpp index 8e7e4e56ee36a7fc5b5a5769504a3f617c3028c0..58a53080f2bc72e458e026c148cc10963826a607 100755 --- a/fileuploader.cpp +++ b/fileuploader.cpp @@ -111,7 +111,7 @@ void FileUploader::onUfsCreated( const QJsonObject &pResponse ) qDebug() << "creating partials: " << chunkNum << "of bytes:" << mSize; if ( mSize == 0 ) { - throw new std::logic_error( "Zero byte file!" ); + throw std::logic_error( "Zero byte file!" ); } bool cancel = mCanceled; diff --git a/notifications/ios/applepushnotifications.h b/notifications/ios/applepushnotifications.h index a9452a14786317f9d1d6c45dc7cc722acbbbb575..63d2dd6fed96e258b13ebcab83393dad9514712f 100755 --- a/notifications/ios/applepushnotifications.h +++ b/notifications/ios/applepushnotifications.h @@ -31,11 +31,11 @@ class ApplePushNotifications: public NotificationAbstract public: virtual void registerWithService(); ApplePushNotifications(); - void receiveMessage( QString server, QString rid, QString name, QString type ); + void receiveMessage( const QString &server, const QString &rid, const QString &name, const QString &type ); void checkForPendingMessages(); - void onSwitchRequest( QString pName ); + void onSwitchRequest( const QString &pName ); protected: void receiveToken(); diff --git a/persistancelayer.cpp b/persistancelayer.cpp index 150761ff5f64d37e271448510026f3746bf373ba..10e14cb306343a1f3926649cde3289c60c075656 100755 --- a/persistancelayer.cpp +++ b/persistancelayer.cpp @@ -1455,7 +1455,11 @@ void PersistanceLayer::init() } initShema(); - emit( ready() ); + + if ( !mDbReady ) { + mDbReady = true; + emit( ready() ); + } } void PersistanceLayer::close() diff --git a/persistancelayer.h b/persistancelayer.h index 6e65901454fd229f8e7ba224ec1ca2c80dd5c728..e055c2a7dcca1090c4e50e3d95d522c8eec3260c 100755 --- a/persistancelayer.h +++ b/persistancelayer.h @@ -99,6 +99,7 @@ class PersistanceLayer : public QObject QMimeDatabase mMimeDb; QMutex mMutex; QAtomicInt counter = 0; + bool mDbReady = false; void initShema(); void upgradeSchema(); diff --git a/repos/entities/emoji.cpp b/repos/entities/emoji.cpp index 2bb9f0e574c724ea4ebacef0f6733ed1a1733448..560f5b4b8e4f2cf0a7a2424d88a69c001a081acc 100644 --- a/repos/entities/emoji.cpp +++ b/repos/entities/emoji.cpp @@ -21,7 +21,7 @@ #include "emoji.h" -Emoji::Emoji( const QString &name, const QString &extension, const QString &category ): mCategory( category ) +Emoji::Emoji( QString name, QString extension, QString category ): mCategory( std::move( category ) ) { this->mIdentifier = ':' + name + ':'; @@ -30,7 +30,7 @@ Emoji::Emoji( const QString &name, const QString &extension, const QString &cate this->mType = QStringLiteral( "emoji" ); } -Emoji::Emoji( const QString &name, const QString &category, const QString &filePath, const QString &html ): mCategory( category ) +Emoji::Emoji( QString name, QString category, QString filePath, QString html ): mCategory( std::move( category ) ) { this->mIdentifier = name; QFileInfo fileInfo( filePath ); @@ -39,7 +39,7 @@ Emoji::Emoji( const QString &name, const QString &category, const QString &fileP mExtension = fileInfo.completeSuffix(); } -Emoji::Emoji( const QString &name, const QString &category, const QString &filePath, const QString &html, const QString &unicode ): mCategory( category ), mUnicodeChar( unicode ) +Emoji::Emoji( QString name, QString category, QString filePath, QString html, QString unicode ): mCategory( std::move( category ) ), mUnicodeChar( std::move( unicode ) ) { this->mIdentifier = name; QFileInfo fileInfo( filePath ); @@ -48,7 +48,7 @@ Emoji::Emoji( const QString &name, const QString &category, const QString &fileP mExtension = fileInfo.completeSuffix(); } -Emoji::Emoji( const QString &name, const QString &category, const QString &filePath, const QString &html, const QString &unicode, int order ): mCategory( category ), mUnicodeChar( unicode ), mOrder( order ) +Emoji::Emoji( QString name, QString category, QString filePath, QString html, QString unicode, int order ): mCategory( std::move( category ) ), mUnicodeChar( std::move( unicode ) ), mOrder( order ) { this->mIdentifier = name; QFileInfo fileInfo( filePath ); diff --git a/repos/entities/emoji.h b/repos/entities/emoji.h index 79cd3f19ffe4e25fa39ff958e83da75f51e8221f..1a830a3083dd4410f74f42c04e27c42b73074ab8 100644 --- a/repos/entities/emoji.h +++ b/repos/entities/emoji.h @@ -29,10 +29,10 @@ class Emoji : public TempFile { public: - Emoji( const QString &name, const QString &extension, const QString &category ); - Emoji( const QString &name, const QString &category, const QString &file, const QString &html ); - Emoji( const QString &name, const QString &category, const QString &file, const QString &html, const QString &unicode ); - Emoji( const QString &name, const QString &category, const QString &file, const QString &html, const QString &unicode, int order ); + Emoji( QString name, QString extension, QString category ); + Emoji( QString name, QString category, QString file, QString html ); + Emoji( QString name, QString category, QString file, QString html, QString unicode ); + Emoji( QString name, QString category, QString file, QString html, QString unicode, int order ); QString getIdentifier() const; QVariantMap toQVariantMap(); diff --git a/repos/entities/loginmethod.cpp b/repos/entities/loginmethod.cpp index 8b603dca9fcd63ec2a6112e63fa113deafe4b4d0..b01f00fa5592578c64686bd7f949714dabc6ad0e 100644 --- a/repos/entities/loginmethod.cpp +++ b/repos/entities/loginmethod.cpp @@ -52,7 +52,7 @@ QString LoginMethod::getServerUrl() const return mServerUrl; } -void LoginMethod::setServerUrl( const QString pServerUrl ) +void LoginMethod::setServerUrl( const QString &pServerUrl ) { mServerUrl = pServerUrl; } @@ -62,7 +62,7 @@ QString LoginMethod::getService() const return mService; } -void LoginMethod::setService( const QString pService ) +void LoginMethod::setService( const QString &pService ) { mService = pService; } @@ -72,7 +72,7 @@ QString LoginMethod::getClientId() const return mClientId; } -void LoginMethod::setClientId( const QString pClientId ) +void LoginMethod::setClientId( const QString &pClientId ) { mClientId = pClientId; } @@ -82,7 +82,7 @@ QString LoginMethod::getTokenPath() const return mTokenPath; } -void LoginMethod::setTokenPath( const QString pTokenPath ) +void LoginMethod::setTokenPath( const QString &pTokenPath ) { mTokenPath = pTokenPath; } @@ -92,7 +92,7 @@ QString LoginMethod::getIdentityPath() const return mIdentityPath; } -void LoginMethod::setIdentityPath( const QString pIdentityPath ) +void LoginMethod::setIdentityPath( const QString &pIdentityPath ) { mIdentityPath = pIdentityPath; } @@ -102,7 +102,7 @@ QString LoginMethod::getAuthorizePath() const return mAuthorizePath; } -void LoginMethod::setAuthorizePath( const QString pAuthorizationPath ) +void LoginMethod::setAuthorizePath( const QString &pAuthorizationPath ) { mAuthorizePath = pAuthorizationPath; } diff --git a/repos/entities/loginmethod.h b/repos/entities/loginmethod.h index 6bb5f239b0485d37153e29c33a86e164b4911842..416b64c383029d139a5360da610597982646e401 100644 --- a/repos/entities/loginmethod.h +++ b/repos/entities/loginmethod.h @@ -45,22 +45,22 @@ class LoginMethod void setRedirectPath( const QString &pUrl ); QString getServerUrl() const; - void setServerUrl( const QString pServerUrl ); + void setServerUrl( const QString &pServerUrl ); QString getService() const; - void setService( const QString pService ); + void setService( const QString &pService ); QString getClientId() const; - void setClientId( const QString pClientId ); + void setClientId( const QString &pClientId ); QString getTokenPath() const; - void setTokenPath( const QString pTokenPath ); + void setTokenPath( const QString &pTokenPath ); QString getIdentityPath() const; - void setIdentityPath( const QString pIdentityPath ); + void setIdentityPath( const QString &pIdentityPath ); QString getAuthorizePath() const; - void setAuthorizePath( const QString pAuthorizationPath ); + void setAuthorizePath( const QString &pAuthorizationPath ); QString getCredentialToken() const; void setCredentialToken( const QString &pCredentialToken ); diff --git a/repos/entities/rocketchatuser.cpp b/repos/entities/rocketchatuser.cpp index 66a3d4a98052b775cd929368b4a5057b79711280..a90c578aeaa7a70a82f73abb0af1e140562e2ced 100755 --- a/repos/entities/rocketchatuser.cpp +++ b/repos/entities/rocketchatuser.cpp @@ -22,7 +22,7 @@ #include "rocketchatuser.h" -RocketChatUser::RocketChatUser( const QString &pId ): mUserId( pId ) +RocketChatUser::RocketChatUser( QString pId ): mUserId( std::move( pId ) ) { } @@ -74,10 +74,10 @@ RocketChatUser::status RocketChatUser::getStatus() const void RocketChatUser::setStatus( status pStatus ) { - if ( pStatus != mStatus ) { - mStatus = pStatus; - emit statusChanged(); - } + // if ( pStatus != mStatus ) { + mStatus = pStatus; + emit statusChanged(); + // } } void RocketChatUser::setStatus( const QString &pStatus ) diff --git a/repos/entities/rocketchatuser.h b/repos/entities/rocketchatuser.h index df7c840cf7d726e5b50409556ffd10cdf5332e00..c7c5ebedd35abc3c1f6d33bc72c368a194ed5a8b 100755 --- a/repos/entities/rocketchatuser.h +++ b/repos/entities/rocketchatuser.h @@ -37,7 +37,7 @@ class RocketChatUser : public QObject OFFLINE = 2, BUSY = 3 }; - explicit RocketChatUser( const QString &pId ) ; + explicit RocketChatUser( QString pId ) ; QString getUserName() const; void setUserName( const QString &pValue ); diff --git a/rocketchat.cpp b/rocketchat.cpp index 31a08fb67dc518ab3c10b818c01120fe0ae0a6c8..5ccfb945c4580dc729f98400150d1b4db11a87c9 100755 --- a/rocketchat.cpp +++ b/rocketchat.cpp @@ -561,7 +561,7 @@ void RocketChat::openIosFile( const QString &fileName ) openShareDialog(); } -void RocketChat::openUrl( const QString url ) +void RocketChat::openUrl( const QString &url ) { if ( !QDesktopServices::openUrl( url ) ) { qDebug() << "Jitsi meet could not be opened"; @@ -619,7 +619,7 @@ void RocketChat::onLoggedIn( const QString &pServerId ) emit loggedIn( pServerId ); } -void RocketChat::onChannelSwitchRequest( QSharedPointer<RocketChatChannel> pChannel ) +void RocketChat::onChannelSwitchRequest( const QSharedPointer<RocketChatChannel> &pChannel ) { //TODO: fix bool readonly = pChannel->getReadOnly() && pChannel->getOwnerName() != getUsername( "default" ); @@ -664,7 +664,10 @@ void RocketChat::serverReadySlot() connect( pServer, &RocketChatServerData::loggingIn, this, &RocketChat::loggingIn, Qt::UniqueConnection ); - connect( pServer, &RocketChatServerData::userStatusChanged, this, &RocketChat::userStatusChanged, Qt::UniqueConnection ); + connect( pServer, &RocketChatServerData::userStatusChanged, [ = ]( int pStatus ) { + mUserStatus = pStatus; + emit userStatusChanged( pStatus ); + } ); connect( pServer, &RocketChatServerData::videoPath, this, &RocketChat::videoPath, Qt::UniqueConnection ); @@ -727,6 +730,11 @@ void RocketChat::openFileNameReady( const QString &pFile ) } } +int RocketChat::getUserStatus() +{ + return mUserStatus; +} + void RocketChat::onEmojisReady( const QVariantList &pEmojiList ) { mEmojisReady = true; diff --git a/rocketchat.h b/rocketchat.h index 5ce07bea9ab7480d83b72a98037677e1acef27dc..812fbb5b2600175e113a032fd7bd24eca800f4f3 100755 --- a/rocketchat.h +++ b/rocketchat.h @@ -43,6 +43,8 @@ using namespace std; class RocketChat : public QObject { Q_OBJECT + Q_PROPERTY( int userStatus READ getUserStatus NOTIFY userStatusChanged ) + public: RocketChat( QGuiApplication *mApp ); ~RocketChat(); @@ -142,10 +144,12 @@ class RocketChat : public QObject void openIosFile( const QString &fileName ); void registerForPush(); - void openUrl( const QString url ); + void openUrl( const QString &url ); void openFileNameReady( const QString &pFile ); + int getUserStatus(); + protected: QMutex newServerMutex; @@ -159,6 +163,8 @@ class RocketChat : public QObject QInputMethod *mInputMethod = nullptr; QHash<QString, uint> mUnreadSum; + int mUserStatus = 2; + #ifdef Q_OS_ANDROID @@ -187,7 +193,7 @@ class RocketChat : public QObject void onLogout( const QString &pServerId ); void onUnreadCountChanged( const QString &pServerId, uint pUnread ); void onLoggedIn( const QString &pServerId ); - void onChannelSwitchRequest( QSharedPointer<RocketChatChannel> pChannel ); + void onChannelSwitchRequest( const QSharedPointer<RocketChatChannel> &pChannel ); void serverReadySlot(); void storageReadySlot(); diff --git a/rocketchatserver.cpp b/rocketchatserver.cpp index ac6e4eea70a7820f34a7b7954e6f7adb9deac005..0373ea078f896126ce59f9ab75d42e45416c5b28 100755 --- a/rocketchatserver.cpp +++ b/rocketchatserver.cpp @@ -23,7 +23,7 @@ #include "CustomModels/models.h" -RocketChatServerData::RocketChatServerData( const QString &pId, QString pBaseUrl, bool pUnsecure ): mBaseUrl( pBaseUrl ), mServerId( pId ), userModel( Models::getUsersModel() ), loginMethodsModel( Models::getLoginMethodsModel() ), channelsModel( Models::getPublicGroupsModel() ), +RocketChatServerData::RocketChatServerData( QString pId, QString pBaseUrl, bool pUnsecure ): mBaseUrl( std::move( pBaseUrl ) ), mServerId( std::move( pId ) ), userModel( Models::getUsersModel() ), loginMethodsModel( Models::getLoginMethodsModel() ), channelsModel( Models::getPublicGroupsModel() ), directModel( Models::getDirectChannelsModel() ), groupsModel( Models::getPublicGroupsModel() ) { qRegisterMetaType<User>( "User" ); @@ -38,6 +38,7 @@ RocketChatServerData::RocketChatServerData( const QString &pId, QString pBaseUrl } mApiUri = QStringLiteral( "/api/v1" ); + mEmojiRepo = new EmojiRepo; setRestApi( new RestApi( this, protocol + mBaseUrl ) ); } @@ -46,7 +47,6 @@ void RocketChatServerData::init() { mStorage = PersistanceLayer::instance(); connect( mStorage, &PersistanceLayer::ready, [ = ]() { - mEmojiRepo = new EmojiRepo; historyLoaded = [ = ]( QMultiMap<QString, QSharedPointer<RocketChatMessage>> *messages ) { if ( messages ) { mStorage->transaction(); @@ -69,16 +69,10 @@ void RocketChatServerData::init() mFileService = new FileService( this ); mEmojiService = new EmojiService( this, mFileService, mStorage ); - if ( mUnsecureConnection ) { - mDdpApi = new MeteorDDP( this, mBaseUrl, true ); - - } else { - mDdpApi = new MeteorDDP( this, mBaseUrl ); - } + mDdpApi = new MeteorDDP( this, mBaseUrl, mUnsecureConnection ); mRestApi->moveToThread( QThread::currentThread() ); mDdpApi->moveToThread( QThread::currentThread() ); - mUsername = mStorage->getUserName(); mChannels = new ChannelRepository( ); @@ -101,13 +95,9 @@ void RocketChatServerData::init() setUserId( mStorage->getUserId() ); mUsername = mStorage->getUserName(); - // mEmojisMap.reserve(3000); - mDownloadsInProgress.reserve( 100 ); - loadEmojis(); - //mMessageService = new MessageService( mStorage, this, mEmojisMap ); - mMessageService = new MessageService( mStorage, this, mEmojiRepo ); + mMessageService = new MessageService( mStorage, this, mEmojiRepo ); mChannelService = new RocketChatChannelService( this, mMessageService ); mChannelService->setDdp( mDdpApi ); mChannelService->setChannels( mChannels ); @@ -130,9 +120,11 @@ void RocketChatServerData::init() loginWithToken( userDb, tokenDb.first ); } else { mStorage->wipeDb(); + emit loggedOut( mServerId ); } } else if ( !lastServer.isEmpty() ) { mStorage->wipeDb(); + emit loggedOut( mServerId ); } emit readyToCheckForPendingNotification(); @@ -147,7 +139,6 @@ void RocketChatServerData::setRestApi( RestApi *pNewRestApi ) { connect( pNewRestApi, &RestApi::loggedIn, this, &RocketChatServerData::onLoggedIn, Qt::UniqueConnection ); - connect( pNewRestApi, &RestApi::fileDownloaded, this, &RocketChatServerData::onFileDownloaded, Qt::UniqueConnection ); connect( pNewRestApi, &RestApi::loginError, this, &RocketChatServerData::onLoginError, Qt::UniqueConnection ); this->mRestApi = pNewRestApi; QPair<QString, uint> token = mStorage->getToken(); @@ -192,24 +183,22 @@ void RocketChatServerData::loadEmojis() for ( const auto &emoji : emojiList ) { if ( mEmojiRepo != nullptr && !emoji.isNull() ) { mEmojiRepo->add( emoji->getIdentifier(), emoji ); - // if(emoji->getCategory() == "custom"){ - // mCustomEmojisHash = Utils::hash(mCustomEmojis); - // } } auto category = emoji->getCategory(); if ( !emojisByCategory.contains( category ) ) { emojisByCategory.insert( category, QList<QSharedPointer<Emoji>>() ); + emojisByCategory[category].reserve( 500 ); } - emojisByCategory[category].append( emoji ); + emojisByCategory[category].append( std::move( emoji ) ); } auto keys = emojisByCategory.keys(); - for ( auto key : keys ) { - QMetaObject::invokeMethod( emojiModel, "addEmojisByCategory", Q_ARG( QString, key ), Q_ARG( QList<QSharedPointer<Emoji>>, emojisByCategory[key] ) ); + for ( const auto &key : keys ) { + QMetaObject::invokeMethod( emojiModel, "addEmojisByCategory", Q_ARG( QString, key ), Q_ARG( QList<QSharedPointer<Emoji>>, std::move( emojisByCategory[key] ) ) ); } } @@ -464,7 +453,7 @@ void RocketChatServerData::setUserId( const QString &userId ) auto users = Models::getUsersModel(); auto user = users->getUserById( userId ); - if ( user.isNull() ) { + if ( user.isNull() && !userId.isEmpty() ) { user = QSharedPointer<RocketChatUser>( new RocketChatUser( userId ) ); QMetaObject::invokeMethod( userModel, "addUser", Q_ARG( User, user ) ); } @@ -476,11 +465,6 @@ void RocketChatServerData::setUserId( const QString &userId ) } ); } -void RocketChatServerData::checkForMissedMessages() -{ - -} - void RocketChatServerData::disconnectFromServer() { mConnectionState = ConnectionState::OFFLINE; @@ -522,15 +506,6 @@ void RocketChatServerData::loadHistoryTill( const QString &pChannelId, qint64 pT mMessageService->loadHistory( request ); } -QString RocketChatServerData::parseMessageReceived( const QString &pMessage ) -{ - auto message = Utils::emojiFy( pMessage, mEmojiRepo ); - // message = Utils::linkiFy( message ); - // message = message.replace( "\n", "<br>" ); - return message; -} - - void RocketChatServerData::onUsersLoaded( const QString &pChannelId, const QVector<QSharedPointer<RocketChatUser> > &pUserList ) { if ( Q_LIKELY( mChannels->contains( pChannelId ) ) ) { @@ -720,32 +695,32 @@ void RocketChatServerData::loginWithToken( const QString &pUsername, const QStri }; QSharedPointer<DDPLoginRequest> request( new DDPLoginRequest( pToken ) ); - DdpCallback success = [ self, request, meCallBackSuccess ]( QJsonObject pResponse, MeteorDDP * ) { + DdpCallback success = [ = ]( QJsonObject pResponse, MeteorDDP * ) { qDebug() << "authenticated"; - self->mConnectionState = ConnectionState::ONLINE; + mConnectionState = ConnectionState::ONLINE; if ( pResponse.contains( QStringLiteral( "result" ) ) ) { QJsonObject result = pResponse[QStringLiteral( "result" )].toObject(); if ( result.contains( QStringLiteral( "token" ) ) && result.contains( QStringLiteral( "id" ) ) ) { - self->mResumeToken = result[QStringLiteral( "token" )].toString(); + mResumeToken = result[QStringLiteral( "token" )].toString(); QJsonObject expireObject = result[QStringLiteral( "tokenExpires" )].toObject(); double expireDouble = expireObject[QStringLiteral( "$date" )].toDouble(); - self->mTokenExpire = static_cast<uint>( expireDouble / 1000 ); + mTokenExpire = static_cast<uint>( expireDouble / 1000 ); QString userId = result[QStringLiteral( "id" )].toString(); - self->setUserId( userId ); - self->mStorage->setToken( self->mResumeToken, self->mTokenExpire ); - self->mStorage->setUserId( userId ); - self->mRestApi->setToken( self->mResumeToken ); - self->mRestApi->setUserId( userId ); - self->mDdpApi->setToken( self-> mResumeToken ); - self->mDdpApi->unsetResponseBinding( request->getFrame() ); + setUserId( userId ); + mStorage->setToken( self->mResumeToken, self->mTokenExpire ); + mStorage->setUserId( userId ); + mRestApi->setToken( self->mResumeToken ); + mRestApi->setUserId( userId ); + mDdpApi->setToken( self-> mResumeToken ); + mDdpApi->unsetResponseBinding( request->getFrame() ); RestApiRequest meRequest = RestApiRequest( new restMeRequest( meCallBackSuccess ) ); - self->mRestApi->sendRequest( meRequest ); + mRestApi->sendRequest( meRequest ); } } }; @@ -877,21 +852,21 @@ void RocketChatServerData::loginWithOpenIDToken( const QString &pToken, const QS QJsonObject result = pResponse[QStringLiteral( "result" )].toObject(); if ( result.contains( QStringLiteral( "token" ) ) && result.contains( QStringLiteral( "id" ) ) ) { - self->mConnectionState = ConnectionState::ONLINE; - self->mResumeToken = result[QStringLiteral( "token" )].toString(); + mConnectionState = ConnectionState::ONLINE; + mResumeToken = result[QStringLiteral( "token" )].toString(); QJsonObject expireObject = result[QStringLiteral( "tokenExpires" )].toObject(); double expireDouble = expireObject[QStringLiteral( "$date" )].toDouble(); - self->mTokenExpire = static_cast<uint>( expireDouble / 1000 ); + mTokenExpire = static_cast<uint>( expireDouble / 1000 ); QString userId = result[QStringLiteral( "id" )].toString(); - self->setUserId( userId ); - self->mRestApi->setToken( mResumeToken ); - self->mRestApi->setUserId( userId ); - self->mDdpApi->setToken( mResumeToken ); - self->mDdpApi->unsetResponseBinding( request->getFrame() ); + setUserId( userId ); + mRestApi->setToken( mResumeToken ); + mRestApi->setUserId( userId ); + mDdpApi->setToken( mResumeToken ); + mDdpApi->unsetResponseBinding( request->getFrame() ); - emit self->onHashLoggedIn( self->mServerId ) ; + // emit onHashLoggedIn( self->mServerId ) ; RestApiRequest meRequest = RestApiRequest( new restMeRequest( meCallBackSuccess ) ); @@ -1122,7 +1097,7 @@ void RocketChatServerData::sendUnsentMessages() if ( mConnectionState == ConnectionState::ONLINE ) { - mUnsentMutex.lock(); + // mUnsentMutex.lock(); for ( const auto &request : mUnsendDdpRequests ) { if ( !request.isNull() ) { @@ -1140,10 +1115,10 @@ void RocketChatServerData::sendUnsentMessages() } mUnsendRestRequests.clear(); - mUnsentMutex.unlock(); + // mUnsentMutex.unlock(); qDebug() << "all messages send"; } else if ( mConnectionState == ConnectionState::CONNECTED ) { - mUnsentMutex.lock(); + // mUnsentMutex.lock(); for ( const auto &request : mUnsendDdpRequestsOnConnected ) { if ( !request.isNull() ) { @@ -1154,7 +1129,7 @@ void RocketChatServerData::sendUnsentMessages() mUnsendDdpRequestsOnConnected.clear(); qDebug() << "send unsend rest messages"; - mUnsentMutex.unlock(); + // mUnsentMutex.unlock(); } } @@ -1399,27 +1374,6 @@ void RocketChatServerData::onResume() } - -QJsonObject RocketChatServerData::formatMessageTime( const QJsonObject &pJsonObject ) -{ - if ( Q_LIKELY( pJsonObject.contains( QStringLiteral( "ts" ) ) ) ) { - QJsonObject ts = pJsonObject[QStringLiteral( "ts" )].toObject(); - - if ( Q_LIKELY( ts.contains( QStringLiteral( "$date" ) ) ) ) { - double timeStamp = ts[QStringLiteral( "$date" )].toDouble(); - QDateTime dateTime = QDateTime::fromMSecsSinceEpoch( timeStamp ); - QString formattedTime = dateTime.toString( QStringLiteral( "hh:mm" ) ); - QString formattedDate = dateTime.toString( QStringLiteral( "dd.MM.yyyy" ) ); - pJsonObject[QStringLiteral( "formattedDate" )] = formattedDate; - pJsonObject[QStringLiteral( "formattedTime" )] = formattedTime; - pJsonObject[QStringLiteral( "msg" )] = parseMessageReceived( pJsonObject[QStringLiteral( "msg" )].toString() ); - return pJsonObject; - } - } - - return QJsonObject(); -} - void RocketChatServerData::joinJitsiCall( const QString &pRoomId ) { @@ -1540,12 +1494,6 @@ void RocketChatServerData::onChannelsLoaded( const QVector<QSharedPointer<Rocket loadHistories(); } -void RocketChatServerData::onFileDownloaded( const QString &pUrl, const QString &pTempfile ) -{ - Q_UNUSED( pUrl ); - Q_UNUSED( pTempfile ); -} - void RocketChatServerData::onLoggedIn() { mLoggedIn = true; @@ -1635,12 +1583,6 @@ void RocketChatServerData::joinChannelByNameAndType( const QString &pChannelName } } - -void RocketChatServerData::connectWithServer() -{ - mDdpApi->connectWithServer(); -} - QString RocketChatServerData::getServerId() const { return mServerId; @@ -1651,12 +1593,6 @@ void RocketChatServerData::setServerId( const QString &pValue ) mServerId = pValue; } -void RocketChatServerData::setServerAddress( const QString &pServerAddress ) -{ - mBaseUrl = pServerAddress; - mApiUri = QStringLiteral( "https://" ) + pServerAddress + QStringLiteral( "/api/v1" ); -} - bool RocketChatServerData::isConnected() const { return mConnected; @@ -1712,52 +1648,53 @@ void RocketChatServerData::sendMessage( const QString &pMessage, const QString & void RocketChatServerData::getCustomEmojis() { - std::function<void ( QList<QSharedPointer<Emoji>> )> success = [ = ]( QList<QSharedPointer<Emoji>> pEmojiList ) { - auto emojiModel = Models::getEmojisModel(); + std::function<void ( QList<QSharedPointer<Emoji>> )> success = [ = ]( const QList<QSharedPointer<Emoji>> &pEmojiList ) { - if ( pEmojiList.size() ) { + if ( !pEmojiList.isEmpty() ) { + auto emojiModel = Models::getEmojisModel(); mStorage->transaction(); + QList<QSharedPointer<Emoji>> newEmojis; + for ( const auto &emoji : pEmojiList ) { if ( !emoji.isNull() ) { - mEmojiService->persistEmoji( emoji ); - if ( !mEmojiRepo->contains( emoji->getIdentifier() ) ) { + mEmojiService->persistEmoji( emoji ); mEmojiRepo->add( emoji->getIdentifier(), emoji ); + newEmojis.append( std::move( emoji ) ); } } } - QMetaObject::invokeMethod( emojiModel, "addEmojisByCategory", Q_ARG( QString, "custom" ), Q_ARG( QList<QSharedPointer<Emoji>>, pEmojiList ) ); - + if ( !newEmojis.isEmpty() ) { + QMetaObject::invokeMethod( emojiModel, "addEmojisByCategory", Q_ARG( QString, "custom" ), Q_ARG( QList<QSharedPointer<Emoji>>, std::move( newEmojis ) ) ); + } mStorage->commit(); } - //emit customEmojisReceived( getEmojisByCategory() ); - - QSharedPointer<RocketChatSubscribeRoomsChanged> notifyRoomsChanged( new RocketChatSubscribeRoomsChanged( this->mUserId ) ); - QSharedPointer<RocketChatSubscribeUserNotify> notifySubSubscription( new RocketChatSubscribeUserNotify( this->mUserId ) ); - QSharedPointer<RocketChatNotifyNoticesRequest> notifyNoticeSubSubscription( new RocketChatNotifyNoticesRequest( this->mUserId ) ); - QSharedPointer<RocketChatSubScriptionChangedRequest> noitfySubscriptionsSubscription( new RocketChatSubScriptionChangedRequest( this->mUserId ) ); - QSharedPointer<RocketChatSubscribeActiveUsers> activeUsersSubscription( new RocketChatSubscribeActiveUsers() ); - QSharedPointer<RocketChatSubscribeUserData> userData( new RocketChatSubscribeUserData() ); - sendDdprequest( notifySubSubscription, true ); - sendDdprequest( notifyNoticeSubSubscription, true ); - sendDdprequest( noitfySubscriptionsSubscription, true ); - sendDdprequest( activeUsersSubscription, true ); - sendDdprequest( notifyRoomsChanged, true ); - sendDdprequest( userData, true ); - onLoggedIn(); - sendUnsentMessages(); - getServerSettings(); - emit registerForPush(); qDebug() << "ddp authenticated"; - this->initialised = 1; + this->initialised = true; }; - mEmojiService->loadCustomEmojis( success ); + QSharedPointer<RocketChatSubscribeRoomsChanged> notifyRoomsChanged( new RocketChatSubscribeRoomsChanged( this->mUserId ) ); + QSharedPointer<RocketChatSubscribeUserNotify> notifySubSubscription( new RocketChatSubscribeUserNotify( this->mUserId ) ); + QSharedPointer<RocketChatNotifyNoticesRequest> notifyNoticeSubSubscription( new RocketChatNotifyNoticesRequest( this->mUserId ) ); + QSharedPointer<RocketChatSubScriptionChangedRequest> noitfySubscriptionsSubscription( new RocketChatSubScriptionChangedRequest( this->mUserId ) ); + QSharedPointer<RocketChatSubscribeActiveUsers> activeUsersSubscription( new RocketChatSubscribeActiveUsers() ); + QSharedPointer<RocketChatSubscribeUserData> userData( new RocketChatSubscribeUserData() ); + sendDdprequest( notifySubSubscription, true ); + sendDdprequest( notifyNoticeSubSubscription, true ); + sendDdprequest( noitfySubscriptionsSubscription, true ); + sendDdprequest( activeUsersSubscription, true ); + sendDdprequest( notifyRoomsChanged, true ); + sendDdprequest( userData, true ); + + sendUnsentMessages(); + getServerSettings(); + emit registerForPush(); + mEmojiService->loadCustomEmojis( std::move( success ) ); } void RocketChatServerData::openPrivateChannelWith( const QString &pUsername ) @@ -1785,7 +1722,7 @@ void RocketChatServerData::uploadFile( const QString &pChannelId, const QString file.close(); } - FileUploader *uploader = new FileUploader( this, uri, pChannelId ); + auto uploader = new FileUploader( this, uri, pChannelId ); std::function<void( void )> success = [ = ]() { emit fileUploadFinished( uploader->getFileId() ); delete uploader; @@ -1813,7 +1750,7 @@ void RocketChatServerData::uploadFile( const QString &pChannelId, const QString try { uploader->upload( success ); - } catch ( std::exception e ) { + } catch ( std::exception &e ) { qCritical() << e.what(); } } diff --git a/rocketchatserver.h b/rocketchatserver.h index cf04c770a54a9bed38c2167c6d7ee01c72120888..3a0b73809dac1f88f2bdac805ab20da47f730c7e 100755 --- a/rocketchatserver.h +++ b/rocketchatserver.h @@ -115,13 +115,11 @@ class RocketChatServerData : public MessageListener Q_OBJECT public: - RocketChatServerData( const QString &pId, QString pBaseUrl, + RocketChatServerData( QString pId, QString pBaseUrl, bool pUnsecure = false ); void setServerId( const QString &pValue ); - void setServerAddress( const QString &pServerAddress ); - public slots: void init(); @@ -144,7 +142,6 @@ class RocketChatServerData : public MessageListener void joinChannel( const QString &pChannelId, bool pForce = false ); void joinChannelByNameAndType( const QString &pChannelName, const QString &pType ); - void connectWithServer(); void loadRecentHistory( const QString &pChannelId ); void loadHistoryTill( const QString &pChannelId, qint64 pTs ); @@ -225,12 +222,9 @@ class RocketChatServerData : public MessageListener RocketChatChannelService *mChannelService; void handleChannelMessage( const QJsonObject &pMessage ); uint diffToLastDDPPing(); - QString parseMessageReceived( const QString &pMessage ); void sendUnsentMessages( void ); void sendApiRequest( const RestApiRequest &pRequest, bool pRetry = true ); void sendDdprequest( const QSharedPointer<DDPRequest> &pRequest, bool pRetry = true, bool pSendWhenConnected = false ); - QJsonObject getMessageData( const QString &pChannelId, const QString &pMesssageId ); - QJsonObject formatMessageTime( const QJsonObject &pJsonObject ); bool initialised = 0; ConnectionState getConnectionState() const; @@ -277,7 +271,6 @@ class RocketChatServerData : public MessageListener PersistanceLayer *mStorage = nullptr; EmojiService *mEmojiService = nullptr; FileService *mFileService = nullptr; - QHash<QString, bool> mDownloadsInProgress; QLinkedList<QSharedPointer<DDPRequest>> mUnsendDdpRequests; QLinkedList<QSharedPointer<DDPRequest>> mUnsendDdpRequestsOnConnected; QLinkedList<RestApiRequest> mUnsendRestRequests; @@ -293,11 +286,6 @@ class RocketChatServerData : public MessageListener QString mPendingSwitchRoomRequest; QString mPendingSwitchRoomRequestType; - - - //TODO: only a quick and dirty solution, move it out and clean up! - QStringList mBlockedUsers; - void getServerSettings( void ); void onDDPConnected(); void onDDPDisonnected(); @@ -305,7 +293,6 @@ class RocketChatServerData : public MessageListener void onDDPAuthenticated(); void onDDPMessageReceived( const QJsonObject &pMessage ); void onChannelsLoaded( const QVector<QSharedPointer<RocketChatChannel> > &pChannels ); - void onFileDownloaded( const QString &pUrl, const QString &pTempfile ); void onLoggedIn(); bool isStreamRoomMessage( const QJsonObject &pMessage ) const; bool isUserJoinMessage( const QJsonObject &pMessage ) const; @@ -318,7 +305,6 @@ class RocketChatServerData : public MessageListener void loadEmojis(); void loadHistories( void ); - void checkForMissedMessages( void ); void onUsersLoaded( const QString &pChannelId, const QVector<QSharedPointer<RocketChatUser>> &pUserList ); void onUnreadCountChanged(); diff --git a/segfaulthandler.cpp b/segfaulthandler.cpp index 426f48ec8450a268970c736df4332836bdd36c9b..9a5d49261deff997bbb6d10374d90eebc8b86579 100755 --- a/segfaulthandler.cpp +++ b/segfaulthandler.cpp @@ -44,7 +44,7 @@ SegfaultHandler::SegfaultHandler( QObject *parent ) : QObject( parent ) init(); } -SegfaultHandler::SegfaultHandler( QString pText ) +SegfaultHandler::SegfaultHandler( const QString &pText ) { mFailurePoint = pText; SegfaultHandler::mFailurePoints[QThread::currentThreadId()] = pText; diff --git a/segfaulthandler.h b/segfaulthandler.h index 47e51055a93ed81fe5e85c0cbad4115b4bd1617c..879dba7161d26eca499fafd7a6e72d9d35133556 100755 --- a/segfaulthandler.h +++ b/segfaulthandler.h @@ -36,7 +36,7 @@ class SegfaultHandler : public QObject Q_OBJECT public: explicit SegfaultHandler( QObject *parent = 0 ); - explicit SegfaultHandler( QString ); + explicit SegfaultHandler( const QString & ); ~SegfaultHandler(); diff --git a/services/emojiservice.cpp b/services/emojiservice.cpp index 2a7336089b9e54b6bdcaf6d3304234bb6484946f..34552fa0d9e0827327712622f5c155020b1343e2 100755 --- a/services/emojiservice.cpp +++ b/services/emojiservice.cpp @@ -46,7 +46,7 @@ void EmojiService::loadCustomEmojis( const std::function<void ( QList<QSharedPoi DdpCallback success = [ = ]( const QJsonObject & pResponse, MeteorDDP * pDdp ) { Q_UNUSED( pDdp ); QJsonArray result = pResponse[QStringLiteral( "result" )].toArray(); - EmojiData *data = new EmojiData( result ); + auto data = new EmojiData( result ); data->success = pSuccess; handleCustomEmojisReceived( data ); }; @@ -66,8 +66,8 @@ QList<QSharedPointer<Emoji>> EmojiService::loadEmojisFromDb() emojiList.reserve( 3000 ); for ( const auto ¤t : emojiData ) { - auto parsedEmojis = parseEmoji( current ); - emojiList.append( parsedEmojis ); + auto parsedEmojis = parseEmoji( std::move( current ) ); + emojiList.append( std::move( parsedEmojis ) ); } return emojiList; @@ -141,7 +141,7 @@ QSharedPointer<Emoji> EmojiService::parseEmoji( const QHash<QString, QString> &p QString unicode = pEmojiData[QStringLiteral( "unicode" )]; int order = pEmojiData[QStringLiteral( "sort_order" )].toInt(); - QSharedPointer<Emoji> emoji( new Emoji( name, catgeory, filePath, html, unicode, order ) ); + QSharedPointer<Emoji> emoji( new Emoji( std::move( name ), std::move( catgeory ), std::move( filePath ), std::move( html ), std::move( unicode ), order ) ); return emoji; } @@ -151,7 +151,7 @@ QSharedPointer<Emoji> EmojiService::parseEmoji( const QJsonObject &pEmojiData ) QString extension = pEmojiData[QStringLiteral( "extension" )].toString(); QString category = pEmojiData[QStringLiteral( "category" )].toString(); - QSharedPointer<Emoji> emoji( new Emoji( name, extension, category ) ); + QSharedPointer<Emoji> emoji( new Emoji( std::move( name ), std::move( extension ), std::move( category ) ) ); return emoji; } @@ -166,7 +166,7 @@ EmojiData::EmojiData( const QJsonArray &data ) this->emojiCounter = data.count(); } -QJsonArray EmojiData::getEmojiData() const +const QJsonArray &EmojiData::getEmojiData() const { return emojiData; } diff --git a/services/emojiservice.h b/services/emojiservice.h index 14cbbf8a0d475fe8126a2367e50778fd8442649e..46af61b6c0dda65711c0bbbd1ee90a487c8d1b3c 100644 --- a/services/emojiservice.h +++ b/services/emojiservice.h @@ -38,7 +38,7 @@ class EmojiData { public: EmojiData( const QJsonArray &data ); - QJsonArray getEmojiData() const; + const QJsonArray &getEmojiData() const; QAtomicInt emojiCounter = 0; QAtomicInt emojisProcessed = 0; QJsonArray emojiData = {}; diff --git a/services/messageservice.cpp b/services/messageservice.cpp index b30d378268b93d7f286a5981e0372eadd55fc9fe..a71d576e11424fc6ed7b67aa2c4f093f5a5c9cfa 100644 --- a/services/messageservice.cpp +++ b/services/messageservice.cpp @@ -281,7 +281,7 @@ void MessageService::loadHistoryFromServer( const QSharedPointer<LoadHistoryRequ QSharedPointer<QSet<QString>> duplicateCheck( new QSet<QString> ); if ( requests.length() ) { - QMultiMap<QString, ChatMessage> *list = new QMultiMap<QString, ChatMessage>; + auto list = new QMultiMap<QString, ChatMessage>; //loop over all channels for ( const auto ¤tChannelRequest : requests ) { @@ -373,7 +373,7 @@ void MessageService::loadHistoryFromServer( const QSharedPointer<LoadHistoryServ QMultiMap<QString, ChatMessage> *MessageService::loadHistoryFromDb( const QSharedPointer<LoadHistoryServiceRequest> &pRequest ) { - QMultiMap<QString, ChatMessage> *channelMap = new QMultiMap<QString, ChatMessage>; + auto channelMap = new QMultiMap<QString, ChatMessage>; if ( !pRequest.isNull() ) { QStringList channelIds = pRequest->getChannelIds(); diff --git a/services/requests/loadhistoryservicerequest.cpp b/services/requests/loadhistoryservicerequest.cpp index f19d18fcc458e959e83fff4eb3c935a43ad1e0a1..7e3df1d19449ea146f290e84a82d5e047fbfee9d 100644 --- a/services/requests/loadhistoryservicerequest.cpp +++ b/services/requests/loadhistoryservicerequest.cpp @@ -27,17 +27,17 @@ LoadHistoryServiceRequest::LoadHistoryServiceRequest( const QString &pChannelId } -LoadHistoryServiceRequest::LoadHistoryServiceRequest( const QStringList &pChannelIds ): mChannelIds( pChannelIds ) +LoadHistoryServiceRequest::LoadHistoryServiceRequest( QStringList pChannelIds ): mChannelIds( std::move( pChannelIds ) ) { } -LoadHistoryServiceRequest::LoadHistoryServiceRequest( const QString &pChannelId, int pLimit ): LoadHistoryServiceRequest( pChannelId ) +LoadHistoryServiceRequest::LoadHistoryServiceRequest( QString pChannelId, int pLimit ): LoadHistoryServiceRequest( std::move( pChannelId ) ) { mLimit = pLimit; } -LoadHistoryServiceRequest::LoadHistoryServiceRequest( const QStringList &pChannelIds, int pLimit ): LoadHistoryServiceRequest( pChannelIds ) +LoadHistoryServiceRequest::LoadHistoryServiceRequest( QStringList pChannelIds, int pLimit ): LoadHistoryServiceRequest( std::move( pChannelIds ) ) { mLimit = pLimit; } diff --git a/services/requests/loadhistoryservicerequest.h b/services/requests/loadhistoryservicerequest.h index b64ba989e82d427d11e57e92e299f50b3ecac19e..b93ce2111cfaff9ede10d33b78e3ae1f222818f6 100644 --- a/services/requests/loadhistoryservicerequest.h +++ b/services/requests/loadhistoryservicerequest.h @@ -32,9 +32,9 @@ class LoadHistoryServiceRequest { public: LoadHistoryServiceRequest( const QString &pChannelId ); - LoadHistoryServiceRequest( const QStringList &pChannelIds ); - LoadHistoryServiceRequest( const QString &pChannelId, int pLimit ); - LoadHistoryServiceRequest( const QStringList &pChannelIds, int pLimit ); + LoadHistoryServiceRequest( QStringList pChannelIds ); + LoadHistoryServiceRequest( QString pChannelId, int pLimit ); + LoadHistoryServiceRequest( QStringList pChannelIds, int pLimit ); enum class Source { AUTO, diff --git a/services/rocketchatchannelservice.cpp b/services/rocketchatchannelservice.cpp index e57afc42586c36ee1eb7f5da69a30a2168acc663..66e097e2643f6000bab59651e974ca2dde2008cf 100755 --- a/services/rocketchatchannelservice.cpp +++ b/services/rocketchatchannelservice.cpp @@ -126,17 +126,6 @@ QVector<QSharedPointer<RocketChatChannel> > RocketChatChannelService::processCha if ( type == "d" ) { channel->setChatPartnerId( chatPartnerId ); - - /* QString name = currentChannelObject["name"].toString(); - QString fname = currentChannelObject["fname"].toString(); - - if ( fname.isEmpty() ) { - channel->setName( name ); - } else { - channel->setName( fname ); - } - - channel->setUsername( name );*/ } if ( !name.isEmpty() ) { @@ -226,10 +215,10 @@ void RocketChatChannelService::loadJoinedChannelsFromServer( void ) auto channelsLocal = mChannels->getElements(); - for ( auto channelKey : channelsLocal.keys() ) { + for ( const auto &channelKey : channelsLocal.keys() ) { bool deleteFlag = true; - for ( auto channelServer : channelsParsed ) { + for ( const auto &channelServer : channelsParsed ) { if ( channelServer->getRoomId() == channelKey ) { deleteFlag = false; } @@ -603,7 +592,7 @@ channelVector RocketChatChannelService::searchRoomLocal( const QString &pTerm, c channelVector list; QString term = pTerm.toLower(); - for ( auto channel : mChannels->getElements() ) { + for ( const auto &channel : mChannels->getElements() ) { QString id = channel->getRoomId(); QString type = channel->getType(); QString name = channel->getName().toLower(); diff --git a/utils.cpp b/utils.cpp index 95ee297f9a1dff8296152a873a4c7b4d17b2586c..3b3c4c35a576f95cb94cf491a8b80ae283a7de34 100755 --- a/utils.cpp +++ b/utils.cpp @@ -154,7 +154,7 @@ QString Utils::linkiFy( const QString &pText ) parts.append( pText.right( pText.length() - idx_last ) ); - for ( const auto part : parts ) { + for ( const auto &part : parts ) { html += part; }