diff --git a/rocketchatserver.cpp b/rocketchatserver.cpp index 58decd621b89df32b2b3d752a2581af14da7fb40..567d7d00e6c44c01e1c94944bdadd14ced6642b3 100755 --- a/rocketchatserver.cpp +++ b/rocketchatserver.cpp @@ -70,6 +70,8 @@ void RocketChatServerData::init() mChannels = new ChannelRepository( channelsModel, channelsModel, groupsModel, mMessagesModel ); + RocketChatServerConfig::init(); + QMetaObject::invokeMethod( mRestApi, "init" ); connect( mDdpApi, &MeteorDDP::messageReceived, this, &RocketChatServerData::onDDPMessageReceived, Qt::UniqueConnection ); @@ -1741,6 +1743,7 @@ void RocketChatServerData::getServerInfo() std::get<0>( RocketChatServerConfig::serverVersion ) = verParts[0].toInt(); std::get<1>( RocketChatServerConfig::serverVersion ) = verParts[1].toInt(); std::get<2>( RocketChatServerConfig::serverVersion ) = verParts[2].toInt(); + mStorage->setSetting( "serverversion", version ); } } }; diff --git a/rocketchatserverconfig.cpp b/rocketchatserverconfig.cpp index 2790381c9219752fa0d97978a59da7f7a559406e..97127a0bc1401a05586f2494d08a1fdc19c4ca01 100644 --- a/rocketchatserverconfig.cpp +++ b/rocketchatserverconfig.cpp @@ -18,7 +18,7 @@ * * ********************************************************************************************/ - +#include "persistancelayer.h" #include "rocketchatserverconfig.h" std::tuple<int, int, int> RocketChatServerConfig::serverVersion = std::make_tuple( -1, -1, -1 ); @@ -30,3 +30,19 @@ RocketChatServerConfig::RocketChatServerConfig() { } + +void RocketChatServerConfig::init() +{ + PersistanceLayer *mStorage = PersistanceLayer::instance(); + QString serverVersion = mStorage->getSetting( "serverversion" ); + + if ( !serverVersion.isEmpty() ) { + QStringList verParts = serverVersion.split( "," ); + + if ( verParts.length() > 2 ) { + std::get<0>( RocketChatServerConfig::serverVersion ) = verParts[0].toInt(); + std::get<1>( RocketChatServerConfig::serverVersion ) = verParts[1].toInt(); + std::get<2>( RocketChatServerConfig::serverVersion ) = verParts[2].toInt(); + } + } +} diff --git a/rocketchatserverconfig.h b/rocketchatserverconfig.h index 2dd65a75e5ae8fcf1388f56fe4c00fd18ba9f4df..8ca41f67471876df01aaf01ceb267018502708ee 100644 --- a/rocketchatserverconfig.h +++ b/rocketchatserverconfig.h @@ -28,6 +28,7 @@ class RocketChatServerConfig { public: RocketChatServerConfig(); + static void init(); static QString uniqueId; static QString jitsiMeetUrl; static QString jitsiMeetPrefix;