diff --git a/src/screenoverlay/screenoverlay.cpp b/src/screenoverlay/screenoverlay.cpp index b4f873e..5b622a2 100644 --- a/src/screenoverlay/screenoverlay.cpp +++ b/src/screenoverlay/screenoverlay.cpp @@ -143,7 +143,7 @@ void ScreenOverlay::updateMag() { QPointF magnifierPos = cursorPos() + QPointF(5, 5); magnifier->setPos(magnifierPos); - magnifier->setPixmap(utils::extend(pixmap(), pixCnt, utils::invertColor(highlight())) + magnifier->setPixmap(utils::extend(pixmap(), pixCnt, foreground()) .copy(magnifierTopLeft.x() + pixCnt, magnifierTopLeft.y() + pixCnt, pixCnt, pixCnt) .scaled(110, 110)); QPointF bottomRight = magnifierHintBox->sceneBoundingRect().bottomRight(); @@ -246,6 +246,7 @@ void ScreenOverlay::loadSettings() { setHighlight(settings::settings().value("highlightColor", QColor(Qt::cyan)).value()); setMovementPattern(settings::settings().value("movementPattern", MP_HJKL).value()); setGrid(settings::settings().value("gridEnabled", true).toBool()); + setForeground(settings::settings().value("foregroundColor", QColor(Qt::white)).value()); } void ScreenOverlay::contextMenuEvent(QGraphicsSceneContextMenuEvent *e) { @@ -299,3 +300,12 @@ ScreenOverlay::MovementPattern ScreenOverlay::movementPattern() { bool ScreenOverlay::keyboardActiveSelection() { return selectActive; } + +QColor ScreenOverlay::foreground() { + return _foreground; +} + +void ScreenOverlay::setForeground(QColor fg) { + _foreground = fg; + magnifierHint->setDefaultTextColor(fg); +} diff --git a/src/screenoverlay/screenoverlay.hpp b/src/screenoverlay/screenoverlay.hpp index a7a505a..d6f8d1c 100644 --- a/src/screenoverlay/screenoverlay.hpp +++ b/src/screenoverlay/screenoverlay.hpp @@ -21,6 +21,8 @@ public: void updateMagnifierGrid(); QColor highlight(); void setHighlight(QColor highlight); + QColor foreground(); + void setForeground(QColor foreground); bool grid(); void setGrid(bool grid); QPointF cursorPos(); @@ -64,7 +66,7 @@ private: QGraphicsPolygonItem *cursorItem = nullptr; QList gridRectsX; QList gridRectsY; - QColor _highlight = Qt::cyan; + QColor _highlight = Qt::cyan, _foreground = Qt::white; bool _grid = true; bool selectActive = false; QPixmap _pixmap; diff --git a/src/screenoverlay/screenoverlaysettings.cpp b/src/screenoverlay/screenoverlaysettings.cpp index 09c8021..8577931 100644 --- a/src/screenoverlay/screenoverlaysettings.cpp +++ b/src/screenoverlay/screenoverlaysettings.cpp @@ -11,17 +11,30 @@ ScreenOverlaySettings::ScreenOverlaySettings(ScreenOverlay *overlay, QWidget *pa ui->gridBox->setChecked(overlay->grid()); ui->movementPattern->setCurrentIndex(overlay->movementPattern()); highlight = overlay->highlight(); + fg = overlay->foreground(); + ui->preview->setStyleSheet(QString("background-color: %1; color: %2;").arg(highlight.name()).arg(fg.name())); } void ScreenOverlaySettings::on_buttonBox_accepted() { settings::settings().setValue("gridEnabled", ui->gridBox->isChecked()); settings::settings().setValue("highlightColor", highlight); + settings::settings().setValue("foregroundColor", fg); settings::settings().setValue("movementPattern", ui->movementPattern->currentIndex()); overlay->loadSettings(); } +void ScreenOverlaySettings::on_fgColor_pressed() { + QColor fog = QColorDialog::getColor("Foreground color", this, tr("Foreground color")); + if (!fog.isValid()) return; + fg = fog; + ui->preview->setStyleSheet(QString("background-color: %1; color: %2;").arg(highlight.name()).arg(fg.name())); +} + void ScreenOverlaySettings::on_setHighlight_pressed() { - highlight = QColorDialog::getColor(highlight, this, tr("Highlight color")); + QColor hl = QColorDialog::getColor(highlight, this, tr("Highlight color")); + if (!hl.isValid()) return; + highlight = hl; + ui->preview->setStyleSheet(QString("background-color: %1; color: %2;").arg(highlight.name()).arg(fg.name())); } ScreenOverlaySettings::~ScreenOverlaySettings() { diff --git a/src/screenoverlay/screenoverlaysettings.hpp b/src/screenoverlay/screenoverlaysettings.hpp index 061f5eb..1ad8cc6 100644 --- a/src/screenoverlay/screenoverlaysettings.hpp +++ b/src/screenoverlay/screenoverlaysettings.hpp @@ -18,10 +18,11 @@ public: private slots: void on_buttonBox_accepted(); void on_setHighlight_pressed(); + void on_fgColor_pressed(); private: Ui::ScreenOverlaySettings *ui; - QColor highlight; + QColor fg, highlight; ScreenOverlay *overlay; }; diff --git a/src/screenoverlay/screenoverlaysettings.ui b/src/screenoverlay/screenoverlaysettings.ui index 0dd1cd5..920d503 100644 --- a/src/screenoverlay/screenoverlaysettings.ui +++ b/src/screenoverlay/screenoverlaysettings.ui @@ -6,8 +6,8 @@ 0 0 - 208 - 179 + 214 + 282 @@ -48,10 +48,36 @@ - - - Set highlight color + + + Colors + + + + + Set highlight color + + + + + + + Set foreground color + + + + + + + Preview + + + Qt::AlignCenter + + + +