mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-10-01 02:35:48 -04:00
save/restore hidden columns when switching which column is visible in FriendList
This commit is contained in:
parent
da21a40eda
commit
44444207f7
@ -158,7 +158,7 @@ void RsFriendListModel::postMods()
|
||||
{
|
||||
endResetModel();
|
||||
|
||||
emit dataChanged(createIndex(0,0,(void*)NULL), createIndex(rowCount()-1,COLUMN_THREAD_NB_COLUMNS-1,(void*)NULL));
|
||||
emit dataChanged(createIndex(0,0,(void*)NULL), createIndex(rowCount()-1,columnCount()-1,(void*)NULL));
|
||||
}
|
||||
|
||||
int RsFriendListModel::rowCount(const QModelIndex& parent) const
|
||||
@ -1236,7 +1236,7 @@ void RsFriendListModel::collapseItem(const QModelIndex& index)
|
||||
mExpandedProfiles.erase(s);
|
||||
|
||||
// apparently we cannot be subtle here.
|
||||
emit dataChanged(createIndex(0,0,(void*)NULL), createIndex(mTopLevel.size()-1,COLUMN_THREAD_NB_COLUMNS-1,(void*)NULL));
|
||||
emit dataChanged(createIndex(0,0,(void*)NULL), createIndex(mTopLevel.size()-1,columnCount()-1,(void*)NULL));
|
||||
}
|
||||
|
||||
void RsFriendListModel::expandItem(const QModelIndex& index)
|
||||
@ -1258,10 +1258,10 @@ void RsFriendListModel::expandItem(const QModelIndex& index)
|
||||
if(hp) s += hp->profile_info.gpg_id.toStdString();
|
||||
|
||||
if(!s.empty())
|
||||
mExpandedProfiles.insert(s);
|
||||
mExpandedProfiles.insert(s);
|
||||
|
||||
// apparently we cannot be subtle here.
|
||||
emit dataChanged(createIndex(0,0,(void*)NULL), createIndex(mTopLevel.size()-1,COLUMN_THREAD_NB_COLUMNS-1,(void*)NULL));
|
||||
emit dataChanged(createIndex(0,0,(void*)NULL), createIndex(mTopLevel.size()-1,columnCount()-1,(void*)NULL));
|
||||
}
|
||||
|
||||
bool RsFriendListModel::isProfileExpanded(const EntryIndex& e) const
|
||||
|
@ -1096,7 +1096,13 @@ void NewFriendList::applyWhileKeepingTree(std::function<void()> predicate)
|
||||
saveExpandedPathsAndSelection(expanded_indexes, selected_indexes);
|
||||
|
||||
// This is a hack to avoid crashes on windows while calling endInsertRows(). I'm not sure wether these crashes are
|
||||
// due to a Qt bug, or a misuse of the proxy model on my side. Anyway, this soves them for good.
|
||||
// due to a Qt bug, or a misuse of the proxy model on my side. Anyway, this solves them for good.
|
||||
|
||||
// save hidden columns
|
||||
std::list<int> hidden_columns;
|
||||
for(int i=0;i<RsFriendListModel::COLUMN_THREAD_NB_COLUMNS;++i)
|
||||
if(ui->peerTreeWidget->isColumnHidden(i))
|
||||
hidden_columns.push_back(i);
|
||||
|
||||
mProxyModel->setSourceModel(nullptr);
|
||||
|
||||
@ -1104,6 +1110,10 @@ void NewFriendList::applyWhileKeepingTree(std::function<void()> predicate)
|
||||
|
||||
mProxyModel->setSourceModel(mModel);
|
||||
restoreExpandedPathsAndSelection(expanded_indexes, selected_indexes);
|
||||
|
||||
// restore hidden columns
|
||||
for(auto c: hidden_columns)
|
||||
ui->peerTreeWidget->setColumnHidden(c,true);
|
||||
}
|
||||
|
||||
void NewFriendList::checkInternalData(bool force)
|
||||
|
Loading…
Reference in New Issue
Block a user