Changeset View
Changeset View
Standalone View
Standalone View
wallpapers/image/image.h
Show All 18 Lines | |||||
19 | * Free Software Foundation, Inc., * | 19 | * Free Software Foundation, Inc., * | ||
20 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * | 20 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * | ||
21 | ***************************************************************************/ | 21 | ***************************************************************************/ | ||
22 | 22 | | |||
23 | 23 | | |||
24 | #ifndef IMAGE_HEADER | 24 | #ifndef IMAGE_HEADER | ||
25 | #define IMAGE_HEADER | 25 | #define IMAGE_HEADER | ||
26 | 26 | | |||
27 | | ||||
27 | #include <QTimer> | 28 | #include <QTimer> | ||
28 | #include <QPixmap> | 29 | #include <QPixmap> | ||
29 | #include <QStringList> | 30 | #include <QStringList> | ||
30 | #include <QObject> | 31 | #include <QObject> | ||
31 | #include <QPersistentModelIndex> | 32 | #include <QPersistentModelIndex> | ||
32 | #include <QDateTime> | 33 | #include <QDateTime> | ||
33 | #include <QPointer> | 34 | #include <QPointer> | ||
34 | #include <QQmlParserStatus> | 35 | #include <QQmlParserStatus> | ||
35 | 36 | | |||
36 | #include <KPackage/Package> | 37 | #include <KPackage/Package> | ||
37 | 38 | | |||
38 | 39 | | |||
39 | class QFileDialog; | 40 | class QFileDialog; | ||
40 | class QQuickItem; | 41 | class QQuickItem; | ||
41 | 42 | | |||
42 | class KDirWatch; | 43 | class KDirWatch; | ||
43 | class KJob; | 44 | class KJob; | ||
44 | 45 | | |||
45 | namespace KNS3 { | 46 | namespace KNS3 { | ||
46 | class DownloadDialog; | 47 | class DownloadDialog; | ||
47 | } | 48 | } | ||
48 | 49 | | |||
49 | class BackgroundListModel; | 50 | class BackgroundListModel; | ||
50 | class SlideModel; | 51 | class SlideModel; | ||
52 | class SlideFilterModel; | ||||
51 | 53 | | |||
52 | class Image : public QObject, public QQmlParserStatus | 54 | class Image : public QObject, public QQmlParserStatus | ||
53 | { | 55 | { | ||
54 | Q_OBJECT | 56 | Q_OBJECT | ||
55 | Q_INTERFACES(QQmlParserStatus) | 57 | Q_INTERFACES(QQmlParserStatus) | ||
56 | 58 | | |||
57 | Q_PROPERTY(RenderingMode renderingMode READ renderingMode WRITE setRenderingMode NOTIFY renderingModeChanged) | 59 | Q_PROPERTY(RenderingMode renderingMode READ renderingMode WRITE setRenderingMode NOTIFY renderingModeChanged) | ||
60 | Q_PROPERTY(SlideshowMode slideshowMode READ slideshowMode WRITE setSlideshowMode NOTIFY slideshowModeChanged) | ||||
58 | Q_PROPERTY(QUrl wallpaperPath READ wallpaperPath NOTIFY wallpaperPathChanged) | 61 | Q_PROPERTY(QUrl wallpaperPath READ wallpaperPath NOTIFY wallpaperPathChanged) | ||
59 | Q_PROPERTY(QAbstractItemModel *wallpaperModel READ wallpaperModel CONSTANT) | 62 | Q_PROPERTY(QAbstractItemModel *wallpaperModel READ wallpaperModel CONSTANT) | ||
60 | Q_PROPERTY(QAbstractItemModel *slideshowModel READ slideshowModel CONSTANT) | 63 | Q_PROPERTY(QAbstractItemModel *slideFilterModel READ slideFilterModel CONSTANT) | ||
61 | Q_PROPERTY(int slideTimer READ slideTimer WRITE setSlideTimer NOTIFY slideTimerChanged) | 64 | Q_PROPERTY(int slideTimer READ slideTimer WRITE setSlideTimer NOTIFY slideTimerChanged) | ||
62 | Q_PROPERTY(QStringList usersWallpapers READ usersWallpapers WRITE setUsersWallpapers NOTIFY usersWallpapersChanged) | 65 | Q_PROPERTY(QStringList usersWallpapers READ usersWallpapers WRITE setUsersWallpapers NOTIFY usersWallpapersChanged) | ||
63 | Q_PROPERTY(QStringList slidePaths READ slidePaths WRITE setSlidePaths NOTIFY slidePathsChanged) | 66 | Q_PROPERTY(QStringList slidePaths READ slidePaths WRITE setSlidePaths NOTIFY slidePathsChanged) | ||
64 | Q_PROPERTY(QSize targetSize READ targetSize WRITE setTargetSize NOTIFY targetSizeChanged) | 67 | Q_PROPERTY(QSize targetSize READ targetSize WRITE setTargetSize NOTIFY targetSizeChanged) | ||
65 | Q_PROPERTY(QString photosPath READ photosPath CONSTANT) | 68 | Q_PROPERTY(QString photosPath READ photosPath CONSTANT) | ||
66 | Q_PROPERTY(QStringList uncheckedSlides READ uncheckedSlides WRITE setUncheckedSlides NOTIFY uncheckedSlidesChanged) | 69 | Q_PROPERTY(QStringList uncheckedSlides READ uncheckedSlides WRITE setUncheckedSlides NOTIFY uncheckedSlidesChanged) | ||
67 | 70 | | |||
68 | public: | 71 | public: | ||
69 | 72 | | |||
70 | enum RenderingMode { | 73 | enum RenderingMode { | ||
71 | SingleImage, | 74 | SingleImage, | ||
72 | SlideShow | 75 | SlideShow | ||
73 | }; | 76 | }; | ||
74 | Q_ENUM(RenderingMode) | 77 | Q_ENUM(RenderingMode) | ||
75 | 78 | | |||
79 | enum SlideshowMode { | ||||
80 | Random, | ||||
81 | Alphabetical, | ||||
82 | AlphabeticalReversed, | ||||
83 | Modified, | ||||
84 | ModifiedReversed | ||||
85 | }; | ||||
86 | Q_ENUM(SlideshowMode) | ||||
87 | | ||||
76 | explicit Image(QObject* parent = nullptr); | 88 | explicit Image(QObject* parent = nullptr); | ||
77 | ~Image() override; | 89 | ~Image() override; | ||
78 | 90 | | |||
79 | QUrl wallpaperPath() const; | 91 | QUrl wallpaperPath() const; | ||
80 | 92 | | |||
81 | //this is for QML use | 93 | //this is for QML use | ||
82 | Q_INVOKABLE void addUrl(const QString &url); | 94 | Q_INVOKABLE void addUrl(const QString &url); | ||
83 | Q_INVOKABLE void addUrls(const QStringList &urls); | 95 | Q_INVOKABLE void addUrls(const QStringList &urls); | ||
84 | 96 | | |||
85 | Q_INVOKABLE void addSlidePath(const QString &path); | 97 | Q_INVOKABLE void addSlidePath(const QString &path); | ||
86 | Q_INVOKABLE void removeSlidePath(const QString &path); | 98 | Q_INVOKABLE void removeSlidePath(const QString &path); | ||
87 | Q_INVOKABLE void openFolder(const QString& path); | 99 | Q_INVOKABLE void openFolder(const QString& path); | ||
88 | 100 | | |||
89 | Q_INVOKABLE void getNewWallpaper(QQuickItem *ctx = nullptr); | 101 | Q_INVOKABLE void getNewWallpaper(QQuickItem *ctx = nullptr); | ||
90 | Q_INVOKABLE void showFileDialog(); | 102 | Q_INVOKABLE void showFileDialog(); | ||
91 | 103 | | |||
92 | Q_INVOKABLE void addUsersWallpaper(const QString &file); | 104 | Q_INVOKABLE void addUsersWallpaper(const QString &file); | ||
93 | Q_INVOKABLE void commitDeletion(); | 105 | Q_INVOKABLE void commitDeletion(); | ||
94 | 106 | | |||
95 | Q_INVOKABLE void toggleSlide(const QString &path, bool checked); | 107 | Q_INVOKABLE void toggleSlide(const QString &path, bool checked); | ||
96 | 108 | | |||
97 | RenderingMode renderingMode() const; | 109 | RenderingMode renderingMode() const; | ||
98 | void setRenderingMode(RenderingMode mode); | 110 | void setRenderingMode(RenderingMode mode); | ||
99 | 111 | | |||
112 | SlideshowMode slideshowMode() const; | ||||
113 | void setSlideshowMode(SlideshowMode mode); | ||||
114 | | ||||
100 | QSize targetSize() const; | 115 | QSize targetSize() const; | ||
101 | void setTargetSize(const QSize &size); | 116 | void setTargetSize(const QSize &size); | ||
102 | 117 | | |||
103 | KPackage::Package *package(); | 118 | KPackage::Package *package(); | ||
104 | 119 | | |||
105 | QAbstractItemModel* wallpaperModel(); | 120 | QAbstractItemModel* wallpaperModel(); | ||
106 | QAbstractItemModel* slideshowModel(); | 121 | QAbstractItemModel* slideFilterModel(); | ||
107 | 122 | | |||
108 | int slideTimer() const; | 123 | int slideTimer() const; | ||
109 | void setSlideTimer(int time); | 124 | void setSlideTimer(int time); | ||
110 | 125 | | |||
111 | QStringList usersWallpapers() const; | 126 | QStringList usersWallpapers() const; | ||
112 | void setUsersWallpapers(const QStringList &usersWallpapers); | 127 | void setUsersWallpapers(const QStringList &usersWallpapers); | ||
113 | 128 | | |||
114 | QStringList slidePaths() const; | 129 | QStringList slidePaths() const; | ||
Show All 13 Lines | |||||
128 | public Q_SLOTS: | 143 | public Q_SLOTS: | ||
129 | void nextSlide(); | 144 | void nextSlide(); | ||
130 | void removeWallpaper(QString name); | 145 | void removeWallpaper(QString name); | ||
131 | 146 | | |||
132 | Q_SIGNALS: | 147 | Q_SIGNALS: | ||
133 | void settingsChanged(bool); | 148 | void settingsChanged(bool); | ||
134 | void wallpaperPathChanged(); | 149 | void wallpaperPathChanged(); | ||
135 | void renderingModeChanged(); | 150 | void renderingModeChanged(); | ||
151 | void slideshowModeChanged(); | ||||
136 | void targetSizeChanged(); | 152 | void targetSizeChanged(); | ||
137 | void slideTimerChanged(); | 153 | void slideTimerChanged(); | ||
138 | void usersWallpapersChanged(); | 154 | void usersWallpapersChanged(); | ||
139 | void slidePathsChanged(); | 155 | void slidePathsChanged(); | ||
140 | void resizeMethodChanged(); | 156 | void resizeMethodChanged(); | ||
141 | void customWallpaperPicked(const QString &path); | 157 | void customWallpaperPicked(const QString &path); | ||
142 | void uncheckedSlidesChanged(); | 158 | void uncheckedSlidesChanged(); | ||
143 | 159 | | |||
Show All 12 Lines | 160 | protected Q_SLOTS: | |||
156 | void setWallpaperRetrieved(KJob *job); | 172 | void setWallpaperRetrieved(KJob *job); | ||
157 | void addWallpaperRetrieved(KJob *job); | 173 | void addWallpaperRetrieved(KJob *job); | ||
158 | void newStuffFinished(); | 174 | void newStuffFinished(); | ||
159 | void updateDirWatch(const QStringList &newDirs); | 175 | void updateDirWatch(const QStringList &newDirs); | ||
160 | void addDirFromSelectionDialog(); | 176 | void addDirFromSelectionDialog(); | ||
161 | void pathCreated(const QString &path); | 177 | void pathCreated(const QString &path); | ||
162 | void pathDeleted(const QString &path); | 178 | void pathDeleted(const QString &path); | ||
163 | void pathDirty(const QString &path); | 179 | void pathDirty(const QString &path); | ||
164 | void backgroundsFound(const QStringList &paths, const QString &token); | 180 | void backgroundsFound(); | ||
165 | 181 | | |||
166 | protected: | 182 | protected: | ||
167 | void syncWallpaperPackage(); | 183 | void syncWallpaperPackage(); | ||
168 | void setSingleImage(); | 184 | void setSingleImage(); | ||
169 | void useSingleImageDefaults(); | 185 | void useSingleImageDefaults(); | ||
170 | 186 | | |||
171 | private: | 187 | private: | ||
172 | | ||||
173 | bool m_ready; | 188 | bool m_ready; | ||
174 | int m_delay; | 189 | int m_delay; | ||
175 | QStringList m_dirs; | 190 | QStringList m_dirs; | ||
176 | QString m_wallpaper; | 191 | QString m_wallpaper; | ||
177 | QString m_wallpaperPath; | 192 | QString m_wallpaperPath; | ||
178 | QStringList m_usersWallpapers; | 193 | QStringList m_usersWallpapers; | ||
179 | KDirWatch *m_dirWatch; | 194 | KDirWatch *m_dirWatch; | ||
180 | bool m_scanDirty; | 195 | bool m_scanDirty; | ||
181 | QSize m_targetSize; | 196 | QSize m_targetSize; | ||
182 | 197 | | |||
183 | RenderingMode m_mode; | 198 | RenderingMode m_mode; | ||
199 | SlideshowMode m_slideshowMode; | ||||
200 | | ||||
184 | KPackage::Package m_wallpaperPackage; | 201 | KPackage::Package m_wallpaperPackage; | ||
185 | QStringList m_slideshowBackgrounds; | | |||
186 | QStringList m_unseenSlideshowBackgrounds; | | |||
187 | QStringList m_slidePaths; | 202 | QStringList m_slidePaths; | ||
188 | QStringList m_uncheckedSlides; | 203 | QStringList m_uncheckedSlides; | ||
189 | QTimer m_timer; | 204 | QTimer m_timer; | ||
190 | int m_currentSlide; | 205 | int m_currentSlide; | ||
191 | BackgroundListModel *m_model; | 206 | BackgroundListModel *m_model; | ||
192 | SlideModel* m_slideshowModel; | 207 | SlideModel* m_slideshowModel; | ||
208 | SlideFilterModel* m_slideFilterModel; | ||||
193 | QFileDialog *m_dialog; | 209 | QFileDialog *m_dialog; | ||
194 | QString m_img; | 210 | QString m_img; | ||
195 | QDateTime m_previousModified; | 211 | QDateTime m_previousModified; | ||
196 | QPointer<KNS3::DownloadDialog> m_newStuffDialog; | 212 | QPointer<KNS3::DownloadDialog> m_newStuffDialog; | ||
197 | QString m_findToken; | 213 | QString m_findToken; | ||
198 | }; | 214 | }; | ||
199 | 215 | | |||
200 | #endif | 216 | #endif |