diff --git a/KonkorpColorPicker.pro b/KonkorpColorPicker.pro index 48a66cf..dfa0402 100644 --- a/KonkorpColorPicker.pro +++ b/KonkorpColorPicker.pro @@ -4,6 +4,12 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 +VERSION = 0.3.0.0 +QMAKE_TARGET_COMPANY = Rurigk +QMAKE_TARGET_PRODUCT = ColorPicker +QMAKE_TARGET_DESCRIPTION = Desktop color picker +QMAKE_TARGET_COPYRIGHT = LGPLv3 + # The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the diff --git a/colorpanel.cpp b/colorpanel.cpp index 85263d0..ce6963e 100644 --- a/colorpanel.cpp +++ b/colorpanel.cpp @@ -20,6 +20,7 @@ ColorPanel::ColorPanel(QWidget *parent) { ColorPicker *colorPicker = new ColorPicker(); connect(colorPicker, &ColorPicker::ColorPicked, this, &ColorPanel::ColorPicked); + connect(colorPicker, &ColorPicker::PickerCancelled, this, &ColorPanel::PickerCancelled); colorPicker->setMouseTracking(true); pickerWindows->push_back(colorPicker); } @@ -174,6 +175,15 @@ void ColorPanel::ColorPicked(QColor color) ShowNotification("Color copied to clipboard", color.name(QColor::HexRgb)); } +void ColorPanel::PickerCancelled() +{ + for(int wIndex = 0; wIndex < pickerWindows->count(); wIndex++) + { + ColorPicker *picker = pickerWindows->at(wIndex); + picker->hide(); + } +} + void ColorPanel::ColorPickedFromHistory(QColor color) { //qDebug() << "Picked from history: " << color.name(QColor::HexRgb); @@ -186,7 +196,7 @@ void ColorPanel::ColorPickedFromToolbar(int index) { if(colorPickerHistory->history->count() - 1 >= index) { - qDebug() << (colorPickerHistory->history->count()-1) - index; + //qDebug() << (colorPickerHistory->history->count()-1) - index; QColor color = colorPickerHistory->history->at((colorPickerHistory->history->count()-1) - index); QClipboard *clipboard = QGuiApplication::clipboard(); clipboard->setText(color.name(QColor::HexRgb).toUpper()); diff --git a/colorpanel.h b/colorpanel.h index 2fd751a..e2cc321 100644 --- a/colorpanel.h +++ b/colorpanel.h @@ -44,6 +44,7 @@ private slots: void ColorHoveredFromHistory(QColor color); void ColorUnhoveredFromHistory(); void ColorPickedFromToolbar(int index); + void PickerCancelled(); private: Ui::ColorPanel *ui; diff --git a/colorpicker.cpp b/colorpicker.cpp index ddbd7b1..02a7598 100644 --- a/colorpicker.cpp +++ b/colorpicker.cpp @@ -11,6 +11,8 @@ ColorPicker::ColorPicker(QWidget *parent) : //setWindowFlags(Qt::FramelessWindowHint| Qt::WindowSystemMenuHint | Qt::WindowStaysOnTopHint | Qt::ToolTip); setMouseTracking(true); mousePos = new QPoint(-1, -1); + shortcut = new QShortcut(QKeySequence(Qt::Key_Escape), this); + connect(shortcut, &QShortcut::activated, this, &ColorPicker::EscapeKeyPressed); } ColorPicker::~ColorPicker() @@ -72,19 +74,26 @@ void ColorPicker::mouseMoveEvent(QMouseEvent * event) else { mousePos = mousePoint; - update((mousePos->x() - (rectSize / 2)) - 30, - (mousePos->y() - (rectSize / 2)) - 30, - rectSize + 60, rectSize + 60); + update((mousePos->x() - (rectSize / 2)) - 50, + (mousePos->y() - (rectSize / 2)) - 50, + rectSize + 100, rectSize + 100); } } void ColorPicker::mousePressEvent(QMouseEvent *event) { - QImage image = backgroundPixmap.toImage(); - QColor color = image.pixel(event->pos().x(), event->pos().y()); - ColorPicked(color); - backgroundPixmap = emptyPixmap; - mousePos = new QPoint(-1, -1); + if(event->button() == Qt::LeftButton) + { + QImage image = backgroundPixmap.toImage(); + QColor color = image.pixel(event->pos().x(), event->pos().y()); + ColorPicked(color); + backgroundPixmap = emptyPixmap; + mousePos = new QPoint(-1, -1); + } + else + { + PickerCancelled(); + } } void ColorPicker::enterEvent(QEvent *) @@ -98,3 +107,9 @@ void ColorPicker::leaveEvent(QEvent *) drawLens = false; repaint(); } + +void ColorPicker::EscapeKeyPressed() +{ + qDebug() << "Escpressed"; + PickerCancelled(); +} diff --git a/colorpicker.h b/colorpicker.h index 98db9ff..745099f 100644 --- a/colorpicker.h +++ b/colorpicker.h @@ -6,6 +6,7 @@ #include #include #include +#include namespace Ui { class ColorPicker; @@ -24,6 +25,7 @@ class ColorPicker : public QWidget signals: void ColorPicked(QColor color); + void PickerCancelled(); private: Ui::ColorPicker *ui; @@ -31,7 +33,9 @@ class ColorPicker : public QWidget void mouseMoveEvent(QMouseEvent *event); void enterEvent(QEvent *event); void leaveEvent(QEvent *event); + void EscapeKeyPressed(); QPoint *mousePos; + QShortcut *shortcut; bool drawLens = false; int rectSize = 100; int lensRectSize = 20;