All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Public Member Functions | Static Public Member Functions
QGpGuiTools::CoordinateFile Class Reference

Brief description of class still missing. More...

#include <CoordinateFile.h>

Inheritance diagram for QGpGuiTools::CoordinateFile:
QGpGuiTools::Dialog QGpGuiTools::FrameGrabber

List of all members.

Public Member Functions

bool contains (const QString &name) const
 CoordinateFile (QWidget *parent=0)
const QList< NamedPoint > & points () const
bool read (QString fileName=QString::null, const QString &format=QString::null)
 ~CoordinateFile ()

Static Public Member Functions

static bool write (const QList< NamedPoint > &points, QString fileName=QString::null)

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

Description of constructor still missing

References QGpGuiTools::Dialog::getRect(), QGpGuiTools::Settings::getWidget(), QGpCoreTools::tr(), and TRACE.

    : Dialog(parent)
  {
    TRACE;
    setupUi(this);

    if(_types.isEmpty()) {
      // Order here is quite important, see parse() in case of modification
      // 2 to 5: cartesian, 7 to 14: geographical
      _types << tr("Station name")    // 1
             << tr("X (m)")           // 2
             << tr("X (km)")          // 3
             << tr("Y (m)")           // 4
             << tr("Y (km)")          // 5
             << tr("Z (m)")           // 6
             << tr("Longitude (D)")   // 7
             << tr("Longitude (M)")   // 8
             << tr("Longitude (S)")   // 9
             << tr("Longitude (DEG)") // 10
             << tr("Latitude (D)")    // 11
             << tr("Latitude (M)")    // 12
             << tr("Latitude (S)")    // 13
             << tr("Latitude (DEG)");  // 14
    }

    connect(filterWidget, SIGNAL(typeChanged()), this, SLOT(switchConversion()));
    connect(filterWidget->parser(), SIGNAL(dataAvailable()), this, SLOT(setUtmZone()));
    filterWidget->setStandardTypes(_types);
    connect(convertWidget, SIGNAL(copyReference()), this, SLOT(copyPointToReference()));
    connect(buttonBox, SIGNAL(accepted()), this, SLOT(beforeLeaving()));

    setWindowTitle(tr("Load coordinates"));
    Settings::getRect(this, "coordinateReader");
    Settings::getWidget(filterWidget, "coordinateReader");
    Settings::getWidget(convertWidget, "coordinateReader");
  }

Description of destructor still missing

References TRACE.

  {
    TRACE;
  }

Member Function Documentation

bool QGpGuiTools::CoordinateFile::contains ( const QString &  name) const
const QList<NamedPoint>& QGpGuiTools::CoordinateFile::points ( ) const [inline]

Referenced by main(), and WaranGpsWidget::setCoordinates().

{return _points;}
bool QGpGuiTools::CoordinateFile::read ( QString  fileName = QString::null,
const QString &  format = QString::null 
)

References QGpGuiTools::Dialog::setRect(), QGpGuiTools::Settings::setWidget(), QGpCoreTools::tr(), and TRACE.

Referenced by main(), and WaranGpsWidget::setCoordinates().

  {
    TRACE;
    if(fileName.isEmpty()) {
      fileName=Message::getOpenFileName(tr("Load coordinates"), _fileFilter);
      if(fileName.isEmpty()) {
        return false;
      }
    }
    setFile(fileName, format);
    if(exec()==QDialog::Accepted) {
      convertWidget->saveReference();
      filterWidget->saveParserSettings("coordinateReader");
      Settings::setWidget(filterWidget, "coordinateReader");
      Settings::setWidget(convertWidget, "coordinateReader");
      Settings::setRect(this, "coordinateReader");
      return true;
    } else {
      return false;
    }
  }
bool QGpGuiTools::CoordinateFile::write ( const QList< NamedPoint > &  points,
QString  fileName = QString::null 
) [static]

References QGpCoreTools::GoogleEarthKML::Folder::addPlacemark(), QGpGuiTools::Dialog::Dialog(), QGpCoreTools::GoogleEarthKML::document(), QGpGuiTools::Dialog::getRect(), QGpGuiTools::Settings::getWidget(), QGpCoreTools::GoogleEarthKML::Document::mainFolder(), MSG_ID, QGpCoreTools::Point2D::rectangularToGeographical(), QGpGuiTools::GeographicalReference::reference(), QGpGuiTools::GeographicalReference::save(), QGpCoreTools::GoogleEarthKML::save(), QGpCoreTools::GoogleEarthKML::Placemark::setCoordinates(), QGpGuiTools::Dialog::setMainWidget(), QGpCoreTools::GoogleEarthKML::Placemark::setName(), QGpCoreTools::GoogleEarthKML::Folder::setName(), QGpCoreTools::GoogleEarthKML::Document::setName(), QGpGuiTools::Dialog::setRect(), QGpGuiTools::Settings::setWidget(), QGpCoreTools::tr(), and TRACE.

  {
    TRACE;
    if(fileName.isEmpty()) {
      fileName=Message::getSaveFileName(tr("Save coordinates"), CoordinateFile::_fileFilter);
      if(fileName.isEmpty()) {
        return false;
      }
    }
    if(fileName.endsWith(".kml")) {
      Dialog * d=new Dialog;
      GeographicalReference * dg=new GeographicalReference;
      d->setMainWidget(dg);
      d->setWindowTitle("Google Earth KML export");
      Settings::getWidget(dg, "CoordinateWriteKML");
      Settings::getRect(d, "CoordinateWriteKML");
      NamedPoint reference;
      if(d->exec()==QDialog::Accepted) {
        Settings::setWidget(dg, "CoordinateWriteKML");
        Settings::setRect(d, "CoordinateWriteKML");
        dg->save();
        reference=dg->reference();
        delete d;
      } else {
        delete d;
        return false;
      }

      GoogleEarthKML kml;
      GoogleEarthKML::Document& doc=kml.document();
      QFileInfo fi(fileName);
      doc.setName(fi.baseName());
      GoogleEarthKML::Folder * f=doc.mainFolder();
      f->setName(fi.baseName());
      Point point;
      for(QList<NamedPoint>::const_iterator it=points.begin(); it!=points.end(); it++) {
        GoogleEarthKML::Placemark * p=new GoogleEarthKML::Placemark;
        p->setName(it->name());
        point=*it;
        point.rectangularToGeographical(reference);
        p->setCoordinates(point);
        f->addPlacemark(p);
      }
      return kml.save(fileName);
    } else {
      QFile f(fileName);
      if(!f.open(QIODevice::WriteOnly)) {
        Message::warning(MSG_ID, tr("Saving coordinates ..."),
                         tr("Error while writing to file %1").arg(fileName), Message::cancel());
        return false;
      }
      QTextStream s(&f);
      for(QList<NamedPoint>::const_iterator it=points.begin(); it!=points.end(); it++) {
        s << it->toString(20) << "\n";
      }
    }
    return true;
  }

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines