]> git.sesse.net Git - kdenlive/blobdiff - src/colorpickerwidget.h
Const'ref
[kdenlive] / src / colorpickerwidget.h
index 12e892dd95dbf3a4728eae22e0da925b3490456a..ac9913ead55399ba7e3083eea976e828e87341dc 100644 (file)
 
 #include <QtCore>
 #include <QWidget>
+#include <QFrame>
 
-class QSpinBox;
+class QFrame;
 #ifdef Q_WS_X11
 #include <X11/Xlib.h>
-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