SARibbon 2.5.2
SARibbon wiki
载入中...
搜索中...
未找到
SARibbonGalleryGroup.h
1#ifndef SARIBBONGALLERYGROUP_H
2#define SARIBBONGALLERYGROUP_H
3#include "SARibbonGlobal.h"
4#include <QList>
5#include <QListView>
6#include <QStyledItemDelegate>
7#include "SARibbonGalleryItem.h"
8
18class SA_RIBBON_EXPORT SARibbonGalleryGroupItemDelegate : public QStyledItemDelegate
19{
20public:
22 explicit SARibbonGalleryGroupItemDelegate(SARibbonGalleryGroup* group, QObject* parent = nullptr);
26 virtual void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
27
29 virtual QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const override;
31 virtual void paintIconOnly(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const;
33 virtual void paintIconWithText(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const;
35 virtual void
36 paintIconWithTextWordWrap(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const;
37
38private:
40};
41
51class SA_RIBBON_EXPORT SARibbonGalleryGroupModel : public QAbstractListModel
52{
53 Q_OBJECT
54public:
56 SARibbonGalleryGroupModel(QObject* parent = Q_NULLPTR);
60 virtual int rowCount(const QModelIndex& parent) const Q_DECL_OVERRIDE;
62 virtual Qt::ItemFlags flags(const QModelIndex& index) const Q_DECL_OVERRIDE;
64 virtual QVariant data(const QModelIndex& index, int role) const Q_DECL_OVERRIDE;
66 virtual QModelIndex index(int row, int column, const QModelIndex& parent) const Q_DECL_OVERRIDE;
68 virtual bool setData(const QModelIndex& index, const QVariant& value, int role) Q_DECL_OVERRIDE;
70 void clear();
72 SARibbonGalleryItem* at(int row) const;
74 void insert(int row, SARibbonGalleryItem* item);
76 SARibbonGalleryItem* take(int row);
78 void append(SARibbonGalleryItem* item);
80 bool remove(const QString& act_object_name);
82 int itemSize() const;
83
84private:
85 QList< SARibbonGalleryItem* > mItems;
86};
87
99class SA_RIBBON_EXPORT SARibbonGalleryGroup : public QListView
100{
101 Q_OBJECT
102 SA_RIBBON_DECLARE_PRIVATE(SARibbonGalleryGroup)
103public:
113
118 {
119 DisplayOneRow = 1,
120 DisplayTwoRow = 2,
121 DisplayThreeRow = 3
122 };
123
125 SARibbonGalleryGroup(QWidget* w = 0);
126
128 virtual ~SARibbonGalleryGroup();
130 void recalcGridSize();
132 void recalcGridSize(int galleryHeight);
134 void setGalleryGroupStyle(GalleryGroupStyle style);
136 GalleryGroupStyle galleryGroupStyle() const;
138 void addItem(const QString& text, const QIcon& icon);
140 void addItem(SARibbonGalleryItem* item);
142 void addActionItem(QAction* act);
144 void addActionItemList(const QList< QAction* >& acts);
146 bool removeActionItem(QAction* act);
148 SARibbonGalleryGroupModel* groupModel() const;
150 void setGroupTitle(const QString& title);
152 QString groupTitle() const;
154 void selectByIndex(int i);
156 void setDisplayRow(DisplayRow r);
158 DisplayRow displayRow() const;
160 void setGridMinimumWidth(int w);
162 int gridMinimumWidth() const;
164 void setGridMaximumWidth(int w);
166 int gridMaximumWidth() const;
168 QActionGroup* actionGroup() const;
170 int gridRowCount() const;
172 int gridColumnCount() const;
174 int preferredHeightForWidth(int w) const;
176 bool hasHeightForWidth() const override;
178 int heightForWidth(int w) const override;
179private Q_SLOTS:
180 void onItemClicked(const QModelIndex& index);
181 void onItemEntered(const QModelIndex& index);
182Q_SIGNALS:
194 void groupTitleChanged(const QString& title);
208 void triggered(QAction* action);
224 void hovered(QAction* action);
225
226private:
228 SARibbonGalleryGroupModel* setupGroupModel();
229};
230
231#endif // SARIBBONGALLERYGROUP_H
Definition SARibbonGalleryGroup.h:19
Definition SARibbonGalleryGroup.h:52
Definition SARibbonGalleryGroup.h:100
void hovered(QAction *action)
void triggered(QAction *action)
void groupTitleChanged(const QString &title)
GalleryGroupStyle
GalleryGroup display style
Definition SARibbonGalleryGroup.h:108
@ IconWithWordWrapText
Icon with text that wraps, only works for DisplayOneRow
Definition SARibbonGalleryGroup.h:110
@ IconWithText
Icon with text
Definition SARibbonGalleryGroup.h:109
DisplayRow
Define the number of icon rows displayed under a panel
Definition SARibbonGalleryGroup.h:118
Definition SARibbonGalleryItem.h:20