From a8c88363d81622ab442049b0b6ad911f9eac0761 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 29 Dec 2025 17:48:04 +0100 Subject: [PATCH] update: new display for non SP locations --- gui/__main__.py | 218 +++++++++++++---------- gui/resources/images/icon_cl_rm.png | Bin 0 -> 10318 bytes gui/resources/images/icon_mini_cl_rm.png | Bin 0 -> 1622 bytes pyproject.toml | 2 +- 4 files changed, 127 insertions(+), 93 deletions(-) create mode 100755 gui/resources/images/icon_cl_rm.png create mode 100755 gui/resources/images/icon_mini_cl_rm.png diff --git a/gui/__main__.py b/gui/__main__.py index e8481f8..2a38393 100755 --- a/gui/__main__.py +++ b/gui/__main__.py @@ -2020,10 +2020,56 @@ class MenuPage(Page): is_profile_enabled = self.connection_manager.is_profile_connected( self.reverse_id) show_verification_widget = False + label_principal = None + label_tor = None + text_color = "white" + operator_name = profile_obj.location.operator.name if profile_obj.location and profile_obj.location.operator else "" - if protocol.lower() in ["wireguard", "open", "lokinet", "residential", "hidetor"]: + if operator_name != 'Simplified Privacy': + if profile_obj.is_session_profile(): + text_color = "black" + label_background = QLabel(self) + label_background.setGeometry(0, 60, 410, 354) + pixmap_bg = QPixmap(os.path.join( + self.btn_path, "browser only.png")) + label_background.setPixmap(pixmap_bg) + label_background.setScaledContents(True) + label_background.show() + label_background.lower() + self.additional_labels.append(label_background) + + l_img = QLabel(self) + l_img.setGeometry(20, 125, 100, 100) + pixmap_loc = QPixmap(os.path.join( + self.btn_path, f"icon_{location}.png")) + l_img.setPixmap(pixmap_loc) + l_img.setScaledContents(True) + l_img.show() + self.additional_labels.append(l_img) + l_name = f"{profile_obj.location.country_name}, {profile_obj.location.name}" if profile_obj.location else "" + o_name = profile_obj.location.operator.name if profile_obj.location and profile_obj.location.operator else "" + n_key = profile_obj.location.operator.nostr_public_key if profile_obj.location and profile_obj.location.operator else "" + + info_txt = QTextEdit(self) + info_txt.setGeometry(130, 110, 260, 250) + info_txt.setReadOnly(True) + info_txt.setFrameStyle(QFrame.Shape.NoFrame) + info_txt.setStyleSheet( + f"background: transparent; border: none; color: {text_color}; font-size: 15px;") + info_txt.setVerticalScrollBarPolicy( + Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + info_txt.setHorizontalScrollBarPolicy( + Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + info_txt.setWordWrapMode( + QtGui.QTextOption.WrapMode.WrapAnywhere) + info_txt.setText( + f"Location: {l_name}\n\nOperator: {o_name}\n\nNostr: {n_key}") + info_txt.show() + + self.additional_labels.append(info_txt) + + elif protocol.lower() in ["wireguard", "open", "lokinet", "residential", "hidetor"]: - label_principal = None if protocol.lower() == "wireguard" and is_profile_enabled and profile_obj and profile_obj.connection and profile_obj.connection.code == 'wireguard': verification_widget = self.create_verification_widget( profile_obj) @@ -2040,7 +2086,7 @@ class MenuPage(Page): label_principal.show() self.additional_labels.append(label_principal) - if protocol.lower() == "wireguard" and ConfigurationController.get_endpoint_verification_enabled(): + if protocol.lower() == "wireguard" and ConfigurationController.get_endpoint_verification_enabled() and operator_name == 'Simplified Privacy': if is_profile_enabled and profile_obj and profile_obj.connection and profile_obj.connection.code == 'wireguard': verified_icon = QLabel(self) verified_icon.setGeometry(20, 50, 100, 80) @@ -2051,91 +2097,94 @@ class MenuPage(Page): verified_icon.show() self.additional_labels.append(verified_icon) - if protocol.lower() == "hidetor" and not show_verification_widget: + if operator_name == 'Simplified Privacy': + if protocol.lower() == "hidetor" and not show_verification_widget: - if label_principal: - label_principal.setGeometry(0, 80, 400, 300) - label_background = QLabel(self) - label_background.setGeometry(0, 60, 410, 354) - if connection == 'just proxy': - image_path = os.path.join( - self.btn_path, f"icon_{location}.png") - else: - image_path = os.path.join( - self.btn_path, f"hdtor_{location}.png") - pixmap = QPixmap(image_path) - label_background.setPixmap(pixmap) - label_background.show() - label_background.setScaledContents(True) - label_background.lower() - self.additional_labels.append(label_background) + if label_principal: + label_principal.setGeometry(0, 80, 400, 300) + label_background = QLabel(self) + label_background.setGeometry(0, 60, 410, 354) + if connection == 'just proxy': + image_path = os.path.join( + self.btn_path, f"icon_{location}.png") + else: + image_path = os.path.join( + self.btn_path, f"hdtor_{location}.png") + pixmap = QPixmap(image_path) + label_background.setPixmap(pixmap) + label_background.show() + label_background.setScaledContents(True) + label_background.lower() + self.additional_labels.append(label_background) - if protocol.lower() == "wireguard" and connection.lower() == "browser-only" and not show_verification_widget: + if protocol.lower() == "wireguard" and connection.lower() == "browser-only" and not show_verification_widget: - if label_principal: - label_principal.setGeometry(0, 80, 400, 300) + if label_principal: + label_principal.setGeometry(0, 80, 400, 300) - label_background = QLabel(self) - label_background.setGeometry(0, 60, 410, 354) - 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.show() - label_background.setScaledContents(True) - label_background.lower() - self.additional_labels.append(label_background) + label_background = QLabel(self) + label_background.setGeometry(0, 60, 410, 354) + 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.show() + label_background.setScaledContents(True) + label_background.lower() + 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.setGeometry(0, 60, 410, 354) - pixmap = QPixmap(os.path.join( - self.btn_path, "browser_tor.png")) - label_background.setPixmap(pixmap) - label_background.show() - label_background.setScaledContents(True) - # label_background.setStyleSheet("background-color: blue;") - self.additional_labels.append(label_background) + label_background = QLabel(self) + label_background.setGeometry(0, 60, 410, 354) + pixmap = QPixmap(os.path.join( + self.btn_path, "browser_tor.png")) + label_background.setPixmap(pixmap) + label_background.show() + label_background.setScaledContents(True) + # label_background.setStyleSheet("background-color: blue;") + self.additional_labels.append(label_background) - label_garaje = QLabel(self) - label_garaje.setGeometry(5, 110, 400, 300) - pixmap = QPixmap(os.path.join( - self.btn_path, f"{country_garaje} garaje.png")) - label_garaje.setPixmap(pixmap) - label_garaje.show() - label_garaje.setScaledContents(True) - # label_garaje.setStyleSheet("background-color: red;") - self.additional_labels.append(label_garaje) + label_garaje = QLabel(self) + label_garaje.setGeometry(5, 110, 400, 300) + pixmap = QPixmap(os.path.join( + self.btn_path, f"{country_garaje} garaje.png")) + label_garaje.setPixmap(pixmap) + label_garaje.show() + label_garaje.setScaledContents(True) + # label_garaje.setStyleSheet("background-color: red;") + self.additional_labels.append(label_garaje) + + label_tor = QLabel(self) + label_tor.setGeometry(330, 300, 75, 113) - label_tor = QLabel(self) - label_tor.setGeometry(330, 300, 75, 113) pixmap = QPixmap(os.path.join(self.btn_path, "tor 86x130.png")) - label_tor.setPixmap(pixmap) - label_tor.show() - label_tor.setScaledContents(True) - self.additional_labels.append(label_tor) - if protocol.lower() == "residential" and connection.lower() == "just proxy": + if label_tor: + label_tor.setPixmap(pixmap) + label_tor.show() + label_tor.setScaledContents(True) + self.additional_labels.append(label_tor) + if protocol.lower() == "residential" and connection.lower() == "just proxy": - label_background = QLabel(self) - label_background.setGeometry(0, 60, 410, 354) - pixmap = QPixmap(os.path.join( - self.btn_path, "browser_just_proxy.png")) - label_background.setPixmap(pixmap) - label_background.show() - label_background.setScaledContents(True) - # label_background.setStyleSheet("background-color: blue;") - self.additional_labels.append(label_background) + label_background = QLabel(self) + label_background.setGeometry(0, 60, 410, 354) + pixmap = QPixmap(os.path.join( + self.btn_path, "browser_just_proxy.png")) + label_background.setPixmap(pixmap) + label_background.show() + label_background.setScaledContents(True) + # label_background.setStyleSheet("background-color: blue;") + self.additional_labels.append(label_background) - label_garaje = QLabel(self) - label_garaje.setGeometry(5, 110, 400, 300) - pixmap = QPixmap(os.path.join( - self.btn_path, f"{country_garaje} garaje.png")) - label_garaje.setPixmap(pixmap) - label_garaje.show() - label_garaje.setScaledContents(True) - # label_garaje.setStyleSheet("background-color: red;") - self.additional_labels.append(label_garaje) + label_garaje = QLabel(self) + label_garaje.setGeometry(5, 110, 400, 300) + pixmap = QPixmap(os.path.join( + self.btn_path, f"{country_garaje} garaje.png")) + label_garaje.setPixmap(pixmap) + label_garaje.show() + label_garaje.setScaledContents(True) + # label_garaje.setStyleSheet("background-color: red;") + self.additional_labels.append(label_garaje) # Actualizar perfil para editar editar_profile = {"profile_number": profile_number, @@ -3326,21 +3375,6 @@ class WireGuardPage(Page): self.page_stack.findChild(ProtocolPage))) -class lokinetPage(Page): - def __init__(self, page_stack, parent=None): - super().__init__("Lokinet", page_stack, parent) - self.create_interface_elements() - - def create_interface_elements(self): - pass - - -class OpenPage(Page): - def __init__(self, page_stack, parent=None): - super().__init__("Opne", page_stack, parent) - pass - - class HidetorPage(Page): def __init__(self, page_stack, main_window, parent=None): super().__init__("HideTor", page_stack, main_window, parent) diff --git a/gui/resources/images/icon_cl_rm.png b/gui/resources/images/icon_cl_rm.png new file mode 100755 index 0000000000000000000000000000000000000000..274487d8555457f86eb0af10ac46b0991cc88327 GIT binary patch literal 10318 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 literal 0 HcmV?d00001 diff --git a/gui/resources/images/icon_mini_cl_rm.png b/gui/resources/images/icon_mini_cl_rm.png new file mode 100755 index 0000000000000000000000000000000000000000..9303bd47a928b83d1654df348d0757ec461d1cfd GIT binary patch literal 1622 zcmbW!doV9ap5YuG^&QHztuOl(vXJ1O!UiY&=1ONEM4 zG>zG0OXay#A{45XjJHBlMtT|Lkz#hVd)jmMuid@(e9!rwbMN`y`#E1(zibrXHaodE z0SJP?PI&^^7@#=Da)SVHbp><)fTFyn0$}+KlINF@4FLy$LLgB{1PX;jq0uNs3=V@) zQo^Wx^DP#qp++QXs1XRHRk~!7md;87VYT6E9X)*mx`8Iy$i#?dqDwQNEk6RG(P)e! zMiqlmrI83E+J6pNBfu*HGhhZo6rg~IU_2yi0c82ENV#Yk^;bX&uzX*%q7p_~-cXGL z3J?q{AYddCfsl76$m;-sN2;tbwMVIL-G!!vtC=O8;4A8ExZb4h(KSUi4~R%s!Volw znj~F4eVPH?!gB38rj@nBMn|Vj&Muohy}a3+Z9cw%yY~bI|H$1N85JGFi;X*YB;{yo zT6#w2$=tmBQ>V`q6kZUN2!FX)da10UvZ}hK_P4tFJIyVvcki{ecRcPE_4M}j4-Aey z6F+}3E}3{aDV=`*VP33j*+;tgo_vxbSk90s;Xe(914JfhRvO9)VnAic+!P ziry8jN-;}PRNHWZf4xab$J}E|Js_eBL!erW=}MPrUu6Fdmi)hDUtxc{1_2g^Fii8alF*>yvBXoTuSBL zPss*W9^cr{eqLBSKEOOy7&}6zCw4C9(p%^gKW9OQJ`0spqIjSWo`e+ zzRLygIR_-fw@gX-imf+~Y@NE*S}NLiv8r$qVt#U`@?$_!6XK|TksI=0(67=(3KUh0 z9ayX|&JUHuXJwn=XgV+Jud%|!TMo$p);;8MyY`i5D>gP8_R;tr4{@iQ`EYmSi-lDZ zt$UW8q@K_`e%QHzk=NX+!Tcq*jrrKEn-@Alnz6@!7^VhLPsChTzHwGNylp|;tvSTVPzs$8AX;6TS zd`j(YEf)j}?P-~llj}|&hUl5=#WwAswyE_bsk_RP27&bP(dUlG-}K;YOs4eyuoBDMQ{)A>oZ-L#Py7OnN^8>?>CYf4+jc|wT7mR zjr&hwom9-1+GghLQW-&${kPMN{QAQETD8d0&YF_`a=X!Jj(d0XL^V;jUc}xKUTkJF z&6CQGlB0+3igwTg}JlwPiN1a%2=u=t)pnQ;D#ubTs2|0XLtrWhXCTv2UX3`_voZBQUNs*I#QLOf)*z56|6zaV& z9GP1@FU%!}Cjesm%qY)tn2TPbJEIq^U1fmZ>U|`y^qD$i;$7s*xA}(teui7J%O2Vl z*7bxts&O8X&t>@IHSDybw=b+)I_66&kKZw+Khf!_D+7mxlef(u31uK>-flQ?ygDG0 z@nTO^f*t$trA^{XuVkP`kUQ@Wru+(E%{Z62MKNbrNn+dmFd6XAm4S%^U5*FU5=R=s ZW>_nEpVMXFP5)Awr+j7?xv*F^@CS@HzDfW9 literal 0 HcmV?d00001 diff --git a/pyproject.toml b/pyproject.toml index 1cc56e8..d7e7078 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "sp-hydra-veil-gui" -version = "2.0.1" +version = "2.0.2" authors = [ { name = "Simplified Privacy" }, ]