You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
#ifndef SACOLORMENU_H
|
|
|
|
|
#define SACOLORMENU_H
|
|
|
|
|
#include <QMenu>
|
|
|
|
|
#include "SAColorWidgetsGlobal.h"
|
|
|
|
|
class QWidgetAction;
|
|
|
|
|
class SAColorPaletteGridWidget;
|
|
|
|
|
class SAColorGridWidget;
|
|
|
|
|
class SAColorToolButton;
|
|
|
|
|
/**
|
|
|
|
|
* @brief 标准颜色菜单
|
|
|
|
|
*/
|
|
|
|
|
class SA_COLOR_WIDGETS_API SAColorMenu : public QMenu
|
|
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
SA_COLOR_WIDGETS_DECLARE_PRIVATE(SAColorMenu)
|
|
|
|
|
public:
|
|
|
|
|
explicit SAColorMenu(QWidget* parent = nullptr);
|
|
|
|
|
explicit SAColorMenu(const QString& title, QWidget* parent = nullptr);
|
|
|
|
|
~SAColorMenu();
|
|
|
|
|
// 快速绑定colorbtn
|
|
|
|
|
void bindToColorToolButton(SAColorToolButton* btn);
|
|
|
|
|
// ThemeColorsPalette对应的action
|
|
|
|
|
QWidgetAction* themeColorsPaletteAction() const;
|
|
|
|
|
// CustomColorsWidget对应的action
|
|
|
|
|
QWidgetAction* getCustomColorsWidgetAction() const;
|
|
|
|
|
// 自定义颜色action
|
|
|
|
|
QAction* customColorAction() const;
|
|
|
|
|
// 获取ThemeColorsPalette
|
|
|
|
|
SAColorPaletteGridWidget* colorPaletteGridWidget() const;
|
|
|
|
|
// 获取自定义颜色grid
|
|
|
|
|
SAColorGridWidget* customColorsWidget() const;
|
|
|
|
|
// 构建无颜色action,默认无颜色action是没有的
|
|
|
|
|
void enableNoneColorAction(bool on = true);
|
|
|
|
|
// 获取None Color Action,注意,enableNoneColorAction(true),之后才不是nullptr
|
|
|
|
|
QAction* noneColorAction() const;
|
|
|
|
|
public slots:
|
|
|
|
|
// 这是一个辅助槽函数,为了让用户自定义的其他action也能关联menu,可以调用此槽函数,实现selectedColor信号以及menu的隐藏
|
|
|
|
|
void emitSelectedColor(const QColor& c);
|
|
|
|
|
signals:
|
|
|
|
|
/**
|
|
|
|
|
* @brief 选择了颜色触发的信号
|
|
|
|
|
* @param c
|
|
|
|
|
*/
|
|
|
|
|
void selectedColor(const QColor& c);
|
|
|
|
|
private slots:
|
|
|
|
|
void onCustomColorActionTriggered(bool on);
|
|
|
|
|
void onNoneColorActionTriggered(bool on);
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
void init(const QList< QColor >& themeCls);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif // SACOLORMENU_H
|