Skip to content

Commit d413a20

Browse files
committed
Add composer frame class
1 parent 5135fe8 commit d413a20

7 files changed

+104
-8
lines changed

src/core/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ SET(QGIS_CORE_SRCS
113113

114114
composer/qgsaddremoveitemcommand.cpp
115115
composer/qgscomposerarrow.cpp
116+
composer/qgscomposerframe.cpp
116117
composer/qgscomposeritem.cpp
117118
composer/qgscomposeritemcommand.cpp
118119
composer/qgscomposeritemgroup.cpp
+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/***************************************************************************
2+
qgscomposerframe.cpp
3+
------------------------------------------------------------
4+
begin : July 2012
5+
copyright : (C) 2012 by Marco Hugentobler
6+
email : marco dot hugentobler at sourcepole dot ch
7+
***************************************************************************
8+
* *
9+
* This program is free software; you can redistribute it and/or modify *
10+
* it under the terms of the GNU General Public License as published by *
11+
* the Free Software Foundation; either version 2 of the License, or *
12+
* (at your option) any later version. *
13+
* *
14+
***************************************************************************/
15+
16+
#include "qgscomposerframe.h"
17+
#include "qgscomposermultiframe.h"
18+
19+
QgsComposerFrame::QgsComposerFrame( QgsComposition* c, QgsComposerMultiFrame* mf ): QgsComposerItem( c ), mMultiFrame( mf )
20+
{
21+
}
22+
23+
QgsComposerFrame::~QgsComposerFrame()
24+
{
25+
}
26+
27+
bool QgsComposerFrame::writeXML( QDomElement& elem, QDomDocument & doc ) const
28+
{
29+
return false; //_writeXML( element, doc );
30+
}
31+
32+
bool QgsComposerFrame::readXML( const QDomElement& itemElem, const QDomDocument& doc )
33+
{
34+
return false; //_readXML( element, doc )
35+
}
36+
37+
void QgsComposerFrame::paint( QPainter* painter, const QStyleOptionGraphicsItem* itemStyle, QWidget* pWidget )
38+
{
39+
if ( mMultiFrame && painter )
40+
{
41+
mMultiFrame->render( painter, mSection );
42+
}
43+
}

src/core/composer/qgscomposerframe.h

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/***************************************************************************
2+
qgscomposerframe.h
3+
------------------------------------------------------------
4+
begin : July 2012
5+
copyright : (C) 2012 by Marco Hugentobler
6+
email : marco dot hugentobler at sourcepole dot ch
7+
***************************************************************************
8+
* *
9+
* This program is free software; you can redistribute it and/or modify *
10+
* it under the terms of the GNU General Public License as published by *
11+
* the Free Software Foundation; either version 2 of the License, or *
12+
* (at your option) any later version. *
13+
* *
14+
***************************************************************************/
15+
16+
#ifndef QGSCOMPOSERFRAME_H
17+
#define QGSCOMPOSERFRAME_H
18+
19+
#include "qgscomposeritem.h"
20+
21+
class QgsComposition;
22+
class QgsComposerMultiFrame;
23+
24+
/**Frame for html, table, text which can be divided onto several frames*/
25+
class QgsComposerFrame: public QgsComposerItem
26+
{
27+
public:
28+
QgsComposerFrame( QgsComposition* c, QgsComposerMultiFrame* mf );
29+
~QgsComposerFrame();
30+
31+
/**Sets the part of this frame (relative to the total multiframe extent in mm)*/
32+
void setContentSection( const QRectF& section ) { mSection = section; }
33+
34+
void paint( QPainter* painter, const QStyleOptionGraphicsItem* itemStyle, QWidget* pWidget );
35+
36+
bool writeXML( QDomElement& elem, QDomDocument & doc ) const;
37+
bool readXML( const QDomElement& itemElem, const QDomDocument& doc );
38+
39+
private:
40+
QgsComposerFrame(); //forbidden
41+
42+
QgsComposition* mComposition;
43+
QgsComposerMultiFrame* mMultiFrame;
44+
QRectF mSection;
45+
};
46+
47+
#endif // QGSCOMPOSERFRAME_H

src/core/composer/qgscomposerhtml.cpp

+10-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/***************************************************************************
22
qgscomposerhtml.cpp
33
------------------------------------------------------------
4-
begin : Julli 2012
4+
begin : July 2012
55
copyright : (C) 2012 by Marco Hugentobler
66
email : marco dot hugentobler at sourcepole dot ch
77
***************************************************************************
@@ -14,7 +14,10 @@
1414
***************************************************************************/
1515

1616
#include "qgscomposerhtml.h"
17+
#include "qgscomposition.h"
1718
#include <QCoreApplication>
19+
#include <QImage>
20+
#include <QPainter>
1821
#include <QWebFrame>
1922
#include <QWebPage>
2023

@@ -66,10 +69,12 @@ void QgsComposerHtml::render( QPainter* p, const QRectF& renderExtent )
6669
return;
6770
}
6871

72+
QImage img; //dummy image to find out assumed screen dpi
73+
6974
double pixelPerMM = mComposition->printResolution() / 25.4;
70-
double painterScale = 1.0 / ( pixelPerMM / (( double )mImage->dotsPerMeterX() / 1000.0 ) );
71-
painter->save();
72-
painter->scale( painterScale, painterScale );
75+
double painterScale = 1.0 / ( pixelPerMM / (( double )img.dotsPerMeterX() / 1000.0 ) );
76+
p->save();
77+
p->scale( painterScale, painterScale );
7378
mWebPage->mainFrame()->render( p, QRegion( renderExtent.left(), renderExtent.top(), renderExtent.width(), renderExtent.height() ) );
74-
painter->restore();
79+
p->restore();
7580
}

src/core/composer/qgscomposerhtml.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/***************************************************************************
22
qgscomposerhtml.h
33
------------------------------------------------------------
4-
begin : Julli 2012
4+
begin : July 2012
55
copyright : (C) 2012 by Marco Hugentobler
66
email : marco dot hugentobler at sourcepole dot ch
77
***************************************************************************

src/core/composer/qgscomposermultiframe.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/***************************************************************************
22
qgscomposermultiframe.cpp
33
------------------------------------------------------------
4-
begin : Julli 2012
4+
begin : July 2012
55
copyright : (C) 2012 by Marco Hugentobler
66
email : marco dot hugentobler at sourcepole dot ch
77
***************************************************************************

src/core/composer/qgscomposermultiframe.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/***************************************************************************
22
qgscomposermultiframe.h
33
------------------------------------------------------------
4-
begin : Julli 2012
4+
begin : July 2012
55
copyright : (C) 2012 by Marco Hugentobler
66
email : marco dot hugentobler at sourcepole dot ch
77
***************************************************************************

0 commit comments

Comments
 (0)