10#include <QActionGroup>
15#include <QInputDialog>
17#include <klocalizedstring.h>
41 if (e->button() == Qt::LeftButton)
45 QListWidget::mouseReleaseEvent(e);
49 : QDockWidget(i18n(
"Brush Preset History"))
56 m_presetHistory->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
86 setEnabled(canvas != 0);
89 m_canvas->disconnectCanvasObserver(
this);
90 disconnect(
m_canvas->resourceManager());
101 QStringList presetHistory = cfg.
readEntry<QString>(
"presethistory",
"").split(
",", Qt::SkipEmptyParts);
105 Q_FOREACH (
const QString &
p, presetHistory) {
109 addPreset(
p, QPixmap::fromImage(resource->image()), resource->resourceId());
140 presetHistory.insert(0, item->text());
143 cfg.
writeEntry(
"presethistory", presetHistory.join(
","));
154 m_canvas->viewManager()->paintOpBox()->resourceSelected(preset);
172 addPreset(preset->name(), QPixmap::fromImage(preset->image()), preset->resourceId());
202 int i = QInputDialog::getInt(
this, i18n(
"Set Number of Brushes Shown"),
203 i18n(
"Number of Brushes Shown:"),
m_presetLimit, 1, 100, 10, &ok);
244 int topPosition = position - 1;
245 for (; topPosition >= 0; --topPosition) {
255 if (topPosition >= 0) {
268 if (resourceId >= 0) {
269 QListWidgetItem *item =
new QListWidgetItem(icon, name);
287 if (index.isValid()) {
300 QAction *actionForget = 0;
302 actionForget =
new QAction(i18n(
"Forget \"%1\"", presetItem->text()), &contextMenu);
303 contextMenu.addAction(actionForget);
305 contextMenu.addAction(i18n(
"Clear History"),
m_presetHistory, SLOT(clear()));
306 contextMenu.addSeparator();
307 contextMenu.addSection(i18n(
"History Behavior:"));
311 contextMenu.addSeparator();
312 contextMenu.addAction(i18n(
"Configure Number of Brushes Shown..."),
this, SLOT(
showPresetLimitDialog()));
313 QAction *triggered = contextMenu.exec(
m_presetHistory->mapToGlobal(pos));
315 if (presetItem && triggered == actionForget) {
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void writeEntry(const QString &name, const T &value)
T readEntry(const QString &name, const T &defaultValue=T())
KoResourceSP resourceForId(int id) const
QVector< KoResourceSP > resourcesForName(QString name) const
QModelIndex indexForResourceId(int resourceId) const override
indexFromResource
static KisResourceServerProvider * instance()
KisPaintOpPresetResourceServer * paintOpPresetServer()
KisResourceModel * resourceModel() const
void showPresetLimitDialog()
void addPreset(QString name, QIcon icon, int resourceId)
int bubblePreset(int position)
void slotPresetLimitChanged(int presetLimit)
QActionGroup * m_sortingModes
void slotScrollerStateChanged(QScroller::State state)
void slotSortingModeChanged(QAction *action)
QAction * m_actionSortStatic
KisResourceModel * m_resourceModel
void setCanvas(KoCanvasBase *canvas) override
void presetSelected(QListWidgetItem *item)
void updatePresetState(int position)
QAction * m_actionSortBubble
void canvasResourceChanged(int key, const QVariant &v)
QPointer< KisCanvas2 > m_canvas
QAction * m_actionSortMostRecent
PresetHistoryList * m_presetHistory
void unsetCanvas() override
void slotContextMenuRequest(const QPoint &pos)
void mouseReleaseEvent(QMouseEvent *e) override
void mouseReleased(QListWidgetItem *item)
PresetHistoryList(QWidget *parent=nullptr)