示例#1
0
 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)
示例#2
0
    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)
示例#3
0
    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
示例#4
0
    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()