📄 waypointeditorui.cpp
字号:
/*gpsmgr: A program for managing GPS informationCopyright (C) 2003 Austin BinghamThis program is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public Licenseas published by the Free Software Foundation; either version 2of the License, or (at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.You can reach the author at: abingham@spamcop.net*/#include "waypointEditorUI.h"#include "exceptions.h"#include "groupEditorWidget.h"#include <qlineedit.h>#include <qmessagebox.h>#include <qspinbox.h>#include <qtextedit.h>#include <qvalidator.h>#include <sstream>namespace gpsmgr { namespace ui { WaypointEditorUI::WaypointEditorUI(QWidget* parent, const char* name, bool modal, WFlags fl) : WaypointEditorUIBase (parent, name, modal, fl) { mAltitudeEdit->setValidator(new QDoubleValidator(this)); } void WaypointEditorUI::setWaypoint(const DataStore::WaypointType& wp) { mNameEdit->setText(wp.name().c_str()); ostringstream latoss; latoss << wp.position().lat(); mLatEdit->setText(latoss.str()); ostringstream lonoss; lonoss << wp.position().lon(); mLonEdit->setText(lonoss.str()); ostringstream altoss; altoss << wp.altitude(); mAltitudeEdit->setText(altoss.str()); mSymbolEdit->setText(wp.symbol()); mCommentEdit->setText(wp.comment()); mGroupEditorWidget->reset(wp); } DataStore::WaypointType WaypointEditorUI::waypoint() const { DataStore::WaypointType rval; rval.setName(mNameEdit->text()); Latitude lat; istringstream latiss(mLatEdit->text()); latiss >> lat; Longitude lon; istringstream loniss(mLonEdit->text()); loniss >> lon; LatLon pos(lat, lon); rval.setPosition(pos); double alt; istringstream altiss(mAltitudeEdit->text()); altiss >> alt; rval.setAltitude(alt); rval.setSymbol(mSymbolEdit->text()); rval.setComment(mCommentEdit->text()); mGroupEditorWidget->updateGroupObject(rval); return rval; } void WaypointEditorUI::accept() { using namespace gpsmgr::exceptions; try { DataStore::WaypointType wp = waypoint(); } catch (Exception<ParseError>& e) { QMessageBox::warning(this, "Invalid waypoint", e.what(), "OK"); return; } WaypointEditorUIBase::accept(); } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -