Ejemplo n.º 1
0
 def _migrate_image_field(self, field_name):
     value = getattr(self, field_name)
     icon_cache_directory = app.config.get(prefs.ICON_CACHE_DIRECTORY)
     cover_art_directory = app.config.get(prefs.COVER_ART_DIRECTORY)
     if value is not None:
         if (value.startswith(icon_cache_directory)
                 or value.startswith(cover_art_directory)):
             # migrate the screenshot onto the device
             basename = os.path.basename(value)
             try:
                 new_path = os.path.join(self.device.mount, '.miro',
                                         basename)
                 shutil.copyfile(value, new_path)
             except (IOError, OSError):
                 # error copying the thumbnail, just erase it
                 setattr(self, field_name, None)
             else:
                 extracted = os.path.join(icon_cache_directory, 'extracted')
                 if (value.startswith(extracted)
                         or value.startswith(cover_art_directory)):
                     # moviedata extracted this for us, so we can remove it
                     try:
                         os.unlink(value)
                     except OSError:
                         pass
                 setattr(self, field_name, os.path.join('.miro', basename))
         elif value.startswith(resources.root()):
             setattr(self, field_name, None)  # don't save a default
Ejemplo n.º 2
0
    def build_widget(self):
        feed_info = widgetutil.get_feed_info(self.id)
        icon = imagepool.get(feed_info.thumbnail, size=(41, 41))
        self._make_item_views()

        add_icon_box = not self.is_folder and not feed_info.thumbnail.startswith(resources.root())
        if feed_info.is_directory_feed:
            self.titlebar = itemlistwidgets.ItemListTitlebar(feed_info.name, icon,
                    add_icon_box=add_icon_box)
        else:
            self.titlebar = itemlistwidgets.ChannelTitlebar(feed_info.name, icon,
                    add_icon_box=add_icon_box)
            self.titlebar.connect('save-search', self._on_save_search)
        self.titlebar.connect('search-changed', self._on_search_changed)
        self.widget.titlebar_vbox.pack_start(self.titlebar)
        if not self.is_folder:
            sep = separator.HSeparator((0.85, 0.85, 0.85), (0.95, 0.95, 0.95))
            self.widget.titlebar_vbox.pack_start(sep)
            self.widget.titlebar_vbox.pack_start(self._make_toolbar(feed_info))

        vbox = widgetset.VBox()
        vbox.pack_start(self.downloading_section)
        vbox.pack_start(self.full_section)
        vbox.pack_start(self.downloaded_section)

        background = widgetset.SolidBackground((1, 1, 1))
        background.add(vbox)

        scroller = widgetset.Scroller(False, True)
        scroller.add(background)

        self.widget.normal_view_vbox.pack_start(scroller, expand=True)
Ejemplo n.º 3
0
 def _migrate_image_field(self, field_name):
     value = getattr(self, field_name)
     icon_cache_directory = app.config.get(prefs.ICON_CACHE_DIRECTORY)
     cover_art_directory = app.config.get(prefs.COVER_ART_DIRECTORY)
     if value is not None:
         if (value.startswith(icon_cache_directory) or
             value.startswith(cover_art_directory)):
             # migrate the screenshot onto the device
             basename = os.path.basename(value)
             try:
                 new_path = os.path.join(self.device.mount, '.miro',
                                         basename)
                 shutil.copyfile(value, new_path)
             except (IOError, OSError):
                 # error copying the thumbnail, just erase it
                 setattr(self, field_name, None)
             else:
                 extracted = os.path.join(icon_cache_directory, 'extracted')
                 if (value.startswith(extracted) or
                     value.startswith(cover_art_directory)):
                     # moviedata extracted this for us, so we can remove it
                     try:
                         os.unlink(value)
                     except OSError:
                         pass
                 setattr(self, field_name,
                         os.path.join('.miro', basename))
         elif value.startswith(resources.root()):
             setattr(self, field_name, None) # don't save a default
Ejemplo n.º 4
0
 def _get_exe_location(self):
         # We don't use the app name for the .exe, so branded
         # versions work
         filename = os.path.join(resources.root(), "..", "Miro.exe")
         filename = os.path.normpath(filename)
         themeName = app.config.get(prefs.THEME_NAME)
         if themeName is not None:
             themeName = themeName.replace("\\", "\\\\").replace('"', '\\"')
             filename = "%s --theme \"%s\"" % (filename, themeName)
         return filename
Ejemplo n.º 5
0
def migrateSupport(oldAppName, newAppName):
    global migratedSupport
    migratedSupport = False
    # This gets called before config is set up, so we have to cheat
    oldSupportDir = os.path.join(app_data_directory,
                                 app.configfile['publisher'], oldAppName,
                                 'Support')
    newSupportDir = os.path.join(app_data_directory,
                                 app.configfile['publisher'], newAppName,
                                 'Support')

    # Migrate support
    if os.path.exists(oldSupportDir):
        if not os.path.exists(os.path.join(newSupportDir, "preferences.bin")):
            try:
                for name in os.listdir(oldSupportDir):
                    os.rename(os.path.join(oldSupportDir, name),
                              os.path.join(newSupportDir, name))
                migratedSupport = True
            except:
                pass

    if migratedSupport:
        runSubkey = "Software\\Microsoft\\Windows\\CurrentVersion\\Run"
        try:
            folder = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, runSubkey)
        except WindowsError, e:
            if e.errno == 2:  # registry key doesn't exist
                folder = _winreg.CreateKey(_winreg.HKEY_CURRENT_USER,
                                           runSubkey)
            else:
                raise

        count = 0
        while True:
            try:
                (name, val, type) = _winreg.EnumValue(folder, count)
            except:
                return True
            count += 1
            if (name == oldAppName):
                filename = os.path.join(
                    resources.root(), "..",
                    ("%s.exe" % templateVars['shortAppName']))
                filename = os.path.normpath(filename)
                writable_folder = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,
                                                  runSubkey, 0,
                                                  _winreg.KEY_SET_VALUE)
                _winreg.SetValueEx(writable_folder, newAppName, 0,
                                   _winreg.REG_SZ, filename)
                _winreg.DeleteValue(writable_folder, oldAppName)
                return True
        return True
Ejemplo n.º 6
0
def migrateSupport(oldAppName, newAppName):
    global migratedSupport
    migratedSupport = False
    # This gets called before config is set up, so we have to cheat
    oldSupportDir = os.path.join(appDataDirectory, app.configfile['publisher'], oldAppName, 'Support')
    newSupportDir = os.path.join(appDataDirectory, app.configfile['publisher'], newAppName, 'Support')

    # Migrate support
    if os.path.exists(oldSupportDir):
        if not os.path.exists(os.path.join(newSupportDir,"preferences.bin")):
            try:
                for name in os.listdir(oldSupportDir):
                    os.rename(os.path.join(oldSupportDir,name),
                              os.path.join(newSupportDir,name))
                migratedSupport = True
            except:
                pass

    if migratedSupport:
        runSubkey = "Software\\Microsoft\\Windows\\CurrentVersion\\Run"
        try:
            folder = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, runSubkey)
        except WindowsError, e:
            if e.errno == 2: # registry key doesn't exist
                folder = _winreg.CreateKey(_winreg.HKEY_CURRENT_USER, runSubkey)
            else:
                raise

        count = 0
        while True:
            try:
                (name, val, type) = _winreg.EnumValue(folder,count)
            except:
                return True
            count += 1
            if (name == oldAppName):
                filename = os.path.join(resources.root(),"..",("%s.exe" % templateVars['shortAppName']))
                filename = os.path.normpath(filename)
                writable_folder = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,
                                           runSubkey, 0,_winreg.KEY_SET_VALUE)
                _winreg.SetValueEx(writable_folder, newAppName, 0,_winreg.REG_SZ, filename)
                _winreg.DeleteValue(writable_folder, oldAppName)
                return True
        return True