/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qt Creator. ** ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3 as published by the Free Software ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will ** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ #pragma once #include "qmleditorwidgets_global.h" #include #include namespace QmlEditorWidgets { class QMLEDITORWIDGETS_EXPORT ColorButton : public QToolButton { Q_OBJECT Q_PROPERTY(QVariant color READ color WRITE setColor NOTIFY colorChanged) Q_PROPERTY(bool noColor READ noColor WRITE setNoColor) Q_PROPERTY(bool showArrow READ showArrow WRITE setShowArrow) public: ColorButton(QWidget *parent = 0) : QToolButton (parent), m_colorString(QLatin1String("#ffffff")), m_noColor(false), m_showArrow(true) {} void setColor(const QVariant &colorStr); QVariant color() const { return m_colorString; } QColor convertedColor() const; bool noColor() const { return m_noColor; } void setNoColor(bool f) { m_noColor = f; update(); } bool showArrow() const { return m_showArrow; } void setShowArrow(bool b) { m_showArrow = b; } signals: void colorChanged(); protected: void paintEvent(QPaintEvent *event) override; private: QString m_colorString; bool m_noColor; bool m_showArrow; }; } //QmlEditorWidgets