DarkMode ist existent yeah
Dieser Commit ist enthalten in:
@ -85,10 +85,7 @@ class AccountCard(QFrame):
|
||||
username_font = QFont("Poppins", 16)
|
||||
username_font.setWeight(QFont.DemiBold)
|
||||
username_label.setFont(username_font)
|
||||
username_label.setStyleSheet("""
|
||||
color: #1A365D;
|
||||
font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
""")
|
||||
username_label.setObjectName("account_username") # For QSS targeting
|
||||
info_layout.addWidget(username_label)
|
||||
info_layout.addStretch()
|
||||
|
||||
@ -97,25 +94,7 @@ class AccountCard(QFrame):
|
||||
# Login Button
|
||||
self.login_btn = QPushButton("Login")
|
||||
self.login_btn.setCursor(Qt.PointingHandCursor)
|
||||
self.login_btn.setStyleSheet("""
|
||||
QPushButton {
|
||||
background-color: #3182CE;
|
||||
color: #FFFFFF;
|
||||
border: none;
|
||||
border-radius: 6px;
|
||||
padding: 6px 16px;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
min-width: 60px;
|
||||
}
|
||||
QPushButton:hover {
|
||||
background-color: #2563EB;
|
||||
}
|
||||
QPushButton:pressed {
|
||||
background-color: #1D4ED8;
|
||||
}
|
||||
""")
|
||||
self.login_btn.setObjectName("account_login_btn") # For QSS targeting
|
||||
self.login_btn.clicked.connect(lambda: self._on_login_clicked())
|
||||
header_layout.addWidget(self.login_btn)
|
||||
|
||||
@ -136,32 +115,14 @@ class AccountCard(QFrame):
|
||||
email_layout.setSpacing(8)
|
||||
|
||||
email_label = QLabel(self.account_data.get("email", ""))
|
||||
email_label.setStyleSheet("""
|
||||
color: #4A5568;
|
||||
font-size: 13px;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
""")
|
||||
email_label.setObjectName("account_detail_text") # For QSS targeting
|
||||
email_layout.addWidget(email_label)
|
||||
|
||||
# Email Copy Button
|
||||
email_copy_btn = QPushButton()
|
||||
email_copy_btn.setToolTip("E-Mail kopieren")
|
||||
email_copy_btn.setCursor(Qt.PointingHandCursor)
|
||||
email_copy_btn.setStyleSheet("""
|
||||
QPushButton {
|
||||
background: transparent;
|
||||
border: none;
|
||||
padding: 2px;
|
||||
min-width: 20px;
|
||||
max-width: 20px;
|
||||
min-height: 20px;
|
||||
max-height: 20px;
|
||||
}
|
||||
QPushButton:hover {
|
||||
background-color: #F7FAFC;
|
||||
border-radius: 4px;
|
||||
}
|
||||
""")
|
||||
email_copy_btn.setObjectName("account_icon_btn") # For QSS targeting
|
||||
self.copy_icon = IconFactory.get_icon("copy", size=16)
|
||||
self.check_icon = IconFactory.get_icon("check", size=16, color="#10B981")
|
||||
self.email_copy_btn = email_copy_btn
|
||||
@ -183,32 +144,14 @@ class AccountCard(QFrame):
|
||||
pass_layout.setSpacing(8)
|
||||
|
||||
self.password_label = QLabel("••••••••")
|
||||
self.password_label.setStyleSheet("""
|
||||
color: #4A5568;
|
||||
font-size: 13px;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
""")
|
||||
self.password_label.setObjectName("account_detail_text") # For QSS targeting
|
||||
pass_layout.addWidget(self.password_label)
|
||||
|
||||
# Copy Button
|
||||
copy_btn = QPushButton()
|
||||
copy_btn.setToolTip("Passwort kopieren")
|
||||
copy_btn.setCursor(Qt.PointingHandCursor)
|
||||
copy_btn.setStyleSheet("""
|
||||
QPushButton {
|
||||
background: transparent;
|
||||
border: none;
|
||||
padding: 2px;
|
||||
min-width: 20px;
|
||||
max-width: 20px;
|
||||
min-height: 20px;
|
||||
max-height: 20px;
|
||||
}
|
||||
QPushButton:hover {
|
||||
background-color: #F7FAFC;
|
||||
border-radius: 4px;
|
||||
}
|
||||
""")
|
||||
copy_btn.setObjectName("account_icon_btn") # For QSS targeting
|
||||
self.password_copy_btn = copy_btn
|
||||
self.password_copy_btn.setIcon(self.copy_icon)
|
||||
self.password_copy_btn.setIconSize(QSize(16, 16))
|
||||
@ -219,21 +162,7 @@ class AccountCard(QFrame):
|
||||
self.visibility_btn = QPushButton()
|
||||
self.visibility_btn.setToolTip("Passwort anzeigen")
|
||||
self.visibility_btn.setCursor(Qt.PointingHandCursor)
|
||||
self.visibility_btn.setStyleSheet("""
|
||||
QPushButton {
|
||||
background: transparent;
|
||||
border: none;
|
||||
padding: 2px;
|
||||
min-width: 20px;
|
||||
max-width: 20px;
|
||||
min-height: 20px;
|
||||
max-height: 20px;
|
||||
}
|
||||
QPushButton:hover {
|
||||
background-color: #F7FAFC;
|
||||
border-radius: 4px;
|
||||
}
|
||||
""")
|
||||
self.visibility_btn.setObjectName("account_icon_btn") # For QSS targeting
|
||||
self.eye_icon = IconFactory.get_icon("eye", size=16)
|
||||
self.eye_slash_icon = IconFactory.get_icon("eye-slash", size=16)
|
||||
self.visibility_btn.setIcon(self.eye_icon)
|
||||
@ -249,11 +178,7 @@ class AccountCard(QFrame):
|
||||
details_grid.addWidget(date_icon, 2, 0)
|
||||
|
||||
date_label = QLabel(self.account_data.get("created_at", ""))
|
||||
date_label.setStyleSheet("""
|
||||
color: #A0AEC0;
|
||||
font-size: 12px;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
""")
|
||||
date_label.setObjectName("account_date_text") # For QSS targeting
|
||||
details_grid.addWidget(date_label, 2, 1)
|
||||
|
||||
layout.addLayout(details_grid)
|
||||
@ -265,27 +190,7 @@ class AccountCard(QFrame):
|
||||
# Export Button
|
||||
self.export_btn = QPushButton("Profil\nexportieren")
|
||||
self.export_btn.setCursor(Qt.PointingHandCursor)
|
||||
self.export_btn.setStyleSheet("""
|
||||
QPushButton {
|
||||
background-color: #10B981;
|
||||
color: #FFFFFF;
|
||||
border: none;
|
||||
border-radius: 6px;
|
||||
padding: 4px 12px;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
min-width: 120px;
|
||||
min-height: 36px;
|
||||
text-align: center;
|
||||
}
|
||||
QPushButton:hover {
|
||||
background-color: #059669;
|
||||
}
|
||||
QPushButton:pressed {
|
||||
background-color: #047857;
|
||||
}
|
||||
""")
|
||||
self.export_btn.setObjectName("account_export_btn") # For QSS targeting
|
||||
self.export_btn.clicked.connect(lambda: self.export_requested.emit(self.account_data))
|
||||
actions_layout.addWidget(self.export_btn)
|
||||
|
||||
@ -294,25 +199,7 @@ class AccountCard(QFrame):
|
||||
# Delete Button
|
||||
self.delete_btn = QPushButton("Löschen")
|
||||
self.delete_btn.setCursor(Qt.PointingHandCursor)
|
||||
self.delete_btn.setStyleSheet("""
|
||||
QPushButton {
|
||||
background-color: #DC2626;
|
||||
color: #FFFFFF;
|
||||
border: none;
|
||||
border-radius: 6px;
|
||||
padding: 8px 16px;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
min-width: 90px;
|
||||
}
|
||||
QPushButton:hover {
|
||||
background-color: #B91C1C;
|
||||
}
|
||||
QPushButton:pressed {
|
||||
background-color: #991B1B;
|
||||
}
|
||||
""")
|
||||
self.delete_btn.setObjectName("account_delete_btn") # For QSS targeting
|
||||
self.delete_btn.clicked.connect(lambda: self.delete_requested.emit(self.account_data))
|
||||
actions_layout.addWidget(self.delete_btn)
|
||||
|
||||
@ -379,40 +266,14 @@ class AccountCard(QFrame):
|
||||
self.password_copy_timer.stop()
|
||||
|
||||
def _apply_status_styling(self):
|
||||
"""Wendet Status-basiertes Styling mit Pastel-Hintergrund und farbiger Umrandung an"""
|
||||
"""Wendet Status-basiertes Styling an"""
|
||||
# Status aus Account-Daten lesen - Standard ist "active" (grün)
|
||||
status = self.account_data.get("status", "active")
|
||||
|
||||
# Status-Farben definieren (nur Grün/Rot)
|
||||
status_styles = {
|
||||
"active": {
|
||||
"background": "#F0FDF4", # Sehr helles Mintgrün
|
||||
"border": "#10B981", # Kräftiges Grün
|
||||
"hover_border": "#059669" # Dunkleres Grün beim Hover
|
||||
},
|
||||
"inactive": {
|
||||
"background": "#FEF2F2", # Sehr helles Rosa
|
||||
"border": "#EF4444", # Kräftiges Rot
|
||||
"hover_border": "#DC2626" # Dunkleres Rot beim Hover
|
||||
}
|
||||
}
|
||||
|
||||
# Aktueller Status oder Fallback auf active (grün)
|
||||
current_style = status_styles.get(status, status_styles["active"])
|
||||
|
||||
# CSS-Styling anwenden
|
||||
self.setStyleSheet(f"""
|
||||
QFrame#accountCard {{
|
||||
background-color: {current_style["background"]};
|
||||
border: 2px solid {current_style["border"]};
|
||||
border-radius: 8px;
|
||||
padding: 16px;
|
||||
}}
|
||||
QFrame#accountCard:hover {{
|
||||
border: 2px solid {current_style["hover_border"]};
|
||||
background-color: {current_style["background"]};
|
||||
}}
|
||||
""")
|
||||
# Set a property that QSS can use for styling
|
||||
self.setProperty("status", status)
|
||||
# Force style refresh
|
||||
self.setStyle(self.style())
|
||||
|
||||
def update_status(self, new_status: str):
|
||||
"""Aktualisiert den Status der Account-Karte und das Styling"""
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren