8 changes: 8 additions & 0 deletions src/core/composer/qgscomposertable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,14 @@ QgsComposerTable::QgsComposerTable( QgsComposition* composition )
, mGridStrokeWidth( 0.5 )
, mGridColor( QColor( 0, 0, 0 ) )
{
//get default composer font from settings
QSettings settings;
QString defaultFontString = settings.value( "/Composer/defaultFont" ).toString();
if ( !defaultFontString.isEmpty() )
{
mHeaderFont.setFamily( defaultFontString );
mContentFont.setFamily( defaultFontString );
}
}

QgsComposerTable::~QgsComposerTable()
Expand Down
88 changes: 41 additions & 47 deletions src/core/composer/qgscomposition.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,14 +60,14 @@ QgsComposition::QgsComposition( QgsMapRenderer* mapRenderer )
, mUseAdvancedEffects( true )
, mSnapToGrid( false )
, mGridVisible( false )
, mSnapGridResolution( 10.0 )
, mSnapGridTolerance( 2 )
, mSnapGridOffsetX( 0.0 )
, mSnapGridOffsetY( 0.0 )
, mSnapGridResolution( 0 )
, mSnapGridTolerance( 0 )
, mSnapGridOffsetX( 0 )
, mSnapGridOffsetY( 0 )
, mAlignmentSnap( true )
, mGuidesVisible( true )
, mSmartGuides( true )
, mAlignmentSnapTolerance( 2 )
, mAlignmentSnapTolerance( 0 )
, mSelectionHandles( 0 )
, mActiveItemCommand( 0 )
, mActiveMultiFrameCommand( 0 )
Expand All @@ -84,6 +84,9 @@ QgsComposition::QgsComposition( QgsMapRenderer* mapRenderer )
mSelectionHandles->setZValue( 500 );

mPrintResolution = 300; //hardcoded default

//load default composition settings
loadDefaults();
loadSettings();
}

Expand All @@ -100,22 +103,23 @@ QgsComposition::QgsComposition()
mUseAdvancedEffects( true ),
mSnapToGrid( false ),
mGridVisible( false ),
mSnapGridResolution( 10.0 ),
mSnapGridTolerance( 2 ),
mSnapGridOffsetX( 0.0 ),
mSnapGridOffsetY( 0.0 ),
mSnapGridResolution( 0 ),
mSnapGridTolerance( 0 ),
mSnapGridOffsetX( 0 ),
mSnapGridOffsetY( 0 ),
mAlignmentSnap( true ),
mGuidesVisible( true ),
mSmartGuides( true ),
mAlignmentSnapTolerance( 2 ),
mAlignmentSnapTolerance( 0 ),
mSelectionHandles( 0 ),
mActiveItemCommand( 0 ),
mActiveMultiFrameCommand( 0 ),
mAtlasComposition( this ),
mPreventCursorChange( false )
{
//load default composition settings
loadDefaults();
loadSettings();

}

QgsComposition::~QgsComposition()
Expand All @@ -131,6 +135,16 @@ QgsComposition::~QgsComposition()
delete mActiveMultiFrameCommand;
}

void QgsComposition::loadDefaults()
{
QSettings settings;
mSnapGridResolution = settings.value( "/Composer/defaultSnapGridResolution", 10.0 ).toDouble();
mSnapGridTolerance = settings.value( "/Composer/defaultSnapGridTolerance", 2 ).toDouble();
mSnapGridOffsetX = settings.value( "/Composer/defaultSnapGridOffsetX", 0 ).toDouble();
mSnapGridOffsetY = settings.value( "/Composer/defaultSnapGridOffsetY", 0 ).toDouble();
mAlignmentSnapTolerance = settings.value( "/Composer/defaultSnapGuideTolerance", 2 ).toDouble();
}

void QgsComposition::setPaperSize( double width, double height )
{
mPageWidth = width;
Expand Down Expand Up @@ -1608,41 +1622,35 @@ void QgsComposition::setSnapToGridEnabled( bool b )
{
mSnapToGrid = b;
updatePaperItems();
saveSettings();
}

void QgsComposition::setGridVisible( bool b )
{
mGridVisible = b;
updatePaperItems();
saveSettings();
}

void QgsComposition::setSnapGridResolution( double r )
{
mSnapGridResolution = r;
updatePaperItems();
saveSettings();
}

void QgsComposition::setSnapGridTolerance( double tolerance )
{
mSnapGridTolerance = tolerance;
saveSettings();
}

void QgsComposition::setSnapGridOffsetX( double offset )
{
mSnapGridOffsetX = offset;
updatePaperItems();
saveSettings();
}

void QgsComposition::setSnapGridOffsetY( double offset )
{
mSnapGridOffsetY = offset;
updatePaperItems();
saveSettings();
}

void QgsComposition::setGridPen( const QPen& p )
Expand All @@ -1651,14 +1659,20 @@ void QgsComposition::setGridPen( const QPen& p )
//make sure grid is drawn using a zero-width cosmetic pen
mGridPen.setWidthF( 0 );
updatePaperItems();
saveSettings();
}

void QgsComposition::setGridStyle( GridStyle s )
{
mGridStyle = s;
updatePaperItems();
saveSettings();
}

void QgsComposition::updateSettings()
{
//load new composer setting values
loadSettings();
//update any paper items to reflect new settings
updatePaperItems();
}

void QgsComposition::loadSettings()
Expand All @@ -1667,14 +1681,16 @@ void QgsComposition::loadSettings()
QSettings s;

QString gridStyleString;
int red, green, blue;
gridStyleString = s.value( "/Composer/gridStyle", "Dots" ).toString();

gridStyleString = s.value( "/qgis/composerGridStyle", "Dots" ).toString();
red = s.value( "/qgis/composerGridRed", 0 ).toInt();
green = s.value( "/qgis/composerGridGreen", 0 ).toInt();
blue = s.value( "/qgis/composerGridBlue", 0 ).toInt();
int gridRed, gridGreen, gridBlue, gridAlpha;
gridRed = s.value( "/Composer/gridRed", 190 ).toInt();
gridGreen = s.value( "/Composer/gridGreen", 190 ).toInt();
gridBlue = s.value( "/Composer/gridBlue", 190 ).toInt();
gridAlpha = s.value( "/Composer/gridAlpha", 100 ).toInt();
QColor gridColor = QColor( gridRed, gridGreen, gridBlue, gridAlpha );

mGridPen.setColor( QColor( red, green, blue ) );
mGridPen.setColor( gridColor );
mGridPen.setWidthF( 0 );

if ( gridStyleString == "Dots" )
Expand All @@ -1691,28 +1707,6 @@ void QgsComposition::loadSettings()
}
}

void QgsComposition::saveSettings()
{
//store grid appearance settings
QSettings s;
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" );
}
}

void QgsComposition::beginCommand( QgsComposerItem* item, const QString& commandText, QgsComposerMergeCommand::Context c )
{
delete mActiveItemCommand;
Expand Down
9 changes: 8 additions & 1 deletion src/core/composer/qgscomposition.h
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,10 @@ class CORE_EXPORT QgsComposition : public QGraphicsScene
*/
void setStatusMessage( const QString & message );

/**Refreshes the composition when composer related options change
*Note: added in version 2.1*/
void updateSettings();

void setSnapToGridEnabled( bool b );
bool snapToGridEnabled() const {return mSnapToGrid;}

Expand Down Expand Up @@ -481,8 +485,11 @@ class CORE_EXPORT QgsComposition : public QGraphicsScene
@return 0 in case of success*/
int boundingRectOfSelectedItems( QRectF& bRect );

/**Loads default composer settings*/
void loadDefaults();

/**Loads composer settings which may change, eg grid color*/
void loadSettings();
void saveSettings();

void connectAddRemoveCommandSignals( QgsAddRemoveItemCommand* c );

Expand Down
14 changes: 13 additions & 1 deletion src/ui/qgscomposerbase.ui
Original file line number Diff line number Diff line change
Expand Up @@ -780,7 +780,19 @@
<property name="text">
<string>Pan Composer</string>
</property>
</action>
</action>
<action name="mActionOptions">
<property name="icon">
<iconset resource="../../images/images.qrc">
<normaloff>:/images/themes/default/mActionOptions.svg</normaloff>:/images/themes/default/mActionOptions.svg</iconset>
</property>
<property name="text">
<string>Composer Options...</string>
</property>
<property name="menuRole">
<enum>QAction::PreferencesRole</enum>
</property>
</action>
</widget>
<resources>
<include location="../../images/images.qrc"/>
Expand Down
30 changes: 1 addition & 29 deletions src/ui/qgscompositionwidgetbase.ui
Original file line number Diff line number Diff line change
Expand Up @@ -361,29 +361,6 @@
</layout>
</item>
<item row="2" column="0">
<widget class="QLabel" name="mGridStyleLabel">
<property name="text">
<string>Grid style</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="buddy">
<cstring>mGridStyleComboBox</cstring>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="mGridStyleComboBox"/>
</item>
<item row="3" column="1">
<widget class="QgsColorButton" name="mGridColorButton">
<property name="text">
<string>Color...</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Tolerance</string>
Expand All @@ -393,7 +370,7 @@
</property>
</widget>
</item>
<item row="4" column="1">
<item row="2" column="1">
<widget class="QDoubleSpinBox" name="mGridToleranceSpinBox">
<property name="prefix">
<string/>
Expand Down Expand Up @@ -471,11 +448,6 @@
</widget>
<layoutdefault spacing="6" margin="11"/>
<customwidgets>
<customwidget>
<class>QgsColorButton</class>
<extends>QPushButton</extends>
<header>qgscolorbutton.h</header>
</customwidget>
<customwidget>
<class>QgsCollapsibleGroupBoxBasic</class>
<extends>QGroupBox</extends>
Expand Down
257 changes: 245 additions & 12 deletions src/ui/qgsoptionsbase.ui
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,18 @@
<normaloff>:/images/themes/default/propertyicons/map_tools.png</normaloff>:/images/themes/default/propertyicons/map_tools.png</iconset>
</property>
</item>
<item>
<property name="text">
<string>Composer</string>
</property>
<property name="toolTip">
<string>Composer</string>
</property>
<property name="icon">
<iconset resource="../../images/images.qrc">
<normaloff>:/images/themes/default/mActionNewComposer.svg</normaloff>:/images/themes/default/mActionNewComposer.svg</iconset>
</property>
</item>
<item>
<property name="text">
<string>Digitizing</string>
Expand Down Expand Up @@ -238,7 +250,7 @@
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="mOptionsPage_01">
<widget class="QWidget" name="mOptionsPageGeneral">
<layout class="QVBoxLayout" name="verticalLayout_3">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -884,7 +896,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_03">
<widget class="QWidget" name="mOptionsPageSystem">
<layout class="QVBoxLayout" name="verticalLayout_7">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -1220,7 +1232,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_11">
<widget class="QWidget" name="mOptionsPageDataSources">
<layout class="QVBoxLayout" name="verticalLayout_26">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -1549,7 +1561,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_04">
<widget class="QWidget" name="mOptionsPageRendering">
<layout class="QVBoxLayout" name="verticalLayout_12">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -2064,7 +2076,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_06">
<widget class="QWidget" name="mOptionsPageMapCanvas">
<layout class="QVBoxLayout" name="verticalLayout_16">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -2410,7 +2422,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_05">
<widget class="QWidget" name="mOptionsPageMapTools">
<layout class="QVBoxLayout" name="verticalLayout_14">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -2824,7 +2836,228 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_07">
<widget class="QWidget" name="mOptionsPageComposer">
<layout class="QVBoxLayout" name="verticalLayout_9">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_56">
<property name="styleSheet">
<string notr="true">font-weight:bold;</string>
</property>
<property name="text">
<string>Composer</string>
</property>
</widget>
</item>
<item>
<widget class="QScrollArea" name="mOptionsScrollArea_12">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="mOptionsScrollAreaContents_12">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>674</width>
<height>505</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_39">
<property name="topMargin">
<number>0</number>
</property>
<item>
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>Composition defaults</string>
</property>
<layout class="QGridLayout" name="gridLayout_8">
<item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLabel" name="label_60">
<property name="text">
<string>Default font</string>
</property>
</widget>
</item>
<item>
<widget class="QFontComboBox" name="mComposerFontComboBox"/>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_23">
<property name="title">
<string>Grid appearance</string>
</property>
<layout class="QGridLayout" name="gridLayout_9">
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_32">
<item>
<widget class="QLabel" name="label_59">
<property name="text">
<string>Grid style</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="mGridStyleComboBox"/>
</item>
<item>
<widget class="QgsColorButton" name="mGridColorButton">
<property name="text">
<string>Color...</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_24">
<property name="title">
<string>Grid defaults</string>
</property>
<layout class="QGridLayout" name="gridLayout_11">
<item row="0" column="0">
<widget class="QLabel" name="label_61">
<property name="text">
<string>Spacing</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QDoubleSpinBox" name="mGridResolutionSpinBox">
<property name="suffix">
<string> mm</string>
</property>
<property name="minimum">
<double>0.500000000000000</double>
</property>
<property name="maximum">
<double>9999.000000000000000</double>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLabel" name="label_63">
<property name="text">
<string>Grid offset</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="3">
<layout class="QHBoxLayout" name="horizontalLayout_36">
<item>
<widget class="QDoubleSpinBox" name="mOffsetXSpinBox">
<property name="prefix">
<string>x: </string>
</property>
<property name="maximum">
<double>9999.000000000000000</double>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="mOffsetYSpinBox">
<property name="prefix">
<string>y: </string>
</property>
<property name="suffix">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_62">
<property name="text">
<string>Snap tolerance</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QDoubleSpinBox" name="mGridToleranceSpinBox">
<property name="prefix">
<string/>
</property>
<property name="suffix">
<string> mm</string>
</property>
<property name="value">
<double>2.000000000000000</double>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_25">
<property name="title">
<string>Guide defaults</string>
</property>
<layout class="QGridLayout" name="gridLayout_12">
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_37">
<item>
<widget class="QLabel" name="label_64">
<property name="text">
<string>Snap tolerance</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="mGuideToleranceSpinBox">
<property name="prefix">
<string/>
</property>
<property name="suffix">
<string> mm</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_10">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPageDigitizing">
<layout class="QVBoxLayout" name="verticalLayout_17">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -3325,7 +3558,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_02">
<widget class="QWidget" name="mOptionsPageGDAL">
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -3465,7 +3698,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_08">
<widget class="QWidget" name="mOptionsPageCRS">
<layout class="QVBoxLayout" name="verticalLayout_18">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -3722,7 +3955,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_09">
<widget class="QWidget" name="mOptionsPageLocale">
<layout class="QVBoxLayout" name="verticalLayout_19">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -3822,7 +4055,7 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="mOptionsPage_10">
<widget class="QWidget" name="mOptionsPageNetwork">
<layout class="QVBoxLayout" name="verticalLayout_20">
<property name="margin">
<number>0</number>
Expand Down Expand Up @@ -3930,7 +4163,7 @@
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_34">
<layout class="QHBoxLayout" name="horizontalLayout_35">
<item>
<widget class="QLabel" name="lblUserAgent">
<property name="text">
Expand Down