def __on_activate_plugin(self, cell, path): model = self.tree.get_model() iter = model.get_iter(path) plugin = model.get_value(iter, COLUMN_OBJECT) if not plugin: return if not plugin.enabled: func = self.p_window.engine.load_plugin else: func = self.p_window.engine.unload_plugin ret, errmsg = func(plugin) if not ret: dialog = HIGAlertDialog(PMApp().main_window, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, message_format=errmsg, secondary_text=errmsg.summary) dialog.run() dialog.hide() dialog.destroy()
def __on_response(self, dialog, response_id): if response_id == gtk.RESPONSE_ACCEPT: opts = self.get_options() if opts['capmethod'] == 1 and not opts['capfile']: log.debug('Capture method selected is virtual interface but ' 'the file entry is empty. Stopping response emission') self.stop_emission('response') d = HIGAlertDialog(self, gtk.DIALOG_DESTROY_WITH_PARENT | \ gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, message_format=_("Some options are missing"), secondary_text=_("You've selected Virtual " "interface as capture " "method. You need to " "specify a file source to " "read from")) d.run() d.hide() d.destroy()
def __on_response(self, dialog, response_id): if response_id == gtk.RESPONSE_ACCEPT: opts = self.get_options() if opts['capmethod'] == 1 and not opts['capfile']: log.debug( 'Capture method selected is virtual interface but ' 'the file entry is empty. Stopping response emission') self.stop_emission('response') d = HIGAlertDialog(self, gtk.DIALOG_DESTROY_WITH_PARENT | \ gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, message_format=_("Some options are missing"), secondary_text=_("You've selected Virtual " "interface as capture " "method. You need to " "specify a file source to " "read from")) d.run() d.hide() d.destroy()
def on_save_log(self, action, selection=False): if selection: model, rows = self.get_selection().get_selected_rows() if not rows: return dialog = gtk.FileChooserDialog(_('Save log file'), PMApp().main_window, gtk.FILE_CHOOSER_ACTION_SAVE, (gtk.STOCK_SAVE, gtk.RESPONSE_ACCEPT, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)) afilter = gtk.FileFilter() afilter.add_pattern('*.txt') afilter.add_pattern('*.log') afilter.add_mime_type('text/plain') afilter.set_name('ASCII log file') dialog.add_filter(afilter) xfilter = gtk.FileFilter() xfilter.add_pattern('*.xml') xfilter.add_mime_type('text/html') xfilter.set_name('XML log file') dialog.add_filter(xfilter) if dialog.run() == gtk.RESPONSE_ACCEPT: outname = dialog.get_filename() type = (dialog.get_filter() is xfilter and 1 or 0) if exists(outname): d = gtk.MessageDialog(PMApp().main_window, gtk.DIALOG_MODAL, gtk.BUTTONS_YES_NO, _('A file named %s already exists. Do ' 'want overwrite it?') % outname) ret = d.run() d.hide() d.destroy() if ret == gtk.RESPONSE_NO: dialog.hide() dialog.destroy() return try: f = open(outname, 'w') if type == 1: f.write('<?xml version="1.0"?>\n<auditlog>\n') sep = ' ' else: sep = '' if selection: for path in rows: iter = model.get_iter(path) f.write(sep + \ self.get_row_txt(model, iter, type) + \ '\n') else: def dump(model, path, iter, f): f.write(sep + \ self.get_row_txt(model, iter, type) + \ '\n') self.store.foreach(dump, f) if type == 1: f.write('</auditlog>\n') f.close() except Exception, err: try: unlink(outname) except: pass d = HIGAlertDialog(PMApp().main_window, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, message_format=_('Error while saving log ' 'file to %s') % outname, secondary_text=str(err)) d.run() d.hide() d.destroy()