Krita Source Code Documentation
Loading...
Searching...
No Matches
SvgSymbolCollectionDocker.h
Go to the documentation of this file.
1/* This file is part of the KDE project
2 * SPDX-FileCopyrightText: 2017 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6#ifndef SVGSYMBOLCOLLECTIONDOCKER_H
7#define SVGSYMBOLCOLLECTIONDOCKER_H
8
9#include <QDockWidget>
10#include <QAbstractItemModel>
11#include <QModelIndex>
12#include <QMap>
13#include <QIcon>
14#include <QRadioButton>
15
16#include <KoDockFactoryBase.h>
18#include <KisKineticScroller.h>
19#include <kconfiggroup.h>
20
21#include "ui_WdgSvgCollection.h"
22
25
26class SvgCollectionModel : public QAbstractListModel
27{
28 Q_OBJECT
29public:
30 explicit SvgCollectionModel(QObject *parent = 0);
31 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
32 int rowCount(const QModelIndex &parent = QModelIndex()) const override;
33 QMimeData *mimeData(const QModelIndexList &indexes) const override;
34 QStringList mimeTypes() const override;
35 Qt::ItemFlags flags(const QModelIndex &index) const override;
36 Qt::DropActions supportedDragActions() const override;
37
38 void setIconSize(int size);
39 void setShowDescription(bool showDescription);
40public:
42private:
44 int m_iconSize {256};
45 bool m_showDescription {true};
46};
47
48
50{
51public:
53
54 QString id() const override;
55 QDockWidget *createDockWidget() override;
57 {
58 return DockRight;
59 }
60};
61
62class SvgSymbolCollectionDocker : public QDockWidget, public KoCanvasObserverBase
63{
64 Q_OBJECT
65public:
66
67 explicit SvgSymbolCollectionDocker(QWidget *parent = 0);
69
71 void setCanvas(KoCanvasBase *canvas) override;
72 void unsetCanvas() override;
73
74public Q_SLOTS:
75 void slotScrollerStateChanged(QScroller::State state){KisKineticScroller::updateCursor(this, state);}
76
77private Q_SLOTS:
78
79 void collectionActivated(int index);
80 void slotSetIconSize();
81 void slotChangeDisplay();
82
85
86
87private:
88
89 void clearModels();
90
91 QScopedPointer<Ui_WdgSvgCollection> m_wdgSvgCollection;
92 QMap<int, SvgCollectionModel*> m_collectionsModelsCache;
93 QSlider* m_iconSizeSlider {0};
94 QRadioButton* m_thumbnailsRadioButton {0};
95 QRadioButton* m_detailsRadioButton {0};
96
97
100
101 KConfigGroup m_configGroup;
102};
103
104#endif
The KisResourceModel class provides the main access to resources. It is possible to filter the resour...
@ DockRight
Right of the centra widget.
int rowCount(const QModelIndex &parent=QModelIndex()) const override
QStringList mimeTypes() const override
Qt::ItemFlags flags(const QModelIndex &index) const override
SvgCollectionModel(QObject *parent=0)
QMimeData * mimeData(const QModelIndexList &indexes) const override
QSharedPointer< KoSvgSymbolCollectionResource > m_symbolCollection
Qt::DropActions supportedDragActions() const override
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
void setShowDescription(bool showDescription)
void setSvgSymbolCollectionResource(QSharedPointer< KoSvgSymbolCollectionResource > resource)
DockPosition defaultDockPosition() const override
QScopedPointer< Ui_WdgSvgCollection > m_wdgSvgCollection
void setCanvas(KoCanvasBase *canvas) override
reimplemented
QMap< int, SvgCollectionModel * > m_collectionsModelsCache
void slotScrollerStateChanged(QScroller::State state)
KRITAWIDGETUTILS_EXPORT void updateCursor(QWidget *source, QScroller::State state)