added check for unsupported browsers

This commit is contained in:
Your Name 2025-07-12 20:07:40 +01:00
parent 9bbee13d4a
commit 22a059978d
2 changed files with 28 additions and 15 deletions

View file

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB