def on_btn_next_clicked(self, button): if self.states[self.state] == "finish": gtk.main_quit() elif self.states[self.state] == "message": if self.action == "embed": # prepare stego file path self.stego_path = os.path.join(os.path.dirname(self.cover), "stego") self.stego_filename = os.path.basename(self.cover) # check if the "stego" subdir already exists, and create it if not if not os.path.exists(self.stego_path): os.mkdir(self.stego_path) self.stego = os.path.join(self.stego_path, self.stego_filename) self.message = self.message_buf.get_text( self.message_buf.get_start_iter(), self.message_buf.get_end_iter()) self.msglen = len(self.message)+1 self.txt_pass1.set_text("") self.txt_pass2.set_text("") result = self.pass_dlg.run() self.pass_dlg.hide() if result == 1: self.password = self.txt_pass1.get_text() if self.password != self.txt_pass2.get_text(): self.error_pass.run() self.error_pass.hide() else: lime_control.setup_methods(self.password, self.extension) self.method = lime_control.get_best_method(self.cover, self.msglen) if self.method >= 0: lime_control.embed_or_extract_with_method(True, self.method, self.cover, self.stego, self.message, self.msglen) self.set_state(self.state + 1) else: print "Kann die Nachricht nicht einbetten." elif self.action == "extract": gtk.main_quit() elif self.states[self.state] == "cover": if self.cover_set: self.action = "embed" self.set_state(self.state + 1) else: self.error_file.run() self.error_file.hide()
def on_btn_prev_clicked(self, button): if self.states[self.state] == "finish": result = self.reset_dlg.run() self.reset_dlg.hide() if result == gtk.RESPONSE_YES: self.reset() self.set_state(self.state) elif self.states[self.state] == "cover": if self.cover_set: self.action = "extract" num_methods = lime_control.get_num_methods(self.extension) self.cmb_method.get_model().clear() for i in range(0, num_methods): self.cmb_method.append_text("Methode " + `i+1`) self.cmb_method.set_active(0) self.txt_pass_m1.set_text("") result = self.method_dlg.run() self.method_dlg.hide() if result == 1: self.password = self.txt_pass_m1.get_text() self.method = self.cmb_method.get_active() if self.method >= 0: lime_control.setup_methods(self.password, self.extension) self.message = lime_control.embed_or_extract_with_method( False, self.method, self.cover, None, None, None) self.set_state(self.state + 1) else: print "Kann die Nachricht nicht extrahieren." self.set_state(1) else: self.error_file.run() self.error_file.hide() elif self.states[self.state] == "message": if self.action == "embed": self.set_state(self.state - 1) elif self.action == "extract": result = self.reset_dlg.run() self.reset_dlg.hide() if result == gtk.RESPONSE_YES: self.reset() self.set_state(self.state)