from PyQt5.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QListWidget, QListWidgetItem from PyQt5.QtSvg import QSvgWidget from PyQt5.QtCore import Qt import os from src.config import SECONDARY_COLOR, BUTTON_STYLE, UXUI_ASSETS def create_device_popup(parent, device_controller): """Create a popup window for device connection management""" try: # Device connection popup window popup = QWidget(parent) popup_width = int(parent.width() * 0.67) popup_height = int(parent.height() * 0.67) popup.setFixedSize(popup_width, popup_height) popup.setStyleSheet(f""" QWidget {{ background-color: {SECONDARY_COLOR}; border-radius: 20px; padding: 20px; }} """) popup_layout = QVBoxLayout(popup) popup_layout.setContentsMargins(0, 0, 0, 0) # Title row title_layout = QHBoxLayout() title_layout.setAlignment(Qt.AlignCenter) title_container = QWidget() container_layout = QHBoxLayout(title_container) container_layout.setSpacing(10) device_icon = QSvgWidget(os.path.join(UXUI_ASSETS, "Assets_svg/ic_window_device.svg")) device_icon.setFixedSize(35, 35) container_layout.addWidget(device_icon) popup_label = QLabel("Device Connection") popup_label.setStyleSheet("color: white; font-size: 32px;") container_layout.addWidget(popup_label) container_layout.setAlignment(Qt.AlignCenter) title_layout.addWidget(title_container) popup_layout.addLayout(title_layout) # Device list device_list_widget_popup = QListWidget(popup) popup_layout.addWidget(device_list_widget_popup) # Store reference to this list widget for later use parent.device_list_widget_popup = device_list_widget_popup # Button area button_layout = QHBoxLayout() refresh_button = QPushButton("Refresh") refresh_button.clicked.connect(device_controller.refresh_devices) refresh_button.setFixedSize(110, 45) refresh_button.setStyleSheet(BUTTON_STYLE) button_layout.addWidget(refresh_button) done_button = QPushButton("Done") done_button.setStyleSheet(BUTTON_STYLE) done_button.setFixedSize(110, 45) done_button.clicked.connect(parent.hide_device_popup) button_layout.addWidget(done_button) button_layout.setSpacing(10) popup_layout.addSpacing(20) popup_layout.addLayout(button_layout) return popup except Exception as e: print(f"Error in create_device_popup: {e}") return QWidget(parent)