def load_settings(self):
self.gsettings = Gio.Settings.new("org.gtimelog")
self.gsettings.bind('detail-level', self, 'detail-level', Gio.SettingsBindFlags.DEFAULT)
self.gsettings.bind('show-task-pane', self.task_pane, 'visible', Gio.SettingsBindFlags.DEFAULT)
self.gsettings.bind('hours', self.log_view, 'hours', Gio.SettingsBindFlags.DEFAULT)
self.gsettings.bind('office-hours', self.log_view, 'office-hours', Gio.SettingsBindFlags.DEFAULT)
self.gsettings.bind('name', self.report_view, 'name', Gio.SettingsBindFlags.DEFAULT)
self.gsettings.bind('sender', self.sender_entry, 'text', Gio.SettingsBindFlags.DEFAULT)
self.gsettings.bind('list-email', self.recipient_entry, 'text', Gio.SettingsBindFlags.DEFAULT)
self.gsettings.bind('report-style', self.report_view, 'report-style', Gio.SettingsBindFlags.DEFAULT)
self.gsettings.bind('remote-task-list', self.app.actions.refresh_tasks, 'enabled', Gio.SettingsBindFlags.DEFAULT)
self.gsettings.bind('gtk-completion', self.task_entry, 'gtk-completion-enabled', Gio.SettingsBindFlags.DEFAULT)
self.gsettings.connect('changed::remote-task-list', self.load_tasks)
self.gsettings.connect('changed::task-list-url', self.load_tasks)
self.gsettings.connect('changed::task-list-edit-url', self.update_edit_tasks_availability)
self.gsettings.connect('changed::virtual-midnight', self.virtual_midnight_changed)
self.update_edit_tasks_availability()
x, y = self.gsettings.get_value('window-position')
w, h = self.gsettings.get_value('window-size')
tpp = self.gsettings.get_int('task-pane-position')
self.resize(w, h)
if (x, y) != (-1, -1):
self.move(x, y)
self.paned.set_position(tpp)
self.paned.connect('notify::position', self.delay_store_window_size)
self.connect("configure-event", self.delay_store_window_size)
if not self.gsettings.get_boolean('settings-migrated'):
old_settings = Settings()
old_settings.load()
if old_settings.summary_view:
self.gsettings.set_string('detail-level', 'summary')
elif old_settings.chronological:
self.gsettings.set_string('detail-level', 'chronological')
else:
self.gsettings.set_string('detail-level', 'grouped')
self.gsettings.set_boolean('show-task-pane', old_settings.show_tasks)
self.gsettings.set_double('hours', old_settings.hours)
self.gsettings.set_double('office-hours', old_settings.office_hours)
self.gsettings.set_string('name', old_settings.name)
self.gsettings.set_string('sender', old_settings.sender)
self.gsettings.set_string('list-email', old_settings.email)
self.gsettings.set_string('report-style', old_settings.report_style)
self.gsettings.set_string('task-list-url', old_settings.task_list_url)
self.gsettings.set_boolean('remote-task-list', bool(old_settings.task_list_url))
for arg in old_settings.edit_task_list_cmd.split():
if arg.startswith(('http://', 'https://')):
self.gsettings.set_string('task-list-edit-url', arg)
vm = old_settings.virtual_midnight
self.gsettings.set_value('virtual-midnight', GLib.Variant('(ii)', (vm.hour, vm.minute)))
self.gsettings.set_boolean('gtk-completion', bool(old_settings.enable_gtk_completion))
self.gsettings.set_boolean('settings-migrated', True)
log.info(_('Settings from {filename} migrated to GSettings (org.gtimelog)').format(filename=old_settings.get_config_file()))
mark_time('settings loaded')
评论列表
文章目录