Rev 19080 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
10928 | fschmid | 1 | /* |
2 | For general Scribus (>=1.3.2) copyright and licensing information please refer |
||
3 | to the COPYING file provided with the program. Following this notice may exist |
||
4 | a copyright and/or license notice that predates the release of Scribus 1.3.2 |
||
5 | for which a new license (GPL+exception) is in place. |
||
6 | */ |
||
7 | /*************************************************************************** |
||
8 | * Copyright (C) 2007 by Franz Schmid * |
||
9 | * franz.schmid@altmuehlnet.de * |
||
10 | * * |
||
11 | * This program is free software; you can redistribute it and/or modify * |
||
12 | * it under the terms of the GNU General Public License as published by * |
||
13 | * the Free Software Foundation; either version 2 of the License, or * |
||
14 | * (at your option) any later version. * |
||
15 | * * |
||
16 | * This program is distributed in the hope that it will be useful, * |
||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
||
19 | * GNU General Public License for more details. * |
||
20 | * * |
||
21 | * You should have received a copy of the GNU General Public License * |
||
22 | * along with this program; if not, write to the * |
||
23 | * Free Software Foundation, Inc., * |
||
18122 | mrdocs | 24 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * |
10928 | fschmid | 25 | ****************************************************************************/ |
26 | |||
27 | #ifndef LENSDIALOG_H |
||
28 | #define LENSDIALOG_H |
||
29 | |||
30 | #include <QDialog> |
||
31 | #include <QList> |
||
32 | #include <QPainterPath> |
||
33 | #include <QGraphicsItem> |
||
10966 | fschmid | 34 | #include <QGraphicsRectItem> |
10928 | fschmid | 35 | #include <QGraphicsPathItem> |
22440 | jghali | 36 | |
10928 | fschmid | 37 | #include "ui_lensdialogbase.h" |
10933 | jghali | 38 | #include "pluginapi.h" |
10928 | fschmid | 39 | #include "scribusdoc.h" |
19080 | craig | 40 | |
10928 | fschmid | 41 | class LensDialog; |
22440 | jghali | 42 | class QGraphicsSceneHoverEvent; |
43 | class QGraphicsSceneMouseEvent; |
||
44 | class QStyleOptionGraphicsItem; |
||
10928 | fschmid | 45 | |
10966 | fschmid | 46 | class PLUGIN_API LensItem : public QGraphicsRectItem |
10928 | fschmid | 47 | { |
48 | public: |
||
49 | LensItem(QRectF geom, LensDialog *parent); |
||
50 | ~LensItem() {}; |
||
22440 | jghali | 51 | |
10928 | fschmid | 52 | void setStrength(double s); |
53 | void updateEffect(); |
||
54 | QPainterPath lensDeform(const QPainterPath &source, const QPointF &offset, double m_radius, double s); |
||
10966 | fschmid | 55 | void paint(QPainter *painter, const QStyleOptionGraphicsItem *item, QWidget *widget); |
10928 | fschmid | 56 | double strength; |
10966 | fschmid | 57 | double scaling; |
58 | int handle; |
||
59 | QPointF mousePoint; |
||
22440 | jghali | 60 | |
10928 | fschmid | 61 | protected: |
62 | QVariant itemChange(GraphicsItemChange change, const QVariant &value); |
||
10966 | fschmid | 63 | void mousePressEvent(QGraphicsSceneMouseEvent *event); |
64 | void mouseMoveEvent(QGraphicsSceneMouseEvent *event); |
||
65 | void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); |
||
66 | void hoverEnterEvent(QGraphicsSceneHoverEvent *event); |
||
67 | void hoverMoveEvent(QGraphicsSceneHoverEvent *event); |
||
68 | void hoverLeaveEvent(QGraphicsSceneHoverEvent *); |
||
10928 | fschmid | 69 | LensDialog *dialog; |
70 | }; |
||
71 | |||
10933 | jghali | 72 | class PLUGIN_API LensDialog : public QDialog, Ui::LensDialogBase |
10928 | fschmid | 73 | { |
74 | Q_OBJECT |
||
75 | |||
76 | public: |
||
77 | LensDialog(QWidget* parent, ScribusDoc *doc); |
||
78 | ~LensDialog() {}; |
||
22440 | jghali | 79 | |
16115 | fschmid | 80 | void addItemsToScene(Selection* itemSelection, ScribusDoc *doc, QGraphicsPathItem* parentItem, PageItem* parent); |
10928 | fschmid | 81 | void lensSelected(LensItem *item); |
82 | void setLensPositionValues(QPointF p); |
||
83 | QGraphicsScene scene; |
||
84 | QList<QPainterPath> origPath; |
||
85 | QList<QGraphicsPathItem*> origPathItem; |
||
16115 | fschmid | 86 | QList<PageItem*> origPageItem; |
10928 | fschmid | 87 | QList<LensItem*> lensList; |
88 | int currentLens; |
||
10932 | fschmid | 89 | bool isFirst; |
10928 | fschmid | 90 | |
10932 | fschmid | 91 | protected: |
92 | void showEvent(QShowEvent *e); |
||
93 | |||
10928 | fschmid | 94 | private slots: |
95 | void doZoomIn(); |
||
96 | void doZoomOut(); |
||
97 | void addLens(); |
||
98 | void removeLens(); |
||
10966 | fschmid | 99 | void changeLens(); |
100 | void selectionHasChanged(); |
||
10928 | fschmid | 101 | void setNewLensX(double x); |
102 | void setNewLensY(double y); |
||
103 | void setNewLensRadius(double radius); |
||
104 | void setNewLensStrength(double s); |
||
105 | }; |
||
106 | |||
107 | #endif |