X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fcolorpickerwidget.h;h=ac9913ead55399ba7e3083eea976e828e87341dc;hb=c3302003093710ee247ad84c0fe2ef3c579d417f;hp=12e892dd95dbf3a4728eae22e0da925b3490456a;hpb=0e91c3023f54b55ead49192cd09e048e04404e28;p=kdenlive diff --git a/src/colorpickerwidget.h b/src/colorpickerwidget.h index 12e892dd..ac9913ea 100644 --- a/src/colorpickerwidget.h +++ b/src/colorpickerwidget.h @@ -23,13 +23,27 @@ #include #include +#include -class QSpinBox; +class QFrame; #ifdef Q_WS_X11 #include -class KCDPickerFilter; #endif + +class MyFrame : public QFrame +{ + Q_OBJECT +public: + explicit MyFrame(QWidget* parent = 0); + +protected: + void hideEvent ( QHideEvent * event ); + +signals: + void getColor(); +}; + /** * @class ColorPickerWidget * @brief A widget to pick a color anywhere on the screen. @@ -44,23 +58,20 @@ class ColorPickerWidget : public QWidget public: /** @brief Sets up the widget. */ - ColorPickerWidget(QWidget *parent = 0); + explicit ColorPickerWidget(QWidget *parent = 0); /** @brief Makes sure the event filter is removed. */ virtual ~ColorPickerWidget(); protected: - virtual void mousePressEvent(QMouseEvent *event); - virtual void mouseReleaseEvent(QMouseEvent *event); - virtual void keyPressEvent(QKeyEvent *event); + void mousePressEvent(QMouseEvent *event); + void mouseReleaseEvent(QMouseEvent *event); + void mouseMoveEvent(QMouseEvent *event); + bool eventFilter(QObject *object, QEvent *event); private: /** @brief Closes the event filter and makes mouse and keyboard work again on other widgets/windows. */ void closeEventFilter(); - /** @brief Calculates the average color for a rect around @param pos with m_size->value() as width. */ - - QColor averagePickedColor(const QPoint pos); - /** @brief Color of the screen at point @param p. * @param p Position of color requested * @param destroyImage (optional) Whether or not to keep the XImage in m_image @@ -68,18 +79,26 @@ private: QColor grabColor(const QPoint &p, bool destroyImage = true); bool m_filterActive; - QSpinBox *m_size; + QRect m_grabRect; + QFrame *m_grabRectFrame; #ifdef Q_WS_X11 XImage *m_image; - KCDPickerFilter *m_filter; -#endif - +#else + QImage m_image; +#endif + private slots: /** @brief Sets up an event filter for picking a color. */ void slotSetupEventFilter(); + /** @brief Calculates the average color for the pixels in the rect m_grabRect and emits colorPicked. */ + void slotGetAverageColor(); + signals: - void colorPicked(QColor); + void colorPicked(const QColor&); + void displayMessage(const QString&, int); + /** @brief When user wants to pick a color, it's better to disable filter so we get proper color values. */ + void disableCurrentFilter(bool); }; #endif