def setup(self): self.list = UpdateList((20, 20, -20, -60), editCallback=self.update_interface, refreshCallback=self.update_interface) self.updated_at_text = UpdatedTimeTextBox((120, -38, -20, 20), sizeStyle="small") self.update_button = UpdateButton((-160, -42, 140, 20), callback=self.in_thread.install_updates) self.refresh_button = Button((20, -42, 90, 20), "Refresh", callback=self.in_thread.update_list) if env.environment == 'production': self.refresh_button.show(False) self.update_interface()
class UpdatesTab(BaseTab, ThreadedObject): title = "Updates" image = "toolbarScriptReload" identifier = "updates" def setup(self): self.list = UpdateList((20, 20, -20, -60), editCallback=self.update_interface, refreshCallback=self.update_interface) self.updated_at_text = UpdatedTimeTextBox((120, -38, -20, 20), sizeStyle="small") self.update_button = UpdateButton((-160, -42, 140, 20), callback=self.in_thread.install_updates) self.refresh_button = Button((20, -42, 90, 20), "Refresh", callback=self.in_thread.update_list) if env.environment == 'production': self.refresh_button.show(False) self.update_interface() def activate(self): self.set_default_button(self.update_button) self.in_thread.update_list() @progress.each('installable') @progress.tick('repositoryWillDownload', 'Downloading {repository.repo}') @progress.tick('extensionWillInstall', 'Installing {extension.bundle.name}') def install_updates(self, sender=None): for extension in self.installable: extension.update() self.update_list(force=True) def update_list(self, force=False): if self.list.is_refreshing: return None try: self.update_progress = Overlay("Checking for updates...", (20, 20, -20, -60), opacity=0.6, offset=90) self.refresh_button.enable(False) self.list.refresh(force=force) self.enable() except UpdateList.ConnectionError: self.disable("Couldn't connect to the internet...") finally: del self.update_progress self.refresh_button.enable(True) def update_interface(self, sender=None): self.updated_at_text.update() self.update_button.update(len(self.list.selected)) def disable(self, *args, **kwargs): self.list.enable(False) super(UpdatesTab, self).disable(*args, **kwargs) def enable(self, *args, **kwargs): self.list.enable(True) super(UpdatesTab, self).enable(*args, **kwargs) @property def installable(self): return self.list.selected
class UpdatesTab(BaseTab, ThreadedObject): title = "Updates" image = "toolbarScriptReload" identifier = "updates" max_tab_size = (500, 10000) def setup(self): self.list = UpdateList((20, 20, -20, -60), editCallback=self.update_interface, refreshCallback=self.update_interface) self.updated_at_text = UpdatedTimeTextBox((120, -38, -20, 20), sizeStyle="small") self.update_button = UpdateButton( (-160, -42, 140, 20), callback=self.in_thread.install_updates) self.refresh_button = Button((20, -42, 90, 20), "Refresh", callback=self.in_thread.update_list) if env.environment == 'production': self.refresh_button.show(False) self.update_interface() def activate(self): self.set_default_button(self.update_button) self.in_thread.update_list() @progress.each('installable') @progress.tick('repositoryWillDownload', 'Downloading {repository.repo}') @progress.tick('extensionWillInstall', 'Installing {extension.bundle.name}') def install_updates(self, sender=None): for extension in self.installable: extension.update() self.update_list(force=True) def update_list(self, force=False): if self.list.is_refreshing: return None try: self.update_progress = Overlay("Checking for updates...", (20, 20, -20, -60), opacity=0.6, offset=90) self.refresh_button.enable(False) self.list.refresh(force=force) self.enable() except UpdateList.ConnectionError: self.disable("Couldn't connect to the internet...") finally: del self.update_progress self.refresh_button.enable(True) def update_interface(self, sender=None): self.updated_at_text.update() self.update_button.update(len(self.list.selected)) def disable(self, *args, **kwargs): self.list.enable(False) super(UpdatesTab, self).disable(*args, **kwargs) def enable(self, *args, **kwargs): self.list.enable(True) super(UpdatesTab, self).enable(*args, **kwargs) @property def installable(self): return self.list.selected