⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gpsmgrui.cpp

📁 GPS的一个应用程序,很不错的.大家试一试.
💻 CPP
字号:
#include "gpsMgrUI.h"#include "exceptions.h"#include <gps.h>#include <qinputdialog.h>#include <qlistview.h>#include <sstream>#include "track.h"#include "waypoint.h"#include "waypointEditorUI.h"#include <waypointlist.h>namespace{    using namespace gpsmgr;    //--------------------------------------------------------------------------    class TrackListItem : public QListViewItem    {    public:	TrackListItem(DataStore::Tracks::iterator track,		      QListView * parent) :	    QListViewItem (parent),	    mTrack (track)	    {}	QString text(int col) const	    {		switch (col)		{		    case 0:			return mTrack->name();		    default:			return "UNKNOWN COLUMN";		}	    }		void setTrack(DataStore::Tracks::iterator& track)	    { mTrack = track; }	const gpsmgr::Track& track() const	    { return *mTrack; }	    private:	DataStore::Tracks::iterator mTrack;    };        //--------------------------------------------------------------------------    class WaypointListItem : public QListViewItem    {    public:	enum 	{	    NAME_COL = 0,	    LAT_COL,	    LON_COL,	    ALT_COL	};		WaypointListItem(DataStore::Waypoints::iterator wpitr,			 QListView * parent) :	    QListViewItem (parent),	    mWaypoint (wpitr)	    {}		QString text(int col) const	    {		switch (col)		{		    case NAME_COL:			return mWaypoint->name().c_str();		    case LAT_COL:		    {			ostringstream oss;			oss << mWaypoint->position().lat();			return oss.str();		    }		    case LON_COL:		    {			ostringstream oss;			oss << mWaypoint->position().lon();			return oss.str();		    }		    case ALT_COL:		    {			ostringstream oss;			oss << mWaypoint->altitude();			return oss.str();		    }		    default:			return "UNKNOWN COLUMN";		}	    }		void setWaypoint(DataStore::Waypoints::iterator wpitr)	    { mWaypoint = wpitr; }	const Waypoint& waypoint() const	    { return *mWaypoint; }	DataStore::Waypoints::iterator& waypointIterator()	    { return mWaypoint; }	DataStore::Waypoints::const_iterator waypointIterator() const	    { return mWaypoint; }	    private:	DataStore::Waypoints::iterator mWaypoint;    };    void insertWaypoint(Waypoint& wp, DataStore& ds, QListView* lv)    {	DataStore::Waypoints::iterator itr =	    ds.waypoints().insert(ds.waypoints().end(), wp);		new WaypointListItem(itr, lv);    }    }namespace gpsmgr { namespace ui {    GPSMgrUI::GPSMgrUI(QWidget* parent,		       const char* name,		       WFlags fl) :	GPSMgrUIBase (parent, name, fl)    {}    void GPSMgrUI::downloadGPS()    {	bool ok;	QString device = QInputDialog::getText(            "GPS Device", "Enter the device for the GPS:", QLineEdit::Normal,            QString::null, &ok, this );	if ( !ok || device.isEmpty() )	    return;	    	GPS gps;	gps.setDevice(device);		Waypointlist wpl;	gps.downloadWaypoints(wpl);	gps.turnOff();	for (Waypointlist::Waypoints::const_iterator itr = wpl.getList().begin();	     itr != wpl.getList().end();	     ++itr)	{	    Waypoint wp(*itr);	    insertWaypoint(wp, mDataStore, mWaypointListView);	}    }        void GPSMgrUI::addWaypoint()    {	using namespace gpsmgr::exceptions;		WaypointEditorUI wpui(this, "WaypointEditorUI");	if (!wpui.exec()) return;	Waypoint wp = wpui.waypoint();	insertWaypoint(wp, mDataStore, mWaypointListView);    }    void GPSMgrUI::deleteWaypoint()    {	WaypointListItem* curr =	    dynamic_cast<WaypointListItem*>(mWaypointListView->currentItem());		if (curr == NULL) return;	DataStore::Waypoints::iterator itr = curr->waypointIterator();	delete curr;	mDataStore.waypoints().erase(itr);    }    void GPSMgrUI::editWaypoint()    {	WaypointListItem* curr =	    dynamic_cast<WaypointListItem*>(mWaypointListView->currentItem());		if (curr == NULL) return;	WaypointEditorUI wpui(this, "WaypointEditorUI");	wpui.setWaypoint(curr->waypoint());	if (!wpui.exec()) return;	*(curr->waypointIterator()) = wpui.waypoint();    }    } }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -