X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Faliasesmodel.cpp;h=780b152a672edd40f0d888d3a202ca292536d41b;hp=4271614558a2bfe846cb2a0cb9d13a652218adbc;hb=673ded0d543cbdc2cf6e746b6bee7c1d21af8f90;hpb=a95ad2de573027f9bee36db972bcae4195168d0c diff --git a/src/qtui/settingspages/aliasesmodel.cpp b/src/qtui/settingspages/aliasesmodel.cpp index 42716145..780b152a 100644 --- a/src/qtui/settingspages/aliasesmodel.cpp +++ b/src/qtui/settingspages/aliasesmodel.cpp @@ -244,47 +244,41 @@ QModelIndex AliasesModel::index(int row, int column, const QModelIndex& parent) const AliasManager& AliasesModel::aliasManager() const { - if (_configChanged) - return _clonedAliasManager; - else - return *Client::aliasManager(); + return _clonedAliasManager ? *_clonedAliasManager : *Client::aliasManager(); } AliasManager& AliasesModel::aliasManager() { - if (_configChanged) - return _clonedAliasManager; - else - return *Client::aliasManager(); + return _clonedAliasManager ? *_clonedAliasManager : *Client::aliasManager(); } AliasManager& AliasesModel::cloneAliasManager() { - if (!_configChanged) { - _clonedAliasManager = *Client::aliasManager(); - _configChanged = true; + if (!_clonedAliasManager) { + _clonedAliasManager = std::make_unique(); + _clonedAliasManager->fromVariantMap(Client::aliasManager()->toVariantMap()); emit configChanged(true); } - return _clonedAliasManager; + return *_clonedAliasManager; } void AliasesModel::revert() { - if (!_configChanged) + if (!_clonedAliasManager) return; - _configChanged = false; - emit configChanged(false); beginResetModel(); + _clonedAliasManager.reset(); endResetModel(); + emit configChanged(false); } void AliasesModel::commit() { - if (!_configChanged) + if (!_clonedAliasManager) return; - Client::aliasManager()->requestUpdate(_clonedAliasManager.toVariantMap()); + Client::aliasManager()->requestUpdate(_clonedAliasManager->toVariantMap()); revert(); } @@ -307,10 +301,9 @@ void AliasesModel::clientConnected() void AliasesModel::clientDisconnected() { - // clear - _clonedAliasManager = ClientAliasManager(); _modelReady = false; beginResetModel(); + _clonedAliasManager.reset(); endResetModel(); emit modelReady(false); }