initial import

This commit is contained in:
Mo Elzubeir
2022-12-13 09:18:00 -06:00
commit d2d561810c
322 changed files with 1147261 additions and 0 deletions
+161
View File
@@ -0,0 +1,161 @@
/************************************************************************
* $Id: pageitem.h 661 2011-04-05 13:16:53Z elzubeir $
*
* ------------
* Description:
* ------------
*
* (C) Copyright 2009-2011 ALLCONTENT. All rights reserved.
*
* -----------------
* Revision Details: (Updated by Revision Control System)
* -----------------
* $Date: 2011-04-05 17:16:53 +0400 (Tue, 05 Apr 2011) $
* $Author: elzubeir $
* $Revision: 661 $
* $HeadURL: file:///opt/svn/socialhose/trunk/app/ClippingStation/pageitem.h $
*
************************************************************************/
#ifndef PAGE_ITEM_H
#define PAGE_ITEM_H
#include <QGraphicsRectItem>
#include "pagemargin.h"
#include "thumbnail.h"
#include "globalfunctions.h"
/**
\brief Purpose of this class is to display the page item.
This item takes care of drop operations in the right panel.
*/
class PageItem : public QGraphicsRectItem
{
public:
//! \fn PageItem()
//! constructor
//! \param[in] paper format (default to A4)
//! \param[in] isfirst is this is the firat A4 page
//! \author elzubeir
PageItem(const QString & paperFormat, bool isfirst); //ctor
//! \fn ~PageItem()
//! desctructor
//! \author elzubeir
virtual ~PageItem(); //dtor
//! \fn hideMargins()
//! hide the margins
//! \param[in] hid: to show or to hide
//! \author elzubeir
void hideMargins(bool hide = true);
//! \fn addThumbnail()
//! add a thumbnail to the page
//! \param[in] thumbnail image
//! \author elzubeir
void addThumbnail(QImage &img);
//! \fn addCutout()
//! add cutout to the A4 page
//! \param[in] cutout image
//! \param[in] position point to where to add the cutout to page
//! \param[in] the scale to which zoom the image
//! \author elzubeir
void addCutout(QImage &img, QPointF &pos, qreal scale);
//! \fn width()
//! the pages width
//! \return the pages width
//! \author elzubeir
qreal width();
//! \fn height()
//! the pages height
//! \return the pages height
//! \author elzubeir
qreal height();
//! \fn margin()
//! the pages margin
//! \return the pages margin
//! \author elzubeir
PageMargin& margin();
//! \fn withinMarginBoundaries()
//! sets the point to within the pages boundaries
//! \author elzubeir
//! \param[out] the point within the boundary of the margin
//! \param[in] margins width
//! \param[in] margins height
//! \author elzubeir
void withinMarginBoundaries(QPointF &point, int width, int height);
//! \fn unselectItems();
//! unselect cutout items in the image
//! \author elzubeir
void unselectItems();
//! \fn setPixmap()
//! set the pixmap value of the image
//! \author elzubeir
void setPixmap(const QPixmap &pix);
//! \fn cutoutsCount()
//! the total count of the cutouts in the page
//! \return the number of cutouts in the page
//! \author elzubeir
int cutoutsCount();
//! \fn centerCutouts()
//! center the cutouts in the drawer
//! \param[in] is this an arabic cutout of not
//! \returns a rectangle holding the centered cutouts
//! \author elzubeir
QRectF centerCutouts(bool isArabic);
protected:
// overrides QGraphicsRectItem events.
//! \fn dragMoveEvent()
//! called when a drag operation is initaated
//! \author elzubeir
virtual void dragMoveEvent(QGraphicsSceneDragDropEvent * event);
//! \fn dropEvent()
//! called when a drop event happens
//! \author elzubeir
virtual void dropEvent(QGraphicsSceneDragDropEvent * event);
private:
//! \fn calculateDropEvent()
//! calculates the cutout drop position within margins
//! \param[in] top left position of the cutout
//! \param[in] cutouts width
//! \param[in] cutouts heigh
//! \returns a point for the top left position of the cutout
//! \author elzubeir
QPointF calculateDropEvent(const QPointF & itemPos, int pixmapWidth, int pixmapHeight) const;
private:
//! paper format (defulat to A4)
QString m_paperFormat;
//! page width
qreal m_pageWidth;
//! page height
qreal m_pageHeight;
//! is this the first page
bool m_isFirstPage;
//! page margin
PageMargin m_pageMargin;
//! thumbnail image
Thumbnail * m_thumbnail;
};
#endif // PAGE_ITEM_H