@ -302,13 +302,7 @@ void MessageList::saveChannelState() {
auto saveKey = [ & cid ] ( const char * suffix , qint64 val ) {
auto saveKey = [ & cid ] ( const char * suffix , qint64 val ) {
QByteArray key = " ch_ " + cid + suffix ;
QByteArray key = " ch_ " + cid + suffix ;
QByteArray valStr = QByteArray : : number ( val ) ;
QByteArray valStr = QByteArray : : number ( val ) ;
size_t klen = key . size ( ) , vlen = valStr . size ( ) ;
chat_core_save_ui_state ( key . constData ( ) , valStr . constData ( ) ) ;
size_t total = klen + 1 + vlen + 1 ;
if ( total > 256 ) return ;
void * arg = u_malloc ( total ) ;
memcpy ( arg , key . constData ( ) , klen + 1 ) ;
memcpy ( ( char * ) arg + klen + 1 , valStr . constData ( ) , vlen + 1 ) ;
gui_bridge_post_uasync_fn ( chat_core_save_ui_state_trampoline , arg ) ;
} ;
} ;
if ( lastReadMsgId > 0 ) saveKey ( " _last_read " , lastReadMsgId ) ;
if ( lastReadMsgId > 0 ) saveKey ( " _last_read " , lastReadMsgId ) ;
@ -369,14 +363,7 @@ void MessageList::updateReadPosition() {
QByteArray cid = m_currentChannelId . toUtf8 ( ) ;
QByteArray cid = m_currentChannelId . toUtf8 ( ) ;
QByteArray key = " ch_ " + cid + " _last_read " ;
QByteArray key = " ch_ " + cid + " _last_read " ;
QByteArray valStr = QByteArray : : number ( m_lastReadMsgId ) ;
QByteArray valStr = QByteArray : : number ( m_lastReadMsgId ) ;
size_t klen = key . size ( ) , vlen = valStr . size ( ) ;
chat_core_save_ui_state ( key . constData ( ) , valStr . constData ( ) ) ;
size_t total = klen + 1 + vlen + 1 ;
if ( total < = 256 ) {
void * arg = u_malloc ( total ) ;
memcpy ( arg , key . constData ( ) , klen + 1 ) ;
memcpy ( ( char * ) arg + klen + 1 , valStr . constData ( ) , vlen + 1 ) ;
gui_bridge_post_uasync_fn ( chat_core_save_ui_state_trampoline , arg ) ;
}
emit readPositionChanged ( m_currentChannelId , m_lastReadMsgId ) ;
emit readPositionChanged ( m_currentChannelId , m_lastReadMsgId ) ;
}
}