Changeset View
Changeset View
Standalone View
Standalone View
components/containmentlayoutmanager/appletslayout.h
Show First 20 Lines • Show All 60 Lines • ▼ Show 20 Line(s) | 43 | { | |||
---|---|---|---|---|---|
61 | Q_PROPERTY(qreal cellWidth READ cellWidth WRITE setCellWidth NOTIFY cellWidthChanged) | 61 | Q_PROPERTY(qreal cellWidth READ cellWidth WRITE setCellWidth NOTIFY cellWidthChanged) | ||
62 | 62 | | |||
63 | Q_PROPERTY(qreal cellHeight READ cellHeight WRITE setCellHeight NOTIFY cellHeightChanged) | 63 | Q_PROPERTY(qreal cellHeight READ cellHeight WRITE setCellHeight NOTIFY cellHeightChanged) | ||
64 | 64 | | |||
65 | Q_PROPERTY(QQmlComponent *appletContainerComponent READ appletContainerComponent WRITE setAppletContainerComponent NOTIFY appletContainerComponentChanged) | 65 | Q_PROPERTY(QQmlComponent *appletContainerComponent READ appletContainerComponent WRITE setAppletContainerComponent NOTIFY appletContainerComponentChanged) | ||
66 | 66 | | |||
67 | Q_PROPERTY(ItemContainer *placeHolder READ placeHolder WRITE setPlaceHolder NOTIFY placeHolderChanged); | 67 | Q_PROPERTY(ItemContainer *placeHolder READ placeHolder WRITE setPlaceHolder NOTIFY placeHolderChanged); | ||
68 | 68 | | |||
69 | /** | ||||
70 | * if the applets layout contains some kind of main MouseArea, | ||||
71 | * MouseEventListener or Flickable, we want to filter its events to make the | ||||
72 | * long mouse press work | ||||
73 | */ | ||||
74 | Q_PROPERTY(QQuickItem *eventManagerToFilter READ eventManagerToFilter WRITE setEventManagerToFilter NOTIFY eventManagerToFilterChanged); | ||||
75 | | ||||
69 | Q_PROPERTY(AppletsLayout::EditModeCondition editModeCondition READ editModeCondition WRITE setEditModeCondition NOTIFY editModeConditionChanged) | 76 | Q_PROPERTY(AppletsLayout::EditModeCondition editModeCondition READ editModeCondition WRITE setEditModeCondition NOTIFY editModeConditionChanged) | ||
70 | Q_PROPERTY(bool editMode READ editMode WRITE setEditMode NOTIFY editModeChanged) | 77 | Q_PROPERTY(bool editMode READ editMode WRITE setEditMode NOTIFY editModeChanged) | ||
71 | 78 | | |||
72 | public: | 79 | public: | ||
73 | enum PreferredLayoutDirection { | 80 | enum PreferredLayoutDirection { | ||
74 | Closest = 0, | 81 | Closest = 0, | ||
75 | LeftToRight, | 82 | LeftToRight, | ||
76 | RightToLeft, | 83 | RightToLeft, | ||
▲ Show 20 Lines • Show All 41 Lines • ▼ Show 20 Line(s) | |||||
118 | void setCellHeight(qreal height); | 125 | void setCellHeight(qreal height); | ||
119 | 126 | | |||
120 | QQmlComponent *appletContainerComponent() const; | 127 | QQmlComponent *appletContainerComponent() const; | ||
121 | void setAppletContainerComponent(QQmlComponent *component); | 128 | void setAppletContainerComponent(QQmlComponent *component); | ||
122 | 129 | | |||
123 | ItemContainer *placeHolder() const; | 130 | ItemContainer *placeHolder() const; | ||
124 | void setPlaceHolder(ItemContainer *placeHolder); | 131 | void setPlaceHolder(ItemContainer *placeHolder); | ||
125 | 132 | | |||
133 | QQuickItem *eventManagerToFilter() const; | ||||
134 | void setEventManagerToFilter(QQuickItem *item); | ||||
135 | | ||||
126 | EditModeCondition editModeCondition() const; | 136 | EditModeCondition editModeCondition() const; | ||
127 | void setEditModeCondition(EditModeCondition condition); | 137 | void setEditModeCondition(EditModeCondition condition); | ||
128 | 138 | | |||
129 | bool editMode() const; | 139 | bool editMode() const; | ||
130 | void setEditMode(bool edit); | 140 | void setEditMode(bool edit); | ||
131 | 141 | | |||
132 | Q_INVOKABLE void save(); | 142 | Q_INVOKABLE void save(); | ||
133 | Q_INVOKABLE void showPlaceHolderAt(const QRectF &geom); | 143 | Q_INVOKABLE void showPlaceHolderAt(const QRectF &geom); | ||
Show All 19 Lines | 153 | Q_SIGNALS: | |||
153 | void minimumItemHeightChanged(); | 163 | void minimumItemHeightChanged(); | ||
154 | void defaultItemWidthChanged(); | 164 | void defaultItemWidthChanged(); | ||
155 | void defaultItemHeightChanged(); | 165 | void defaultItemHeightChanged(); | ||
156 | void cellWidthChanged(); | 166 | void cellWidthChanged(); | ||
157 | void cellHeightChanged(); | 167 | void cellHeightChanged(); | ||
158 | void acceptsAppletCallbackChanged(); | 168 | void acceptsAppletCallbackChanged(); | ||
159 | void appletContainerComponentChanged(); | 169 | void appletContainerComponentChanged(); | ||
160 | void placeHolderChanged(); | 170 | void placeHolderChanged(); | ||
171 | void eventManagerToFilterChanged(); | ||||
161 | void editModeConditionChanged(); | 172 | void editModeConditionChanged(); | ||
162 | void editModeChanged(); | 173 | void editModeChanged(); | ||
163 | 174 | | |||
164 | protected: | 175 | protected: | ||
176 | bool childMouseEventFilter(QQuickItem *item, QEvent *event) override; | ||||
165 | void updatePolish() override; | 177 | void updatePolish() override; | ||
166 | void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override; | 178 | void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override; | ||
167 | 179 | | |||
168 | //void classBegin() override; | 180 | //void classBegin() override; | ||
169 | void componentComplete() override; | 181 | void componentComplete() override; | ||
170 | void mousePressEvent(QMouseEvent *event) override; | 182 | void mousePressEvent(QMouseEvent *event) override; | ||
171 | void mouseMoveEvent(QMouseEvent *event) override; | 183 | void mouseMoveEvent(QMouseEvent *event) override; | ||
172 | void mouseReleaseEvent(QMouseEvent *event) override; | 184 | void mouseReleaseEvent(QMouseEvent *event) override; | ||
185 | void mouseUngrabEvent() override; | ||||
173 | 186 | | |||
174 | private Q_SLOTS: | 187 | private Q_SLOTS: | ||
175 | void appletAdded(QObject *applet, int x, int y); | 188 | void appletAdded(QObject *applet, int x, int y); | ||
176 | void appletRemoved(QObject *applet); | 189 | void appletRemoved(QObject *applet); | ||
177 | 190 | | |||
178 | private: | 191 | private: | ||
179 | AppletContainer *createContainerForApplet(PlasmaQuick::AppletQuickItem *appletItem); | 192 | AppletContainer *createContainerForApplet(PlasmaQuick::AppletQuickItem *appletItem); | ||
180 | 193 | | |||
181 | 194 | | |||
182 | QString m_configKey; | 195 | QString m_configKey; | ||
183 | QTimer *m_saveLayoutTimer; | 196 | QTimer *m_saveLayoutTimer; | ||
184 | QTimer *m_configKeyChangeTimer; | 197 | QTimer *m_configKeyChangeTimer; | ||
185 | 198 | | |||
186 | PlasmaQuick::AppletQuickItem *m_containmentItem = nullptr; | 199 | PlasmaQuick::AppletQuickItem *m_containmentItem = nullptr; | ||
187 | Plasma::Containment *m_containment = nullptr; | 200 | Plasma::Containment *m_containment = nullptr; | ||
188 | QQmlComponent *m_appletContainerComponent = nullptr; | 201 | QQmlComponent *m_appletContainerComponent = nullptr; | ||
189 | 202 | | |||
190 | AbstractLayoutManager *m_layoutManager = nullptr; | 203 | AbstractLayoutManager *m_layoutManager = nullptr; | ||
191 | 204 | | |||
192 | QPointer<ItemContainer> m_placeHolder; | 205 | QPointer<ItemContainer> m_placeHolder; | ||
206 | QPointer<QQuickItem> m_eventManagerToFilter; | ||||
193 | 207 | | |||
194 | QTimer *m_pressAndHoldTimer; | 208 | QTimer *m_pressAndHoldTimer; | ||
195 | QTimer *m_sizeSyncTimer; | 209 | QTimer *m_sizeSyncTimer; | ||
196 | 210 | | |||
197 | QJSValue m_acceptsAppletCallback; | 211 | QJSValue m_acceptsAppletCallback; | ||
198 | 212 | | |||
199 | AppletsLayout::EditModeCondition m_editModeCondition = AppletsLayout::Manual; | 213 | AppletsLayout::EditModeCondition m_editModeCondition = AppletsLayout::Manual; | ||
200 | 214 | | |||
201 | QHash <PlasmaQuick::AppletQuickItem *, AppletContainer*> m_containerForApplet; | 215 | QHash <PlasmaQuick::AppletQuickItem *, AppletContainer*> m_containerForApplet; | ||
202 | 216 | | |||
203 | QPointer<QQuickWindow> m_window; | | |||
204 | QSizeF m_minimumItemSize; | 217 | QSizeF m_minimumItemSize; | ||
205 | QSizeF m_defaultItemSize; | 218 | QSizeF m_defaultItemSize; | ||
206 | QSizeF m_savedSize; | 219 | QSizeF m_savedSize; | ||
207 | QRectF m_geometryBeforeResolutionChange; | 220 | QRectF m_geometryBeforeResolutionChange; | ||
208 | 221 | | |||
209 | QPointF m_mouseDownPosition = QPoint(-1, -1); | 222 | QPointF m_mouseDownPosition = QPoint(-1, -1); | ||
210 | bool m_mouseDownWasEditMode = false; | 223 | bool m_mouseDownWasEditMode = false; | ||
211 | bool m_editMode = false; | 224 | bool m_editMode = false; | ||
212 | }; | 225 | }; | ||
213 | 226 | |