[QGIS Commit] r9966 - in branches/advanced_printing_branch2/src:
app/composer core/composer
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Tue Jan 13 09:09:17 EST 2009
Author: mhugent
Date: 2009-01-13 09:09:17 -0500 (Tue, 13 Jan 2009)
New Revision: 9966
Modified:
branches/advanced_printing_branch2/src/app/composer/qgscompositionwidget.cpp
branches/advanced_printing_branch2/src/core/composer/qgscomposition.cpp
branches/advanced_printing_branch2/src/core/composer/qgscomposition.h
branches/advanced_printing_branch2/src/core/composer/qgspaperitem.cpp
Log:
Save composer snap grid appearance in settings and the rest of the snap grid settings in the project file
Modified: branches/advanced_printing_branch2/src/app/composer/qgscompositionwidget.cpp
===================================================================
--- branches/advanced_printing_branch2/src/app/composer/qgscompositionwidget.cpp 2009-01-13 09:18:06 UTC (rev 9965)
+++ branches/advanced_printing_branch2/src/app/composer/qgscompositionwidget.cpp 2009-01-13 14:09:17 UTC (rev 9966)
@@ -39,11 +39,25 @@
//read with/height from composition and find suitable entries to display
displayCompositionWidthHeight();
- //read printout resolution from composition
if ( mComposition )
{
+ //read printout resolution from composition
mResolutionLineEdit->setText( QString::number( mComposition->printResolution() ) );
+ //snap grid
+ if( mComposition->snapToGridEnabled() )
+ {
+ mSnapToGridCheckBox->setCheckState(Qt::Checked);
+ }
+ else
+ {
+ mSnapToGridCheckBox->setCheckState(Qt::Unchecked);
+ }
+ mResolutionSpinBox->setValue( mComposition->snapGridResolution() );
+ mOffsetXSpinBox->setValue( mComposition->snapGridOffsetX() );
+ mOffsetYSpinBox->setValue( mComposition->snapGridOffsetY() );
+
+
//grid pen width
mPenWidthSpinBox->blockSignals(true);
mPenWidthSpinBox->setValue(mComposition->gridPen().widthF());
@@ -53,14 +67,27 @@
mGridColorButton->blockSignals(true);
mGridColorButton->setColor(mComposition->gridPen().color());
mGridColorButton->blockSignals(false);
+
+ mGridStyleComboBox->blockSignals(true);
+ mGridStyleComboBox->insertItem( 0, tr("Solid"));
+ mGridStyleComboBox->insertItem( 1, tr("Dots"));
+ mGridStyleComboBox->insertItem( 2, tr("Crosses"));
+
+ QgsComposition::GridStyle snapGridStyle = mComposition->gridStyle();
+ if(snapGridStyle == QgsComposition::Solid)
+ {
+ mGridStyleComboBox->setCurrentIndex( 0 );
+ }
+ else if(snapGridStyle == QgsComposition::Dots)
+ {
+ mGridStyleComboBox->setCurrentIndex( 1 );
+ }
+ else
+ {
+ mGridStyleComboBox->setCurrentIndex( 2 );
+ }
+ mGridStyleComboBox->blockSignals(false);
}
-
- mGridStyleComboBox->blockSignals(true);
- mGridStyleComboBox->insertItem( 0, tr("Solid"));
- mGridStyleComboBox->insertItem( 1, tr("Dots"));
- mGridStyleComboBox->insertItem( 2, tr("Crosses"));
- mGridStyleComboBox->blockSignals(false);
- mGridStyleComboBox->setCurrentIndex( 0 );
}
QgsCompositionWidget::QgsCompositionWidget(): QWidget( 0 ), mComposition( 0 )
Modified: branches/advanced_printing_branch2/src/core/composer/qgscomposition.cpp
===================================================================
--- branches/advanced_printing_branch2/src/core/composer/qgscomposition.cpp 2009-01-13 09:18:06 UTC (rev 9965)
+++ branches/advanced_printing_branch2/src/core/composer/qgscomposition.cpp 2009-01-13 14:09:17 UTC (rev 9966)
@@ -21,6 +21,7 @@
#include <QDomDocument>
#include <QDomElement>
#include <QGraphicsRectItem>
+#include <QSettings>
QgsComposition::QgsComposition( QgsMapRenderer* mapRenderer ): QGraphicsScene( 0 ), mMapRenderer( mapRenderer ), mPlotStyle( QgsComposition::Preview ), mPaperItem( 0 ), mSnapToGrid(false), mSnapGridResolution(0.0), mSnapGridOffsetX(0.0), mSnapGridOffsetY(0.0)
{
@@ -32,15 +33,12 @@
addItem( mPaperItem );
mPaperItem->setZValue( 0 );
mPrintResolution = 300; //hardcoded default
-
- //snap grid settings
- mGridPen = QPen(QColor(127, 127, 127));
- mGridPen.setWidthF(0.3);
+ loadGridAppearanceSettings();
}
QgsComposition::QgsComposition(): QGraphicsScene( 0 ), mMapRenderer( 0 ), mPlotStyle( QgsComposition::Preview ), mPaperItem( 0 ), mSnapToGrid(false), mSnapGridResolution(0.0), mSnapGridOffsetX(0.0), mSnapGridOffsetY(0.0)
{
-
+ saveGridAppearanceSettings();
}
QgsComposition::~QgsComposition()
@@ -166,6 +164,20 @@
compositionElem.setAttribute( "paperWidth", mPaperItem->rect().width() );
compositionElem.setAttribute( "paperHeight", mPaperItem->rect().height() );
}
+
+ //snapping
+ if(mSnapToGrid)
+ {
+ compositionElem.setAttribute( "snapping", "1");
+ }
+ else
+ {
+ compositionElem.setAttribute( "snapping", "0");
+ }
+ compositionElem.setAttribute("snapGridResolution", mSnapGridResolution);
+ compositionElem.setAttribute("snapGridOffsetX", mSnapGridOffsetX);
+ compositionElem.setAttribute("snapGridOffsetY", mSnapGridOffsetY);
+
composerElem.appendChild( compositionElem );
return true;
@@ -192,6 +204,24 @@
mPaperItem->setZValue( 0 );
}
+ //snapping
+ if(compositionElem.attribute("snapping") == "0")
+ {
+ mSnapToGrid = false;
+ }
+ else
+ {
+ mSnapToGrid = true;
+ }
+ mSnapGridResolution = compositionElem.attribute("snapGridResolution").toDouble();
+ mSnapGridOffsetX = compositionElem.attribute("snapGridOffsetX").toDouble();
+ mSnapGridOffsetY = compositionElem.attribute("snapGridOffsetY").toDouble();
+
+ if(mPaperItem)
+ {
+ mPaperItem->update();
+ }
+
return true;
}
@@ -654,6 +684,7 @@
{
mPaperItem->update();
}
+ saveGridAppearanceSettings();
}
void QgsComposition::setGridStyle(GridStyle s)
@@ -663,4 +694,60 @@
{
mPaperItem->update();
}
+ saveGridAppearanceSettings();
}
+
+void QgsComposition::loadGridAppearanceSettings()
+{
+ //read grid style, grid color and pen width from settings
+ QSettings s;
+
+ QString gridStyleString;
+ int red, green, blue;
+ double penWidth;
+
+ gridStyleString = s.value("/qgis/composerGridStyle", "Dots").toString();
+ penWidth = s.value("/qgis/composerGridWidth", 0.5).toDouble();
+ red = s.value("/qgis/composerGridRed", 0).toInt();
+ green = s.value("/qgis/composerGridGreen", 0).toInt();
+ blue = s.value("/qgis/composerGridBlue", 0).toInt();
+
+ mGridPen.setColor(QColor(red, green, blue));
+ mGridPen.setWidthF(penWidth);
+
+ if(gridStyleString == "Dots")
+ {
+ mGridStyle = Dots;
+ }
+ else if(gridStyleString == "Crosses")
+ {
+ mGridStyle = Crosses;
+ }
+ else
+ {
+ mGridStyle = Solid;
+ }
+}
+
+void QgsComposition::saveGridAppearanceSettings()
+{
+ //store grid appearance settings
+ QSettings s;
+ s.setValue("/qgis/composerGridWidth", mGridPen.widthF());
+ s.setValue("/qgis/composerGridRed", mGridPen.color().red());
+ s.setValue("/qgis/composerGridGreen", mGridPen.color().green());
+ s.setValue("/qgis/composerGridBlue", mGridPen.color().blue());
+
+ if(mGridStyle == Solid)
+ {
+ s.setValue("/qgis/composerGridStyle", "Solid");
+ }
+ else if(mGridStyle == Dots)
+ {
+ s.setValue("/qgis/composerGridStyle", "Dots");
+ }
+ else if(mGridStyle == Crosses)
+ {
+ s.setValue("/qgis/composerGridStyle", "Crosses");
+ }
+}
Modified: branches/advanced_printing_branch2/src/core/composer/qgscomposition.h
===================================================================
--- branches/advanced_printing_branch2/src/core/composer/qgscomposition.h 2009-01-13 09:18:06 UTC (rev 9965)
+++ branches/advanced_printing_branch2/src/core/composer/qgscomposition.h 2009-01-13 14:09:17 UTC (rev 9966)
@@ -178,6 +178,9 @@
/**Returns the bounding rectangle of the selected items in scene coordinates
@return 0 in case of success*/
int boundingRectOfSelectedItems(QRectF& bRect);
+
+ void loadGridAppearanceSettings();
+ void saveGridAppearanceSettings();
};
#endif
Modified: branches/advanced_printing_branch2/src/core/composer/qgspaperitem.cpp
===================================================================
--- branches/advanced_printing_branch2/src/core/composer/qgspaperitem.cpp 2009-01-13 09:18:06 UTC (rev 9965)
+++ branches/advanced_printing_branch2/src/core/composer/qgspaperitem.cpp 2009-01-13 14:09:17 UTC (rev 9966)
@@ -75,7 +75,7 @@
}
//draw horizontal lines
-
+ currentYCoord = minYCoord;
for(; currentYCoord <= rect().height(); currentYCoord += mComposition->snapGridResolution())
{
painter->drawLine(QPointF(0, currentYCoord), QPointF(rect().width(), currentYCoord));
More information about the QGIS-commit
mailing list