示例#1
0
    def func_wrapper(self, *args, **kwargs):
        launcher_setting = GSetting('com.canonical.Unity.Launcher.favorites')
        is_user_desktop_file = self.is_user_desktop_file()
        if not is_user_desktop_file:
            log.debug("Copy %s to user folder, then write it" % self.filename)
            shutil.copy(self.get_system_desktop_file(),
                        self.get_user_desktop_file())
            self.filename = self.get_user_desktop_file()
            self.parse(self.filename)

        func(self, *args, **kwargs)

        if not is_user_desktop_file:
            current_list = launcher_setting.get_value()
            try:
                index = current_list.index(self.get_system_desktop_file())
            except Exception, e:
                log.debug(e)
                index = current_list.index(os.path.basename(self.get_system_desktop_file()))

            current_list[index] = self.filename

            launcher_setting.set_value(current_list)
            log.debug("current_list: %s" % current_list)
            log.debug("Now set the current list")
示例#2
0
class Entry(Gtk.Entry):
    def __init__(self, key=None, default=None, backend=GConf):
        gobject.GObject.__init__(self)

        if backend == GConf:
            self.setting = GconfSetting(key=key, default=default, type=str)
        else:
            self.setting = GSetting(key=key, default=default, type=str)

        string = self.setting.get_value()
        if string:
            self.set_text(str(string))
        else:
            self.set_text(_("Unset"))

        self.connect('activate', self.on_edit_finished_cb)

    def is_changed(self):
        return self.setting.get_value() != self.get_text()

    def get_gsetting(self):
        return self.setting

    def on_edit_finished_cb(self, widget):
        if self.get_text():
            print self.get_text()
            self.setting.set_value(self.get_text())
        else:
            self.setting.client.unset(self.setting.key)
            self.set_text(_("Unset"))
示例#3
0
class Entry(Gtk.Entry):
    def __init__(self, key=None, default=None, backend='gconf'):
        GObject.GObject.__init__(self)

        if backend == 'gconf':
            self._setting = GconfSetting(key=key, default=default, type=str)
        else:
            self._setting = GSetting(key=key, default=default, type=str)

        string = self._setting.get_value()
        if string:
            self.set_text(str(string))

        text_buffer = self.get_buffer()
        text_buffer.connect('inserted-text', self.on_edit_finished_cb)
        text_buffer.connect('deleted-text', self.on_edit_finished_cb)

        self.connect('activate', self.on_edit_finished_cb)

    def is_changed(self):
        return self._setting.get_value() != self.get_text()

    def get_gsetting(self):
        return self._setting

    def on_edit_finished_cb(self, widget, *args):
        log.debug('Entry: on_edit_finished_cb: %s' % self.get_text())
        self._setting.set_value(self.get_text())
示例#4
0
    def on_wallpaper_downloaded(self, downloader):
        os.rename(downloader.get_downloaded_file(), self.wallpaper_path)

        wallpaper_setting = GSetting('org.gnome.desktop.background.picture-uri')
        wallpaper_setting.set_value(GLib.filename_to_uri(self.wallpaper_path, None))

        n = Notify.Notification.new(self.__title__, "Set wallpaper successfully!", 'ubuntu-tweak')
        n.show()
示例#5
0
class ClipPage(Gtk.VBox, GuiBuilder):
    __gsignals__ = {
        'load_module': (GObject.SignalFlags.RUN_FIRST,
                            None,
                            (GObject.TYPE_STRING,)),
        'load_feature': (GObject.SignalFlags.RUN_FIRST,
                            None,
                            (GObject.TYPE_STRING,))
    }

    def __init__(self):
        GObject.GObject.__init__(self)
        GuiBuilder.__init__(self, 'clippage.ui')

        self.recently_used_settings = GSetting('com.ubuntu-tweak.tweak.recently-used')
        self.clips_settings = GSetting('com.ubuntu-tweak.tweak.clips')

        self.load_cips()
        self.setup_recently_used()

        self.pack_start(self.get_object('hbox1'), True, True, 0)
        self.recently_used_settings.connect_notify(self.setup_recently_used)
        self.clips_settings.connect_notify(self.load_cips, True)

        self.show()

    def load_cips(self, a=None, b=None, do_remove=False):
        log.debug("Load clips, do_remove: %s" % do_remove)

        if do_remove:
            for child in self.clipvbox.get_children():
                log.debug("Remove clip: %s" % child)
                self.clipvbox.remove(child)

        clips = self.clips_settings.get_value()
        log.debug("All clips to load: %s" % clips)

        if clips and clips != ['']:
            loader = ModuleLoader('clips')

            for name in clips:
                try:
                    ClipClass = loader.get_module(name)
                    log.debug("Load clip: %s" % name)
                    clip = ClipClass()
                    clip.connect('load_module', self._on_module_button_clicked)
                    clip.connect('load_feature', self.on_clip_load_feature)
                    clip.show_all()
                    self.clipvbox.pack_start(clip, False, False, 0)
                except Exception, e:
                    log.error(traceback.print_exc())
                    if name in self.clips_settings.get_value():
                        new_list = self.clips_settings.get_value().remove(name)
                        self.clips_settings.set_value(new_list)
示例#6
0
class ClipPage(Gtk.VBox, GuiBuilder):
    __gsignals__ = {
        'load_module':
        (GObject.SignalFlags.RUN_FIRST, None, (GObject.TYPE_STRING, )),
        'load_feature':
        (GObject.SignalFlags.RUN_FIRST, None, (GObject.TYPE_STRING, ))
    }

    def __init__(self):
        GObject.GObject.__init__(self)
        GuiBuilder.__init__(self, 'clippage.ui')

        self.recently_used_settings = GSetting(
            'com.ubuntu-tweak.tweak.recently-used')
        self.clips_settings = GSetting('com.ubuntu-tweak.tweak.clips')

        self.load_cips()
        self.setup_recently_used()

        self.pack_start(self.get_object('hbox1'), True, True, 0)
        self.recently_used_settings.connect_notify(self.setup_recently_used)
        self.clips_settings.connect_notify(self.load_cips, True)

        self.show()

    def load_cips(self, a=None, b=None, do_remove=False):
        log.debug("Load clips, do_remove: %s" % do_remove)

        if do_remove:
            for child in self.clipvbox.get_children():
                log.debug("Remove clip: %s" % child)
                self.clipvbox.remove(child)

        clips = self.clips_settings.get_value()
        log.debug("All clips to load: %s" % clips)

        if clips and clips != ['']:
            loader = ModuleLoader('clips')

            for name in clips:
                try:
                    ClipClass = loader.get_module(name)
                    log.debug("Load clip: %s" % name)
                    clip = ClipClass()
                    clip.connect('load_module', self._on_module_button_clicked)
                    clip.connect('load_feature', self.on_clip_load_feature)
                    clip.show_all()
                    self.clipvbox.pack_start(clip, False, False, 0)
                except Exception, e:
                    log.error(traceback.print_exc())
                    if name in self.clips_settings.get_value():
                        new_list = self.clips_settings.get_value().remove(name)
                        self.clips_settings.set_value(new_list)
示例#7
0
    def on_wallpaper_downloaded(self, downloader):
        os.rename(downloader.get_downloaded_file(), self.wallpaper_path)

        wallpaper_setting = GSetting(
            'org.gnome.desktop.background.picture-uri')
        wallpaper_setting.set_value(
            GLib.filename_to_uri(self.wallpaper_path, None))

        n = Notify.Notification.new(self.__title__,
                                    "Set wallpaper successfully!",
                                    'ubuntu-tweak')
        n.show()
示例#8
0
class SpinButton(Gtk.SpinButton):
    def __init__(self, key, min=0, max=0, step=0, backend='gconf'):
        if backend == 'gconf':
            self._setting = GconfSetting(key=key, type=int)
        else:
            self._setting = GSetting(key=key, type=int)

        adjust = Gtk.Adjustment(self._setting.get_value(), min, max, step)
        GObject.GObject.__init__(self, adjustment=adjust)
        self.connect('value-changed', self.on_value_changed)

    def on_value_changed(self, widget):
        self._setting.set_value(widget.get_value())
示例#9
0
class TestRencently(unittest.TestCase):
    def setUp(self):
        self.window = UbuntuTweakWindow()
        self.window.loaded_modules = {}
        self.window.modules_index = {}
        self.window.navigation_dict = {'tweaks': [None, None]}
        self.setting = GSetting('com.ubuntu-tweak.tweak.rencently-used')

    def test_rencetly(self):
        self.setting.set_value([])
        self.assertEqual(self.setting.get_value(), [])

        self.window.load_module('Icon')
        self.assertEqual(self.setting.get_value(), ['Icon'])

        self.window.load_module('Nautilus')
        self.assertEqual(self.setting.get_value(), ['Nautilus', 'Icon'])

    def tearDown(self):
        self.setting.set_value([])
        del self.window
示例#10
0
class TestRecently(unittest.TestCase):
    def setUp(self):
        self.window = UbuntuTweakWindow()
        self.window.loaded_modules = {}
        self.window.modules_index = {}
        self.window.navigation_dict = {'tweaks': [None, None]}
        self.setting = GSetting('com.ubuntu-tweak.tweak.recently-used')

    def test_recently(self):
        self.setting.set_value([])
        self.assertEqual(self.setting.get_value(), [])

        self.window._load_module('Icons')
        self.assertEqual(self.setting.get_value(), ['Icons'])

        self.window._load_module('Nautilus')
        self.assertEqual(self.setting.get_value(), ['Nautilus', 'Icons'])

    def tearDown(self):
        self.setting.set_value([])
        del self.window
示例#11
0
class CheckButton(Gtk.CheckButton):
    def __str__(self):
        return '<CheckButton with key: %s>' % self.setting.key

    def __init__(self, label=None, key=None,
                 default=None, tooltip=None, backend=GConf):
        gobject.GObject.__init__(self, label=label)
        if backend == GConf:
            self.setting = GconfSetting(key=key, default=default, type=bool)
        elif backend == Gio:
            self.setting = GSetting(key=key, default=default, type=bool)

        self.set_active(self.setting.get_value())
        if tooltip:
            self.set_tooltip_text(tooltip)

        self.setting.connect_notify(self.on_value_changed)
        self.connect('toggled', self.on_button_toggled)

    def on_value_changed(self, *args):
        self.set_active(self.setting.get_value())

    def on_button_toggled(self, widget):
        self.setting.set_value(self.get_active())
示例#12
0
class FontButton(Gtk.FontButton):
    def __init__(self, key=None, default=None, backend='gconf'):
        GObject.GObject.__init__(self)
        self.set_use_font(True)
        self.set_use_size(True)

        if backend == 'gconf':
            self._setting = GconfSetting(key=key, default=default, type=str)
        else:
            self._setting = GSetting(key=key, default=default, type=str)

        self.on_value_changed()

        self.connect('font-set', self.on_font_set)
        self._setting.connect_notify(self.on_value_changed)

    def on_font_set(self, widget):
        self._setting.set_value(self.get_font_name())

    def on_value_changed(self, *args):
        string = self._setting.get_value()

        if string:
            self.set_font_name(string)
示例#13
0
class ClipPage(Gtk.VBox, GuiBuilder):
    __gsignals__ = {
        'load_module': (GObject.SignalFlags.RUN_FIRST,
                            None,
                            (GObject.TYPE_STRING,)),
        'load_feature': (GObject.SignalFlags.RUN_FIRST,
                            None,
                            (GObject.TYPE_STRING,))
    }

    (DIRECTION_UP, DIRECTION_DOWN) = ('UP', 'DOWN')
    direction = None

    def __init__(self):
        GObject.GObject.__init__(self)
        GuiBuilder.__init__(self, 'clippage.ui')

        self.rencently_used_settings = GSetting('com.ubuntu-tweak.tweak.rencently-used')
        self.clips_settings = GSetting('com.ubuntu-tweak.tweak.clips')

        self._up_clips = []
        self._showed_clips = []
        self._down_clips = []

        self.load_cips()
        self.setup_rencently_used()

        self.pack_start(self.get_object('hbox1'), True, True, 0)
        self.connect('draw', self.on_draw_event)
        self.rencently_used_settings.connect_notify(self.setup_rencently_used)
        self.clips_settings.connect_notify(self.load_cips, True)

        self.show()

    def on_draw_event(self, widget, event):
        self.slide_clips()

    def load_cips(self, a=None, b=None, do_remove=False):
        log.debug("Load clips, do_remove: %s" % do_remove)

        if do_remove:
            for child in self.clipvbox.get_children():
                log.debug("Remove clip: %s" % child)
                self.clipvbox.remove(child)

        clips = self.clips_settings.get_value()

        if clips and clips != ['']:
            loader = ModuleLoader('clips')

            self._clips = []
            self._up_clips = []
            self._showed_clips = []
            self._down_clips = []
            self.clipvbox.set_data('direction', 0)

            for name in clips:
                try:
                    ClipClass = loader.get_module(name)
                    log.debug("Load clip: %s" % name)
                    clip = ClipClass()
                    clip.connect('load_module', self._on_module_button_clicked)
                    clip.connect('load_feature', self.on_clip_load_feature)
                    self._clips.append(clip)
                except Exception, e:
                    log.error(traceback.print_exc())
                    if name in self.clips_settings.get_value():
                        new_list = self.clips_settings.get_value().remove(name)
                        self.clips_settings.set_value(new_list)
示例#14
0
class ClipPage(Gtk.VBox, GuiBuilder):
    __gsignals__ = {
        'load_module': (gobject.SIGNAL_RUN_FIRST,
                            gobject.TYPE_NONE,
                            (gobject.TYPE_STRING,)),
        'load_feature': (gobject.SIGNAL_RUN_FIRST,
                            gobject.TYPE_NONE,
                            (gobject.TYPE_STRING,))
    }

    max_recently_used_size = 200

    (DIRECTION_UP, DIRECTION_DOWN) = ('UP', 'DOWN')
    direction = None

    def __init__(self):
        gobject.GObject.__init__(self)
        GuiBuilder.__init__(self, 'clippage.ui')

        self.rencently_used_settings = GSetting('com.ubuntu-tweak.tweak.rencently-used')
        self.clips_settings = GSetting('com.ubuntu-tweak.tweak.clips')

        self._up_clips = []
        self._showed_clips = []
        self._down_clips = []

        self.load_cips()
        self.setup_rencently_used()

        self.pack_start(self.get_object('hbox1'), True, True, 0)
        self.connect('expose-event', self.on_expose_event)
        self.rencently_used_settings.connect_notify(self.setup_rencently_used)
        self.clips_settings.connect_notify(self.load_cips, True)

        self.show()

    def on_expose_event(self, widget, event):
        frame_width = int(self.get_allocation().width / 4.5)

        if frame_width > self.max_recently_used_size:
            frame_width = self.max_recently_used_size
        self.rencently_frame.set_size_request(frame_width, -1)

        self.slide_clips()

    def load_cips(self, a=None, b=None, do_remove=False):
        log.debug("Load clips, do_remove: %s" % do_remove)

        if do_remove:
            for child in self.clipvbox.get_children():
                log.debug("Remove clip: %s" % child)
                self.clipvbox.remove(child)

        clips = self.clips_settings.get_value()

        if clips != ['']:
            loader = ModuleLoader('clips')

            self._up_clips = []
            self._showed_clips = []
            self._down_clips = []
            self.clipvbox.set_data('direction', 0)

            for name in clips:
                try:
                    ClipClass = loader.get_module(name)
                    log.debug("Load clip: %s" % name)
                    clip = ClipClass()
                    clip.connect('load_module', self._on_module_button_clicked)
                    clip.connect('load_feature', self.on_clip_load_feature)
                    clip.show()
                    self.clipvbox.pack_start(clip, False, False, 0)
                except Exception, e:
                    log.error(traceback.print_exc())
                    if name in self.clips_settings.get_value():
                        new_list = self.clips_settings.get_value().remove(name)
                        self.clips_settings.set_value(new_list)