QGIS/plugins/gps_importer/qgsgpsplugin.h
g_j_m 3c40292773 Altered the way in which plugins add items to the plugin menu. Old way
still supported for the moment. New way allows different plugins to use the
same submenu (e.g. Decorations for copyright and north arrow)


git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@3232 c8812cc2-4d05-0410-92ff-de0c093fc19c
2005-04-27 05:21:34 +00:00

101 lines
3.2 KiB
C++

/***************************************************************************
qgsgpsplugin.h
Functions:
-------------------
begin : Jan 21, 2004
copyright : (C) 2004 by Tim Sutton
email : tim@linfiniti.com
***************************************************************************/
/***************************************************************************
* *
* 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 QGSGPSPLUGIN_H
#define QGSGPSPLUGIN_H
#include "qgsbabelformat.h"
#include "qgsgpsdevice.h"
#include "../qgisplugin.h"
#include <qwidget.h>
#include <qgisapp.h>
class QgsVectorLayer;
/** A plugin with various GPS tools.
*/
class QgsGPSPlugin: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.
*/
QgsGPSPlugin(QgisApp * , QgisIface * );
//! Destructor
virtual ~QgsGPSPlugin();
public slots:
//! init the gui
virtual void initGui();
//! Show the dialog box
void run();
//! Create a new GPX layer
void createGPX();
//! Add a vector layer given vectorLayerPath, baseName, providerKey
void drawVectorLayer(QString,QString,QString);
//! unload the plugin
void unload();
//! show the help document
void help();
//! load a GPX file
void loadGPXFile(QString filename, bool loadWaypoints, bool loadRoutes,
bool loadTracks);
void importGPSFile(QString inputFilename, QgsBabelFormat* importer,
bool importWaypoints, bool importRoutes,
bool importTracks, QString outputFilename,
QString layerName);
void downloadFromGPS(QString device, QString port,
bool downloadWaypoints, bool downloadRoutes,
bool downloadTracks, QString outputFilename,
QString layerName);
void uploadToGPS(QgsVectorLayer* gpxLayer, QString device,
QString port);
signals:
void closeGui();
private:
//! Initializes all variables needed to run GPSBabel.
void setupBabel();
//! Id of the plugin's menu. Used for unloading
int mMenuIdGPS, mMenuIdGPX;
//! Pointer to our menu
QgisApp *mMainWindowPointer;
//! Pointer to the QGIS interface object
QgisIface *mQGisInterface;
//! Pointer to the QAction object used in the menu and toolbar
QAction *mQActionPointer;
//! The path to the GPSBabel program
QString mBabelPath;
//! Importers for external GPS data file formats
std::map<QString, QgsBabelFormat*> mImporters;
//! Upload/downloaders for GPS devices
std::map<QString, QgsGPSDevice*> mDevices;
};
#endif