From 515c979e41c75acc7370d34788c0a551903d3f0d Mon Sep 17 00:00:00 2001 From: lupoDharkael Date: Wed, 24 May 2017 14:43:09 +0200 Subject: [PATCH] Add color for selected button --- src/capture/button.cpp | 2 +- src/capture/button.h | 2 +- src/capture/buttonhandler.h | 2 +- src/capture/capturewidget.cpp | 20 +++++++++++++++++--- src/capture/capturewidget.h | 4 +++- 5 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/capture/button.cpp b/src/capture/button.cpp index 4d9e7aca..11292b4b 100644 --- a/src/capture/button.cpp +++ b/src/capture/button.cpp @@ -191,7 +191,7 @@ void Button::mouseReleaseEvent(QMouseEvent *e) { // } else if (m_buttonType == Type::colorPicker) { // } - Q_EMIT typeEmited(m_buttonType); + Q_EMIT pressedButton(this); } m_pressed = false; } diff --git a/src/capture/button.h b/src/capture/button.h index f6b8d0fa..583ac984 100644 --- a/src/capture/button.h +++ b/src/capture/button.h @@ -74,7 +74,7 @@ protected: signals: void hovered(); void mouseExited(); - void typeEmited(Type); + void pressedButton(Button *); private: Button(QWidget *parent = 0); diff --git a/src/capture/buttonhandler.h b/src/capture/buttonhandler.h index d24d5c81..7c25094c 100644 --- a/src/capture/buttonhandler.h +++ b/src/capture/buttonhandler.h @@ -42,8 +42,8 @@ public: private: QVector getHPoints(const QPoint ¢er, const int elements) const; QVector getVPoints(const QPoint ¢er, const int elements) const; - QVector m_vectorButtons; + int m_distance; }; diff --git a/src/capture/capturewidget.cpp b/src/capture/capturewidget.cpp index 2ff58ada..465ccd64 100644 --- a/src/capture/capturewidget.cpp +++ b/src/capture/capturewidget.cpp @@ -38,7 +38,7 @@ #include #include #include -#include +#include // CaptureWidget is the main component used to capture the screen. It contains an // are of selection with its respective buttons. @@ -83,6 +83,9 @@ CaptureWidget::CaptureWidget(QWidget *parent) : resize(m_screenshot->getScreenshot().size()); // init interface color m_uiColor = QSettings().value("uiColor").value(); + m_reversedUiColor = QColor(255 - m_uiColor.red(), + 255 - m_uiColor.green(), + 255 - m_uiColor.blue()); show(); m_colorPicker = new ColorPicker(this); @@ -107,9 +110,10 @@ void CaptureWidget::redefineButtons() { if (t == Button::Type::selectionIndicator) { m_sizeIndButton = b; } + connect(b, &Button::hovered, this, &CaptureWidget::enterButton); connect(b, &Button::mouseExited, this, &CaptureWidget::leaveButton); - connect(b, &Button::typeEmited, this, &CaptureWidget::setState); + connect(b, &Button::pressedButton, this, &CaptureWidget::setState); vectorButtons << b; } m_buttonHandler->setButtons(vectorButtons); @@ -428,7 +432,8 @@ void CaptureWidget::downResize() { } } -void CaptureWidget::setState(Button::Type t) { +void CaptureWidget::setState(Button *b) { + Button::Type t = b->getButtonType(); if(t == Button::Type::selectionIndicator || //t == Button::Type::mouseVisibility || t == Button::Type::colorPicker) { @@ -450,6 +455,15 @@ void CaptureWidget::setState(Button::Type t) { uploadScreenshot(); } else { m_state = newState; + if (m_lastPressedButton) { + m_lastPressedButton->setGraphicsEffect(0); + } + m_lastPressedButton = b; + if (m_state != Button::Type::move) { + QGraphicsColorizeEffect *e =new QGraphicsColorizeEffect(this); + e->setColor(m_reversedUiColor); + m_lastPressedButton->setGraphicsEffect(e); + } } } diff --git a/src/capture/capturewidget.h b/src/capture/capturewidget.h index f30dfeaf..9ad1e5c1 100644 --- a/src/capture/capturewidget.h +++ b/src/capture/capturewidget.h @@ -65,7 +65,7 @@ private slots: void upResize(); void downResize(); - void setState(Button::Type); + void setState(Button *); protected: void paintEvent(QPaintEvent *); @@ -112,11 +112,13 @@ private: QRect getExtendedSelection() const; QVector m_modifications; QPointer