Krita Source Code Documentation
Loading...
Searching...
No Matches
KisStorageChooserWidget Class Reference

#include <KisStorageChooserWidget.h>

+ Inheritance diagram for KisStorageChooserWidget:

Public Member Functions

 KisStorageChooserWidget (const QString &resourceType, QWidget *parent=0)
 
 ~KisStorageChooserWidget ()
 
- Public Member Functions inherited from KisPopupButton
void adjustPosition ()
 adjustPosition adjusts the position of the popup widget based on the position of this button and the size of the widget
 
bool isPopupWidgetVisible ()
 
 KisPopupButton (QWidget *parent)
 
void setArrowVisible (bool v)
 
void setPopupWidget (QWidget *widget)
 
void setPopupWidgetWidth (int w)
 
 ~KisPopupButton () override
 

Private Slots

void activated (const QModelIndex &index)
 

Private Attributes

QString m_resourceType
 

Additional Inherited Members

- Public Slots inherited from KisPopupButton
void hidePopupWidget ()
 
void setPopupWidgetDetached (bool detach)
 
void setPopupWidgetVisible (bool visible)
 
void showPopupWidget ()
 
- Protected Member Functions inherited from KisPopupButton
void paintEvent (QPaintEvent *event) override
 
void paintPopupArrow ()
 

Detailed Description

Definition at line 30 of file KisStorageChooserWidget.h.

Constructor & Destructor Documentation

◆ KisStorageChooserWidget()

KisStorageChooserWidget::KisStorageChooserWidget ( const QString & resourceType,
QWidget * parent = 0 )

Definition at line 117 of file KisStorageChooserWidget.cpp.

118 : KisPopupButton(parent)
119 , m_resourceType(resourceType)
120{
121 QListView *view = new QListView(this);
122
124
125 proxyModel->setSourceModel(KisStorageModel::instance());
126
127 QStringList filter;
131 }
134 }
135
137 view->setModel(proxyModel);
138 view->setIconSize(QSize(64, 64));
139 view->setItemDelegate(new KisStorageChooserDelegate(this));
140 view->setSelectionMode(QAbstractItemView::SingleSelection);
141 connect(view, SIGNAL(clicked(QModelIndex)), this, SLOT(activated(QModelIndex)));
142 this->setPopupWidget(view);
143}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void setPopupWidget(QWidget *widget)
KisPopupButton(QWidget *parent)
static QString storageTypeToUntranslatedString(StorageType storageType)
void activated(const QModelIndex &index)
@ ByStorageType
Pass a string list of storage types.
void setFilter(FilterType filterType, QVariant filter)
static KisStorageModel * instance()
const QString LayerStyles
const QString Brushes

References activated(), KisResourceStorage::AdobeBrushLibrary, KisResourceStorage::AdobeStyleLibrary, ResourceType::Brushes, KisResourceStorage::Bundle, KisStorageFilterProxyModel::ByStorageType, connect(), KisStorageModel::instance(), ResourceType::LayerStyles, m_resourceType, KisStorageFilterProxyModel::setFilter(), KisPopupButton::setPopupWidget(), and KisResourceStorage::storageTypeToUntranslatedString().

◆ ~KisStorageChooserWidget()

KisStorageChooserWidget::~KisStorageChooserWidget ( )

Definition at line 186 of file KisStorageChooserWidget.cpp.

187{
188
189}

Member Function Documentation

◆ activated

void KisStorageChooserWidget::activated ( const QModelIndex & index)
privateslot

Definition at line 145 of file KisStorageChooserWidget.cpp.

146{
147 if (!index.isValid()) return;
148
149 bool active = index.data(Qt::UserRole + KisStorageModel::Active).value<bool>();
150 KisStorageModel::instance()->setData(index, !active, Qt::CheckStateRole);
151
153 proxy.setSourceModel(KisStorageModel::instance());
154
155 QStringList filter;
159 }
162 }
163
165
166 QString warning;
167 if (!proxy.rowCount()) {
168 warning = i18n("All bundles have been deactivated.");
169 }
170
171 KisResourceModel resourceModel(m_resourceType);
172 resourceModel.setResourceFilter(KisResourceModel::ShowActiveResources);
173 if (!resourceModel.rowCount()) {
174 warning += i18n("\nThere are no resources of type %1 available. Please enable at least one bundle.", ResourceName::resourceTypeToName(m_resourceType));
175
176 }
177
178 if (!warning.isEmpty()) {
179 QMessageBox::critical(qApp->activeWindow(), i18nc("@title:window", "Krita"), warning);
180 }
181
182 repaint(); // this helps the chooser widget update the active state checkbox. The first checkbox doesn't repaint correctly without it
183
184}
The KisResourceModel class provides the main access to resources. It is possible to filter the resour...
bool setData(const QModelIndex &index, const QVariant &value, int role) override
Enable and disable the storage represented by index.
KRITARESOURCES_EXPORT QString resourceTypeToName(const QString &resourceType)

References KisStorageModel::Active, KisResourceStorage::AdobeBrushLibrary, KisResourceStorage::AdobeStyleLibrary, ResourceType::Brushes, KisResourceStorage::Bundle, KisStorageFilterProxyModel::ByStorageType, KisStorageModel::instance(), ResourceType::LayerStyles, m_resourceType, ResourceName::resourceTypeToName(), KisStorageModel::setData(), KisStorageFilterProxyModel::setFilter(), KisResourceModel::setResourceFilter(), KisAbstractResourceFilterInterface::ShowActiveResources, and KisResourceStorage::storageTypeToUntranslatedString().

Member Data Documentation

◆ m_resourceType

QString KisStorageChooserWidget::m_resourceType
private

Definition at line 42 of file KisStorageChooserWidget.h.


The documentation for this class was generated from the following files: