Exemple #1
0
	def __init__(self, parent, acc):
		self._acc = acc
		
		builder = Gtk.Builder()
		builder.set_translation_domain(PACKAGE_NAME)
		builder.add_from_file(get_data_file("account_dialog.ui"))
		builder.connect_signals({ \
			"account_type_changed" : self._on_cmb_account_type_changed, \
			"entry_changed" : self._on_entry_changed, \
			"btn_cancel_clicked" : self._on_btn_cancel_clicked, \
			"btn_save_clicked" : self._on_btn_save_clicked \
		})

		self._window = builder.get_object("account_dialog")
		self._window.set_transient_for(parent)

		self._cmb_account_type = builder.get_object("cmb_account_type")
		self._label_account_name = builder.get_object("label_account_name")
		self._entry_account_name = builder.get_object("entry_account_name")
		self._entry_account_user = builder.get_object("entry_account_user")
		self._entry_account_password = builder.get_object("entry_account_password")
		self._label_account_server = builder.get_object("label_account_server")
		self._entry_account_server = builder.get_object("entry_account_server")		
		self._label_account_port = builder.get_object("label_account_port")
		self._entry_account_port = builder.get_object("entry_account_port")
		self._label_account_folders = builder.get_object("label_account_folders")
		self._entry_account_folders = builder.get_object("entry_account_folders")
		self._chk_account_push = builder.get_object("chk_account_push")
		self._chk_account_ssl = builder.get_object("chk_account_ssl")
		self._button_save = builder.get_object("button_save")

		self._entry_account_port.set_placeholder_text(_("optional"))
		self._entry_account_folders.set_placeholder_text(_("optional"))
Exemple #2
0
	def __init__(self, parent, acc):
		self._acc = acc
		
		builder = Gtk.Builder()
		builder.set_translation_domain(PACKAGE_NAME)
		builder.add_from_file(get_data_file("account_dialog.ui"))
		builder.connect_signals({ \
			"account_type_changed" : self._on_cmb_account_type_changed, \
			"entry_changed" : self._on_entry_changed, \
			"expander_folders_activate" : self._on_expander_folders_activate, \
			"btn_cancel_clicked" : self._on_btn_cancel_clicked, \
			"btn_save_clicked" : self._on_btn_save_clicked \
		})

		self._window = builder.get_object("account_dialog")
		self._window.set_transient_for(parent)

		self._cmb_account_type = builder.get_object("cmb_account_type")
		self._label_account_name = builder.get_object("label_account_name")
		self._entry_account_name = builder.get_object("entry_account_name")
		self._entry_account_user = builder.get_object("entry_account_user")
		self._entry_account_password = builder.get_object("entry_account_password")
		self._label_account_server = builder.get_object("label_account_server")
		self._entry_account_server = builder.get_object("entry_account_server")		
		self._label_account_port = builder.get_object("label_account_port")
		self._entry_account_port = builder.get_object("entry_account_port")
		self._expander_folders = builder.get_object("expander_folders")
		self._overlay = builder.get_object("overlay")
		self._treeview_folders = builder.get_object("treeview_folders")
		self._liststore_folders = builder.get_object("liststore_folders")
		self._chk_account_push = builder.get_object("chk_account_push")
		self._chk_account_ssl = builder.get_object("chk_account_ssl")
		self._button_save = builder.get_object("button_save")
		
		self._error_label = None
		self._folders_received = False
		self._selected_folder_count = 0
		
		self._entry_account_port.set_placeholder_text(_("optional"))

		renderer_folders_enabled = Gtk.CellRendererToggle()
		renderer_folders_enabled.connect("toggled", self._on_folder_toggled)
		column_folders_enabled = Gtk.TreeViewColumn(_('Enabled'), renderer_folders_enabled)
		column_folders_enabled.add_attribute(renderer_folders_enabled, "active", 0)
		column_folders_enabled.set_alignment(0.5)
		self._treeview_folders.append_column(column_folders_enabled)

		renderer_folders_name = Gtk.CellRendererText()
		column_folders_name = Gtk.TreeViewColumn(_('Name'), renderer_folders_name, text = 1)
		self._treeview_folders.append_column(column_folders_name)
Exemple #3
0
	def __init__(self, parent, plugin):
		self._plugin = plugin
		
		builder = Gtk.Builder()
		builder.set_translation_domain(PACKAGE_NAME)
		builder.add_from_file(get_data_file("plugin_dialog.ui"))
		builder.connect_signals({ \
			"btn_cancel_clicked" : self._on_btn_cancel_clicked, \
			"btn_save_clicked" : self._on_btn_save_clicked \
		})

		self._window = builder.get_object("plugin_dialog")
		self._window.set_transient_for(parent)

		self._vbox = builder.get_object("vbox")
Exemple #4
0
    def __init__(self, app):
        builder = Gtk.Builder()
        builder.set_translation_domain(PACKAGE_NAME)
        builder.add_from_file(get_data_file("config_window.ui"))
        builder.connect_signals({ \
         "config_window_deleted" : self._on_config_window_deleted, \
         "btn_info_clicked" : self._on_btn_info_clicked, \
         "btn_add_account_clicked" : self._on_btn_add_account_clicked, \
         "btn_edit_account_clicked" : self._on_btn_edit_account_clicked, \
         "btn_remove_account_clicked" : self._on_btn_remove_account_clicked, \
         "treeview_accounts_row_activated" : self._on_treeview_accounts_row_activated, \
         "liststore_accounts_row_deleted" : self._on_liststore_accounts_row_deleted, \
         "liststore_accounts_row_inserted" : self._on_liststore_accounts_row_inserted, \
         "btn_edit_plugin_clicked" : self._on_btn_edit_plugin_clicked, \
         "treeview_plugins_row_activated" : self._on_treeview_plugins_row_activated, \
         "treeview_plugins_cursor_changed" : self._on_treeview_plugins_cursor_changed, \
        })

        self._window = builder.get_object("config_window")
        self._window.set_icon_name("mailnag")
        self._window.set_application(app)
        self._cfg = read_cfg()

        self._daemon_enabled = False

        self._switch_daemon_enabled = builder.get_object(
            "switch_daemon_enabled")

        #
        # accounts page
        #
        self._accountman = AccountManager(
            CredentialStore.from_string(
                self._cfg.get('core', 'credentialstore')))

        self._treeview_accounts = builder.get_object("treeview_accounts")
        self._liststore_accounts = builder.get_object("liststore_accounts")

        self._button_edit_account = builder.get_object("btn_edit_account")
        self._button_remove_account = builder.get_object("btn_remove_account")

        self._button_edit_account.set_sensitive(False)
        self._button_remove_account.set_sensitive(False)

        renderer_acc_enabled = Gtk.CellRendererToggle()
        renderer_acc_enabled.connect("toggled", self._on_account_toggled)
        column_acc_enabled = Gtk.TreeViewColumn(_('Enabled'),
                                                renderer_acc_enabled)
        column_acc_enabled.add_attribute(renderer_acc_enabled, "active", 1)
        column_acc_enabled.set_alignment(0.5)
        self._treeview_accounts.append_column(column_acc_enabled)

        renderer_acc_name = Gtk.CellRendererText()
        column_acc_name = Gtk.TreeViewColumn(_('Name'),
                                             renderer_acc_name,
                                             text=2)
        self._treeview_accounts.append_column(column_acc_name)

        #
        # plugins page
        #
        self._treeview_plugins = builder.get_object("treeview_plugins")
        self._liststore_plugins = builder.get_object("liststore_plugins")

        self._button_edit_plugin = builder.get_object("btn_edit_plugin")
        self._button_edit_plugin.set_sensitive(False)

        def renderer_plugin_enabled_func(column, cell_renderer, model, iter,
                                         data):
            plugin = model.get_value(iter, 0)
            name, desc, ver, author, mandatory = plugin.get_manifest()
            cell_renderer.set_sensitive(not mandatory)

        renderer_plugin_enabled = Gtk.CellRendererToggle()
        renderer_plugin_enabled.connect("toggled", self._on_plugin_toggled)
        column_plugin_enabled = Gtk.TreeViewColumn(_('Enabled'),
                                                   renderer_plugin_enabled)
        column_plugin_enabled.add_attribute(renderer_plugin_enabled, "active",
                                            1)
        column_plugin_enabled.set_alignment(0.5)
        column_plugin_enabled.set_cell_data_func(renderer_plugin_enabled,
                                                 renderer_plugin_enabled_func)
        self._treeview_plugins.append_column(column_plugin_enabled)

        renderer_plugin_name = Gtk.CellRendererText()
        column_plugin_name = Gtk.TreeViewColumn(_('Name'),
                                                renderer_plugin_name,
                                                markup=2)
        self._treeview_plugins.append_column(column_plugin_name)

        # load config
        self._load_config()
        self._window.show_all()
Exemple #5
0
		def mails_added_hook(new_mails, all_mails):
			config = self.get_config()
			gstplay(get_data_file(config['soundfile']))
Exemple #6
0
	def __init__(self):
		builder = Gtk.Builder()
		builder.set_translation_domain(PACKAGE_NAME)
		builder.add_from_file(get_data_file("config_window.ui"))
		builder.connect_signals({ \
			"config_window_deleted" : self._on_config_window_deleted, \
			"btn_page_toggled" : self._on_btn_page_toggled, \
			"btn_add_account_clicked" : self._on_btn_add_account_clicked, \
			"btn_edit_account_clicked" : self._on_btn_edit_account_clicked, \
			"btn_remove_account_clicked" : self._on_btn_remove_account_clicked, \
			"treeview_accounts_row_activated" : self._on_treeview_accounts_row_activated, \
			"liststore_accounts_row_deleted" : self._on_liststore_accounts_row_deleted, \
			"liststore_accounts_row_inserted" : self._on_liststore_accounts_row_inserted, \
			"btn_edit_plugin_clicked" : self._on_btn_edit_plugin_clicked, \
			"treeview_plugins_row_activated" : self._on_treeview_plugins_row_activated, \
			"treeview_plugins_cursor_changed" : self._on_treeview_plugins_cursor_changed, \
		})
		
		# Add icons in alternative data paths (e.g. ./data/icons) 
		# to the icon search path in case Mailnag is launched 
		# from a local directory (without installing).
		icon_theme = Gtk.IconTheme.get_default()
		for path in get_data_paths():
			icon_theme.append_search_path(os.path.join(path, "icons"))

		self._window = builder.get_object("config_window")
		self._window.set_icon_name("mailnag")
		self._load_stylesheet('config_window.css')
		self._cfg = read_cfg()
		
		self.daemon_enabled = False
		
		#
		# toggle buttons / notebook
		#
		self._notebook = builder.get_object("notebook")
		self._box_navigation = builder.get_object("box_navigation")
		self._box_navigation.get_children()[0].set_active(True)
		
		#
		# general page
		#		
		# The dimension of the png is expected to be 180x180 px
		pb = GdkPixbuf.Pixbuf.new_from_file(get_data_file("mailnag.png"))
		pb = pb.new_subpixbuf(0, 10, 180, 146) # crop whitespace at the bottom
		self._image_logo = builder.get_object("image_logo")
		self._image_logo.set_from_pixbuf(pb)
		self._label_app_desc = builder.get_object("label_app_desc")
		self._label_app_desc.set_markup("<span font=\"24\"><b>Mailnag</b></span>\nVersion %s" % str(APP_VERSION))
		self._switch_daemon_enabled = builder.get_object("switch_daemon_enabled")
		
		#
		# accounts page
		#
		self._accountman = AccountManager(CredentialStore.from_string(self._cfg.get('core', 'credentialstore')))

		self._treeview_accounts = builder.get_object("treeview_accounts")
		self._liststore_accounts = builder.get_object("liststore_accounts")
		
		self._button_edit_account = builder.get_object("btn_edit_account")
		self._button_remove_account = builder.get_object("btn_remove_account")
		
		self._button_edit_account.set_sensitive(False)
		self._button_remove_account.set_sensitive(False)
		
		renderer_acc_enabled = Gtk.CellRendererToggle()
		renderer_acc_enabled.connect("toggled", self._on_account_toggled)
		column_acc_enabled = Gtk.TreeViewColumn(_('Enabled'), renderer_acc_enabled)
		column_acc_enabled.add_attribute(renderer_acc_enabled, "active", 1)
		column_acc_enabled.set_alignment(0.5)
		self._treeview_accounts.append_column(column_acc_enabled)

		renderer_acc_name = Gtk.CellRendererText()
		column_acc_name = Gtk.TreeViewColumn(_('Name'), renderer_acc_name, text = 2)
		self._treeview_accounts.append_column(column_acc_name)
		
		#
		# plugins page
		#
		self._treeview_plugins = builder.get_object("treeview_plugins")
		self._liststore_plugins = builder.get_object("liststore_plugins")
		
		self._button_edit_plugin = builder.get_object("btn_edit_plugin")
		self._button_edit_plugin.set_sensitive(False)
		
		def renderer_plugin_enabled_func(column, cell_renderer, model, iter, data):
			plugin = model.get_value(iter, 0)
			name, desc, ver, author, mandatory = plugin.get_manifest()
			cell_renderer.set_sensitive(not mandatory)
		
		renderer_plugin_enabled = Gtk.CellRendererToggle()
		renderer_plugin_enabled.connect("toggled", self._on_plugin_toggled)
		column_plugin_enabled = Gtk.TreeViewColumn(_('Enabled'), renderer_plugin_enabled)
		column_plugin_enabled.add_attribute(renderer_plugin_enabled, "active", 1)
		column_plugin_enabled.set_alignment(0.5)
		column_plugin_enabled.set_cell_data_func(renderer_plugin_enabled, renderer_plugin_enabled_func)
		self._treeview_plugins.append_column(column_plugin_enabled)

		renderer_plugin_name = Gtk.CellRendererText()
		column_plugin_name = Gtk.TreeViewColumn(_('Name'), renderer_plugin_name, markup = 2)
		self._treeview_plugins.append_column(column_plugin_name)
		
		# load config
		self._load_config()
		self._window.show()
Exemple #7
0
	def _load_stylesheet(self, stylesheet):
		provider = Gtk.CssProvider()
		provider.load_from_path(get_data_file(stylesheet))
		Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),
												 provider,
												 Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
Exemple #8
0
	def __init__(self, parent, acc):
		self._acc = acc
		
		builder = Gtk.Builder()
		builder.set_translation_domain(PACKAGE_NAME)
		builder.add_from_file(get_data_file("account_widget.ui"))
		builder.connect_signals({ \
			"account_type_changed" : self._on_cmb_account_type_changed, \
			"entry_changed" : self._on_entry_changed, \
			"expander_folders_activate" : self._on_expander_folders_activate \
		})

		self._window = Gtk.Dialog(title = _('Mail Account'), parent = parent, use_header_bar = True, \
			buttons = (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OK, Gtk.ResponseType.OK))
		
		self._window.set_default_response(Gtk.ResponseType.OK)
		self._window.set_default_size(400, 0)
		
		self._box = self._window.get_content_area()
		self._box.set_border_width(12)
		self._box.set_spacing(12)
		
		self._box.pack_start(builder.get_object("account_widget"), True, True, 0)

		self._cmb_account_type = builder.get_object("cmb_account_type")
		self._label_account_name = builder.get_object("label_account_name")
		self._entry_account_name = builder.get_object("entry_account_name")
		self._label_account_user = builder.get_object("label_account_user")
		self._entry_account_user = builder.get_object("entry_account_user")
		self._label_account_password = builder.get_object("label_account_password")
		self._entry_account_password = builder.get_object("entry_account_password")
		self._label_account_server = builder.get_object("label_account_server")
		self._entry_account_server = builder.get_object("entry_account_server")		
		self._label_account_port = builder.get_object("label_account_port")
		self._entry_account_port = builder.get_object("entry_account_port")
		self._label_account_file_path = builder.get_object("label_account_file_path")
		self._chooser_account_file_path = builder.get_object("chooser_file_path")
		self._label_account_directory_path = builder.get_object("label_account_directory_path")
		self._chooser_account_directory_path = builder.get_object("chooser_directory_path")
		self._expander_folders = builder.get_object("expander_folders")
		self._overlay = builder.get_object("overlay")
		self._treeview_folders = builder.get_object("treeview_folders")
		self._liststore_folders = builder.get_object("liststore_folders")
		self._chk_account_push = builder.get_object("chk_account_push")
		self._chk_account_ssl = builder.get_object("chk_account_ssl")
		
		self._button_ok = self._window.get_widget_for_response(Gtk.ResponseType.OK)
		self._button_ok.set_sensitive(False)
		
		self._error_label = None
		self._folders_received = False
		self._selected_folder_count = 0
		
		self._entry_account_port.set_placeholder_text(_("optional"))

		renderer_folders_enabled = Gtk.CellRendererToggle()
		renderer_folders_enabled.connect("toggled", self._on_folder_toggled)
		column_folders_enabled = Gtk.TreeViewColumn(_('Enabled'), renderer_folders_enabled)
		column_folders_enabled.add_attribute(renderer_folders_enabled, "active", 0)
		column_folders_enabled.set_alignment(0.5)
		self._treeview_folders.append_column(column_folders_enabled)

		renderer_folders_name = Gtk.CellRendererText()
		column_folders_name = Gtk.TreeViewColumn(_('Name'), renderer_folders_name, text = 1)
		column_folders_name.set_cell_data_func(renderer_folders_name, folder_cell_data)
		self._treeview_folders.append_column(column_folders_name)
Exemple #9
0
    def __init__(self, parent, acc):
        self._acc = acc

        builder = Gtk.Builder()
        builder.set_translation_domain(PACKAGE_NAME)
        builder.add_from_file(get_data_file("account_widget.ui"))
        builder.connect_signals({ \
         "account_type_changed" : self._on_cmb_account_type_changed, \
         "entry_changed" : self._on_entry_changed, \
         "expander_folders_activate" : self._on_expander_folders_activate, \
         "password_info_icon_released" : self._on_password_info_icon_released \
        })

        self._window = Gtk.Dialog(title = _('Mail Account'), parent = parent, use_header_bar = True, \
         buttons = (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OK, Gtk.ResponseType.OK))

        self._window.set_default_response(Gtk.ResponseType.OK)
        self._window.set_default_size(400, 0)

        self._box = self._window.get_content_area()
        self._box.set_border_width(12)
        self._box.set_spacing(12)

        self._box.pack_start(builder.get_object("account_widget"), True, True,
                             0)

        self._cmb_account_type = builder.get_object("cmb_account_type")
        self._label_account_name = builder.get_object("label_account_name")
        self._entry_account_name = builder.get_object("entry_account_name")
        self._label_account_user = builder.get_object("label_account_user")
        self._entry_account_user = builder.get_object("entry_account_user")
        self._label_account_password = builder.get_object(
            "label_account_password")
        self._entry_account_password = builder.get_object(
            "entry_account_password")
        self._label_account_server = builder.get_object("label_account_server")
        self._entry_account_server = builder.get_object("entry_account_server")
        self._label_account_port = builder.get_object("label_account_port")
        self._entry_account_port = builder.get_object("entry_account_port")
        self._label_account_file_path = builder.get_object(
            "label_account_file_path")
        self._chooser_account_file_path = builder.get_object(
            "chooser_file_path")
        self._label_account_directory_path = builder.get_object(
            "label_account_directory_path")
        self._chooser_account_directory_path = builder.get_object(
            "chooser_directory_path")
        self._expander_folders = builder.get_object("expander_folders")
        self._overlay = builder.get_object("overlay")
        self._treeview_folders = builder.get_object("treeview_folders")
        self._liststore_folders = builder.get_object("liststore_folders")
        self._chk_account_push = builder.get_object("chk_account_push")
        self._chk_account_ssl = builder.get_object("chk_account_ssl")

        self._button_ok = self._window.get_widget_for_response(
            Gtk.ResponseType.OK)
        self._button_ok.set_sensitive(False)

        self._error_label = None
        self._folders_received = False
        self._selected_folder_count = 0
        self._pwd_info_icon = self._entry_account_password.get_icon_name(
            Gtk.EntryIconPosition.SECONDARY)

        self._entry_account_port.set_placeholder_text(_("optional"))

        renderer_folders_enabled = Gtk.CellRendererToggle()
        renderer_folders_enabled.connect("toggled", self._on_folder_toggled)
        column_folders_enabled = Gtk.TreeViewColumn(_('Enabled'),
                                                    renderer_folders_enabled)
        column_folders_enabled.add_attribute(renderer_folders_enabled,
                                             "active", 0)
        column_folders_enabled.set_alignment(0.5)
        self._treeview_folders.append_column(column_folders_enabled)

        renderer_folders_name = Gtk.CellRendererText()
        column_folders_name = Gtk.TreeViewColumn(_('Name'),
                                                 renderer_folders_name,
                                                 text=1)
        column_folders_name.set_cell_data_func(renderer_folders_name,
                                               folder_cell_data)
        self._treeview_folders.append_column(column_folders_name)
Exemple #10
0
    def __init__(self):
        builder = Gtk.Builder()
        builder.set_translation_domain(PACKAGE_NAME)
        builder.add_from_file(get_data_file("config_window.ui"))
        builder.connect_signals({ \
         "config_window_deleted" : self._on_config_window_deleted, \
         "btn_page_toggled" : self._on_btn_page_toggled, \
         "btn_add_account_clicked" : self._on_btn_add_account_clicked, \
         "btn_edit_account_clicked" : self._on_btn_edit_account_clicked, \
         "btn_remove_account_clicked" : self._on_btn_remove_account_clicked, \
         "treeview_accounts_row_activated" : self._on_treeview_accounts_row_activated, \
         "liststore_accounts_row_deleted" : self._on_liststore_accounts_row_deleted, \
         "liststore_accounts_row_inserted" : self._on_liststore_accounts_row_inserted, \
         "btn_edit_plugin_clicked" : self._on_btn_edit_plugin_clicked, \
         "treeview_plugins_row_activated" : self._on_treeview_plugins_row_activated, \
         "treeview_plugins_cursor_changed" : self._on_treeview_plugins_cursor_changed, \
        })

        # Add icons in alternative data paths (e.g. ./data/icons)
        # to the icon search path in case Mailnag is launched
        # from a local directory (without installing).
        icon_theme = Gtk.IconTheme.get_default()
        for path in get_data_paths():
            icon_theme.append_search_path(os.path.join(path, "icons"))

        self._window = builder.get_object("config_window")
        self._window.set_icon_name("mailnag")
        self._load_stylesheet('config_window.css')
        self._cfg = read_cfg()

        self.daemon_enabled = False

        #
        # toggle buttons / notebook
        #
        self._notebook = builder.get_object("notebook")
        self._box_navigation = builder.get_object("box_navigation")
        self._box_navigation.get_children()[0].set_active(True)

        #
        # general page
        #
        # The dimension of the png is expected to be 180x180 px
        pb = GdkPixbuf.Pixbuf.new_from_file(get_data_file("mailnag.png"))
        pb = pb.new_subpixbuf(0, 10, 180, 146)  # crop whitespace at the bottom
        self._image_logo = builder.get_object("image_logo")
        self._image_logo.set_from_pixbuf(pb)
        self._label_app_desc = builder.get_object("label_app_desc")
        self._label_app_desc.set_markup(
            "<span font=\"24\"><b>Mailnag</b></span>\nVersion %s" %
            str(APP_VERSION))
        self._switch_daemon_enabled = builder.get_object(
            "switch_daemon_enabled")

        #
        # accounts page
        #
        self._accountman = AccountManager(
            CredentialStore.from_string(
                self._cfg.get('core', 'credentialstore')))

        self._treeview_accounts = builder.get_object("treeview_accounts")
        self._liststore_accounts = builder.get_object("liststore_accounts")

        self._button_edit_account = builder.get_object("btn_edit_account")
        self._button_remove_account = builder.get_object("btn_remove_account")

        self._button_edit_account.set_sensitive(False)
        self._button_remove_account.set_sensitive(False)

        renderer_acc_enabled = Gtk.CellRendererToggle()
        renderer_acc_enabled.connect("toggled", self._on_account_toggled)
        column_acc_enabled = Gtk.TreeViewColumn(_('Enabled'),
                                                renderer_acc_enabled)
        column_acc_enabled.add_attribute(renderer_acc_enabled, "active", 1)
        column_acc_enabled.set_alignment(0.5)
        self._treeview_accounts.append_column(column_acc_enabled)

        renderer_acc_name = Gtk.CellRendererText()
        column_acc_name = Gtk.TreeViewColumn(_('Name'),
                                             renderer_acc_name,
                                             text=2)
        self._treeview_accounts.append_column(column_acc_name)

        #
        # plugins page
        #
        self._treeview_plugins = builder.get_object("treeview_plugins")
        self._liststore_plugins = builder.get_object("liststore_plugins")

        self._button_edit_plugin = builder.get_object("btn_edit_plugin")
        self._button_edit_plugin.set_sensitive(False)

        def renderer_plugin_enabled_func(column, cell_renderer, model, iter,
                                         data):
            plugin = model.get_value(iter, 0)
            name, desc, ver, author, mandatory = plugin.get_manifest()
            cell_renderer.set_sensitive(not mandatory)

        renderer_plugin_enabled = Gtk.CellRendererToggle()
        renderer_plugin_enabled.connect("toggled", self._on_plugin_toggled)
        column_plugin_enabled = Gtk.TreeViewColumn(_('Enabled'),
                                                   renderer_plugin_enabled)
        column_plugin_enabled.add_attribute(renderer_plugin_enabled, "active",
                                            1)
        column_plugin_enabled.set_alignment(0.5)
        column_plugin_enabled.set_cell_data_func(renderer_plugin_enabled,
                                                 renderer_plugin_enabled_func)
        self._treeview_plugins.append_column(column_plugin_enabled)

        renderer_plugin_name = Gtk.CellRendererText()
        column_plugin_name = Gtk.TreeViewColumn(_('Name'),
                                                renderer_plugin_name,
                                                markup=2)
        self._treeview_plugins.append_column(column_plugin_name)

        # load config
        self._load_config()
        self._window.show()
Exemple #11
0
 def _load_stylesheet(self, stylesheet):
     provider = Gtk.CssProvider()
     provider.load_from_path(get_data_file(stylesheet))
     Gtk.StyleContext.add_provider_for_screen(
         Gdk.Screen.get_default(), provider,
         Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
Exemple #12
0
		def mails_added_hook(new_mails, all_mails):
			config = self.get_config()
			gstplay(get_data_file(config['soundfile']))
Exemple #13
0
	def __init__(self, app):
		builder = Gtk.Builder()
		builder.set_translation_domain(PACKAGE_NAME)
		builder.add_from_file(get_data_file("config_window.ui"))
		builder.connect_signals({ \
			"config_window_deleted" : self._on_config_window_deleted, \
			"btn_info_clicked" : self._on_btn_info_clicked, \
			"btn_add_account_clicked" : self._on_btn_add_account_clicked, \
			"btn_edit_account_clicked" : self._on_btn_edit_account_clicked, \
			"btn_remove_account_clicked" : self._on_btn_remove_account_clicked, \
			"treeview_accounts_row_activated" : self._on_treeview_accounts_row_activated, \
			"liststore_accounts_row_deleted" : self._on_liststore_accounts_row_deleted, \
			"liststore_accounts_row_inserted" : self._on_liststore_accounts_row_inserted, \
			"btn_edit_plugin_clicked" : self._on_btn_edit_plugin_clicked, \
			"treeview_plugins_row_activated" : self._on_treeview_plugins_row_activated, \
			"treeview_plugins_cursor_changed" : self._on_treeview_plugins_cursor_changed, \
		})
		
		self._window = builder.get_object("config_window")
		self._window.set_icon_name("mailnag")
		self._window.set_application(app)
		self._cfg = read_cfg()
		
		self._daemon_enabled = False
		
		self._switch_daemon_enabled = builder.get_object("switch_daemon_enabled")
		
		#
		# accounts page
		#
		self._accountman = AccountManager(CredentialStore.from_string(self._cfg.get('core', 'credentialstore')))

		self._treeview_accounts = builder.get_object("treeview_accounts")
		self._liststore_accounts = builder.get_object("liststore_accounts")
		
		self._button_edit_account = builder.get_object("btn_edit_account")
		self._button_remove_account = builder.get_object("btn_remove_account")
		
		self._button_edit_account.set_sensitive(False)
		self._button_remove_account.set_sensitive(False)
		
		renderer_acc_enabled = Gtk.CellRendererToggle()
		renderer_acc_enabled.connect("toggled", self._on_account_toggled)
		column_acc_enabled = Gtk.TreeViewColumn(_('Enabled'), renderer_acc_enabled)
		column_acc_enabled.add_attribute(renderer_acc_enabled, "active", 1)
		column_acc_enabled.set_alignment(0.5)
		self._treeview_accounts.append_column(column_acc_enabled)

		renderer_acc_name = Gtk.CellRendererText()
		column_acc_name = Gtk.TreeViewColumn(_('Name'), renderer_acc_name, text = 2)
		self._treeview_accounts.append_column(column_acc_name)
		
		#
		# plugins page
		#
		self._treeview_plugins = builder.get_object("treeview_plugins")
		self._liststore_plugins = builder.get_object("liststore_plugins")
		
		self._button_edit_plugin = builder.get_object("btn_edit_plugin")
		self._button_edit_plugin.set_sensitive(False)
		
		def renderer_plugin_enabled_func(column, cell_renderer, model, iter, data):
			plugin = model.get_value(iter, 0)
			name, desc, ver, author, mandatory = plugin.get_manifest()
			cell_renderer.set_sensitive(not mandatory)
		
		renderer_plugin_enabled = Gtk.CellRendererToggle()
		renderer_plugin_enabled.connect("toggled", self._on_plugin_toggled)
		column_plugin_enabled = Gtk.TreeViewColumn(_('Enabled'), renderer_plugin_enabled)
		column_plugin_enabled.add_attribute(renderer_plugin_enabled, "active", 1)
		column_plugin_enabled.set_alignment(0.5)
		column_plugin_enabled.set_cell_data_func(renderer_plugin_enabled, renderer_plugin_enabled_func)
		self._treeview_plugins.append_column(column_plugin_enabled)

		renderer_plugin_name = Gtk.CellRendererText()
		column_plugin_name = Gtk.TreeViewColumn(_('Name'), renderer_plugin_name, markup = 2)
		self._treeview_plugins.append_column(column_plugin_name)
		
		# load config
		self._load_config()
		self._window.show_all()