示例#1
0
    def prepare_search_page(self):
        if self.unlocked_database.stack.get_child_by_name("search") is None:
            scrolled_page = ScrolledPage(False)
            viewport = Gtk.Viewport()
            viewport.set_name("BGPlatform")
            self.unlocked_database.search_overlay = Gtk.Overlay()
            builder = Gtk.Builder()
            builder.add_from_resource("/org/gnome/PasswordSafe/unlocked_database.ui")
            self.search_list_box = builder.get_object("list_box")

            # Responsive Container
            self.search_list_box.set_name("BrowserListBox")
            self.search_list_box.set_margin_top(18)
            self.search_list_box.set_margin_bottom(18)
            self.search_list_box.set_valign(Gtk.Align.START)

            hdy_search = Handy.Column()
            hdy_search.set_maximum_width(700)
            hdy_search.add(self.search_list_box)
            self.unlocked_database.search_overlay.add(hdy_search)

            self.search_list_box.connect("row-activated", self.unlocked_database.on_list_box_row_activated)
            viewport.add(self.unlocked_database.search_overlay)

            scrolled_page.add(viewport)
            scrolled_page.show_all()
            self.unlocked_database.stack.add_named(scrolled_page, "search")
            if len(self.search_list_box.get_children()) is 0:
                info_search_overlay = self.unlocked_database.builder.get_object("info_search_overlay")
                self.unlocked_database.search_overlay.add_overlay(info_search_overlay)
                self.search_list_box.hide()
            else:
                self.search_list_box.show()

        self.unlocked_database.stack.set_visible_child(self.unlocked_database.stack.get_child_by_name("search"))
    def __set_ui(self):
        handycolumn = Handy.Column()
        handycolumn.set_maximum_width(700)
        handycolumn.set_margin_top(24)
        self.add(handycolumn)

        box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 5)
        handycolumn.add(box)

        label = Gtk.Label(_('Google calendar permissions'))
        label.set_name('special')
        label.set_alignment(0, 0.5)
        box.add(label)

        listbox0 = Gtk.ListBox()
        box.add(listbox0)

        self.switch1 = Gtk.Switch()
        self.switch1.connect('button-press-event',self.on_switch1_changed)
        self.switch1.connect('activate',self.on_switch1_changed)

        self.switch1.set_valign(Gtk.Align.CENTER)

        listbox0.add(SettingRow(_('Permissions for Google Calendar'),
                        _('Enable read and write permissions for Google Calendar.'),
                        self.switch1))

        self.switch1.set_active(os.path.exists(comun.TOKEN_FILE))
示例#3
0
    def __set_ui(self):
        handycolumn = Handy.Column()
        handycolumn.set_maximum_width(700)
        handycolumn.set_margin_top(24)
        self.add(handycolumn)

        box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 5)
        handycolumn.add(box)

        label0 = Gtk.Label(_('Applications'))
        label0.set_name('special')
        label0.set_alignment(0, 0.5)
        box.add(label0)

        listbox0 = Gtk.ListBox()
        box.add(listbox0)

        self.options = {}
        for index in range(0, len(self.packages)):
            self.options[index] = Gtk.Switch()
            self.options[index].set_valign(Gtk.Align.CENTER)
            listbox0.add(
                SettingRow(self.packages[index][0], self.packages[index][1],
                           self.options[index]))
            self.options[index].set_state(is_installed(
                self.packages[index][2]))
示例#4
0
    def __set_ui(self):
        handycolumn = Handy.Column()
        handycolumn.set_maximum_width(700)
        handycolumn.set_margin_top(24)
        self.add(handycolumn)

        box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 5)
        handycolumn.add(box)

        label = Gtk.Label(_('Calendars'))
        label.set_name('special')
        label.set_alignment(0, 0.5)
        box.add(label)

        listbox0 = Gtk.ListBox()
        box.add(listbox0)

        self.option = Gtk.Switch()
        self.option.set_valign(Gtk.Align.CENTER)

        scrolledwindow = Gtk.ScrolledWindow()
        scrolledwindow.set_policy(Gtk.PolicyType.AUTOMATIC,
                                  Gtk.PolicyType.AUTOMATIC)
        scrolledwindow.set_shadow_type(Gtk.ShadowType.ETCHED_OUT)
        scrolledwindow.set_size_request(700, 300)

        self.store = Gtk.ListStore(str, str, str, str, bool, str)
        self.treeview = Gtk.TreeView(self.store)
        self.treeview.connect('button-press-event', self.onclick)
        column1 = Gtk.TreeViewColumn(_('Calendar'),
                                     Gtk.CellRendererText(),
                                     text=0)
        self.treeview.append_column(column1)
        self.column2 = Gtk.TreeViewColumn(_('Background color'),
                                          Gtk.CellRendererText(),
                                          background=1)
        self.treeview.append_column(self.column2)
        self.column3 = Gtk.TreeViewColumn(_('Text color'),
                                          Gtk.CellRendererText(),
                                          background=2)
        self.treeview.append_column(self.column3)
        cellrenderer_toggle = Gtk.CellRendererToggle()
        cellrenderer_toggle.connect("toggled", self.cell_toggled, self.store)
        self.column4 = Gtk.TreeViewColumn(_('Show calendar'),
                                          cellrenderer_toggle,
                                          active=4)
        self.treeview.append_column(self.column4)
        renderer_editabletext = Gtk.CellRendererText()
        renderer_editabletext.set_property("editable", True)
        renderer_editabletext.connect("edited", self.text_edited, self.store)
        self.column5 = Gtk.TreeViewColumn(_('Calendar name'),
                                          renderer_editabletext,
                                          text=5,
                                          background=1,
                                          foreground=2)
        self.treeview.append_column(self.column5)
        scrolledwindow.add(self.treeview)

        listbox0.add(scrolledwindow)
示例#5
0
    def do_startup(self):
        Gtk.Application.do_startup(self)

        GLib.set_application_name(_('Komikku'))
        GLib.set_prgname(self.application_id)

        Handy.Column()  # Init Handy
        Notify.init(_('Komikku'))
    def __set_ui(self):
        handycolumn = Handy.Column()
        handycolumn.set_maximum_width(700)
        handycolumn.set_margin_top(24)
        self.add(handycolumn)

        box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 5)
        handycolumn.add(box)

        label = Gtk.Label(_('Options'))
        label.set_name('special')
        label.set_alignment(0, 0.5)
        box.add(label)

        listbox0 = Gtk.ListBox()
        box.add(listbox0)

        self.options = {}
        for option in ['autostart', 'theme']:
            self.options[option] = Gtk.Switch()
            self.options[option].set_valign(Gtk.Align.CENTER)
        self.options['theme'].connect('button-press-event',
                                      self.on_options_changed)
        self.options['theme'].connect('activate', self.on_options_changed)

        self.options['time'] = Gtk.SpinButton()
        self.options['time'].set_range(2, 24)
        self.options['time'].set_increments(2, 4)

        listbox0.add(
            SettingSpinRow(_('Time between automatic syncronizations (hours)'),
                           _('Time between automatic syncronizations (hours)'),
                           self.options['time']))
        self.options['time'].connect('button-press-event',
                                     self.on_options_changed)
        self.options['time'].connect('activate', self.on_options_changed)

        listbox0.add(
            SettingRow(_('Autostart'),
                       _('Init Calendar Indicator with the operating system.'),
                       self.options['autostart']))
        self.options['autostart'].connect('button-press-event',
                                          self.on_options_autostart_changed)
        self.options['autostart'].connect('activate',
                                          self.on_options_autostart_changed)

        listbox0.add(
            SettingRow(
                _('Theme light'),
                _('Would theme for Calendar Indicator icons do you prefer?'),
                self.options['theme']))
def main():
    # This is to make the Handy module actually loaded to be used in the GtkBuilder
    Handy.Column()
    pmos.init()

    if os.path.isfile('gpmbootstrap.gresource'):
        print("Using resources from cwd")
        resource = Gio.resource_load("gpmbootstrap.gresource")
        Gio.Resource._register(resource)
    else:
        print("Using resources from pkg_resources")
        with pkg_resources.path('gpmbootstrap', 'gpmbootstrap.gresource') as resource_file:
            resource = Gio.resource_load(str(resource_file))
            Gio.Resource._register(resource)

    app = InstallerApplication("org.postmarketos.gpmbootstrap", Gio.ApplicationFlags.FLAGS_NONE)
    app.run()
示例#8
0
    def show_page_of_new_directory(self, edit_group, new_entry):
        # First, remove stack pages which should not exist because they are scheduled for remove
        self.destroy_scheduled_stack_page()

        # Check if we need to remove the search headerbar
        if self.parent_widget.get_headerbar() is not self.headerbar:
            self.search.remove_search_headerbar(None)

        # Creation of group edit page
        if edit_group is True:
            self.destroy_scheduled_stack_page()

            builder = Gtk.Builder()
            builder.add_from_resource("/org/gnome/PasswordSafe/group_page.ui")

            scrolled_window = ScrolledPage(True)

            viewport = Gtk.Viewport()
            scrolled_window.properties_list_box = builder.get_object("properties_list_box")

            # Responsive Container
            hdy_page = Handy.Column()
            hdy_page.set_maximum_width(600)
            hdy_page.set_margin_top(18)
            hdy_page.set_margin_bottom(18)
            hdy_page.add(scrolled_window.properties_list_box)
            viewport.add(hdy_page)

            scrolled_window.add(viewport)
            scrolled_window.show_all()

            stack_page_uuid = self.database_manager.get_group_uuid_from_group_object(self.current_group)
            if self.stack.get_child_by_name(stack_page_uuid) is not None:
                stack_page = self.stack.get_child_by_name(stack_page_uuid)
                stack_page.destroy()

            self.add_stack_page(scrolled_window)
            self.group_page.insert_group_properties_into_listbox(scrolled_window.properties_list_box)
            self.group_page.set_group_edit_page_headerbar()
        # If the stack page with current group's uuid isn't existing - we need to create it (first time opening of group/entry)
        elif self.stack.get_child_by_name(self.database_manager.get_group_uuid_from_group_object(self.current_group)) is None and self.stack.get_child_by_name(self.database_manager.get_entry_uuid_from_entry_object(self.current_group)) is None and edit_group is False:
            self.database_manager.set_element_atime(self.current_group)
            # Create not existing stack page for group
            if self.database_manager.check_is_group(self.database_manager.get_group_uuid_from_group_object(self.current_group)) is True:
                builder = Gtk.Builder()
                builder.add_from_resource("/org/gnome/PasswordSafe/unlocked_database.ui")
                list_box = builder.get_object("list_box")
                list_box.connect("row-activated", self.on_list_box_row_activated)

                scrolled_window = ScrolledPage(False)
                viewport = Gtk.Viewport()
                overlay = Gtk.Overlay()

                # Responsive Container
                list_box.set_name("BrowserListBox")
                list_box.set_valign(Gtk.Align.START)

                hdy_browser = Handy.Column()
                hdy_browser.set_maximum_width(700)
                hdy_browser.set_margin_top(18)
                hdy_browser.set_margin_bottom(18)
                hdy_browser.add(list_box)
                overlay.add(hdy_browser)

                viewport.add(overlay)
                scrolled_window.add(viewport)
                scrolled_window.show_all()

                self.add_stack_page(scrolled_window)

                list_box.hide()

                self.listbox_insert_thread = threading.Thread(target=self.insert_groups_into_listbox, args=(list_box, overlay))
                self.listbox_insert_thread.daemon = True
                self.listbox_insert_thread.start()
            # Create not existing stack page for entry
            else:
                builder = Gtk.Builder()
                builder.add_from_resource("/org/gnome/PasswordSafe/entry_page.ui")

                scrolled_window = ScrolledPage(True)

                viewport = Gtk.Viewport()
                scrolled_window.properties_list_box = builder.get_object("properties_list_box")

                # Responsive Container
                hdy_page = Handy.Column()
                hdy_page.set_maximum_width(600)
                hdy_page.set_margin_top(18)
                hdy_page.set_margin_bottom(18)
                hdy_page.add(scrolled_window.properties_list_box)
                viewport.add(hdy_page)

                scrolled_window.add(viewport)
                scrolled_window.show_all()

                self.add_stack_page(scrolled_window)
                if new_entry is True:
                    self.entry_page.insert_entry_properties_into_listbox(scrolled_window.properties_list_box, True)
                else:
                    self.entry_page.insert_entry_properties_into_listbox(scrolled_window.properties_list_box, False)
        # Stack page with current group's uuid already exists, we only need to switch stack page
        else:
            self.database_manager.set_element_atime(self.current_group)
            # For group
            if self.database_manager.check_is_group(self.database_manager.get_group_uuid_from_group_object(self.current_group)) is True:
                self.stack.set_visible_child_name(self.database_manager.get_group_uuid_from_group_object(self.current_group))
                self.set_browser_headerbar()
            # For entry
            else:
                self.stack.set_visible_child_name(self.database_manager.get_entry_uuid_from_entry_object(self.current_group))
                self.entry_page.set_entry_page_headerbar()
示例#9
0
    def __set_ui(self):
        handycolumn = Handy.Column()
        handycolumn.set_maximum_width(700)
        handycolumn.set_margin_top(24)
        self.add(handycolumn)

        box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 5)
        handycolumn.add(box)

        label0 = Gtk.Label(_('RAM'))
        label0.set_name('special')
        label0.set_halign(Gtk.Align.START)
        box.add(label0)

        listbox0 = Gtk.ListBox()
        box.add(listbox0)

        self.ram_total = Gtk.Label()
        self.ram_total.set_valign(Gtk.Align.CENTER)
        self.ram_total.set_width_chars(20)
        listbox0.add(
            SettingRow(_('Total'), _('The total amount of RAM installed'),
                       self.ram_total))

        ram_free_box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 5)
        self.ram_free = Gtk.Label()
        self.ram_free.set_width_chars(20)
        self.ram_free.set_valign(Gtk.Align.CENTER)
        ram_free_box.add(self.ram_free)
        self.ram_free_progress = Gtk.LevelBar()
        self.ram_free_progress.set_min_value(0)
        self.ram_free_progress.set_max_value(1)
        ram_free_box.add(self.ram_free_progress)
        listbox0.add(
            SettingRow(_('Free'), _('The amount of unused or free memory'),
                       ram_free_box))

        ram_used_box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 5)
        self.ram_used = Gtk.Label()
        self.ram_used.set_width_chars(20)
        self.ram_used.set_valign(Gtk.Align.CENTER)
        ram_used_box.add(self.ram_used)
        self.ram_used_progress = Gtk.LevelBar()
        self.ram_used_progress.set_min_value(0)
        self.ram_used_progress.set_max_value(1)
        ram_used_box.add(self.ram_used_progress)
        listbox0.add(
            SettingRow(_('Used'), _('The total amount of RAM used'),
                       ram_used_box))

        ram_shared_box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 5)
        self.ram_shared = Gtk.Label()
        self.ram_shared.set_width_chars(20)
        self.ram_shared.set_valign(Gtk.Align.CENTER)
        ram_shared_box.add(self.ram_shared)
        self.ram_shared_progress = Gtk.LevelBar()
        self.ram_shared_progress.set_min_value(0)
        self.ram_shared_progress.set_max_value(1)
        ram_shared_box.add(self.ram_shared_progress)
        listbox0.add(
            SettingRow(_('Shared'), _('Amount of memory mostly used by tmpfs'),
                       ram_shared_box))

        ram_buffcache_box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 5)
        self.ram_buffcache = Gtk.Label()
        self.ram_buffcache.set_width_chars(20)
        self.ram_buffcache.set_valign(Gtk.Align.CENTER)
        ram_buffcache_box.add(self.ram_buffcache)
        self.ram_buffcache_progress = Gtk.LevelBar()
        self.ram_buffcache_progress.set_min_value(0)
        self.ram_buffcache_progress.set_max_value(1)
        ram_buffcache_box.add(self.ram_buffcache_progress)
        listbox0.add(
            SettingRow(_('Buff/cache'), _('Sum of buffers and cache'),
                       ram_buffcache_box))

        ram_available_box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 5)
        self.ram_available = Gtk.Label()
        self.ram_available.set_width_chars(20)
        self.ram_available.set_valign(Gtk.Align.CENTER)
        ram_available_box.add(self.ram_available)
        self.ram_available_progress = Gtk.LevelBar()
        self.ram_available_progress.set_min_value(0)
        self.ram_available_progress.set_max_value(1)
        ram_available_box.add(self.ram_available_progress)
        listbox0.add(
            SettingRow(_('Available'), _('Estimation of memory available'),
                       ram_available_box))

        label1 = Gtk.Label(_('Swap'))
        label1.set_name('special')
        label1.set_halign(Gtk.Align.START)
        box.add(label1)

        listbox1 = Gtk.ListBox()
        box.add(listbox1)

        self.swap_total = Gtk.Label()
        self.swap_total.set_valign(Gtk.Align.CENTER)
        self.swap_total.set_width_chars(20)
        listbox1.add(
            SettingRow(_('Total'), _('The total amount of swap installed'),
                       self.swap_total))

        swap_free_box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 5)
        self.swap_free = Gtk.Label()
        self.swap_free.set_width_chars(20)
        self.swap_free.set_valign(Gtk.Align.CENTER)
        swap_free_box.add(self.swap_free)
        self.swap_free_progress = Gtk.LevelBar()
        self.swap_free_progress.set_min_value(0)
        self.swap_free_progress.set_max_value(1)
        swap_free_box.add(self.swap_free_progress)
        listbox1.add(
            SettingRow(_('Free'), _('The amount of unused or free swap'),
                       swap_free_box))

        swap_cached_box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 5)
        self.swap_cached = Gtk.Label()
        self.swap_cached.set_width_chars(20)
        self.swap_cached.set_valign(Gtk.Align.CENTER)
        swap_cached_box.add(self.swap_cached)
        self.swap_cached_progress = Gtk.LevelBar()
        self.swap_cached_progress.set_min_value(0)
        self.swap_cached_progress.set_max_value(1)
        swap_cached_box.add(self.swap_cached_progress)
        listbox1.add(
            SettingRow(_('Cached'), _('The amount of swap cached'),
                       swap_cached_box))

        swap_used_box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 5)
        self.swap_used = Gtk.Label()
        self.swap_used.set_width_chars(20)
        self.swap_used.set_valign(Gtk.Align.CENTER)
        swap_used_box.add(self.swap_used)
        self.swap_used_progress = Gtk.LevelBar()
        self.swap_used_progress.set_min_value(0)
        self.swap_used_progress.set_max_value(1)
        swap_used_box.add(self.swap_used_progress)
        listbox1.add(
            SettingRow(_('used'), _('The amount of swap used'), swap_used_box))

        self.raspberryClient = RaspberryClient.fromConfiguration()
        self.load_information()
示例#10
0
    def __set_ui(self):
        handycolumn = Handy.Column()
        handycolumn.set_maximum_width(700)
        handycolumn.set_margin_top(24)
        self.add(handycolumn)

        box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 5)
        handycolumn.add(box)

        label0 = Gtk.Label(_('Configure connection'))
        label0.set_name('special')
        label0.set_halign(Gtk.Align.START)
        box.add(label0)

        listbox0 = Gtk.ListBox()
        box.add(listbox0)

        self.hostname = Gtk.Entry()
        self.hostname.set_valign(Gtk.Align.CENTER)
        listbox0.add(
            SettingRow(_('Hostname'), _('Set the hostname or IP'),
                       self.hostname))

        self.port = Gtk.Entry()
        self.port.set_valign(Gtk.Align.CENTER)
        listbox0.add(SettingRow(_('Port'), _('Set the port'), self.port))

        self.username = Gtk.Entry()
        self.username.set_valign(Gtk.Align.CENTER)
        listbox0.add(
            SettingRow(_('User name'), _('Set the user name.'), self.username))

        label1 = Gtk.Label(_('Credentials'))
        label1.set_name('special')
        label1.set_halign(Gtk.Align.START)
        box.add(label1)

        listbox1 = Gtk.ListBox()
        box.add(listbox1)

        self.connection_option = Gtk.Switch()
        self.connection_option.set_state(True)
        self.connection_option.connect('state-set',
                                       self.on_connection_option_activate)
        self.connection_option.set_valign(Gtk.Align.CENTER)
        listbox1.add(
            SettingRow(_('Select credentials by password or key file'),
                       _('If switch is on credentials by password'),
                       self.connection_option))

        self.listbox2 = Gtk.ListBox()
        box.add(self.listbox2)

        self.password = Gtk.Entry()
        self.password.set_valign(Gtk.Align.CENTER)
        self.listbox2.add(
            SettingRow(_('Password'), _('Set the user password'),
                       self.password))

        self.listbox3 = Gtk.ListBox()
        self.listbox3.set_sensitive(False)
        box.add(self.listbox3)

        self.keyfile = Gtk.FileChooserButton.new(_('Select keyfile'),
                                                 Gtk.FileChooserAction.OPEN)
        self.keyfile.set_current_folder(os.path.expanduser('~/.ssh'))
        file_filter = Gtk.FileFilter.new()
        file_filter.set_name(_('*.pub files'))
        file_filter.add_pattern('*.pub')
        self.keyfile.add_filter(file_filter)
        self.keyfile.set_valign(Gtk.Align.CENTER)
        self.listbox3.add(
            SettingRow(_('keyfile'), _('Set the keyfile'), self.keyfile))

        label2 = Gtk.Label(_('Test connection'))
        label2.set_name('special')
        label2.set_halign(Gtk.Align.START)
        box.add(label2)

        self.listbox4 = Gtk.ListBox()
        box.add(self.listbox4)

        self.test_connection = Gtk.Button.new_with_label(_('Unknown'))
        self.test_connection.set_valign(Gtk.Align.CENTER)
        self.test_connection.connect('clicked',
                                     self.on_test_connection_clicked)
        self.listbox4.add(
            SettingRow(_('Test connection'),
                       _('Results can be: Unknown, OK or KO'),
                       self.test_connection))

        self.load_configuration()
示例#11
0
import subprocess
import os
from pathlib import Path

import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Handy', '0.0')
from gi.repository import Gtk, Handy
import xdg.BaseDirectory

import thumbdrives.vdisk as vdisk

Handy.Column()


@Gtk.Template(resource_path='/nl/brixit/Thumbdrives/window.ui')
class ThumbdrivesWindow(Gtk.ApplicationWindow):
    __gtype_name__ = 'ThumbdrivesWindow'

    headerbar = Gtk.Template.Child()
    main_stack = Gtk.Template.Child()
    header_stack = Gtk.Template.Child()

    unmount = Gtk.Template.Child()

    thumbdrive_list = Gtk.Template.Child()
    iso_list = Gtk.Template.Child()

    frame_thumbdrive = Gtk.Template.Child()
    no_thumbdrive = Gtk.Template.Child()
    frame_iso = Gtk.Template.Child()
示例#12
0
    def __set_ui(self):
        handycolumn = Handy.Column()
        handycolumn.set_maximum_width(700)
        handycolumn.set_margin_top(24)
        self.add(handycolumn)

        box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 5)
        handycolumn.add(box)

        label0 = Gtk.Label(_('Peripherals'))
        label0.set_name('special')
        label0.set_alignment(0, 0.5)
        box.add(label0)

        listbox0 = Gtk.ListBox()
        box.add(listbox0)

        self.options = {}
        for index in range(0, 3):
            self.options[index] = Gtk.Switch()
            self.options[index].set_valign(Gtk.Align.CENTER)

        listbox0.add(SettingRow(_('Disable camera'),
                                _('Avoid applications to use the camera.'),
                                self.options[0]))
        listbox0.add(SettingRow(_('Disable microphone'),
                                _('Avoid applications to use the microphone.'),
                                self.options[1]))
        listbox0.add(SettingRow(_('Disable sound outp'),
                                _('Avoid applications to play sound.'),
                                self.options[2]))

        label1 = Gtk.Label(_('Identity'))
        label1.set_name('special')
        label1.set_alignment(0, 0.5)
        box.add(label1)

        listbox1 = Gtk.ListBox()
        box.add(listbox1)

        self.options[3] = Gtk.Switch()
        self.options[3].set_valign(Gtk.Align.CENTER)

        listbox1.add(SettingRow(_('Hide identity'),
                                _('Hide personal information.'),
                                self.options[3]))

        label2 = Gtk.Label(_('Remember'))
        label2.set_name('special')
        label2.set_alignment(0, 0.5)
        box.add(label2)

        listbox2 = Gtk.ListBox()
        box.add(listbox2)

        for index in range(4, 8):
            self.options[index] = Gtk.Switch()
            self.options[index].set_valign(Gtk.Align.CENTER)

        listbox2.add(SettingRow(_('Forget application usage'),
                                _('Forget application usage.'),
                                self.options[4]))

        listbox2.add(SettingRow(_('Forget recent files'),
                                _('Forget recent files.'),
                                self.options[5]))

        listbox2.add(SettingRow(_('Remove temporary files'),
                                _('Remove old temporary files automatically.'),
                                self.options[6]))

        listbox2.add(SettingRow(_('Remove trash files'),
                                _('Remove old trash files automatically.'),
                                self.options[7]))

        label3 = Gtk.Label(_('Statistics'))
        label3.set_name('special')
        label3.set_alignment(0, 0.5)
        box.add(label3)

        listbox3 = Gtk.ListBox()
        box.add(listbox3)

        for index in range(8, 11):
            self.options[index] = Gtk.Switch()
            self.options[index].set_valign(Gtk.Align.CENTER)

        listbox3.add(SettingRow(_('Send technical problems'),
                                _('Send technical problems.'),
                                self.options[8]))

        listbox3.add(SettingRow(_('Send software usage'),
                                _('Send softwarew usage statistics.'),
                                self.options[9]))

        listbox3.add(SettingRow(_('Ubuntu popularity contest'),
                                _('Send information about installed packages'),
                                self.options[10]))

        self.__load_default_states()
示例#13
0
    def assemble_stack(self):
        self.overlay = Gtk.Overlay()

        unlock_failed_overlay = self.builder.get_object(
            "unlock_failed_overlay")
        self.overlay.add_overlay(unlock_failed_overlay)

        stack = Gtk.Stack()
        stack.set_transition_type(Gtk.StackTransitionType.CROSSFADE)

        unlock_database_stack_box = self.builder.get_object(
            "unlock_database_stack_box")
        self.unlock_database_stack_switcher = self.builder.get_object(
            "unlock_database_stack_switcher")
        self.unlock_database_stack_switcher.set_stack(stack)

        password_unlock_stack_page = self.builder.get_object(
            "password_unlock_stack_page")
        keyfile_unlock_stack_page = self.builder.get_object(
            "keyfile_unlock_stack_page")
        composite_unlock_stack_page = self.builder.get_object(
            "composite_unlock_stack_page")

        stack.add_titled(password_unlock_stack_page, "password_unlock",
                         _("Password"))
        stack.child_set_property(password_unlock_stack_page, "icon-name",
                                 "input-dialpad-symbolic")

        stack.add_titled(keyfile_unlock_stack_page, "keyfile_unlock",
                         _("Keyfile"))
        stack.child_set_property(keyfile_unlock_stack_page, "icon-name",
                                 "mail-attachment-symbolic")

        # NOTE: Composite unlock is a authentification method where both password and keyfile are required
        stack.add_titled(composite_unlock_stack_page, "composite_unlock",
                         _("Composite"))
        stack.child_set_property(composite_unlock_stack_page, "icon-name",
                                 "insert-link-symbolic")

        pairs = passwordsafe.config_manager.get_last_used_composite_key()
        uri = Gio.File.new_for_path(self.database_filepath).get_uri()
        if passwordsafe.config_manager.get_remember_composite_key(
        ) is True and pairs:
            keyfile_path = None

            for pair in pairs:
                if pair[0] == uri:
                    keyfile_path = pair[1]

            if keyfile_path is not None:
                composite_unlock_select_button = self.builder.get_object(
                    "composite_unlock_select_button")
                label = Gtk.Label()
                label.set_text(ntpath.basename(keyfile_path))
                label.set_ellipsize(Pango.EllipsizeMode.END)
                composite_unlock_select_button.remove(
                    composite_unlock_select_button.get_children()[0])
                composite_unlock_select_button.add(label)

                self.composite_keyfile_path = keyfile_path

        if passwordsafe.config_manager.get_remember_unlock_method() is True:
            stack.set_visible_child(
                stack.get_child_by_name(
                    passwordsafe.config_manager.get_unlock_method() +
                    "_unlock"))

        self.overlay.add(stack)
        unlock_database_stack_box.add(self.overlay)
        unlock_database_stack_box.show_all()

        # Responsive Container
        self.hdy_page = Handy.Column()
        self.hdy_page.set_maximum_width(300)
        self.hdy_page.set_margin_left(15)
        self.hdy_page.set_margin_right(15)
        self.hdy_page.add(unlock_database_stack_box)
        self.hdy_page.show_all()

        self.parent_widget.add(self.hdy_page)

        self.connect_events(stack)
示例#14
0
    def __set_ui(self):
        handycolumn = Handy.Column()
        handycolumn.set_maximum_width(700)
        handycolumn.set_margin_top(24)
        self.add(handycolumn)

        box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 5)
        handycolumn.add(box)

        label0 = Gtk.Label(_('Custom desktop'))
        label0.set_name('special')
        label0.set_alignment(0, 0.5)
        box.add(label0)

        listbox0 = Gtk.ListBox()
        box.add(listbox0)

        self.options = {}
        for index in range(0, 2):
            self.options[index] = Gtk.Switch()
            self.options[index].set_valign(Gtk.Align.CENTER)

        icon_size = Gtk.ListStore(str, str)
        icon_size.append([_('Small'), 'small'])
        icon_size.append([_('Standard'), 'standard'])
        icon_size.append([_('Large'), 'large'])

        self.options['icon-size'] = Gtk.ComboBox.new()
        self.options['icon-size'].set_model(icon_size)
        cell1 = Gtk.CellRendererText()
        self.options['icon-size'].pack_start(cell1, True)
        self.options['icon-size'].add_attribute(cell1, 'text', 0)

        listbox0.add(
            SettingRow(_('Icon size'), _('Set the icon size on the desktop.'),
                       self.options['icon-size']))

        listbox0.add(
            SettingRow(_('Hide home'), _('Hide your user folder.'),
                       self.options[0]))

        listbox0.add(
            SettingRow(_('Hide trash'), _('Hide the trash folder.'),
                       self.options[1]))

        label1 = Gtk.Label(_('Calendar'))
        label1.set_name('special')
        label1.set_alignment(0, 0.5)
        box.add(label1)

        listbox1 = Gtk.ListBox()
        box.add(listbox1)

        for index in range(2, 6):
            self.options[index] = Gtk.Switch()
            self.options[index].set_valign(Gtk.Align.CENTER)

        listbox1.add(
            SettingRow(_('Show week number'),
                       _('Show week number in calendar.'), self.options[2]))

        listbox1.add(
            SettingRow(_('Hide date'), _('Hide date in the watch'),
                       self.options[3]))

        listbox1.add(
            SettingRow(_('Show seconds'), _('Show seconds in the watch'),
                       self.options[4]))

        listbox1.add(
            SettingRow(_('Show weekday'), _('Show weekday in the watch'),
                       self.options[5]))

        label2 = Gtk.Label(_('Battery'))
        label2.set_name('special')
        label2.set_alignment(0, 0.5)
        box.add(label2)

        listbox2 = Gtk.ListBox()
        box.add(listbox2)

        self.options[6] = Gtk.Switch()
        self.options[6].set_valign(Gtk.Align.CENTER)

        listbox2.add(
            SettingRow(_('Show battery percentage'),
                       _('Show battery percentage.'), self.options[6]))

        label3 = Gtk.Label(_('Experimental'))
        label3.set_name('special')
        label3.set_alignment(0, 0.5)
        box.add(label3)

        listbox3 = Gtk.ListBox()
        box.add(listbox3)

        self.options[7] = Gtk.Switch()
        self.options[7].set_valign(Gtk.Align.CENTER)

        listbox3.add(
            SettingRow(_('Enable HiDPI Fractional Scaling'),
                       _('Enable experimenal HiDPI Fractional \
Scaling.'), self.options[7]))

        self.__load_default_states()
示例#15
0
    def __set_ui(self):
        handycolumn = Handy.Column()
        handycolumn.set_maximum_width(700)
        handycolumn.set_margin_top(24)
        self.add(handycolumn)

        box = Gtk.Box.new(Gtk.Orientation.VERTICAL, 5)
        handycolumn.add(box)

        label = Gtk.Label(_('Custom dock'))
        label.set_name('special')
        label.set_alignment(0, 0.5)
        box.add(label)

        listbox0 = Gtk.ListBox()
        box.add(listbox0)

        self.options = {}
        for index in range(0, 3):
            self.options[index] = Gtk.Switch()
            self.options[index].set_valign(Gtk.Align.CENTER)

        dock_position = Gtk.ListStore(str, str)
        dock_position.append([_('Left'), 'LEFT'])
        dock_position.append([_('Right'), 'RIGHT'])
        dock_position.append([_('Top'), 'TOP'])
        dock_position.append([_('Bottom'), 'BOTTOM'])

        self.options['dock-position'] = Gtk.ComboBox.new()
        self.options['dock-position'].set_model(dock_position)
        cell1 = Gtk.CellRendererText()
        self.options['dock-position'].pack_start(cell1, True)
        self.options['dock-position'].add_attribute(cell1, 'text', 0)

        listbox0.add(
            SettingRow(_('Dock position'),
                       _('Set the dock position on the screen.'),
                       self.options['dock-position']))

        listbox0.add(
            SettingRow(_('Enable minimize click action'),
                       _('Minimize when clicking on a running app.'),
                       self.options[0]))

        listbox0.add(
            SettingRow(_('Reduce dock length'),
                       _('Reduce the dock container to icons.'),
                       self.options[1]))

        listbox0.add(
            SettingRow(_('Force straight corner'),
                       _('Make the borders in the dash non rounded.'),
                       self.options[2]))

        label1 = Gtk.Label('Monitor')
        label1.set_name('special')
        label1.set_alignment(0, 0.5)
        box.add(label1)

        listbox1 = Gtk.ListBox()
        box.add(listbox1)

        for index in range(3, 5):
            self.options[index] = Gtk.Switch()
            self.options[index].set_valign(Gtk.Align.CENTER)

        listbox1.add(
            SettingRow(_('Isolate monitors'), _('Provide monitor isolation'),
                       self.options[3]))
        listbox1.add(
            SettingRow(_('Multi monitor'), _('Enable multi monitor dock'),
                       self.options[4]))

        label2 = Gtk.Label('Show in dock')
        label2.set_name('special')
        label2.set_alignment(0, 0.5)
        box.add(label2)

        listbox2 = Gtk.ListBox()
        box.add(listbox2)

        for index in range(5, 9):
            self.options[index] = Gtk.Switch()
            self.options[index].set_valign(Gtk.Align.CENTER)

        listbox2.add(
            SettingRow(_('Hide applications button'),
                       _('Hide applications button'), self.options[5]))
        listbox2.add(
            SettingRow(_('Show apps at top'),
                       _('Show application button at top'), self.options[6]))
        listbox2.add(
            SettingRow(_('Hide favorites'), _('Hide favorites apps'),
                       self.options[7]))
        listbox2.add(
            SettingRow(_('Hide running'), _('Hide running apps'),
                       self.options[8]))

        self.__load_default_states()