Author: jkupec Date: Wed Sep 17 17:14:16 2008 New Revision: 11084 URL: http://svn.opensuse.org/viewcvs/zypp?rev=11084&view=rev Log: - modifyService() disable repos when disabling service Modified: trunk/libzypp/zypp/RepoManager.cc Modified: trunk/libzypp/zypp/RepoManager.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/RepoManager.cc?rev=1... ============================================================================== --- trunk/libzypp/zypp/RepoManager.cc (original) +++ trunk/libzypp/zypp/RepoManager.cc Wed Sep 17 17:14:16 2008 @@ -1701,8 +1701,8 @@ } } - // Save service if modified: - if ( serviceModified ) + // save service if modified: + if ( serviceModified ) { // write out modified service file. modifyService( service.alias(), service ); @@ -1739,25 +1739,29 @@ _pimpl->services.erase(oldAlias); _pimpl->services.insert(service); - // changed name, must change also repositories - if( oldAlias != service.alias() ) + // changed properties affecting also repositories + if( oldAlias != service.alias() // changed alias + || oldService.enabled() != service.enabled() // changed enabled status + ) { std::vector<RepoInfo> toModify; getRepositoriesInService(oldAlias, insert_iterator<std::vector<RepoInfo> >( toModify, toModify.begin() )); for_( it, toModify.begin(), toModify.end() ) { - it->setService(service.alias()); + if (oldService.enabled() && !service.enabled()) + it->setEnabled(false); + else if (!oldService.enabled() && service.enabled()) + { + //! \todo do nothing? the repos will be enabled on service refresh + //! \todo how to know the service needs a (auto) refresh???? + } + else + it->setService(service.alias()); modifyRepository(it->alias(), *it); } } - //! \todo changed enabled status - if ( oldService.enabled() != service.enabled() ) - { - - } - //! \todo refresh the service automatically if url is changed? } -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org