timlinux c7ba33f0f2 Implemented state handling via qgsproject for copyright label.
Updated _all_ plugins so that initGui() is implemented as a slot.
This is required if you wish to use qgsproject for storing and reinstating state in qgis. The reason for this is that the initGui() method is only called once at the moment when qgis starts up. I will be adding a signal to qgisproject 'projectLoaded' that will be emitted when a new project is loaded. I will also be adding connect() for each plugin when its initially loaded in qgisapp so that the initgui slot is called whenever the project loads.


git-svn-id: http://svn.osgeo.org/qgis/trunk@2238 c8812cc2-4d05-0410-92ff-de0c093fc19c
2004-11-12 13:55:19 +00:00

110 lines
3.1 KiB
C++

/***************************************************************************
plugin.cpp
Plugin to draw scale bar on map
Functions:
-------------------
begin : Jun 1, 2004
copyright : (C) 2004 by Peter Brewer
email : sbr00pwb@users.sourceforge.net
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
/* $Id$ */
#ifndef PLUGIN
#define PLUGIN
#include "../qgisplugin.h"
#include <qwidget.h>
#include <qpainter.h>
#include <qpointarray.h>
#include "../../src/qgisapp.h"
/**
* \class Plugin
* \brief OpenModeller plugin for QGIS
*
*/
class Plugin:public QObject, public QgisPlugin
{
Q_OBJECT public:
/**
* Constructor for a plugin. The QgisApp and QgisIface pointers are passed by
* QGIS when it attempts to instantiate the plugin.
* @param qgis Pointer to the QgisApp object
* @param qI Pointer to the QgisIface object.
*/
Plugin(QgisApp * , QgisIface * );
//! Destructor
virtual ~ Plugin();
public slots:
//! init the gui
virtual void initGui();
void renderScaleBar(QPainter *);
//! Show the dialog box
void run();
//! Refresh the map display using the mapcanvas exported via the plugin interface
void refreshCanvas();
//! unload the plugin
void unload();
//! show the help document
void help();
//! set scale bar placement
void setPlacement(QString);
//! set preferred size of scale bar
void setPreferredSize(int);
//! set whether the scale bar length should snap to the closest A*10^B
void setSnapping(bool);
//! set whether scale bar is enabled
void setEnabled(bool);
//! set the scale bar style
void setStyle(QString);
//! set the scale bar colour
void setColour(QColor);
private:
int pluginType;
//! Id of the plugin's menu. Used for unloading
int menuIdInt;
//! Placement of the scale bar
QString mPlacement;
//! The size preferred size of the scale bar
int mPreferredSize;
//! Should we snap to integer times power of 10?
bool mSnapping;
//! Scale bar enabled?
bool mEnabled;
//! Style of scale bar
QString mStyle;
//! The scale bar colour
QColor mColour;
//! Pointer to our toolbar
QToolBar *toolBarPointer;
//! Pointer to our menu
QMenuBar *menuBarPointer;
//! Pionter to QGIS main application object
QgisApp *qgisMainWindowPointer;
//! Pointer to the QGIS interface object
QgisIface *qGisInterface;
//! Pointer to the QAction object used in the menu and toolbar
QAction *myQActionPointer;
};
#endif