QtCanpool 3.3.0
载入中...
搜索中...
未找到
ribbonquickaccessbar_p.h
浏览该文件的文档.
1
5#pragma once
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include "qxribbon_global.h"
19#include <QToolBar>
20#include <QToolButton>
21#include <QAction>
22
24
25class RibbonQuickAccessBar;
26
27/* RibbonQuickAccessButton */
28class RibbonQuickAccessButton : public QToolButton
29{
30 Q_OBJECT
31public:
32 explicit RibbonQuickAccessButton(QWidget *parent = Q_NULLPTR);
34public:
35 virtual QSize sizeHint() const;
36
37public Q_SLOTS:
38 void setOrientation(Qt::Orientation orientation);
39private:
40 Qt::Orientation m_orientation;
41};
42
43/* QuickAccessAction */
44class QuickAccessAction : public QAction
45{
46 Q_OBJECT
47public:
48 QuickAccessAction(QObject *p, QAction *srcAction)
49 : QAction(srcAction->text(), p)
50 , m_srcAction(srcAction)
51 {
52 setCheckable(true);
53 setChecked(m_srcAction->isVisible());
54
55 connect(m_srcAction, &QAction::changed, this, [this]() {
56 setChecked(m_srcAction->isVisible());
57 });
58 }
59 void update()
60 {
61 setText(m_srcAction->text());
62 }
63public:
64 QAction *m_srcAction;
65};
66
67/* RibbonQuickAccessBarPrivate */
68class RibbonQuickAccessBarPrivate : public QObject
69{
70 Q_OBJECT
72public:
75public:
76 void init();
77 QuickAccessAction *findQuickAccessAction(QAction *action) const;
78 void updateAction(QAction *action);
79 void setActionVisible(QAction *action, bool visible);
80 void setActionVisible(QuickAccessAction *wrapper, QAction *action, bool visible);
81 void setActionShown(QuickAccessAction *action, QAction *srcAction, bool visible);
82 QAction *nextSrcAction(QAction *action);
83private Q_SLOTS:
84 void customizeAction(QAction *action);
85 void aboutToShowCustomizeMenu();
86 void aboutToHideCustomizeMenu();
87public:
88 QMenu *m_menu;
90 QActionGroup *m_customizeGroup;
92 QList<QAction *> m_actionList;
95};
96
QuickAccessAction(QObject *p, QAction *srcAction)
#define QX_DECLARE_PUBLIC(Class)
#define Q_NULLPTR
Copyleft (C) 2025 maminjie canpool@163.com SPDX-License-Identifier: MulanPSL-2.0
#define QX_RIBBON_END_NAMESPACE
#define QX_RIBBON_BEGIN_NAMESPACE
QColor text