Added Connection type popup
This commit is contained in:
parent
781f4fc9c4
commit
6e7751db01
1 changed files with 74 additions and 9 deletions
|
@ -1,4 +1,4 @@
|
|||
from PyQt6.QtWidgets import QComboBox,QButtonGroup, QLineEdit,QMainWindow, QLabel, QWidget, QVBoxLayout, QStackedWidget, QApplication, QPushButton, QTextEdit, QFrame, QHBoxLayout, QVBoxLayout, QScrollArea, QSystemTrayIcon, QMessageBox, QGridLayout, QCheckBox, QStackedLayout, QGroupBox
|
||||
from PyQt6.QtWidgets import QComboBox,QButtonGroup, QLineEdit,QMainWindow, QLabel, QWidget, QVBoxLayout, QStackedWidget, QApplication, QPushButton, QTextEdit, QFrame, QHBoxLayout, QVBoxLayout, QScrollArea, QSystemTrayIcon, QMessageBox, QGridLayout, QCheckBox, QStackedLayout, QGroupBox, QDialog
|
||||
from PyQt6.QtGui import QIcon, QPixmap,QIcon, QPixmap, QTransform, QPainter, QColor, QFont, QPen
|
||||
from PyQt6 import QtGui
|
||||
from PyQt6 import QtCore
|
||||
|
@ -326,10 +326,7 @@ class CustomWindow(QMainWindow):
|
|||
self.current_profile_id = None
|
||||
self.connection_manager = ConnectionManager()
|
||||
|
||||
current_connection = self.get_current_connection()
|
||||
if current_connection is None:
|
||||
ConfigurationController.set_connection('system')
|
||||
current_connection = 'system'
|
||||
current_connection = 'system' #For Default toggle behavior
|
||||
self.is_tor_mode = current_connection == 'tor'
|
||||
self.is_animating = False
|
||||
self.animation_step = 0
|
||||
|
@ -408,12 +405,80 @@ class CustomWindow(QMainWindow):
|
|||
self.check_logging()
|
||||
self.init_ui()
|
||||
|
||||
current_connection = self.get_current_connection()
|
||||
self.is_tor_mode = current_connection == 'tor'
|
||||
self.set_toggle_state(self.is_tor_mode)
|
||||
|
||||
|
||||
def get_current_connection(self):
|
||||
try:
|
||||
return ConfigurationController.get_connection()
|
||||
except UnknownConnectionTypeError:
|
||||
return None
|
||||
self.setup_popup()
|
||||
return ConfigurationController.get_connection()
|
||||
|
||||
def setup_popup(self):
|
||||
connection_dialog = QDialog(self)
|
||||
connection_dialog.setWindowTitle("Connection Type")
|
||||
connection_dialog.setWindowFlags(Qt.WindowType.Dialog | Qt.WindowType.WindowStaysOnTopHint | Qt.WindowType.CustomizeWindowHint | Qt.WindowType.WindowTitleHint)
|
||||
connection_dialog.setModal(True)
|
||||
connection_dialog.setFixedSize(400, 200)
|
||||
|
||||
layout = QVBoxLayout(connection_dialog)
|
||||
|
||||
label = QLabel("Please set your preference for connecting to Simplified Privacy's billing server.")
|
||||
label.setWordWrap(True)
|
||||
label.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
label.setStyleSheet("font-size: 12px; margin-bottom: 20px; color: black;")
|
||||
|
||||
button_layout = QHBoxLayout()
|
||||
|
||||
regular_btn = QPushButton("Regular")
|
||||
tor_btn = QPushButton("Tor")
|
||||
|
||||
button_style = """
|
||||
QPushButton {
|
||||
background-color: #2b2b2b;
|
||||
color: white;
|
||||
border: none;
|
||||
padding: 10px 20px;
|
||||
border-radius: 5px;
|
||||
font-size: 12px;
|
||||
}
|
||||
QPushButton:hover {
|
||||
background-color: #3b3b3b;
|
||||
}
|
||||
QPushButton:pressed {
|
||||
background-color: #1b1b1b;
|
||||
}
|
||||
"""
|
||||
regular_btn.setStyleSheet(button_style)
|
||||
tor_btn.setStyleSheet(button_style)
|
||||
|
||||
button_layout.addWidget(regular_btn)
|
||||
button_layout.addWidget(tor_btn)
|
||||
|
||||
layout.addWidget(label)
|
||||
layout.addLayout(button_layout)
|
||||
|
||||
def set_regular_connection():
|
||||
ConfigurationController.set_connection('system')
|
||||
self.is_tor_mode = False
|
||||
self.set_toggle_state(False)
|
||||
connection_dialog.accept()
|
||||
|
||||
def set_tor_connection():
|
||||
ConfigurationController.set_connection('tor')
|
||||
self.is_tor_mode = True
|
||||
self.set_toggle_state(True)
|
||||
connection_dialog.accept()
|
||||
|
||||
regular_btn.clicked.connect(set_regular_connection)
|
||||
tor_btn.clicked.connect(set_tor_connection)
|
||||
|
||||
connection_dialog.exec()
|
||||
|
||||
return ConfigurationController.get_connection()
|
||||
|
||||
def _setup_gui_directory(self):
|
||||
os.makedirs(self.gui_dir, exist_ok=True)
|
||||
|
@ -1528,7 +1593,7 @@ class MenuPage(Page):
|
|||
self.update_status.update_status('Profile is already being enabled...')
|
||||
return
|
||||
profile = ProfileController.get(int(self.reverse_id))
|
||||
is_tor = ConfigurationController.get_connection() == 'tor'
|
||||
is_tor = self.update_status.get_current_connection() == 'tor'
|
||||
if profile.connection.code == 'tor' and not profile.application_version.installed and not is_tor:
|
||||
message = f'You are using a Tor profile, but the associated browser is not installed. If you want the browser to be downloaded with Tor, you must switch to a Tor connection. Otherwise, proceed with a clearweb connection.'
|
||||
|
||||
|
@ -1710,7 +1775,7 @@ class MenuPage(Page):
|
|||
def change_app_page(self, text, Is_changed):
|
||||
self.update_status.update_status(str(text))
|
||||
if Is_changed:
|
||||
current_connection = ConfigurationController.get_connection()
|
||||
current_connection = self.update_status.get_current_connection()
|
||||
profile = ProfileController.get(int(self.reverse_id))
|
||||
if current_connection != 'tor' and profile.connection.code == 'tor':
|
||||
message = f'You are using a Tor profile, but the profile subscription is missing or expired. If you want the billing to be done thourgh Tor, you must switch to a Tor connection. Otherwise, proceed with a clearweb connection.'
|
||||
|
@ -4592,7 +4657,7 @@ class Settings(Page):
|
|||
stats = [
|
||||
("Config Path", config_path),
|
||||
("Client Version", Constants.HV_CLIENT_VERSION_NUMBER),
|
||||
("Connection", ConfigurationController.get_connection()),
|
||||
("Connection", self.update_status.get_current_connection()),
|
||||
]
|
||||
|
||||
for i, (label, value) in enumerate(stats):
|
||||
|
|
Loading…
Reference in a new issue