[QGIS Commit] r8929 -
branches/advanced_printing_branch/src/app/composer
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Sun Jul 27 10:55:08 EDT 2008
Author: mhugent
Date: 2008-07-27 10:55:08 -0400 (Sun, 27 Jul 2008)
New Revision: 8929
Modified:
branches/advanced_printing_branch/src/app/composer/qgscomposer.cpp
branches/advanced_printing_branch/src/app/composer/qgscomposeritem.cpp
branches/advanced_printing_branch/src/app/composer/qgscomposeritem.h
branches/advanced_printing_branch/src/app/composer/qgscomposeritemgroup.cpp
branches/advanced_printing_branch/src/app/composer/qgscomposeritemgroup.h
branches/advanced_printing_branch/src/app/composer/qgscomposerlabel.cpp
branches/advanced_printing_branch/src/app/composer/qgscomposerlabel.h
branches/advanced_printing_branch/src/app/composer/qgscomposerlabelwidget.cpp
branches/advanced_printing_branch/src/app/composer/qgscomposerlegend.cpp
branches/advanced_printing_branch/src/app/composer/qgscomposerlegend.h
branches/advanced_printing_branch/src/app/composer/qgscomposermap.cpp
branches/advanced_printing_branch/src/app/composer/qgscomposermap.h
branches/advanced_printing_branch/src/app/composer/qgscomposerscalebar.cpp
branches/advanced_printing_branch/src/app/composer/qgscomposerscalebar.h
branches/advanced_printing_branch/src/app/composer/qgscomposition.cpp
branches/advanced_printing_branch/src/app/composer/qgscomposition.h
branches/advanced_printing_branch/src/app/composer/qgscompositionwidget.cpp
branches/advanced_printing_branch/src/app/composer/qgscompositionwidget.h
Log:
Read and write xml implemented for paper item and composer label
Modified: branches/advanced_printing_branch/src/app/composer/qgscomposer.cpp
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposer.cpp 2008-07-27 14:28:11 UTC (rev 8928)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposer.cpp 2008-07-27 14:55:08 UTC (rev 8929)
@@ -147,7 +147,7 @@
//connect with signals from QgsProject to read/write project files
if(QgsProject::instance())
{
- connect(QgsProject::instance(), SIGNAL(readProject(const QDomDocument&)), this, SLOT(readXML(const QDomDocument& doc)));
+ connect(QgsProject::instance(), SIGNAL(readProject(const QDomDocument&)), this, SLOT(readXML(const QDomDocument&)));
connect(QgsProject::instance(), SIGNAL(writeProject(QDomDocument&)), this, SLOT(writeXML(QDomDocument&)));
}
}
@@ -1128,26 +1128,102 @@
return;
}
- QDomElement composerNode = doc.createElement("composer");
- qgisElem.appendChild( composerNode );
+ QDomElement composerElem = doc.createElement("Composer");
+ qgisElem.appendChild( composerElem );
//store composer items:
QMap<QgsComposerItem*, QWidget*>::const_iterator itemIt = mItemWidgetMap.constBegin();
for(; itemIt != mItemWidgetMap.constEnd(); ++itemIt)
{
- itemIt.key()->writeXML(composerNode, doc);
+ itemIt.key()->writeXML(composerElem, doc);
}
//store composer view
//store composition
+ if(mComposition)
+ {
+ mComposition->writeXML(composerElem, doc);
+ }
+
return;
}
void QgsComposer::readXML(const QDomDocument& doc)
{
- //todo...
+ //delete composer view and composition
+ delete mView;
+ mView = 0;
+ //delete every child of mViewFrame
+ QObjectList viewFrameChildren = mViewFrame->children();
+ QObjectList::iterator it = viewFrameChildren.begin();
+ for(; it != viewFrameChildren.end(); ++it)
+ {
+ delete (*it);
+ }
+
+ //delete composition widget
+ QgsCompositionWidget* oldCompositionWidget = dynamic_cast<QgsCompositionWidget*>(mCompositionOptionsFrame->children().at(0));
+ delete oldCompositionWidget;
+ delete mCompositionOptionsLayout;
+ mCompositionOptionsLayout = 0;
+
+ //look for Composer element
+
+ QDomNodeList nl = doc.elementsByTagName("Composer");
+ if(nl.size() < 1)
+ {
+ return; //nothing to do...
+ }
+ QDomElement composerElem = nl.at(0).toElement();
+
+ //look for Composition element
+ QDomNodeList cnl = composerElem.elementsByTagName("Composition");
+ if(cnl.size() > 0)
+ {
+ QDomElement compositionElem = cnl.at(0).toElement();
+
+ //todo: move in function because duplicated code with constructor
+ mView = new QgsComposerView(mViewFrame);
+ connect(mView, SIGNAL(selectedItemChanged(const QgsComposerItem*)), this, SLOT(showItemOptions(const QgsComposerItem*)));
+ connect(mView, SIGNAL(composerLabelAdded(QgsComposerLabel*)), this, SLOT(addComposerLabel(QgsComposerLabel*)));
+ connect(mView, SIGNAL(composerMapAdded(QgsComposerMap*)), this, SLOT(addComposerMap(QgsComposerMap*)));
+ connect(mView, SIGNAL(itemRemoved(QgsComposerItem*)), this, SLOT(deleteItem(QgsComposerItem*)));
+ connect(mView, SIGNAL(composerScaleBarAdded(QgsComposerScaleBar*)), this, SLOT(addComposerScaleBar(QgsComposerScaleBar*)));
+ connect(mView, SIGNAL(composerLegendAdded(QgsComposerLegend*)), this, SLOT(addComposerLegend(QgsComposerLegend*)));
+
+ mComposition = new QgsComposition(mQgis->getMapCanvas());
+ mComposition->readXML(compositionElem, doc);
+
+ QGridLayout *l = new QGridLayout(mViewFrame );
+ l->setMargin(0);
+ l->addWidget( mView, 0, 0 );
+
+ //create compositionwidget
+ QgsCompositionWidget* compositionWidget = new QgsCompositionWidget(mCompositionOptionsFrame, mComposition);
+ compositionWidget->show();
+
+ mCompositionOptionsLayout = new QGridLayout( mCompositionOptionsFrame );
+ mCompositionOptionsLayout->setMargin(0);
+ mCompositionOptionsLayout->addWidget(compositionWidget);
+
+ //read and restore all the items
+
+ //composer labels
+ QDomNodeList composerLabelList = composerElem.elementsByTagName("ComposerLabel");
+ for(int i = 0; i < composerLabelList.size(); ++i)
+ {
+ QDomElement currentComposerLabelElem = composerLabelList.at(i).toElement();
+ QgsComposerLabel* newLabel = new QgsComposerLabel(mComposition);
+ newLabel->readXML(currentComposerLabelElem, doc);
+ addComposerLabel(newLabel);
+ mComposition->addItem(newLabel);
+ mComposition->update();
+ }
+ }
+
+ mView->setComposition(mComposition);
}
void QgsComposer::addComposerMap(QgsComposerMap* map)
Modified: branches/advanced_printing_branch/src/app/composer/qgscomposeritem.cpp
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposeritem.cpp 2008-07-27 14:28:11 UTC (rev 8928)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposeritem.cpp 2008-07-27 14:55:08 UTC (rev 8929)
@@ -89,8 +89,42 @@
return true;
}
-bool QgsComposerItem::readXML( QDomElement& elem) { return true; }
+bool QgsComposerItem::_readXML(const QDomElement& itemElem, const QDomDocument& doc)
+{
+ if(itemElem.isNull())
+ {
+ return false;
+ }
+
+ //frame
+ QString frame = itemElem.attribute("frame");
+ if(frame.compare("true", Qt::CaseInsensitive) == 0)
+ {
+ mFrame = true;
+ }
+ else
+ {
+ mFrame = false;
+ }
+ //position
+ double x, y, width, height;
+ bool xOk, yOk, widthOk, heightOk;
+
+ x = itemElem.attribute("x").toDouble(&xOk);
+ y = itemElem.attribute("y").toDouble(&yOk);
+ width = itemElem.attribute("width").toDouble(&widthOk);
+ height = itemElem.attribute("height").toDouble(&heightOk);
+
+ if(!xOk || !yOk || !widthOk || !heightOk)
+ {
+ return false;
+ }
+
+ setSceneRect(QRectF(x, y, width, height));
+ return true;
+}
+
void QgsComposerItem::mouseMoveEvent ( QGraphicsSceneMouseEvent * event )
{
qWarning("QgsComposerItem::mouseMoveEvent");
Modified: branches/advanced_printing_branch/src/app/composer/qgscomposeritem.h
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposeritem.h 2008-07-27 14:28:11 UTC (rev 8928)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposeritem.h 2008-07-27 14:55:08 UTC (rev 8929)
@@ -80,14 +80,17 @@
*/
virtual bool writeXML(QDomElement& elem, QDomDocument & doc) = 0;
- /**Writes parameter that are not subclass specific in document. Usually called from subclass specific methods*/
+ /**Writes parameter that are not subclass specific in document. Usually called from writeXML methods of subclasses*/
bool _writeXML(QDomElement& itemElem, QDomDocument& doc);
/** sets state from DOM document
- * @param node is DOM node corresponding to 'Composer' tag
+ * @param itemElem is DOM node corresponding to item tag
*/
- virtual bool readXML( QDomElement& elem);
+ virtual bool readXML(const QDomElement& itemElem, const QDomDocument& doc) = 0;
+ /**Reads parameter that are not subclass specific in document. Usually called from readXML methods of subclasses*/
+ bool _readXML(const QDomElement& itemElem, const QDomDocument& doc);
+
bool frame() const {return mFrame;}
Modified: branches/advanced_printing_branch/src/app/composer/qgscomposeritemgroup.cpp
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposeritemgroup.cpp 2008-07-27 14:28:11 UTC (rev 8928)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposeritemgroup.cpp 2008-07-27 14:55:08 UTC (rev 8929)
@@ -167,5 +167,10 @@
bool QgsComposerItemGroup::writeXML(QDomElement& elem, QDomDocument & doc)
{
- return true;
+ return true; //soon...
}
+
+bool QgsComposerItemGroup::readXML(const QDomElement& itemElem, const QDomDocument& doc)
+{
+ return false; //soon...
+}
Modified: branches/advanced_printing_branch/src/app/composer/qgscomposeritemgroup.h
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposeritemgroup.h 2008-07-27 14:28:11 UTC (rev 8928)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposeritemgroup.h 2008-07-27 14:55:08 UTC (rev 8929)
@@ -46,6 +46,11 @@
*/
bool writeXML(QDomElement& elem, QDomDocument & doc);
+ /** sets state from DOM document
+ * @param itemElem is DOM node corresponding to item tag
+ */
+ bool readXML(const QDomElement& itemElem, const QDomDocument& doc);
+
signals:
void childItemDeleted(QgsComposerItem* item);
Modified: branches/advanced_printing_branch/src/app/composer/qgscomposerlabel.cpp
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposerlabel.cpp 2008-07-27 14:28:11 UTC (rev 8928)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposerlabel.cpp 2008-07-27 14:55:08 UTC (rev 8929)
@@ -75,7 +75,7 @@
QDomElement composerLabelElem = doc.createElement("ComposerLabel");
composerLabelElem.setAttribute("labelText", mText);
- composerLabelElem.setAttribute("margin", mMargin);
+ composerLabelElem.setAttribute("margin", QString::number(mMargin));
//font
@@ -87,4 +87,35 @@
return _writeXML(composerLabelElem, doc);
}
+bool QgsComposerLabel::readXML(const QDomElement& itemElem, const QDomDocument& doc)
+{
+ if(itemElem.isNull())
+ {
+ return false;
+ }
+ //restore label specific properties
+
+ //text
+ mText = itemElem.attribute("labelText");
+
+ //margin
+ mMargin = itemElem.attribute("margin").toDouble();
+
+ //font
+ QDomNodeList labelFontList = itemElem.elementsByTagName("LabelFont");
+ if(labelFontList.size() > 0)
+ {
+ QDomElement labelFontElem = labelFontList.at(0).toElement();
+ mFont.fromString(labelFontElem.attribute("description"));
+ }
+
+ //restore general composer item properties
+ QDomNodeList composerItemList = itemElem.elementsByTagName("ComposerItem");
+ if(composerItemList.size() > 0)
+ {
+ QDomElement composerItemElem = composerItemList.at(0).toElement();
+ _readXML(composerItemElem, doc);
+ }
+ return false; //soon...
+}
Modified: branches/advanced_printing_branch/src/app/composer/qgscomposerlabel.h
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposerlabel.h 2008-07-27 14:28:11 UTC (rev 8928)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposerlabel.h 2008-07-27 14:55:08 UTC (rev 8929)
@@ -43,6 +43,11 @@
* @param temp write template file
*/
bool writeXML(QDomElement& elem, QDomDocument & doc);
+
+ /** sets state from DOM document
+ * @param node is DOM node corresponding to 'ComposerLabel' tag
+ */
+ bool readXML(const QDomElement& itemElem, const QDomDocument& doc);
private:
// Text
Modified: branches/advanced_printing_branch/src/app/composer/qgscomposerlabelwidget.cpp
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposerlabelwidget.cpp 2008-07-27 14:28:11 UTC (rev 8928)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposerlabelwidget.cpp 2008-07-27 14:55:08 UTC (rev 8929)
@@ -35,6 +35,7 @@
{
mBoxCheckBox->setCheckState(Qt::Unchecked);
}
+ mMarginDoubleSpinBox->setValue(mComposerLabel->margin());
}
}
Modified: branches/advanced_printing_branch/src/app/composer/qgscomposerlegend.cpp
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposerlegend.cpp 2008-07-27 14:28:11 UTC (rev 8928)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposerlegend.cpp 2008-07-27 14:55:08 UTC (rev 8929)
@@ -320,5 +320,10 @@
bool QgsComposerLegend::writeXML(QDomElement& elem, QDomDocument & doc)
{
- return true;
+ return true; //soon...
}
+
+bool QgsComposerLegend::readXML(const QDomElement& itemElem, const QDomDocument& doc)
+{
+ return false; //soon...
+}
Modified: branches/advanced_printing_branch/src/app/composer/qgscomposerlegend.h
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposerlegend.h 2008-07-27 14:28:11 UTC (rev 8928)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposerlegend.h 2008-07-27 14:55:08 UTC (rev 8929)
@@ -78,6 +78,11 @@
*/
bool writeXML(QDomElement& elem, QDomDocument & doc);
+ /** sets state from DOM document
+ * @param itemElem is DOM node corresponding to item tag
+ */
+ bool readXML(const QDomElement& itemElem, const QDomDocument& doc);
+
protected:
QString mTitle;
Modified: branches/advanced_printing_branch/src/app/composer/qgscomposermap.cpp
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposermap.cpp 2008-07-27 14:28:11 UTC (rev 8928)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposermap.cpp 2008-07-27 14:55:08 UTC (rev 8929)
@@ -328,5 +328,10 @@
bool QgsComposerMap::writeXML(QDomElement& elem, QDomDocument & doc)
{
- return true;
+ return true; //soon...
}
+
+bool QgsComposerMap::readXML(const QDomElement& itemElem, const QDomDocument& doc)
+{
+ return false; //soon...
+}
Modified: branches/advanced_printing_branch/src/app/composer/qgscomposermap.h
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposermap.h 2008-07-27 14:28:11 UTC (rev 8928)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposermap.h 2008-07-27 14:55:08 UTC (rev 8929)
@@ -110,6 +110,11 @@
*/
bool writeXML(QDomElement& elem, QDomDocument & doc);
+ /** sets state from DOM document
+ * @param itemElem is DOM node corresponding to 'ComposerMap' tag
+ */
+ bool readXML(const QDomElement& itemElem, const QDomDocument& doc);
+
public slots:
// Called if map canvas has changed
Modified: branches/advanced_printing_branch/src/app/composer/qgscomposerscalebar.cpp
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposerscalebar.cpp 2008-07-27 14:28:11 UTC (rev 8928)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposerscalebar.cpp 2008-07-27 14:55:08 UTC (rev 8929)
@@ -243,7 +243,12 @@
bool QgsComposerScaleBar::writeXML(QDomElement& elem, QDomDocument & doc)
{
- return true;
+ return true; //soon...
}
+bool QgsComposerScaleBar::readXML(const QDomElement& itemElem, const QDomDocument& doc)
+{
+ return false; //soon...
+}
+
Modified: branches/advanced_printing_branch/src/app/composer/qgscomposerscalebar.h
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposerscalebar.h 2008-07-27 14:28:11 UTC (rev 8928)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposerscalebar.h 2008-07-27 14:55:08 UTC (rev 8929)
@@ -104,6 +104,11 @@
*/
bool writeXML(QDomElement& elem, QDomDocument & doc);
+ /** sets state from DOM document
+ * @param itemElem is DOM node corresponding to item tag
+ */
+ bool readXML(const QDomElement& itemElem, const QDomDocument& doc);
+
public slots:
void updateSegmentSize();
/**Sets mCompositionMap to 0 if the map is deleted*/
Modified: branches/advanced_printing_branch/src/app/composer/qgscomposition.cpp
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposition.cpp 2008-07-27 14:28:11 UTC (rev 8928)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposition.cpp 2008-07-27 14:55:08 UTC (rev 8929)
@@ -17,6 +17,8 @@
#include "qgscomposition.h"
#include "qgscomposeritem.h"
#include "qgscomposermap.h"
+#include <QDomDocument>
+#include <QDomElement>
#include <QGraphicsRectItem>
QgsComposition::QgsComposition(QgsMapCanvas* mapCanvas): QGraphicsScene(0), mMapCanvas(mapCanvas), mPlotStyle(QgsComposition::Preview), mPaperItem(0)
@@ -131,3 +133,41 @@
return 0;
}
+
+bool QgsComposition::writeXML(QDomElement& composerElem, QDomDocument& doc)
+{
+ if(composerElem.isNull())
+ {
+ return false;
+ }
+
+ QDomElement compositionElem = doc.createElement("Composition");
+ if(mPaperItem)
+ {
+ compositionElem.setAttribute("paperWidth", mPaperItem->rect().width());
+ compositionElem.setAttribute("paperHeight", mPaperItem->rect().height());
+ }
+ composerElem.appendChild(compositionElem);
+}
+
+bool QgsComposition::readXML(const QDomElement& compositionElem, const QDomDocument& doc)
+{
+ if(compositionElem.isNull())
+ {
+ return false;
+ }
+
+ //create paper item
+ bool widthConversionOk, heightConversionOk;
+ double paperWidth = compositionElem.attribute("paperWidth").toDouble(&widthConversionOk);
+ double paperHeight = compositionElem.attribute("paperHeight").toDouble(&heightConversionOk);
+
+ if(widthConversionOk && heightConversionOk)
+ {
+ delete mPaperItem;
+ mPaperItem = new QGraphicsRectItem( 0, 0, paperWidth, paperHeight, 0);
+ mPaperItem->setBrush(Qt::white);
+ addItem(mPaperItem);
+ mPaperItem->setZValue(0);
+ }
+}
Modified: branches/advanced_printing_branch/src/app/composer/qgscomposition.h
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscomposition.h 2008-07-27 14:28:11 UTC (rev 8928)
+++ branches/advanced_printing_branch/src/app/composer/qgscomposition.h 2008-07-27 14:55:08 UTC (rev 8929)
@@ -23,6 +23,9 @@
class QGraphicsRectItem;
class QgsMapCanvas;
+class QDomDocument;
+class QDomElement;
+
/**Graphics scene for map printing. It manages the paper item which always is the item in the back (z-value 0)*/
class QgsComposition: public QGraphicsScene
{
@@ -66,6 +69,12 @@
QgsComposition::PlotStyle plotStyle() const {return mPlotStyle;}
void setPlotStyle(QgsComposition::PlotStyle style) {mPlotStyle = style;}
+ /**Writes settings to xml (paper dimension)*/
+ bool writeXML(QDomElement& composerElem, QDomDocument& doc);
+
+ /**Reads settings from xml file*/
+ bool readXML(const QDomElement& compositionElem, const QDomDocument& doc);
+
private:
QgsMapCanvas* mMapCanvas;
QgsComposition::PlotStyle mPlotStyle;
Modified: branches/advanced_printing_branch/src/app/composer/qgscompositionwidget.cpp
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscompositionwidget.cpp 2008-07-27 14:28:11 UTC (rev 8928)
+++ branches/advanced_printing_branch/src/app/composer/qgscompositionwidget.cpp 2008-07-27 14:55:08 UTC (rev 8929)
@@ -29,8 +29,9 @@
mPaperOrientationComboBox->insertItem(1, tr("Portrait"));
mPaperOrientationComboBox->blockSignals(false);
mPaperOrientationComboBox->setCurrentItem(0);
-
- applyCurrentPaperSettings();
+
+ //read with/height from composition and find suitable entries to display
+ displayCompositionWidthHeight();
}
QgsCompositionWidget::QgsCompositionWidget(): QWidget(0), mComposition(0)
@@ -76,8 +77,6 @@
mPaperMap.insert ( tr("Legal (8.5x14 inches)"), QgsCompositionPaper( tr("Legal (8.5x14 inches)"), 216, 356 ) );
mPaperSizeComboBox->insertItem(14, tr("Legal (8.5x14 inches)"));
mPaperSizeComboBox->blockSignals(false);
-
- mPaperSizeComboBox->setCurrentIndex(2); //A4 default
}
void QgsCompositionWidget::on_mPaperSizeComboBox_currentIndexChanged(const QString& text)
@@ -203,3 +202,64 @@
{
applyWidthHeight();
}
+
+void QgsCompositionWidget::displayCompositionWidthHeight()
+{
+ if(!mComposition)
+ {
+ return;
+ }
+
+ //block all signals to avoid infinite recursion
+ mPaperSizeComboBox->blockSignals(true);
+ mPaperUnitsComboBox->blockSignals(true);
+ mPaperWidthLineEdit->blockSignals(true);
+ mPaperHeightLineEdit->blockSignals(true);
+ mPaperOrientationComboBox->blockSignals(true);
+ mResolutionLineEdit->blockSignals(true);
+
+ double paperWidth = mComposition->paperWidth();
+ mPaperWidthLineEdit->setText(QString::number(paperWidth));
+
+ double paperHeight = mComposition->paperHeight();
+ mPaperHeightLineEdit->setText(QString::number(paperHeight));
+
+ //set orientation
+ if(paperWidth > paperHeight)
+ {
+ mPaperOrientationComboBox->setCurrentIndex(mPaperOrientationComboBox->findText(tr("Landscape")));
+ }
+ else
+ {
+ mPaperOrientationComboBox->setCurrentIndex(mPaperOrientationComboBox->findText(tr("Portrait")));
+ }
+
+ //set paper name
+ bool found = false;
+ QMap<QString, QgsCompositionPaper>::const_iterator paper_it = mPaperMap.constBegin();
+ for(; paper_it != mPaperMap.constEnd(); ++paper_it)
+ {
+ QgsCompositionPaper currentPaper = paper_it.value();
+
+ //consider width and height values may be exchanged
+ if( (currentPaper.mWidth == paperWidth && currentPaper.mHeight == paperHeight)
+ || (currentPaper.mWidth == paperHeight && currentPaper.mHeight == paperWidth) )
+ {
+ mPaperSizeComboBox->setCurrentItem(mPaperSizeComboBox->findText(paper_it.key()));
+ found = true;
+ }
+ }
+
+ if(!found)
+ {
+ //custom
+ mPaperSizeComboBox->setCurrentItem(0);
+ }
+
+ mPaperSizeComboBox->blockSignals(false);
+ mPaperUnitsComboBox->blockSignals(false);
+ mPaperWidthLineEdit->blockSignals(false);
+ mPaperHeightLineEdit->blockSignals(false);
+ mPaperOrientationComboBox->blockSignals(false);
+ mResolutionLineEdit->blockSignals(false);
+}
Modified: branches/advanced_printing_branch/src/app/composer/qgscompositionwidget.h
===================================================================
--- branches/advanced_printing_branch/src/app/composer/qgscompositionwidget.h 2008-07-27 14:28:11 UTC (rev 8928)
+++ branches/advanced_printing_branch/src/app/composer/qgscompositionwidget.h 2008-07-27 14:55:08 UTC (rev 8929)
@@ -51,6 +51,8 @@
void applyWidthHeight();
/**Makes sure width/height values for custom paper matches the current orientation*/
void adjustOrientation();
+ /**Sets GUI elements to width/height from composition*/
+ void displayCompositionWidthHeight();
void createPaperEntries();
void insertPaperEntries();
More information about the QGIS-commit
mailing list