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
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)
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
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
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