diff --git a/gui/__main__.py b/gui/__main__.py index ecb6a52..6044501 100755 --- a/gui/__main__.py +++ b/gui/__main__.py @@ -4808,24 +4808,8 @@ class Settings(Page): scroll_layout = QVBoxLayout(scroll_content) scroll_layout.setSpacing(15) - app_path = sys.executable if hasattr(sys, 'frozen') else os.path.abspath(__file__) - if hasattr(sys, 'frozen'): - app_dir = os.path.dirname(app_path) - else: - app_dir = os.path.dirname(os.path.dirname(app_path)) - - app_path_label = QLabel(f"Application Path: {app_path}") - app_path_label.setStyleSheet(f"color: white; font-size: 14px; {self.font_style}") - app_path_label.setWordWrap(True) - scroll_layout.addWidget(app_path_label) - - app_dir_label = QLabel(f"Application Directory: {app_dir}") - app_dir_label.setStyleSheet(f"color: white; font-size: 14px; {self.font_style}") - app_dir_label.setWordWrap(True) - scroll_layout.addWidget(app_dir_label) - - command_group = QGroupBox("CLI Commands") - command_group.setStyleSheet(f""" + profile_selection_group = QGroupBox("Profile Selection") + profile_selection_group.setStyleSheet(f""" QGroupBox {{ color: white; font-weight: bold; @@ -4842,98 +4826,44 @@ class Settings(Page): padding: 0 5px; }} """) - command_layout = QVBoxLayout(command_group) - - self.cli_command = QLineEdit() - self.cli_command.setReadOnly(True) - self.cli_command.setText(f"{app_path} --cli profile enable -i 1") - self.cli_command.setStyleSheet(f""" - QLineEdit {{ - color: white; - background: rgba(255, 255, 255, 0.1); - border: 1px solid rgba(255, 255, 255, 0.2); - border-radius: 4px; - padding: 8px; - font-family: 'Courier New', monospace; - font-size: 12px; - }} - """) - command_layout.addWidget(self.cli_command) - - copy_button = QPushButton("Copy Command") - copy_button.setFixedSize(120, 40) - copy_button.setStyleSheet(f""" - QPushButton {{ - font-size: 12px; - background: #007AFF; - color: white; - border: none; - border-radius: 5px; - font-weight: bold; - {self.font_style} - }} - QPushButton:hover {{ - background: #0056CC; - }} - """) - copy_button.clicked.connect(self.copy_cli_command) - command_layout.addWidget(copy_button) - - execute_button = QPushButton("Execute Command") - execute_button.setFixedSize(120, 40) - execute_button.setStyleSheet(f""" - QPushButton {{ - font-size: 10px; - background: #4CAF50; - color: white; - border: none; - border-radius: 5px; - font-weight: bold; - {self.font_style} - }} - QPushButton:hover {{ - background: #45a049; - }} - """) - execute_button.clicked.connect(self.execute_cli_command) - command_layout.addWidget(execute_button) - - scroll_layout.addWidget(command_group) - - debug_helper_group = QGroupBox("Debug Helper") - debug_helper_group.setStyleSheet(f""" - QGroupBox {{ - color: white; - font-weight: bold; - border: 1px solid rgba(255, 255, 255, 0.1); - border-radius: 8px; - padding: 15px; - font-size: 10px; - margin-top: 15px; - {self.font_style} - }} - QGroupBox::title {{ - subcontrol-origin: margin; - left: 10px; - padding: 0 5px; - }} - """) - debug_helper_layout = QVBoxLayout(debug_helper_group) + profile_selection_layout = QVBoxLayout(profile_selection_group) profile_label = QLabel("Select System-wide Profile:") profile_label.setStyleSheet(f"color: white; font-size: 12px; {self.font_style}") - debug_helper_layout.addWidget(profile_label) + profile_selection_layout.addWidget(profile_label) self.debug_profile_selector = QComboBox() self.debug_profile_selector.setStyleSheet(self.get_combobox_style()) self.debug_profile_selector.currentTextChanged.connect(self.on_debug_profile_selected) - debug_helper_layout.addWidget(self.debug_profile_selector) + profile_selection_layout.addWidget(self.debug_profile_selector) + + scroll_layout.addWidget(profile_selection_group) + + ping_group = QGroupBox("Ping Test") + ping_group.setStyleSheet(f""" + QGroupBox {{ + color: white; + font-weight: bold; + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 8px; + padding: 15px; + font-size: 10px; + margin-top: 15px; + {self.font_style} + }} + QGroupBox::title {{ + subcontrol-origin: margin; + left: 10px; + padding: 0 5px; + }} + """) + ping_layout = QVBoxLayout(ping_group) self.ping_instruction_label = QLabel("") self.ping_instruction_label.setStyleSheet(f"color: white; font-size: 12px; {self.font_style}") self.ping_instruction_label.setWordWrap(True) self.ping_instruction_label.hide() - debug_helper_layout.addWidget(self.ping_instruction_label) + ping_layout.addWidget(self.ping_instruction_label) ping_buttons_layout = QHBoxLayout() @@ -4983,15 +4913,108 @@ class Settings(Page): self.test_ping_button.setEnabled(False) ping_buttons_layout.addWidget(self.test_ping_button) - debug_helper_layout.addLayout(ping_buttons_layout) + ping_layout.addLayout(ping_buttons_layout) self.ping_result_label = QLabel("") self.ping_result_label.setStyleSheet(f"color: white; font-size: 12px; font-weight: bold; {self.font_style}") self.ping_result_label.setWordWrap(True) self.ping_result_label.hide() - debug_helper_layout.addWidget(self.ping_result_label) + ping_layout.addWidget(self.ping_result_label) - scroll_layout.addWidget(debug_helper_group) + scroll_layout.addWidget(ping_group) + + app_path = sys.executable if hasattr(sys, 'frozen') else os.path.abspath(__file__) + if hasattr(sys, 'frozen'): + app_dir = os.path.dirname(app_path) + else: + app_dir = os.path.dirname(os.path.dirname(app_path)) + + command_group = QGroupBox("CLI Commands") + command_group.setStyleSheet(f""" + QGroupBox {{ + color: white; + font-weight: bold; + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: 8px; + padding: 15px; + font-size: 10px; + margin-top: 15px; + {self.font_style} + }} + QGroupBox::title {{ + subcontrol-origin: margin; + left: 10px; + padding: 0 5px; + }} + """) + command_layout = QVBoxLayout(command_group) + + self.cli_command = QLineEdit() + self.cli_command.setReadOnly(True) + self.cli_command.setText("Select a profile above to see command") + self.cli_command.setStyleSheet(f""" + QLineEdit {{ + color: white; + background: rgba(255, 255, 255, 0.1); + border: 1px solid rgba(255, 255, 255, 0.2); + border-radius: 4px; + padding: 8px; + font-family: 'Courier New', monospace; + font-size: 12px; + }} + """) + command_layout.addWidget(self.cli_command) + + copy_button = QPushButton("Copy Command") + copy_button.setFixedSize(120, 40) + copy_button.setStyleSheet(f""" + QPushButton {{ + font-size: 12px; + background: #007AFF; + color: white; + border: none; + border-radius: 5px; + font-weight: bold; + {self.font_style} + }} + QPushButton:hover {{ + background: #0056CC; + }} + QPushButton:disabled {{ + background: #666666; + }} + """) + copy_button.clicked.connect(self.copy_cli_command) + copy_button.setEnabled(False) + command_layout.addWidget(copy_button) + + execute_button = QPushButton("Execute Command") + execute_button.setFixedSize(120, 40) + execute_button.setStyleSheet(f""" + QPushButton {{ + font-size: 10px; + background: #4CAF50; + color: white; + border: none; + border-radius: 5px; + font-weight: bold; + {self.font_style} + }} + QPushButton:hover {{ + background: #45a049; + }} + QPushButton:disabled {{ + background: #666666; + }} + """) + execute_button.clicked.connect(self.execute_cli_command) + execute_button.setEnabled(False) + command_layout.addWidget(execute_button) + + scroll_layout.addWidget(command_group) + + self.cli_copy_button = copy_button + self.cli_execute_button = execute_button wg_quick_group = QGroupBox("Direct Systemwide Wireguard") wg_quick_group.setStyleSheet(f""" @@ -5138,6 +5161,9 @@ class Settings(Page): self.copy_ping_button.setEnabled(False) self.test_ping_button.setEnabled(False) self.ping_result_label.hide() + self.cli_command.setText("Select a profile above to see command") + self.cli_copy_button.setEnabled(False) + self.cli_execute_button.setEnabled(False) if hasattr(self, 'wg_quick_up_command_widget'): self.wg_quick_up_command_widget.setText("Select a profile above to see commands") self.wg_quick_down_command_widget.setText("Select a profile above to see commands") @@ -5155,7 +5181,11 @@ class Settings(Page): self.test_ping_button.setEnabled(True) self.ping_result_label.hide() - # Update wg-quick commands with the selected profile ID + app_path = sys.executable if hasattr(sys, 'frozen') else os.path.abspath(__file__) + self.cli_command.setText(f"{app_path} --cli profile enable -i {profile_id}") + self.cli_copy_button.setEnabled(True) + self.cli_execute_button.setEnabled(True) + if hasattr(self, 'wg_quick_up_command_widget'): self.wg_quick_up_command_widget.setText(f"sudo wg-quick up '/etc/hydra-veil/profiles/{profile_id}/wg.conf'") self.wg_quick_down_command_widget.setText(f"sudo wg-quick down '/etc/hydra-veil/profiles/{profile_id}/wg.conf'") @@ -5167,6 +5197,9 @@ class Settings(Page): self.copy_ping_button.setEnabled(False) self.test_ping_button.setEnabled(False) self.ping_result_label.hide() + self.cli_command.setText("Could not load profile configuration") + self.cli_copy_button.setEnabled(False) + self.cli_execute_button.setEnabled(False) if hasattr(self, 'wg_quick_up_command_widget'): self.wg_quick_up_command_widget.setText("Could not load profile configuration") self.wg_quick_down_command_widget.setText("Could not load profile configuration") diff --git a/gui/resources/images/button_my_14.png b/gui/resources/images/button_my_14.png deleted file mode 100644 index f02199f..0000000 Binary files a/gui/resources/images/button_my_14.png and /dev/null differ diff --git a/gui/resources/images/hdtor_my_14.png b/gui/resources/images/hdtor_sg_02.png similarity index 100% rename from gui/resources/images/hdtor_my_14.png rename to gui/resources/images/hdtor_sg_02.png diff --git a/gui/resources/images/icon_mini_my_14.png b/gui/resources/images/icon_mini_sg_02.png similarity index 100% rename from gui/resources/images/icon_mini_my_14.png rename to gui/resources/images/icon_mini_sg_02.png diff --git a/gui/resources/images/icon_my_14.png b/gui/resources/images/icon_sg_02.png similarity index 100% rename from gui/resources/images/icon_my_14.png rename to gui/resources/images/icon_sg_02.png diff --git a/gui/resources/images/russia.png b/gui/resources/images/russia.png deleted file mode 100644 index a4aad08..0000000 Binary files a/gui/resources/images/russia.png and /dev/null differ diff --git a/gui/resources/images/sweetzerland.png b/gui/resources/images/sweetzerland.png deleted file mode 100644 index a025d16..0000000 Binary files a/gui/resources/images/sweetzerland.png and /dev/null differ diff --git a/gui/resources/images/wireguard_my_14.png b/gui/resources/images/wireguard_sg_02.png similarity index 100% rename from gui/resources/images/wireguard_my_14.png rename to gui/resources/images/wireguard_sg_02.png