def launch_favorite(self): try: self.favorite.launch() except Exception: self.dlg = DialogWindow( self, text="Favorite build not found!", accept_text="OK", cancel_text=None)
def ask_remove_from_drive(self): self.dlg = DialogWindow(self.parent, title="Warning", text="Are you sure you want to delete?", accept_text="Yes", cancel_text="No", icon=DialogIcon.WARNING) self.dlg.accepted.connect(self.remove_from_drive)
def __init__(self, app): super().__init__() self.setupUi(self) self.setAcceptDrops(True) # Server self.server = QLocalServer() self.server.listen("blender-launcher-server") self.server.newConnection.connect(self.new_connection) # Global scope self.app = app self.favorite = None self.status = "None" self.app_state = AppState.IDLE self.cashed_builds = [] self.notification_pool = [] self.windows = [self] self.manager = PoolManager(num_pools=50, maxsize=10) self.timer = None self.started = True self.latest_tag = "" self.new_downloads = False # Setup window self.setWindowTitle("Blender Launcher") self.app.setWindowIcon( QIcon(taskbar_icon_paths[get_taskbar_icon_color()])) # Setup font QFontDatabase.addApplicationFont( ":/resources/fonts/OpenSans-SemiBold.ttf") self.font = QFont("Open Sans SemiBold", 10) self.font.setHintingPreference(QFont.PreferNoHinting) self.app.setFont(self.font) # Setup style file = QFile(":/resources/styles/global.qss") file.open(QFile.ReadOnly | QFile.Text) self.style_sheet = QTextStream(file).readAll() self.app.setStyleSheet(self.style_sheet) # Check library folder if is_library_folder_valid() is False: self.dlg = DialogWindow( self, title="Information", text="First, choose where Blender<br>builds will be stored", accept_text="Continue", cancel_text=None, icon=DialogIcon.INFO) self.dlg.accepted.connect(self.set_library_folder) else: create_library_folders(get_library_folder()) self.draw()
def ask_remove_from_drive(self): self.item.setSelected(True) self.dlg = DialogWindow( self.parent, title="Warning", text="Are you sure you want to<br>delete selected builds?", accept_text="Yes", cancel_text="No", icon=DialogIcon.WARNING) if len(self.list_widget.selectedItems()) > 1: self.dlg.accepted.connect(self.remove_from_drive_extended) else: self.dlg.accepted.connect(self.remove_from_drive)
def quit(self): download_widgets = [] download_widgets.extend(self.DownloadsStableListWidget.items()) download_widgets.extend(self.DownloadsDailyListWidget.items()) download_widgets.extend(self.DownloadsExperimentalListWidget.items()) for widget in download_widgets: if widget.state == DownloadState.DOWNLOADING: self.dlg = DialogWindow( self, title="Warning", text="Download task in progress!<br>\ Are you sure you want to quit?", accept_text="Yes", cancel_text="No", icon=DialogIcon.WARNING) self.dlg.accepted.connect(self.quit2) return self.quit2()
def show_update_window(self): download_widgets = [] download_widgets.extend(self.DownloadsStableListWidget.items()) download_widgets.extend(self.DownloadsDailyListWidget.items()) download_widgets.extend(self.DownloadsExperimentalListWidget.items()) for widget in download_widgets: if widget.state == DownloadState.DOWNLOADING: self.dlg = DialogWindow( self, title="Warning", text="In order to update Blender Launcher<br> \ complete all active downloads!", accept_text="OK", cancel_text=None, icon=DialogIcon.WARNING) return self.tray_icon.hide() self.close() self.update_window = UpdateWindow(self, self.latest_tag)