diff --git a/ui/__pycache__/sidebar.cpython-312.pyc b/ui/__pycache__/sidebar.cpython-312.pyc index 71b27750..639fe97c 100644 Binary files a/ui/__pycache__/sidebar.cpython-312.pyc and b/ui/__pycache__/sidebar.cpython-312.pyc differ diff --git a/ui/sidebar.py b/ui/sidebar.py index 7c8140d1..33042d33 100644 --- a/ui/sidebar.py +++ b/ui/sidebar.py @@ -253,10 +253,11 @@ class SidebarButton(QPushButton): """) class CryptoDonationWidget(QWidget): - """Widget for displaying crypto donation addresses""" + """Widget for displaying crypto donation addresses with collapsible section""" def __init__(self, parent=None): super().__init__(parent) + self.addresses_visible = False self.setup_ui() def setup_ui(self): @@ -275,18 +276,54 @@ class CryptoDonationWidget(QWidget): layout.setContentsMargins(0, 15, 0, 15) layout.setSpacing(8) + # Header with title and toggle button + header_layout = QHBoxLayout() + header_layout.setContentsMargins(20, 0, 20, 0) + header_layout.setSpacing(8) + # Donation title donation_title = QLabel("Support Development") donation_title.setFont(QFont("SF Pro Text", 10, QFont.Weight.Bold)) donation_title.setMinimumHeight(16) donation_title.setStyleSheet(""" color: rgba(255, 255, 255, 0.9); - padding: 0 20px; margin-bottom: 5px; letter-spacing: 0.2px; font-weight: 600; """) - layout.addWidget(donation_title) + + # Toggle button + self.toggle_btn = QPushButton("Show") + self.toggle_btn.setFixedSize(40, 20) + self.toggle_btn.setCursor(Qt.CursorShape.PointingHandCursor) + self.toggle_btn.setStyleSheet(""" + QPushButton { + background: rgba(255, 255, 255, 0.1); + border: 1px solid rgba(255, 255, 255, 0.2); + border-radius: 10px; + color: rgba(255, 255, 255, 0.7); + font-size: 8px; + font-weight: 500; + } + QPushButton:hover { + background: rgba(255, 255, 255, 0.15); + border: 1px solid rgba(255, 255, 255, 0.3); + color: rgba(255, 255, 255, 0.9); + } + """) + self.toggle_btn.clicked.connect(self.toggle_addresses) + + header_layout.addWidget(donation_title) + header_layout.addStretch() + header_layout.addWidget(self.toggle_btn) + + layout.addLayout(header_layout) + + # Container for crypto addresses (initially hidden) + self.addresses_container = QWidget() + self.addresses_layout = QVBoxLayout(self.addresses_container) + self.addresses_layout.setContentsMargins(0, 0, 0, 0) + self.addresses_layout.setSpacing(8) # Crypto addresses crypto_addresses = [ @@ -296,7 +333,22 @@ class CryptoDonationWidget(QWidget): for symbol, name, address in crypto_addresses: crypto_item = self.create_crypto_item(symbol, name, address) - layout.addWidget(crypto_item) + self.addresses_layout.addWidget(crypto_item) + + # Initially hide the addresses + self.addresses_container.hide() + layout.addWidget(self.addresses_container) + + def toggle_addresses(self): + """Toggle the visibility of crypto addresses""" + self.addresses_visible = not self.addresses_visible + + if self.addresses_visible: + self.addresses_container.show() + self.toggle_btn.setText("Hide") + else: + self.addresses_container.hide() + self.toggle_btn.setText("Show") def create_crypto_item(self, symbol: str, name: str, address: str): """Create a clickable crypto donation item"""