added check for unsupported browsers
This commit is contained in:
		
							parent
							
								
									9bbee13d4a
								
							
						
					
					
						commit
						22a059978d
					
				
					 2 changed files with 28 additions and 15 deletions
				
			
		| 
						 | 
					@ -50,7 +50,7 @@ profile_observer = ProfileObserver()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class WorkerThread(QThread):
 | 
					class WorkerThread(QThread):
 | 
				
			||||||
    text_output = pyqtSignal(str)
 | 
					    text_output = pyqtSignal(str)
 | 
				
			||||||
    sync_output = pyqtSignal(list, list, bool, bool, list, bool)
 | 
					    sync_output = pyqtSignal(list, list, bool, bool, list, list)
 | 
				
			||||||
    invoice_output = pyqtSignal(object, str)
 | 
					    invoice_output = pyqtSignal(object, str)
 | 
				
			||||||
    invoice_finished = pyqtSignal(bool)
 | 
					    invoice_finished = pyqtSignal(bool)
 | 
				
			||||||
    profiles_output = pyqtSignal(dict)
 | 
					    profiles_output = pyqtSignal(dict)
 | 
				
			||||||
| 
						 | 
					@ -235,10 +235,10 @@ class WorkerThread(QThread):
 | 
				
			||||||
            browser = ApplicationVersionController.get_all()
 | 
					            browser = ApplicationVersionController.get_all()
 | 
				
			||||||
            all_browser_versions = [f"{browser.application_code}:{browser.version_number}" for browser in browser if browser.supported]
 | 
					            all_browser_versions = [f"{browser.application_code}:{browser.version_number}" for browser in browser if browser.supported]
 | 
				
			||||||
            all_location_codes = [f"{location.country_code}_{location.code}" for location in locations]
 | 
					            all_location_codes = [f"{location.country_code}_{location.code}" for location in locations]
 | 
				
			||||||
            self.sync_output.emit(all_location_codes, all_browser_versions, True, False, locations, False)
 | 
					            self.sync_output.emit(all_location_codes, all_browser_versions, True, False, locations, browser)
 | 
				
			||||||
        except Exception as e:
 | 
					        except Exception as e:
 | 
				
			||||||
            print(e)
 | 
					            print(e)
 | 
				
			||||||
            self.sync_output.emit([], False, False, [], False)
 | 
					            self.sync_output.emit([], [], False, False, [], [])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -456,10 +456,10 @@ class CustomWindow(QMainWindow):
 | 
				
			||||||
            menu_page = self.page_stack.findChild(MenuPage)
 | 
					            menu_page = self.page_stack.findChild(MenuPage)
 | 
				
			||||||
            menu_page.on_update_check_finished()
 | 
					            menu_page.on_update_check_finished()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def update_values(self, available_locations, available_browsers, status, is_tor, locations, is_os_error):
 | 
					    def update_values(self, available_locations, available_browsers, status, is_tor, locations, all_browsers):
 | 
				
			||||||
        sync_screen = self.page_stack.findChild(SyncScreen)
 | 
					        sync_screen = self.page_stack.findChild(SyncScreen)
 | 
				
			||||||
        if sync_screen:
 | 
					        if sync_screen:
 | 
				
			||||||
            sync_screen.update_after_sync(available_locations, available_browsers, locations)
 | 
					            sync_screen.update_after_sync(available_locations, available_browsers, locations, all_browsers)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
| 
						 | 
					@ -1383,14 +1383,19 @@ class MenuPage(Page):
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                new_profile['connection'] = 'just proxy'
 | 
					                new_profile['connection'] = 'just proxy'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            
 | 
					            if isinstance(profile, SessionProfile):
 | 
				
			||||||
 | 
					                browser = profile.application_version.application_code
 | 
				
			||||||
            browser = profile.application_version.application_code if hasattr(profile, 'application_version') else 'unknown'
 | 
					            else:
 | 
				
			||||||
 | 
					                browser = 'unknown'
 | 
				
			||||||
            if browser != 'unknown':
 | 
					            if browser != 'unknown':
 | 
				
			||||||
                new_profile['browser'] = browser
 | 
					                new_profile['browser'] = browser
 | 
				
			||||||
                new_profile['browser_version'] = profile.application_version.version_number
 | 
					                new_profile['browser_version'] = profile.application_version.version_number
 | 
				
			||||||
 | 
					                new_profile['browser_supported'] = profile.application_version.supported
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                new_profile['browser'] = 'unknown browser'
 | 
					                new_profile['browser'] = 'unknown browser'
 | 
				
			||||||
 | 
					                new_profile['browser_supported'] = False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            resolution = profile.resolution if hasattr(profile, 'resolution') else 'None'
 | 
					            resolution = profile.resolution if hasattr(profile, 'resolution') else 'None'
 | 
				
			||||||
            new_profile['dimentions'] = resolution
 | 
					            new_profile['dimentions'] = resolution
 | 
				
			||||||
| 
						 | 
					@ -1625,12 +1630,15 @@ class MenuPage(Page):
 | 
				
			||||||
                # Crear QLabel con la imagen os.path.join(self.btn_path, "browser only.png") detrás del label_principal
 | 
					                # Crear QLabel con la imagen os.path.join(self.btn_path, "browser only.png") detrás del label_principal
 | 
				
			||||||
                label_background = QLabel(self)
 | 
					                label_background = QLabel(self)
 | 
				
			||||||
                label_background.setGeometry(0, 60, 410, 354)  # Geometría según necesidades
 | 
					                label_background.setGeometry(0, 60, 410, 354)  # Geometría según necesidades
 | 
				
			||||||
                pixmap = QPixmap(os.path.join(self.btn_path, "browser only.png"))
 | 
					                is_supported = profile.get('browser_supported', False)
 | 
				
			||||||
 | 
					                image_name = "browser only.png" if is_supported else "unsupported_browser_only.png"
 | 
				
			||||||
 | 
					                pixmap = QPixmap(os.path.join(self.btn_path, image_name))
 | 
				
			||||||
                label_background.setPixmap(pixmap)
 | 
					                label_background.setPixmap(pixmap)
 | 
				
			||||||
                label_background.show()
 | 
					                label_background.show()
 | 
				
			||||||
                label_background.setScaledContents(True)
 | 
					                label_background.setScaledContents(True)
 | 
				
			||||||
                label_background.lower()
 | 
					                label_background.lower()
 | 
				
			||||||
                self.additional_labels.append(label_background)
 | 
					                self.additional_labels.append(label_background)
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
            if protocol.lower() == "residential" and connection.lower() == "tor":
 | 
					            if protocol.lower() == "residential" and connection.lower() == "tor":
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                label_background = QLabel(self)
 | 
					                label_background = QLabel(self)
 | 
				
			||||||
| 
						 | 
					@ -1984,13 +1992,14 @@ class ConnectionManager:
 | 
				
			||||||
    def store_locations(self, locations):
 | 
					    def store_locations(self, locations):
 | 
				
			||||||
        self._location_list = locations  
 | 
					        self._location_list = locations  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    def store_browsers(self, browsers):
 | 
					    def store_browsers(self, browsers):
 | 
				
			||||||
        self._browser_list = browsers
 | 
					        self._browser_list = browsers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_browser_list(self):
 | 
					    def get_browser_list(self):
 | 
				
			||||||
        return self._browser_list
 | 
					        return self._browser_list
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    def get_location_list(self):
 | 
					    def get_location_list(self):
 | 
				
			||||||
        if self.is_synced():
 | 
					        if self.is_synced():
 | 
				
			||||||
            location_names = [f'{location.country_code}_{location.code}' for location in self._location_list]
 | 
					            location_names = [f'{location.country_code}_{location.code}' for location in self._location_list]
 | 
				
			||||||
| 
						 | 
					@ -3521,7 +3530,8 @@ class ResumePage(Page):
 | 
				
			||||||
                main_label.show()   
 | 
					                main_label.show()   
 | 
				
			||||||
                self.labels_creados.append(main_label)  
 | 
					                self.labels_creados.append(main_label)  
 | 
				
			||||||
            if profile_1.get("connection", "") == "browser-only":
 | 
					            if profile_1.get("connection", "") == "browser-only":
 | 
				
			||||||
                image_path = os.path.join(self.btn_path, "browser only.png")
 | 
					                image_name = "browser only.png"
 | 
				
			||||||
 | 
					                image_path = os.path.join(self.btn_path, image_name)
 | 
				
			||||||
                label_background = QLabel(self)
 | 
					                label_background = QLabel(self)
 | 
				
			||||||
                label_background.setGeometry(10, 50, 535, 460)
 | 
					                label_background.setGeometry(10, 50, 535, 460)
 | 
				
			||||||
                label_background.setPixmap(QPixmap(image_path))
 | 
					                label_background.setPixmap(QPixmap(image_path))
 | 
				
			||||||
| 
						 | 
					@ -3854,6 +3864,9 @@ class EditorPage(Page):
 | 
				
			||||||
            self.display.setPixmap(QPixmap(os.path.join(self.btn_path, f"wireguard_{location}.png")))
 | 
					            self.display.setPixmap(QPixmap(os.path.join(self.btn_path, f"wireguard_{location}.png")))
 | 
				
			||||||
            self.garaje.hide()
 | 
					            self.garaje.hide()
 | 
				
			||||||
            if connection == "browser-only":
 | 
					            if connection == "browser-only":
 | 
				
			||||||
 | 
					                is_supported = data_profile.get('browser_supported', False)
 | 
				
			||||||
 | 
					                image_name = "browser only.png" if is_supported else "unsupported_browser_only.png"
 | 
				
			||||||
 | 
					                self.brow_disp.setPixmap(QPixmap(os.path.join(self.btn_path, image_name)))
 | 
				
			||||||
                self.brow_disp.show()
 | 
					                self.brow_disp.show()
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                self.brow_disp.hide()
 | 
					                self.brow_disp.hide()
 | 
				
			||||||
| 
						 | 
					@ -5432,8 +5445,8 @@ class SyncScreen(Page):
 | 
				
			||||||
        self.worker_thread.sync_output.connect(self.update_output)
 | 
					        self.worker_thread.sync_output.connect(self.update_output)
 | 
				
			||||||
        self.worker_thread.start()
 | 
					        self.worker_thread.start()
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    def update_output(self, available_locations, available_browsers, status, is_tor, locations, is_os_error):
 | 
					    def update_output(self, available_locations, available_browsers, status, is_tor, locations, all_browsers):
 | 
				
			||||||
        if is_os_error:
 | 
					        if isinstance(all_browsers, bool) and not all_browsers:
 | 
				
			||||||
            install_page = self.page_stack.findChild(InstallSystemPackage)
 | 
					            install_page = self.page_stack.findChild(InstallSystemPackage)
 | 
				
			||||||
            install_page.configure(package_name='tor', distro='debian', is_sync=True)
 | 
					            install_page.configure(package_name='tor', distro='debian', is_sync=True)
 | 
				
			||||||
            self.page_stack.setCurrentIndex(self.page_stack.indexOf(install_page))
 | 
					            self.page_stack.setCurrentIndex(self.page_stack.indexOf(install_page))
 | 
				
			||||||
| 
						 | 
					@ -5457,11 +5470,11 @@ class SyncScreen(Page):
 | 
				
			||||||
            menu_page.on_update_check_finished()
 | 
					            menu_page.on_update_check_finished()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
        self.update_after_sync(available_locations, available_browsers, locations)
 | 
					        self.update_after_sync(available_locations, available_browsers, locations, all_browsers)
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
        self.page_stack.setCurrentIndex(self.page_stack.indexOf(self.page_stack.findChild(ProtocolPage)))
 | 
					        self.page_stack.setCurrentIndex(self.page_stack.indexOf(self.page_stack.findChild(ProtocolPage)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def update_after_sync(self, available_locations, available_browsers, locations):
 | 
					    def update_after_sync(self, available_locations, available_browsers, locations, all_browsers=None):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.connection_manager.set_synced(True)
 | 
					        self.connection_manager.set_synced(True)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								gui/resources/images/unsupported_browser_only.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								gui/resources/images/unsupported_browser_only.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 25 KiB  | 
		Loading…
	
		Reference in a new issue