initial import
This commit is contained in:
@@ -0,0 +1,320 @@
|
||||
/************************************************************************
|
||||
* $Id: fullpagescene.h 666 2011-05-08 22:48:10Z elzubeir $
|
||||
*
|
||||
* ------------
|
||||
* Description:
|
||||
* ------------
|
||||
*
|
||||
* (C) Copyright 2009-2011 ALLCONTENT. All rights reserved.
|
||||
*
|
||||
* -----------------
|
||||
* Revision Details: (Updated by Revision Control System)
|
||||
* -----------------
|
||||
* $Date: 2011-05-09 02:48:10 +0400 (Mon, 09 May 2011) $
|
||||
* $Author: elzubeir $
|
||||
* $Revision: 666 $
|
||||
* $HeadURL: file:///opt/svn/socialhose/trunk/app/ClippingStation/fullpagescene.h $
|
||||
*
|
||||
************************************************************************/
|
||||
|
||||
#ifndef SOURCE_SCENE_H
|
||||
#define SOURCE_SCENE_H
|
||||
|
||||
#include <QGraphicsScene>
|
||||
#include "constants.h"
|
||||
#include "clippingstation.h"
|
||||
#include "tagcoordinates.h"
|
||||
#include "wordcoordinates.h"
|
||||
|
||||
class ImageItem;
|
||||
class ImageCutout;
|
||||
|
||||
class FullPageScene : public QGraphicsScene
|
||||
{
|
||||
public:
|
||||
//! \fn FullPageScene()
|
||||
//! default constructor
|
||||
//! \author elzubeir
|
||||
FullPageScene(QObject * parent);
|
||||
|
||||
//! \fn ~FullPageScene()
|
||||
//! destructor
|
||||
//! \author elzubeir
|
||||
~FullPageScene();
|
||||
|
||||
//! \fn loadPixmap()
|
||||
//! loads the pixmap to the scene
|
||||
//! \param[in] pixmap to be loaded to the scene
|
||||
//! \returns true if successful, false if not
|
||||
//! \author elzubeir
|
||||
bool loadPixmap(const QPixmap & pixmap);
|
||||
|
||||
//! \fn removePixmap()
|
||||
//! removes a pixmap from the scene
|
||||
//! \author elzubeir
|
||||
void removePixmap();
|
||||
|
||||
//! \fn createImageCutout()
|
||||
//! create the image cutout
|
||||
//! \param[in] polygon of the points of the cutout
|
||||
//! \param[in] rotation angle of the cutout
|
||||
//! \param[in] name of the page from the image cutout
|
||||
//! \param[in] type of the created selection, image, title or body
|
||||
//! \returns true if successful, false if not
|
||||
//! \author elzubeir
|
||||
bool createImageCutout(const QPolygonF & cutout, qreal rotationAngle, QString pageName, SELECTION_AREA_TYPE selectionType = IMAGE);
|
||||
|
||||
//! \fn removeImageCutout()
|
||||
//! remove image cutout from the scene
|
||||
//! \param[in] the cutout to remove
|
||||
//! \author elzubeir
|
||||
void removeImageCutout(ImageCutout * rect);
|
||||
|
||||
//! \fn addWordCoordinates()
|
||||
//! add words of the page to the scene
|
||||
//! \param[in] list of WordCoordinates to add to the scene
|
||||
//! \author elzubeir
|
||||
void addWordCoordinates(QList<WordCoordinates> &tagW);
|
||||
//void removeWordCoordinates();
|
||||
|
||||
//! \fn addTagCoordinates()
|
||||
//! add words of the page to the scene
|
||||
//! \param[in] list of TagCoordinates to add to the scene
|
||||
//! \author elzubeir
|
||||
void addTagCoordinates(QList<TagCoordinates> &tagHighlight);
|
||||
|
||||
QList<TagCoordinates>& tagCoorindates();
|
||||
|
||||
//! \fn removeTagCoordinates();
|
||||
//! remove the tag coordinates from the scene
|
||||
//! \author elzubeir
|
||||
void removeTagCoordinates();
|
||||
|
||||
//! \fn removeImageCutout()
|
||||
//! remove all the image cutouts from the scene
|
||||
//! \author elzubeir
|
||||
void removeImageCutouts();
|
||||
|
||||
//! \fn removePreselectedImageCutouts()
|
||||
//! remove the preselected image cutouts
|
||||
//! \author elzubeir
|
||||
void removePreselectedImageCutouts();
|
||||
|
||||
//! \fn hideImageCutouts()
|
||||
//! hide image cutouts from the scene
|
||||
//! \author elzubeir
|
||||
void hideImageCutouts();
|
||||
|
||||
//! \fn showImageCutouts();
|
||||
//! show image cutouts in the scene
|
||||
//! \author elzubeir
|
||||
void showImageCutouts();
|
||||
|
||||
//! \fn setImageCutouts()
|
||||
//! add image cutouts to the scene
|
||||
//! \param[in] image cutous list to be added
|
||||
//! \author elzubeir
|
||||
void setImageCutouts(QList<ImageCutout *> cutouts);
|
||||
|
||||
//! \fn setPreselectedImageCutouts()
|
||||
//! add preselected image cutout to the scene
|
||||
//! \param[in] list of the preselected image cutouts to be added
|
||||
//! \author elzubeir
|
||||
void setPreselectedImageCutouts(QList<ImageCutout *> cutouts);
|
||||
|
||||
//! \fn preselectedImageCutoutsCount()
|
||||
//! count of preselected image cutout
|
||||
//! \returns count of the preselected cutouts
|
||||
//! \author elzubeir
|
||||
int preselectedImageCutoutsCount();
|
||||
|
||||
//! \fn setSelectionMode()
|
||||
//! set the current selection mode
|
||||
//! \param[in] SELECTION_MODE type
|
||||
//! \author elzubeir
|
||||
void setSelectionMode(SELECTION_MODE selectionMode);
|
||||
|
||||
//! \fn isSourceImageIsLoad()
|
||||
//! is image loaded
|
||||
//! \returns true if image is loaded, false if not
|
||||
//! \author elzubeir
|
||||
bool isSourceImageIsLoad() const;
|
||||
|
||||
//! \fn isPointIsOnImageCutoutItem()
|
||||
//! is point on image cutout
|
||||
//! \param[in] point to test
|
||||
//! \returns true if point on image cutout, false if not
|
||||
//! \author elzubeir
|
||||
bool isPointIsOnImageCutoutItem(const QPointF & point);
|
||||
|
||||
//! \fn isPointIsOnImageItem()
|
||||
//! is point on the image
|
||||
//! \param[in] point to test
|
||||
//! \returns true if poing on image, false if not
|
||||
//! \author elzubeir
|
||||
bool isPointIsOnImageItem(const QPointF & point) const;
|
||||
|
||||
//! \fn getImageCutoutPixmap()
|
||||
//! returns the cutouf of the image based on the passed rectangle
|
||||
//! \param[in] rectangle holding the cutout's coordinates
|
||||
//! \returns partial image from the page loaded
|
||||
//! \author elzubeir
|
||||
QPixmap getImageCutoutPixmap(const QRectF & rect) const;
|
||||
|
||||
//! \fn mapToImageItem()
|
||||
//! map a scene position to the image item position.
|
||||
//! \param[in] point to be mapped
|
||||
//! \returns a mapped point
|
||||
//! \author elzubeir
|
||||
QPointF mapToImageItem(const QPointF & scenePos) const;
|
||||
|
||||
//! \fn transform()
|
||||
//! transformation operations on the image item.
|
||||
//! \param[in] zoomFactor the scale used in zoom operation.
|
||||
//! \param[in] angle rotation angle.
|
||||
//! \author elzubeir
|
||||
void transform(qreal zoomFactor, qreal angle);
|
||||
|
||||
//! \fn currentImageCutout()
|
||||
//! returns the current cutout from the image
|
||||
//! \returns returns the image cutout
|
||||
//! \author elzubeir
|
||||
ImageCutout* currentImageCutout();
|
||||
|
||||
//! \fn imageCutoutsList()
|
||||
//! list of image cutous of the scene
|
||||
//! \returns the list of the image cutous
|
||||
//! \author elzubeir
|
||||
QList<ImageCutout *> imageCutoutsList();
|
||||
|
||||
//! \fn pageSize()
|
||||
//! the size of the image page
|
||||
//! \returns the size of the image
|
||||
//! \author elzubeir
|
||||
qreal pageSize();
|
||||
|
||||
//! \fn imageItem()
|
||||
//! current image item
|
||||
//! \returns current image item pointer
|
||||
//! \author elzubeir
|
||||
inline const ImageItem* imageItem() { return m_imageItem;}
|
||||
|
||||
//! \fn setfileName()
|
||||
//! set file name of the current image
|
||||
//! \param[in] fileName of the current image
|
||||
//! \author elzubeir
|
||||
void setfileName(QString fileName);
|
||||
|
||||
//! \fn screenShot()
|
||||
//! create a screen shot of the image on the scene
|
||||
//! \returns image of the screen shot
|
||||
//! \author elzubeir
|
||||
QImage screenShot();
|
||||
|
||||
//! \fn A4PageScale()
|
||||
//! scale of the a4 page in drawer
|
||||
//! \returns the scale of the a4 page in drawer
|
||||
//! \author elzubeir
|
||||
qreal A4PageScale() const;
|
||||
|
||||
//! \fn getScaledPixmap()
|
||||
//! return a scaled image of the pixmap
|
||||
//! \param[in] original pixmap
|
||||
//! \returns the scaled image
|
||||
//! \author elzubeir
|
||||
QPixmap getScaledPixmap(const QPixmap & pixmap);
|
||||
|
||||
//! \fn setOrderMode()
|
||||
//! set the order mode to set of select
|
||||
//! \param[in] order mode
|
||||
//! \author elzubeir
|
||||
void setOrderMode(bool set);
|
||||
|
||||
//! \fn currentOrder()
|
||||
//! returns the current odrder
|
||||
//! \author elzubeir
|
||||
int currentOrder();
|
||||
|
||||
//! \fn increaseCurrentOrder()
|
||||
//! increase the current order of the cutouts
|
||||
//! \author elzubeir
|
||||
void increaseCurrentOrder();
|
||||
|
||||
//! \fn resetCurrentOrder();
|
||||
//! set the current order to 1
|
||||
//! \author elzubeir
|
||||
void resetCurrentOrder();
|
||||
|
||||
//! \fn imageBoundingRect()
|
||||
//! the bounding rectange of the scene
|
||||
//! \returns rectangle of the scene
|
||||
//! \author elzubeir
|
||||
QRectF imageBoundingRect();
|
||||
|
||||
//! \fn addTags()
|
||||
//! add tags from the current rect
|
||||
//! \param[in] rectangle to check tags existance inside of them
|
||||
//! \author elzubeir
|
||||
void addTags(QRect rect);
|
||||
|
||||
//! \fn addTags()
|
||||
//! add tags from all the cutouts
|
||||
//! \author elzubeir
|
||||
void addTags();
|
||||
|
||||
//! \fn getWord()
|
||||
//! return a string list of the words in the rect
|
||||
//! \param[in] rect of the cutout to get the words from
|
||||
//! \returns string list of the words
|
||||
//! \author elzubeir
|
||||
QStringList getWord(QRect rect);
|
||||
|
||||
//! \fn text()
|
||||
//! returns a text of the image
|
||||
//! \author elzubeir
|
||||
QString text();
|
||||
|
||||
void setImageVisibility(bool show);
|
||||
|
||||
private:
|
||||
//! image item
|
||||
ImageItem * m_imageItem; ///< the image.
|
||||
|
||||
//! selected cutouts
|
||||
QList<ImageCutout *> m_imageCutoutsList; ///< the selected rect.
|
||||
|
||||
//! preselected cutouts
|
||||
QList<ImageCutout *> m_preselectedImageCutoutsList;
|
||||
//QList<QGraphicsRectItem *> m_tagItems;
|
||||
//! words list
|
||||
QList<WordCoordinates> m_wordCoordinates;
|
||||
|
||||
//! tags list
|
||||
QList<TagCoordinates> m_tagCoordinates;
|
||||
|
||||
//! current cutout
|
||||
ImageCutout* m_currentImageCutout;
|
||||
|
||||
//! zoom factor
|
||||
qreal m_zoomfactor;
|
||||
|
||||
//! rotate angle
|
||||
qreal m_rotateAngle;
|
||||
|
||||
//! filename
|
||||
QString m_fileName;
|
||||
|
||||
//! page widht
|
||||
qreal m_pageWidth;
|
||||
|
||||
//! page height
|
||||
qreal m_pageHeight;
|
||||
|
||||
//! selection mode
|
||||
SELECTION_MODE m_selectionMode;
|
||||
|
||||
//! current order
|
||||
int m_currentOrder;
|
||||
};
|
||||
|
||||
#endif // SOURCE_SCENE_H
|
||||
Reference in New Issue
Block a user