instAdmin/Cpp/GisDes/SaRibbon/SARibbonBar/SARibbonGalleryItem.cpp
2024-10-29 22:24:50 +08:00

164 lines
3.4 KiB
C++

#include "SARibbonGalleryItem.h"
#include "SARibbonGalleryGroup.h"
SARibbonGalleryItem::SARibbonGalleryItem() : mFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable), mAction(nullptr)
{
}
SARibbonGalleryItem::SARibbonGalleryItem(const QString& text, const QIcon& icon)
: mFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable), mAction(nullptr)
{
setText(text);
setIcon(icon);
setTextAlignment(Qt::AlignTop | Qt::AlignHCenter);
}
SARibbonGalleryItem::SARibbonGalleryItem(QAction* act) : mFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable)
{
setTextAlignment(Qt::AlignTop | Qt::AlignHCenter);
setAction(act);
}
SARibbonGalleryItem::~SARibbonGalleryItem()
{
}
void SARibbonGalleryItem::setData(int role, const QVariant& data)
{
mDatas[ role ] = data;
}
QVariant SARibbonGalleryItem::data(int role) const
{
if (mAction) {
switch (role) {
case Qt::DisplayRole:
return (mAction->text());
case Qt::ToolTipRole:
return (mAction->toolTip());
case Qt::DecorationRole:
return (mAction->icon());
default:
break;
}
}
return (mDatas.value(role));
}
void SARibbonGalleryItem::setText(const QString& text)
{
setData(Qt::DisplayRole, text);
}
QString SARibbonGalleryItem::text() const
{
if (mAction) {
return (mAction->text());
}
return (data(Qt::DisplayRole).toString());
}
void SARibbonGalleryItem::setToolTip(const QString& text)
{
setData(Qt::ToolTipRole, text);
}
QString SARibbonGalleryItem::toolTip() const
{
if (mAction) {
return (mAction->toolTip());
}
return (data(Qt::ToolTipRole).toString());
}
void SARibbonGalleryItem::setIcon(const QIcon& ico)
{
setData(Qt::DecorationRole, ico);
}
QIcon SARibbonGalleryItem::icon() const
{
if (mAction) {
return (mAction->icon());
}
return (qvariant_cast< QIcon >(data(Qt::DecorationRole)));
}
bool SARibbonGalleryItem::isSelectable() const
{
return (mFlags & Qt::ItemIsSelectable);
}
void SARibbonGalleryItem::setSelectable(bool isSelectable)
{
if (isSelectable) {
mFlags |= Qt::ItemIsSelectable;
} else {
mFlags = (mFlags & (~Qt::ItemIsSelectable));
}
}
bool SARibbonGalleryItem::isEnable() const
{
if (mAction) {
return (mAction->isEnabled());
}
return (mFlags & Qt::ItemIsEnabled);
}
void SARibbonGalleryItem::setEnable(bool isEnable)
{
if (mAction) {
mAction->setEnabled(isEnable);
}
if (isEnable) {
mFlags |= Qt::ItemIsEnabled;
} else {
mFlags = (mFlags & (~Qt::ItemIsEnabled));
}
}
void SARibbonGalleryItem::setFlags(Qt::ItemFlags flag)
{
mFlags = flag;
if (mAction) {
mAction->setEnabled(flag & Qt::ItemIsEnabled);
}
}
Qt::ItemFlags SARibbonGalleryItem::flags() const
{
return (mFlags);
}
void SARibbonGalleryItem::setAction(QAction* act)
{
mAction = act;
if (nullptr == mAction) {
return;
}
if (act->isEnabled()) {
mFlags |= Qt::ItemIsEnabled;
} else {
mFlags = (mFlags & (~Qt::ItemIsEnabled));
}
}
QAction* SARibbonGalleryItem::action()
{
return (mAction);
}
void SARibbonGalleryItem::setTextAlignment(Qt::Alignment a)
{
setData(Qt::TextAlignmentRole, (int)a);
}
Qt::Alignment SARibbonGalleryItem::textAlignment() const
{
return qvariant_cast< Qt::Alignment >(data(Qt::TextAlignmentRole));
}