This commit is contained in:
2026-01-08 00:25:36 +01:00
parent 23695bc7ef
commit c40f288aaa
9 changed files with 110 additions and 196 deletions

View File

@@ -39,27 +39,7 @@ BCThemeSwitchButton::BCThemeSwitchButton(QWidget *parent )
// Visuelles Setup: Flach, keine Ränder, Hand-Cursor
setFlat(true);
setCursor(Qt::PointingHandCursor);
setFixedSize(24, 24); // Kleiner Footprint im StatusBar
// CSS: Transparent, damit es sich nahtlos in den StatusBar einfügt
// Schriftgröße etwas erhöhen, damit die Emojis gut erkennbar sind
/*
setStyleSheet(R"(
BCThemeSwitchButton
{
border: none;
background-color: transparent;
font-size: 11pt;
}
BCThemeSwitchButton:Hover
{
background-color: rgba(128, 128, 128, 30);
border-radius: 24px;
}
)");
*/
// Initialer Status (Startet im Dark Mode -> zeigt Mond)
setFixedSize(24, 24);
updateIcon();
connect(this, &QPushButton::clicked, this, &BCThemeSwitchButton::toggleMode);
@@ -134,53 +114,9 @@ BCDriverStateWidget::BCDriverStateWidget(QWidget* parent)
void BCDriverStateWidget::onDriverStateChanged(BCDriver::DriverState state, const QString& customMessage)
{
_state = state;
qDebug() << " --- StateWidget: " << state << " - " << customMessage;
updateStyle();
}
/*
void BCDriverStateWidget::updateStyle()
{
QString ledStyle;
QString labelColor;
QString toolTipText;
switch (_state)
{
case BCDriver::DriverState::DeviceReady:
// FLUENT GREEN (Success)
ledStyle = "background-color: #107C10; border: 1px solid #0E600E;#FF5F1F; #FF8C00;<- das isses #FF6700";
labelColor = "#FFFFFF"; // Weiß (Hervorgehoben)
toolTipText = "Verbindung erfolgreich hergestellt.";
break;
case BCDriver::DriverState::Error:
// FLUENT RED (Critical)
ledStyle = "background-color: #C42B1C; border: 1px solid #A80000;";
labelColor = "#FF99A4"; // Ein helleres Rot für Text, damit es auf Dunkel lesbar ist
toolTipText = "Kritischer Fehler bei der Verbindung!";
break;
default:
// FLUENT GRAY (Neutral)
// Wir machen es dunkelgrau mit hellem Rand -> "Ausgeschaltet"-Look
ledStyle = "background-color: #3B3B3B; border: 1px solid #606060;";
labelColor = "#9E9E9E"; // Ausgegrauter Text
toolTipText = "System ist offline.";
break;
}
// Styles anwenden (immer rund machen)
_led->setStyleSheet(ledStyle + "border-radius: 6px;");
// Textfarbe setzen
_label->setStyleSheet(QString("color: %1; font-weight: %2;")
.arg(labelColor)
.arg(_state == BCDriver::DriverState::DeviceReady ? "bold" : "normal"));
setToolTip(toolTipText);
}
*/
void BCDriverStateWidget::updateStyle()
{
@@ -196,54 +132,49 @@ void BCDriverStateWidget::updateStyle()
*/
switch (_state)
{
case BCDriver::DriverState::NotPresent:
// FLUENT GRAY (Neutral)
// Wir machen es dunkelgrau mit hellem Rand -> "Ausgeschaltet"-Look
ledStyle = "background-color: #3B3B3B; border: 1px solid #606060;";
toolTipText = "Treiber nicht geladen.";
break;
case BCDriver::DriverState::NotPresent:
// FLUENT GRAY (Neutral)
// Wir machen es dunkelgrau mit hellem Rand -> "Ausgeschaltet"-Look
ledStyle = "background-color: #3B3B3B; border: 1px solid #606060;";
toolTipText = "Treiber nicht geladen.";
break;
case BCDriver::DriverState::Error:
// FLUENT RED (Critical)
ledStyle = "background-color: #C42B1C; border: 1px solid #A80000;";
toolTipText = "Fehler beim Laden des Treibers.";
break;
case BCDriver::DriverState::Error:
// FLUENT RED (Critical)
ledStyle = "background-color: #C42B1C; border: 1px solid #A80000;";
toolTipText = "Fehler beim Laden des Treibers.";
break;
// hier: dll vorhanden, Treiber geladen
case BCDriver::DriverState::Loaded:
case BCDriver::DriverState::Initialized:
case BCDriver::DriverState::Opened:
// FLUENT RED (Critical)
ledStyle = "background-color: #FF8C00; border: 1px solid #A80000;";
toolTipText = "Fehler beim Laden des Treibers.";
break;
case BCDriver::DriverState::DeviceReady:
// FLUENT GREEN (Success)
ledStyle = "background-color: #107C10; border: 1px solid #0E600E;";
toolTipText = "Verbindung erfolgreich hergestellt.";
break;
// hier: dll vorhanden, Treiber geladen
case BCDriver::DriverState::Loaded:
case BCDriver::DriverState::Initialized:
case BCDriver::DriverState::Opened:
// FLUENT RED (Critical)
ledStyle = "background-color: #FF8C00; border: 1px solid #A80000;";
toolTipText = "Fehler beim Laden des Treibers.";
break;
case BCDriver::DriverState::DeviceReady:
// FLUENT GREEN (Success)
ledStyle = "background-color: #107C10; border: 1px solid #0E600E;";
toolTipText = "Verbindung erfolgreich hergestellt.";
break;
}
// Styles anwenden (immer rund machen)
_led->setStyleSheet(ledStyle + "border-radius: 6px;");
/*
// Textfarbe setzen
_setStyleSheet(QString("color: %1; font-weight: %2;")
.arg(labelColor)
.arg(_state == BCDriver::DriverState::DeviceReady ? "bold" : "normal"));
*/
setToolTip(toolTipText);
}
/**
* @brief minimale click event
*/
void BCDriverStateWidget::mouseReleaseEvent(QMouseEvent* event)
{
if (event->button() == Qt::LeftButton)
{
emit clicked();
}
QWidget::mouseReleaseEvent(event);
}