You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
191 lines
3.9 KiB
191 lines
3.9 KiB
/***************************************************************************
|
|
mpagecollection.cpp - Kugar report page collection
|
|
-------------------
|
|
begin : Fri Aug 20 1999
|
|
copyright : (C) 1999 by Mutiny Bay Software
|
|
email : info@mutinybaysoftware.com
|
|
***************************************************************************/
|
|
|
|
#include "mpagecollection.h"
|
|
#include "mreportengine.h"
|
|
|
|
#include <kdebug.h>
|
|
|
|
namespace Kugar
|
|
{
|
|
|
|
/** Constructor */
|
|
MPageCollection::MPageCollection( QObject *parent ) : QObject( parent )
|
|
{
|
|
// Set page list to AutoDelete
|
|
pages.setAutoDelete( true );
|
|
|
|
// Set the metrics
|
|
size = MReportEngine::Letter;
|
|
orientation = MReportEngine::Portrait;
|
|
dimensions.setWidth( 0 );
|
|
dimensions.setHeight( 0 );
|
|
m_ref = 1;
|
|
}
|
|
|
|
/** Copy constructor */
|
|
MPageCollection::MPageCollection( const MPageCollection& mPageCollection ) /*: QObject((QObject &) mPageCollection)*/
|
|
{
|
|
copy( &mPageCollection );
|
|
}
|
|
|
|
/** Assignment operator */
|
|
MPageCollection MPageCollection::operator=( const MPageCollection& mPageCollection )
|
|
{
|
|
if ( &mPageCollection == this )
|
|
return * this;
|
|
|
|
// Copy the derived class's data
|
|
copy( &mPageCollection );
|
|
|
|
// Copy the base class's data
|
|
//((QObject &) *this) = mPageCollection;
|
|
|
|
return *this;
|
|
}
|
|
|
|
/** Destructor */
|
|
MPageCollection::~MPageCollection()
|
|
{
|
|
pages.clear();
|
|
kdDebug(31000) << k_funcinfo << endl;
|
|
}
|
|
|
|
/** Clears the page collection */
|
|
void MPageCollection::clear()
|
|
{
|
|
pages.clear();
|
|
}
|
|
|
|
/** Appends a new page to the page collection */
|
|
void MPageCollection::appendPage()
|
|
{
|
|
pages.append( new QPicture() );
|
|
}
|
|
|
|
/** Gets the current page in the page collection,
|
|
* the current page may be null
|
|
*/
|
|
QPicture* MPageCollection::getCurrentPage()
|
|
{
|
|
return pages.current();
|
|
}
|
|
|
|
/** Gets the first page in the page collection,
|
|
* returns NULL if the list is empty
|
|
*/
|
|
QPicture* MPageCollection::getFirstPage()
|
|
{
|
|
return pages.first();
|
|
}
|
|
|
|
/** Gets the next page in the page collection,
|
|
* returns NULL if the end of the list has been reached
|
|
*/
|
|
QPicture* MPageCollection::getNextPage()
|
|
{
|
|
return pages.next();
|
|
}
|
|
|
|
/** Get the previous page in the page collection,
|
|
* returns NULL if the beginning of the list has been reached
|
|
*/
|
|
QPicture* MPageCollection::getPreviousPage()
|
|
{
|
|
return pages.prev();
|
|
}
|
|
|
|
/** Gets the last page in the page collection,
|
|
* returns NULL if the list is empty
|
|
*/
|
|
QPicture* MPageCollection::getLastPage()
|
|
{
|
|
return pages.last();
|
|
}
|
|
|
|
/** Get the index of the current page */
|
|
int MPageCollection::getCurrentIndex()
|
|
{
|
|
return pages.at();
|
|
}
|
|
|
|
/** Set the current page to page at idx */
|
|
void MPageCollection::setCurrentPage( int idx )
|
|
{
|
|
pages.at( idx );
|
|
}
|
|
|
|
/** Sets the page size */
|
|
void MPageCollection::setPageSize( int s )
|
|
{
|
|
size = s;
|
|
}
|
|
|
|
/** Sets the page orientation */
|
|
void MPageCollection::setPageOrientation( int o )
|
|
{
|
|
orientation = o;
|
|
}
|
|
|
|
/** Sets the page dimensions */
|
|
void MPageCollection::setPageDimensions( QSize dim )
|
|
{
|
|
dimensions = dim;
|
|
}
|
|
|
|
/** Returns the page size */
|
|
int MPageCollection::pageSize()
|
|
{
|
|
return size;
|
|
}
|
|
|
|
/** Returns the page orientation */
|
|
int MPageCollection::pageOrientation()
|
|
{
|
|
return orientation;
|
|
}
|
|
|
|
/** Returns the page dimensions */
|
|
QSize MPageCollection::pageDimensions()
|
|
{
|
|
return dimensions;
|
|
}
|
|
|
|
/** Returns the number of pages in the page collection */
|
|
int MPageCollection::pageCount()
|
|
{
|
|
return pages.count();
|
|
}
|
|
|
|
/** Copies member data from one object to another.
|
|
Used by the copy constructor and assignment operator */
|
|
void MPageCollection::copy( const MPageCollection* mPageCollection )
|
|
{
|
|
// Copy the page collection
|
|
pages = mPageCollection->pages;
|
|
|
|
// Copy the page metrics
|
|
dimensions = mPageCollection->dimensions;
|
|
size = mPageCollection->size;
|
|
orientation = mPageCollection->orientation;
|
|
m_ref = 1;
|
|
}
|
|
|
|
void MPageCollection::addRef()
|
|
{
|
|
m_ref++;
|
|
}
|
|
void MPageCollection::removeRef()
|
|
{
|
|
m_ref--;
|
|
if ( !m_ref )
|
|
deleteLater();
|
|
}
|
|
|
|
}
|