# Este método deve estar DENTRO da classe EmuladorISOApp
def importar_iso_dialog(self):
try:
indice_aba_ativa = self.notebook.index(self.notebook.select()) # self.notebook ainda é ttk.Notebook nesta fase da conversão
except tk.TclError: # tk ainda está importado
messagebox.showerror("Erro", "Nenhuma aba de slot selecionada.")
return
# _obter_dados_slot_ativo precisa estar definido na classe
slot_ativo_dados = self._obter_dados_slot_ativo()
if not slot_ativo_dados: # Segurança extra
messagebox.showerror("Erro Interno", "Não foi possível obter dados do slot ativo.")
return
tipos_arquivo = (("Arquivos ISO", "*.iso"), ("Todos os arquivos", "*.*"))
caminho = filedialog.askopenfilename(title=f"Selecionar ISO para Slot {indice_aba_ativa + 1}", filetypes=tipos_arquivo)
if caminho:
slot_ativo_dados['caminho_iso'] = caminho
slot_ativo_dados['montado'] = False
slot_ativo_dados['letra_drive'] = None
slot_ativo_dados['rotulo_volume'] = None # Resetar rótulo ao importar novo ISO
print(f"Slot {indice_aba_ativa}: ISO selecionado: {caminho}")
# atualizar_display_slot e adicionar_iso_ao_historico precisam estar definidos
self.atualizar_display_slot(indice_aba_ativa)
self.adicionar_iso_ao_historico(caminho)
# self.salvar_configuracoes_ctk() # é chamado dentro de adicionar_iso_ao_historico
else:
# Se o usuário cancela, não mudamos o ISO que estava lá,
# mas se não havia ISO, atualizamos o display para "Slot Vazio"
if not slot_ativo_dados.get('caminho_iso'):
self.atualizar_display_slot(indice_aba_ativa) # Precisa estar definido
print(f"Slot {indice_aba_ativa}: Nenhuma ISO selecionada.")