def __init__(self, *args, **kwargs): super(LoginDialog, self).__init__(*args, **kwargs) self.popup_menu = managers.MenuManager() self.popup_menu.append( 'About', lambda x: about.AboutDialog(self.application).interact()) self.popup_menu.append('Import Configuration', self.signal_menuitem_activate_import_config)
def __init__(self, *args, **kwargs): super(LoginDialog, self).__init__(*args, **kwargs) self.popup_menu = managers.MenuManager() self.popup_menu.append( 'About', lambda x: about.AboutDialog(self.application).interact()) self.popup_menu.append('Import Configuration', self.signal_menuitem_activate_import_config) # setup server completion model = Gtk.ListStore(str) for entry in self.config['server.history']: model.append((entry, )) completion = Gtk.EntryCompletion() completion.set_model(model) completion.set_text_column(0) self.gobjects['entry_server'].set_completion(completion)
def __init__(self, application, size_request=None, style_context=None): """ :param tuple size_request: The size to set for the canvas. """ self.logger = logging.getLogger('KingPhisher.Client.Graph.' + self.__class__.__name__[13:]) self.application = application self.style_context = style_context self.config = application.config """A reference to the King Phisher client configuration.""" self.figure, _ = pyplot.subplots() self.figure.set_facecolor(self.get_color('bg', ColorHexCode.WHITE)) self.axes = self.figure.get_axes() self.canvas = FigureCanvas(self.figure) self.manager = None self.minimum_size = (380, 200) """An absolute minimum size for the canvas.""" if size_request is not None: self.resize(*size_request) self.canvas.mpl_connect('button_press_event', self.mpl_signal_canvas_button_pressed) self.canvas.show() self.navigation_toolbar = NavigationToolbar( self.canvas, self.application.get_active_window()) self.popup_menu = managers.MenuManager() self.popup_menu.append('Export', self.signal_activate_popup_menu_export) self.popup_menu.append('Refresh', self.signal_activate_popup_refresh) menu_item = Gtk.CheckMenuItem.new_with_label('Show Toolbar') menu_item.connect('toggled', self.signal_toggled_popup_menu_show_toolbar) self._menu_item_show_toolbar = menu_item self.popup_menu.append_item(menu_item) self.navigation_toolbar.hide() self._legend = None
def __init__(self, *args, **kwargs): super(PluginManagerWindow, self).__init__(*args, **kwargs) self.catalog_plugins = plugins.ClientCatalogManager( self.application.user_data_path) self.plugin_path = os.path.join(self.application.user_data_path, 'plugins') self.status_bar = self.gobjects['statusbar'] self._installed_plugins_treeview_tracker = None """ This is used to track and make sure all plugins make it into the treeview. It is set each time catalogs are loaded or refreshed. Once the loading operation is complete, plugins that remain were not loaded due their data (repo or id) missing from the catalog, likely due to it having been removed. """ self._worker_thread = None self._worker_thread_start(self._load_catalogs_tsafe) self.__load_errors = {} self.__installing_plugin = None tvm = managers.TreeViewManager(self.gobjects['treeview_plugins']) toggle_renderer_enable = Gtk.CellRendererToggle() toggle_renderer_enable.connect('toggled', self.signal_renderer_toggled_enable) toggle_renderer_install = Gtk.CellRendererToggle() toggle_renderer_install.connect('toggled', self.signal_renderer_toggled_install) tvm.set_column_titles( ('Installed', 'Enabled', 'Title', 'Compatible', 'Version'), column_offset=1, renderers=(toggle_renderer_install, toggle_renderer_enable, Gtk.CellRendererText(), Gtk.CellRendererText(), Gtk.CellRendererText())) tvm.column_views['Enabled'].set_cell_data_func( toggle_renderer_enable, self._toggle_enabled_cell_data_func) tvm.column_views['Enabled'].add_attribute(toggle_renderer_enable, 'visible', 6) tvm.column_views['Enabled'].add_attribute(toggle_renderer_enable, 'sensitive', 1) tvm.column_views['Installed'].set_cell_data_func( toggle_renderer_install, self._toggle_install_cell_data_func) tvm.column_views['Installed'].add_attribute(toggle_renderer_install, 'visible', 7) tvm.column_views['Installed'].add_attribute(toggle_renderer_install, 'sensitive', 8) self._model = Gtk.TreeStore(str, bool, bool, str, str, str, bool, bool, bool, str) self._model.set_sort_column_id(3, Gtk.SortType.ASCENDING) self.gobjects['treeview_plugins'].set_model(self._model) self._tv_popup_menu = managers.MenuManager(tvm.get_popup_menu()) self._tv_popup_menu.append_item(Gtk.SeparatorMenuItem()) self._tv_popup_menu.append('Reload', self.signal_popup_menu_activate_reload) self._tv_popup_menu.append('Reload All', self.signal_popup_menu_activate_reload_all) self._tv_popup_menu.append_item(Gtk.SeparatorMenuItem()) self._tv_popup_menu.append( 'Show Documentation', self.signal_popup_menu_activate_show_documentation) self._tv_popup_menu.append('Update', self.signal_popup_menu_activate_update) self._info_popup_menu = managers.MenuManager() self._info_popup_menu.append('Reload', self.signal_popup_menu_activate_reload) self._info_popup_menu.append_item(Gtk.SeparatorMenuItem()) self._info_popup_menu.append( 'Show Documentation', self.signal_popup_menu_activate_show_documentation) self._info_popup_menu.append('Update', self.signal_popup_menu_activate_update) self.gobjects['menubutton_plugin_info'].set_popup( self._info_popup_menu.menu) self._update_status_bar('Loading...') self.window.show() paned = self.gobjects['paned_plugins'] self._paned_offset = paned.get_allocation( ).height - paned.get_position()