topquickbuttonv2.h 1.4 KB
#ifndef TOPQUICKBUTTONV2_H
#define TOPQUICKBUTTONV2_H

#include <QToolButton>
#include <QVariant>
#include <QWidget>

class TopClassAbs;

class TopQuickButtonV2Private;
class TopQuickButtonV2 : public QToolButton
{
    Q_OBJECT

signals:
    void closeTrigged();
    void fixTrigged(bool iBol);

public:
    enum Type
    {
        Type_Shortcut,
        Type_Group,
        Type_Action
    };

    explicit TopQuickButtonV2(QWidget *parent = 0);
    ~TopQuickButtonV2();

public slots:
    void setUid(const QString &iStr);
    QString uid() const;

    void setType(Type iType);
    Type type() const;

    void setData(const QVariant &iDataVar);
    QVariant data() const;

    void setFixed(bool iBol);
    bool isFixed() const;

    void setModified(bool iBol);
    bool isModified() const;

    void setClosable(bool iBol);
    bool isClosable() const;

    void setActived(bool iBol);
    bool isActived() const;

    void setOpened(bool iBol);
    bool isOpened() const;

    void setUnfixable(bool iIsUnfixableBol);
    bool isUnfixable() const;

public slots:

private slots:
    void onCustomContextMenuRequested(const QPoint &iPos);
    void onCloseActionTrigged();
    void onFixedActionTrigged();
    void changeStyleSheet();

protected:
    const QScopedPointer<TopQuickButtonV2Private> d_ptr;


private:
    Q_DISABLE_COPY(TopQuickButtonV2)
    Q_DECLARE_PRIVATE(TopQuickButtonV2)
};

#endif // TOPQUICKBUTTONV2_H