16 changes: 4 additions & 12 deletions src/app/qgsdecorationgrid.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,15 @@
#ifndef QGSDECORATIONGRID_H
#define QGSDECORATIONGRID_H

#include "qgsdecorationitem.h"

class QPainter;

#include <QColor>
#include <QObject>
#include <QPen>
#include <QFont>

class QgsDecorationGrid: public QObject
class QgsDecorationGrid: public QgsDecorationItem
{
Q_OBJECT
public:
Expand Down Expand Up @@ -54,11 +55,6 @@ class QgsDecorationGrid: public QObject
BoundaryDirection
};

/**Enables a coordinate grid that is shown on top of this composermap.
@note this function was added in version 1.4*/
void setGridEnabled( bool enabled ) {mGridEnabled = enabled;}
bool gridEnabled() const { return mGridEnabled; }

/**Sets coordinate grid style to solid or cross
@note this function was added in version 1.4*/
void setGridStyle( GridStyle style ) {mGridStyle = style;}
Expand Down Expand Up @@ -130,16 +126,14 @@ class QgsDecorationGrid: public QObject
void setCrossLength( double l ) {mCrossLength = l;}
double crossLength() {return mCrossLength;}

void update();

public slots:
//! set values on the gui when a project is read or the gui first loaded
void projectRead();
//! save values to the project
void saveToProject();

//! this does the meaty bit of the work
void renderGrid( QPainter * );
void render( QPainter * );
//! Show the dialog box
void run();

Expand All @@ -154,8 +148,6 @@ class QgsDecorationGrid: public QObject
Top
};

/**True if coordinate grid has to be displayed*/
bool mGridEnabled;
/**Solid or crosses*/
GridStyle mGridStyle;
/**Grid line interval in x-direction (map units)*/
Expand Down
28 changes: 13 additions & 15 deletions src/app/qgsdecorationnortharrow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,13 +59,14 @@ const double QgsDecorationNorthArrow::TOL = 1e-8;
* @param _qI Pointer to the QGIS interface object
*/
QgsDecorationNorthArrow::QgsDecorationNorthArrow( QObject* parent )
: QObject( parent )
: QgsDecorationItem( parent )
{
mRotationInt = 0;
mAutomatic = true;
mPlacementLabels << tr( "Bottom Left" ) << tr( "Top Left" )
<< tr( "Top Right" ) << tr( "Bottom Right" );

setName( "North Arrow" );
projectRead();
}

Expand All @@ -75,20 +76,18 @@ QgsDecorationNorthArrow::~QgsDecorationNorthArrow()

void QgsDecorationNorthArrow::projectRead()
{
//default text to start with - try to fetch it from qgsproject

mRotationInt = QgsProject::instance()->readNumEntry( "NorthArrow", "/Rotation", 0 );
mPlacementIndex = QgsProject::instance()->readNumEntry( "NorthArrow", "/Placement", 0 );
mEnable = QgsProject::instance()->readBoolEntry( "NorthArrow", "/Enabled", false );
mAutomatic = QgsProject::instance()->readBoolEntry( "NorthArrow", "/Automatic", true );
QgsDecorationItem::projectRead();
mRotationInt = QgsProject::instance()->readNumEntry( mNameConfig, "/Rotation", 0 );
mPlacementIndex = QgsProject::instance()->readNumEntry( mNameConfig, "/Placement", 0 );
mAutomatic = QgsProject::instance()->readBoolEntry( mNameConfig, "/Automatic", true );
}

void QgsDecorationNorthArrow::saveToProject()
{
QgsProject::instance()->writeEntry( "NorthArrow", "/Rotation", mRotationInt );
QgsProject::instance()->writeEntry( "NorthArrow", "/Placement", mPlacementIndex );
QgsProject::instance()->writeEntry( "NorthArrow", "/Enabled", mEnable );
QgsProject::instance()->writeEntry( "NorthArrow", "/Automatic", mAutomatic );
QgsDecorationItem::saveToProject();
QgsProject::instance()->writeEntry( mNameConfig, "/Rotation", mRotationInt );
QgsProject::instance()->writeEntry( mNameConfig, "/Placement", mPlacementIndex );
QgsProject::instance()->writeEntry( mNameConfig, "/Automatic", mAutomatic );
}

// Slot called when the buffer menu item is activated
Expand All @@ -98,16 +97,15 @@ void QgsDecorationNorthArrow::run()

if ( dlg.exec() )
{
saveToProject();
QgisApp::instance()->mapCanvas()->refresh();
update();
}
}

void QgsDecorationNorthArrow::renderNorthArrow( QPainter * theQPainter )
void QgsDecorationNorthArrow::render( QPainter * theQPainter )
{

//Large IF statement controlled by enable check box
if ( mEnable )
if ( enabled() )
{
if ( theQPainter->isActive() )
{
Expand Down
9 changes: 4 additions & 5 deletions src/app/qgsdecorationnortharrow.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,15 @@
#ifndef QGSNORTHARROWPLUGIN
#define QGSNORTHARROWPLUGIN

#include <QObject>
#include "qgsdecorationitem.h"

#include <QStringList>

class QAction;
class QToolBar;
class QPainter;

class QgsDecorationNorthArrow: public QObject
class QgsDecorationNorthArrow: public QgsDecorationItem
{
Q_OBJECT

Expand All @@ -45,7 +46,7 @@ class QgsDecorationNorthArrow: public QObject
//! Show the dialog box
void run();
//! draw some arbitary text to the screen
void renderNorthArrow( QPainter * );
void render( QPainter * );

//! try to calculate the direction for the north arrow. Sets the
//! private class rotation variable. If unable to calculate the
Expand All @@ -62,8 +63,6 @@ class QgsDecorationNorthArrow: public QObject
// The amount of rotation for the north arrow
int mRotationInt;
int pluginType;
// enable or disable north arrow
bool mEnable;
//! enable or disable the automatic setting of the arrow direction
bool mAutomatic;
// The placement index and translated text
Expand Down
4 changes: 2 additions & 2 deletions src/app/qgsdecorationnortharrowdialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ QgsDecorationNorthArrowDialog::QgsDecorationNorthArrowDialog( QgsDecorationNorth
cboPlacement->setCurrentIndex( mDeco.mPlacementIndex );

// enabled
cboxShow->setChecked( mDeco.mEnable );
cboxShow->setChecked( mDeco.enabled() );

// automatic
cboxAutomatic->setChecked( mDeco.mAutomatic );
Expand All @@ -62,7 +62,7 @@ void QgsDecorationNorthArrowDialog::on_buttonBox_accepted()
{
mDeco.mRotationInt = sliderRotation->value();
mDeco.mPlacementIndex = cboPlacement->currentIndex();
mDeco.mEnable = cboxShow->isChecked();
mDeco.setEnabled( cboxShow->isChecked() );
mDeco.mAutomatic = cboxAutomatic->isChecked();

accept();
Expand Down
44 changes: 23 additions & 21 deletions src/app/qgsdecorationscalebar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,14 +54,15 @@ email : sbr00pwb@users.sourceforge.net


QgsDecorationScaleBar::QgsDecorationScaleBar( QObject* parent )
: QObject( parent )
: QgsDecorationItem( parent )
{
mPlacementLabels << tr( "Bottom Left" ) << tr( "Top Left" )
<< tr( "Top Right" ) << tr( "Bottom Right" );
mPlacementIndex = 1;
mStyleLabels << tr( "Tick Down" ) << tr( "Tick Up" )
<< tr( "Bar" ) << tr( "Box" );

setName( "Scale Bar" );
projectRead();
}

Expand All @@ -72,27 +73,29 @@ QgsDecorationScaleBar::~QgsDecorationScaleBar()

void QgsDecorationScaleBar::projectRead()
{
mPreferredSize = QgsProject::instance()->readNumEntry( "ScaleBar", "/PreferredSize", 30 );
mStyleIndex = QgsProject::instance()->readNumEntry( "ScaleBar", "/Style", 0 );
mPlacementIndex = QgsProject::instance()->readNumEntry( "ScaleBar", "/Placement", 2 );
mEnabled = QgsProject::instance()->readBoolEntry( "ScaleBar", "/Enabled", false );
mSnapping = QgsProject::instance()->readBoolEntry( "ScaleBar", "/Snapping", true );
int myRedInt = QgsProject::instance()->readNumEntry( "ScaleBar", "/ColorRedPart", 0 );
int myGreenInt = QgsProject::instance()->readNumEntry( "ScaleBar", "/ColorGreenPart", 0 );
int myBlueInt = QgsProject::instance()->readNumEntry( "ScaleBar", "/ColorBluePart", 0 );
QgsDecorationItem::projectRead();
mPreferredSize = QgsProject::instance()->readNumEntry( mNameConfig, "/PreferredSize", 30 );
mStyleIndex = QgsProject::instance()->readNumEntry( mNameConfig, "/Style", 0 );
mPlacementIndex = QgsProject::instance()->readNumEntry( mNameConfig, "/Placement", 2 );
// mEnabled = QgsProject::instance()->readBoolEntry( mNameConfig, "/Enabled", false );
mSnapping = QgsProject::instance()->readBoolEntry( mNameConfig, "/Snapping", true );
int myRedInt = QgsProject::instance()->readNumEntry( mNameConfig, "/ColorRedPart", 0 );
int myGreenInt = QgsProject::instance()->readNumEntry( mNameConfig, "/ColorGreenPart", 0 );
int myBlueInt = QgsProject::instance()->readNumEntry( mNameConfig, "/ColorBluePart", 0 );
mColor = QColor( myRedInt, myGreenInt, myBlueInt );
}

void QgsDecorationScaleBar::saveToProject()
{
QgsProject::instance()->writeEntry( "ScaleBar", "/Placement", mPlacementIndex );
QgsProject::instance()->writeEntry( "ScaleBar", "/PreferredSize", mPreferredSize );
QgsProject::instance()->writeEntry( "ScaleBar", "/Snapping", mSnapping );
QgsProject::instance()->writeEntry( "ScaleBar", "/Enabled", mEnabled );
QgsProject::instance()->writeEntry( "ScaleBar", "/Style", mStyleIndex );
QgsProject::instance()->writeEntry( "ScaleBar", "/ColorRedPart", mColor.red() );
QgsProject::instance()->writeEntry( "ScaleBar", "/ColorGreenPart", mColor.green() );
QgsProject::instance()->writeEntry( "ScaleBar", "/ColorBluePart", mColor.blue() );
QgsDecorationItem::saveToProject();
QgsProject::instance()->writeEntry( mNameConfig, "/Placement", mPlacementIndex );
QgsProject::instance()->writeEntry( mNameConfig, "/PreferredSize", mPreferredSize );
QgsProject::instance()->writeEntry( mNameConfig, "/Snapping", mSnapping );
// QgsProject::instance()->writeEntry( mNameConfig, "/Enabled", mEnabled );
QgsProject::instance()->writeEntry( mNameConfig, "/Style", mStyleIndex );
QgsProject::instance()->writeEntry( mNameConfig, "/ColorRedPart", mColor.red() );
QgsProject::instance()->writeEntry( mNameConfig, "/ColorGreenPart", mColor.green() );
QgsProject::instance()->writeEntry( mNameConfig, "/ColorBluePart", mColor.blue() );
}


Expand All @@ -102,13 +105,12 @@ void QgsDecorationScaleBar::run()

if ( dlg.exec() )
{
saveToProject();
QgisApp::instance()->mapCanvas()->refresh();
update();
}
}


void QgsDecorationScaleBar::renderScaleBar( QPainter * theQPainter )
void QgsDecorationScaleBar::render( QPainter * theQPainter )
{
QgsMapCanvas* canvas = QgisApp::instance()->mapCanvas();

Expand All @@ -129,7 +131,7 @@ void QgsDecorationScaleBar::renderScaleBar( QPainter * theQPainter )
return;

//Large if statement which determines whether to render the scale bar
if ( mEnabled )
if ( enabled() )
{
// Hard coded sizes
int myMajorTickSize = 8;
Expand Down
9 changes: 4 additions & 5 deletions src/app/qgsdecorationscalebar.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ email : sbr00pwb@users.sourceforge.net
#ifndef QGSCALEBARPLUGIN
#define QGSCALEBARPLUGIN

#include "qgsdecorationitem.h"

class QPainter;

#include <QColor>
#include <QObject>

class QgsDecorationScaleBar: public QObject
class QgsDecorationScaleBar: public QgsDecorationItem
{
Q_OBJECT
public:
Expand All @@ -42,7 +43,7 @@ class QgsDecorationScaleBar: public QObject
void saveToProject();

//! this does the meaty bit of the work
void renderScaleBar( QPainter * );
void render( QPainter * );
//! Show the dialog box
void run();

Expand All @@ -55,8 +56,6 @@ class QgsDecorationScaleBar: public QObject
int mPreferredSize;
//! Should we snap to integer times power of 10?
bool mSnapping;
//! Scale bar enabled?
bool mEnabled;
//! Style of scale bar. An index and the translated text
int mStyleIndex;
QStringList mStyleLabels;
Expand Down
4 changes: 2 additions & 2 deletions src/app/qgsdecorationscalebardialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ QgsDecorationScaleBarDialog::QgsDecorationScaleBarDialog( QgsDecorationScaleBar&
cboPlacement->addItems( mDeco.mPlacementLabels );
cboPlacement->setCurrentIndex( mDeco.mPlacementIndex );

chkEnable->setChecked( mDeco.mEnabled );
chkEnable->setChecked( mDeco.enabled() );

cboStyle->clear();
cboStyle->addItems( mDeco.mStyleLabels );
Expand All @@ -77,7 +77,7 @@ void QgsDecorationScaleBarDialog::on_buttonBox_accepted()
mDeco.mPlacementIndex = cboPlacement->currentIndex();
mDeco.mPreferredSize = spnSize->value();
mDeco.mSnapping = chkSnapping->isChecked();
mDeco.mEnabled = chkEnable->isChecked();
mDeco.setEnabled( chkEnable->isChecked() );
mDeco.mStyleIndex = cboStyle->currentIndex();
mDeco.mColor = pbnChangeColor->color();

Expand Down
6 changes: 3 additions & 3 deletions src/ui/qgisapp.ui
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,10 @@
<property name="title">
<string>&amp;Decorations</string>
</property>
<addaction name="mActionDecorationCopyright"/>
<addaction name="mActionDecorationNorthArrow"/>
<addaction name="mActionDecorationScaleBar"/>
<addaction name="mActionDecorationGrid"/>
<addaction name="mActionDecorationScaleBar"/>
<addaction name="mActionDecorationNorthArrow"/>
<addaction name="mActionDecorationCopyright"/>
</widget>
<addaction name="mActionPan"/>
<addaction name="mActionPanToSelected"/>
Expand Down