Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os editores do Visual Studio podem transmitir eventos QEQS (Query Edit Query Save). Visual Studio Source Control Stub implementa o serviço QEQS, tornando-se o destinatário de eventos QEQS. Esses eventos são então delegados ao VSPackage de controle de origem atualmente ativo. O VSPackage de controle de origem ativo implementa o IVsQueryEditQuerySave2 e seus métodos. Os métodos da IVsQueryEditQuerySave2 interface são normalmente chamados imediatamente antes de um documento ser editado pela primeira vez e imediatamente antes de um documento ser salvo.
QueryEditQuerySave Eventos
O VSPackage de controle de origem deve manipular os eventos QEQS implementando a IVsQueryEditQuerySave2 interface e os métodos necessários. Abaixo está uma breve descrição dos dois métodos que o VSPackage deve implementar no mínimo. A implementação real deve estar de acordo com a lógica do modelo de controle do código-fonte.
Método QueryEditFiles
O QueryEditFiles é chamado quando qualquer projeto ou editor deseja modificar um arquivo. Idealmente, esse método é chamado antes que o arquivo seja modificado e quando um arquivo é salvo. Quando invocado, o IVsQueryEditQuerySave2::QueryEditFiles método verifica se os arquivos fornecidos estão sob controle do código-fonte, se precisam ser verificados e se podem ser recarregados. Se as circunstâncias impedirem que os arquivos sejam editáveis, o IVsQueryEditQuerySave2::QueryEditFiles método informa o programa de chamada para cancelar a edição. Também é possível que o chamador especifique um modo de invocação. No modo "silencioso", este método só age caso não faça com que nenhuma interface de utilizador seja apresentada. Se a UI não puder ser evitada, um sinalizador deverá ser retornado para indicar o problema.
O método se comporta de maneira transacional; ou seja, se a edição for cancelada em um único arquivo, a edição será cancelada para todos os arquivos. Por outro lado, se a edição for permitida, ela será permitida para todos os arquivos. Se este método permite editar uma vez para um determinado conjunto de ficheiros, deve sempre permitir a edição em chamadas subsequentes para o mesmo conjunto de ficheiros. O loop allow-edit continua até que os arquivos sejam fechados, salvos e recarregados; até que seus atributos (propriedades) mudem; ou até que o pacote de controle do código-fonte seja alterado. Os casos a serem considerados na implementação do IVsQueryEditQuerySave2::QueryEditFiles método incluem vários arquivos, arquivos especiais, cancelamento do usuário e edições na memória.
Método QuerySaveFiles
O QuerySaveFiles é chamado quando qualquer projeto ou editor precisa salvar um conjunto de arquivos. Quando invocado, o IVsQueryEditQuerySave2::QuerySaveFiles método verifica se os arquivos fornecidos são somente leitura e se eles estão sob controle do código-fonte. Se for necessário fazer check-out dos arquivos, a chamada será delegada ao pacote de controle do código-fonte. Se as circunstâncias impedirem que os arquivos sejam salvos, o método IVsQueryEditQuerySave2::QuerySaveFiles deve informar ao editor para cancelar o salvamento. Tal como acontece com o IVsQueryEditQuerySave2::QueryEditFiles método, é possível para o chamador especificar um modo de invocação. No modo "silencioso", esse método só age se não fizer com que nenhuma interface do usuário apareça. Se a Interface do Utilizador for inevitável, um indicador deverá ser retornado para indicar o problema.
Este método deve comportar-se de forma transacional; ou seja, se o salvamento for cancelado em um único arquivo, o salvamento será cancelado para todos os arquivos. Por outro lado, se o salvamento for permitido, ele deve ser permitido para todos os arquivos. Tal como acontece com o método IVsQueryEditQuerySave2::QueryEditFiles, os casos a considerar na implementação do método IVsQueryEditQuerySave2::QuerySaveFiles incluem vários ficheiros, ficheiros especiais, cancelamento pelo utilizador e edições na memória.